OHDSI / CommonEvidenceModel

Common Evidence Model (CEM) is a structure for standardizing evidence about drug-outcome relationship across disparate evidence sources.
Apache License 2.0
14 stars 9 forks source link

MedDRA --> Standard Condition Map #3

Open ericaVoss opened 7 years ago

ericaVoss commented 7 years ago

There are two main issues when going from MedDRA --> SNOMED:

1. Directionality in Vocabularies The original mapping used in the OMOP Vocab is SNOMED -> MedDRA. Sometimes a specific SNOMED term gets mapped to a broad MedDRA term, in that direction it is correct. However if you flip the direction, it may not still hold true.

Take the example of MedDRA term Malaria in the OMOP Vocab. It has direct mappings to these SNOMEDs: 432690 Maternal malaria during pregnancy - baby delivered 434424 Malaria in mother complicating pregnancy, childbirth AND/OR puerperium 438067 Malaria 4058268 H/O: malaria

It is correct to say that “Malaria in mother complicating pregnancy, childbirth AND/OR puerperium” in SNOMED is a “Malaria” in MedDRA. But it is not correct to say “Malaria” (MedDRA) is a “Malaria in mother complicating pregnancy, childbirth AND/OR puerperium” (SNOMED). What we really want to say is “Malaria” (MedDRA) is a “Malaria” (SNOMED)

This isn’t a problem with the Vocab, just a new use case – we want to be able to go MedDRA --> SNOMED without casting to large of net.

2. Concept Ancestor I was trying to use CONCEPT_ANCESTOR before in my mapping but it casts just too wide of a net. Using CONCEPT_RELATIONSHIP is best.

After speaking with Patrick we really need to generate an appropriate mapping for MedDRA --> SNOMED for CEM. I’m going to do the following:

  1. Pull MedDRAs of interest from FAERS/AEOLUS and get frequency of usage from it.
  2. “[01] Only 1 Vocab Map” - Using the 'SNOMED - MedDRA eq' relationship, any time there is only one SNOMED mapped to a MedDRA automatically assume it is what we want.
  3. “[02] Exact String Match” - Look for exact match string between MedDRA CONCEPT_NAME to SNOMED CONCEPT_NAME
  4. “[03] Select a Parent” - If there are multiple SNOMEDs mapped to a MedDRA look at their ancestors and pick the one they all share and that is closest in relationship distance. Exclude broad concepts like “Disease” or “Clinical Finding”
  5. Else no map

Using this process, I was able to map about 40% of the codes (doesn’t mean the map is perfect – especially with the “[03] Select a Parent” option).

The next step would be to put this through USAGI. I would auto accept my mapping using “[01] Only 1 Vocab Map” and “[02] Exact String Match”. I would review “[03] Select a Parent” to make sure it didn’t go to high or to a bad spot. Then use USAGI to map things that didn’t get a map.

I am interested if you have any thoughts about our need for a MedDRA  SNOMED mapping for CEM and how to go about it.


For AEOLUS we shouldn't just use a Meddra to SNOMED mapping, we have learned this isn't very good.

I should look for some type of combination of: 1) Leverage frequency to know which codes are most important 2) Do exact string matching 3) See if the meddra mapping helps at all 4) USAGI

WITH CTE_FAERS_MEDDRA_USAGE AS (
    SELECT SOURCE_CODE_2 AS MEDDRA_CONCEPT_ID, c.CONCEPT_NAME AS MEDDRA_CONCEPT_NAME, c.VOCABULARY_ID AS MEDDRA_VOCABULARY_ID,
        COUNT(DISTINCT UNIQUE_IDENTIFIER) AS FAERS_DISTINCT_REPORT_TYPES, SUM(CASE_COUNT) AS FAERS_SUM_REPORT
    FROM CLEAN.AEOLUS a
        JOIN vocabulary.CONCEPT c
            ON CAST(c.CONCEPT_ID AS VARCHAR(100)) = a.SOURCE_CODE_2
            --AND c.CONCEPT_ID = 36718566
    GROUP BY SOURCE_CODE_2, c.CONCEPT_NAME, c.VOCABULARY_ID
), 
CTE_MEDDRA_TO_SNOMED AS (
    SELECT CAST(c.CONCEPT_ID AS VARCHAR(100)) AS MEDDRA_CONCEPT_ID, c.CONCEPT_NAME AS MEDDRA_CONCEPT_NAME, c.VOCABULARY_ID AS MEDDRA_VOCABUALRY_ID, 
        cr.RELATIONSHIP_ID,
        c2.CONCEPT_ID AS SNOMED_CONCEPT_ID, c2.CONCEPT_NAME AS SNOMED_CONCEPT_NAME, c2.VOCABULARY_ID AS SNOMED_VOCABULARY_ID, c2.DOMAIN_ID AS SNOMED_DOMAIN_ID
    FROM vocabulary.CONCEPT c
        JOIN vocabulary.CONCEPT_RELATIONSHIP cr
            ON cr.CONCEPT_ID_2 = c.CONCEPT_ID
            AND UPPER(cr.RELATIONSHIP_ID) = 'SNOMED - MEDDRA EQ'
        JOIN vocabulary.CONCEPT c2
            ON c2.CONCEPT_ID = cr.CONCEPT_ID_1
            AND UPPER(c2.DOMAIN_ID) = 'CONDITION'
), 
CTE_COUNT_SNOMED AS (
    SELECT MEDDRA_CONCEPT_ID, COUNT(DISTINCT SNOMED_CONCEPT_ID) AS SNOMED_COUNT
    FROM CTE_MEDDRA_TO_SNOMED
    GROUP BY MEDDRA_CONCEPT_ID
), 
CTE_SELECT_A_PARENT AS (
    SELECT *
    FROM (
        SELECT ms.MEDDRA_CONCEPT_ID, ms.MEDDRA_CONCEPT_NAME,
            c1.CONCEPT_ID AS SNOMED_CONCEPT_ID, c1.CONCEPT_NAME, SUM(MAX_LEVELS_OF_SEPARATION) AS SUM_DISTANCES, COUNT(DISTINCT ms.SNOMED_CONCEPT_ID) AS SNOMED_COUNT, 
            ROW_NUMBER() OVER (PARTITION BY ms.MEDDRA_CONCEPT_ID ORDER BY SUM(MAX_LEVELS_OF_SEPARATION)) AS ROW_NUM
        FROM CTE_MEDDRA_TO_SNOMED ms
            JOIN CTE_COUNT_SNOMED cs
                ON cs.MEDDRA_CONCEPT_ID = ms.MEDDRA_CONCEPT_ID
                AND SNOMED_COUNT > 1
            JOIN vocabulary.CONCEPT_ANCESTOR ca
                ON ca.DESCENDANT_CONCEPT_ID = ms.SNOMED_CONCEPT_ID
            JOIN vocabulary.CONCEPT c1
                ON c1.CONCEPT_ID = ca.ANCESTOR_CONCEPT_ID
                AND UPPER(c1.DOMAIN_ID) = 'CONDITION' 
                AND UPPER(c1.STANDARD_CONCEPT) = 'S'
        GROUP BY ms.MEDDRA_CONCEPT_ID, ms.MEDDRA_CONCEPT_NAME, c1.CONCEPT_ID, c1.CONCEPT_NAME, cs.SNOMED_COUNT
        HAVING COUNT(DISTINCT ms.SNOMED_CONCEPT_ID) = cs.SNOMED_COUNT
    ) z
    WHERE z.ROW_NUM = 1
),
CTE_EXACT_MATCH AS (
    SELECT CAST(c.CONCEPT_ID As VARCHAR(100)) AS MEDDRA_CONCEPT_ID, c2.CONCEPT_ID AS SNOMED_CONCEPT_ID
    FROM vocabulary.CONCEPT c
        JOIN vocabulary.CONCEPT c2
            ON UPPER(c2.CONCEPT_NAME) = UPPER(c.CONCEPT_NAME)
            AND UPPER(c2.DOMAIN_ID) = 'CONDITION'
            AND UPPER(c2.STANDARD_CONCEPT) = 'S'
    WHERE UPPER(c.VOCABULARY_ID) = 'MEDDRA'
), 
CTE_MAPPING_MEDDRA AS (
    SELECT DISTINCT 
        mu.MEDDRA_CONCEPT_ID, mu.MEDDRA_CONCEPT_NAME, MEDDRA_VOCABULARY_ID,
        ms.RELATIONSHIP_ID, 
        CASE
            WHEN cs.SNOMED_COUNT = 1 THEN '[01] Only 1 Vocab Map'
            WHEN em.SNOMED_CONCEPT_ID IS NOT NULL THEN '[02] Exact String Match'
            WHEN p.SNOMED_CONCEPT_ID IS NOT NULL THEN '[03] Select a Parent'
            ELSE NULL
        END AS SNOMED_MAPPING_TYPE,
        CASE
            WHEN cs.SNOMED_COUNT = 1 THEN ms.SNOMED_CONCEPT_ID
            WHEN em.SNOMED_CONCEPT_ID IS NOT NULL THEN em.SNOMED_CONCEPT_ID
            WHEN p.SNOMED_CONCEPT_ID IS NOT NULL THEN p.SNOMED_CONCEPT_ID
            ELSE NULL
        END AS SNOMED_CONCEPT_ID,
        cs.SNOMED_COUNT, 
        mu.FAERS_DISTINCT_REPORT_TYPES, 
        mu.FAERS_SUM_REPORT
    FROM CTE_FAERS_MEDDRA_USAGE mu
        LEFT OUTER JOIN CTE_COUNT_SNOMED cs
            ON cs.MEDDRA_CONCEPT_ID = mu.MEDDRA_CONCEPT_ID
        LEFT OUTER JOIN CTE_MEDDRA_TO_SNOMED ms
            ON mu.MEDDRA_CONCEPT_ID = ms.MEDDRA_CONCEPT_ID
        LEFT OUTER JOIN CTE_EXACT_MATCH em
            ON em.MEDDRA_CONCEPT_ID = mu.MEDDRA_CONCEPT_ID
        LEFT OUTER JOIN CTE_SELECT_A_PARENT p
            ON p.MEDDRA_CONCEPT_ID = mu.MEDDRA_CONCEPT_ID
            AND p.SNOMED_CONCEPT_ID NOT IN (
                /*BROAD CONCEPTS*/
                432867,4024561,138525,77670,4232079,40484136,40479768,40485074,40485073,40479766,4231941,40479422,4335808,4238518,4149782,312437,4262174,4219740,46273647,46273520,46273646,46270397,46273519,40483794,46273645,46270434,4326993,4169985,4035422,4147003,4324765,72405,4201372,139900,440417,4219481,77073,78227,4048139,4181453,200219,320741,75037,439678,36716009,4311853,78506,73554,80180,4003476,444247,4133004,254761,4275649,4269128,4278454,4262812,4212238,4215628,4029334,4065081,4078796,4242744,4206197,4220969,4147995,4124682,4301516,4096625,192767,135777,4236724,43021941,4014218,77646,4018496,4018970,320425,316999,4133718,4040820,40480937,36716182,4151057,4018956,4048512,4146173,4135647,40481302,140673,4220328,4309070,81902,435839,4138412,4095428,4016543,4138275,133299,257315,4023316,4292524,45766599,439265,4104506,4138282,73673,139906,141104,200881,433595,4040388,4199409,4055474,438608,4055473,4195780,4050234,4050550,4052210,4055479,4110161,4050549,4135097,313902,4056453,4180276,4056454,4152294,4136693,4015344,4014219,255573,316501,4055475,4138276,4050544,434531,4106354,4168183,194797,4004352,313878,4038043,134438,4016831,4222174,4230268,135892,443410,4136692,4055597,4055596,440572,4055595,4055594,437152,255848,77955,4085549,4055477,4050548,139110,4050546,319843,74733,4055476,4145607,4050547,4052209,4052208,4149044,4052207,4005907,4110155,198599,4050678,4050682,317712,437147,4052217,4056573,4112796,4116723,4054058,134186,4052214,195125,75126,4050554,433736,4232869,4055590,4050674,4213373,73085,4050555,435684,4055593,4052218,4116717,195760,4328821,195400,4050542,40482807,37018842,439266,199762,138378,40484571,44783380,4056455,4055589,4113929,4189541,4050552,4241439,4062253,4059242,4087577,4110164,4056568,43020630,314208,441725,4055472,4056460,4056457,4050553,201164,44799731,44800498,42709754,4056458,4056561,4056564,437149,4056560,434224,4050557,4055598,4056567,74808,4056562,4055591,442321,440257,4116728,439270,439267,132703,4050679,319967,438024,442581,313360,4050680,4050681,321726,44796137,44796163,4056571,4055599,4327479,4052213,4056570,437120,4050551,194209,4056456,444188,4147300,4132551,196851,4132550,443878,193907,195124,197153,197151,197140,199959,40491866,4054892,40489827,4190345,4015757,141094,313062,4056440,140214,4152341,315399,4056439,443745,40484607,321389,196849,4134184,4136573,75344,4052977,4170638,4056151,4224480,439190,436277,437427,315116,373648,40486118,4298193,4153359,4105482,4113801,37016155,4056585,4053138,439271,320888,438903,37018671,40480185,36716800,4086198,4055866,4108639,4113815,4331101,4196291,378253,4271776,195118,4137343,4187244,4134171,4138152,4157453,40487489,4181456,140664,74448,37018679,4027540,4220002,4181454,193627,4153730,443860,40493018,444235,4155082,4138150,40480453,4177851,75628,4108642,4106356,4164349,138102,4110709,444237,4178956,4189293,4292542,4292541,4194597,444435,4106355,444206,4213507,443582,4116086,4170730,4108638,444049,4106352,444193,4051134,4324788,443583,4055859,4177053,77355,4115696,4159964,4058364,4108643,4086201,4086200,4043679,40492779,40480978,72997,40482662,443557,317585,4136555,4054054,37395579,435098,4221189,4055870,4135090,4016263,75047,438515,4134182,4323193,4323893,4117771,75949,36717463,258369,4052998,4050380,320746,4157457,4162993,199870,4041510,4188191,4148916,46272749,433015,74399,36716697,4028073,4153380,4159164,444218,314463,4163710,4237912,43021868,321319,4329734,442256,74396,4152928,4030291,43020948,4132130,4146947,40491477,4108742,4209843,135759,4116245,135765,40489940,4266193,4266805,4109481,43022059,4187240,4109468,4056169,4193597,44806517,4154439,4262590,442135,4035610,40480128,4056152,4129730,4054408,443955,4153973,4056158,4051280,4082514,4057588,4035744,4052992,4052991,4052990,4291025,4170635,4086196,81611,4113004,4340264,136354,443388,40492938,4050399,4129215,4054739,36716183,45757442,4164342,4050093,79903,4163900,4128888,436782,439103,4316226,4216555,4180167,4296204,4108467,4123196,4060006,76777,4054547,80493,73290,81939,4190229,74726,4134174,4298595,46269695,193344,4313487,4266654,4031484,4290726,4290964,4095251,4072641,4124681,80494,4189855,73553,4274404,4018369,258895,4019340,443425,4199961,4121460,4119454,4201174,4119941,4053147,4056314,4334729,4162251,4112752,4050400,4051308,141232,4052978,4112758,139750,44782977,40485985,321109,4152843,4328721,4304010,135333,4050224,4050526,4056157,4039212,4225906,433178,4242095,4203449,4236021,4272468,4242704,4028677,437537,4059102,4052985,4219135,4052976,46269882,46269877,46269887,440383,44801154,44799035,44795104,44794371,44794370,4152280,4062233,4062232,442077,4326519,4051426,4051425,4056312,4053144,315282,4050090,43020949,435972,4155297,4179980,4111920,4154440,4056305,4051307,4277276,437663,4268842,4268846,133547,4095427,4138833,4029803,4168057,4081246,37017125,4129078,4341654,134736,314054,40491478,200882,200171,36715557,4054854,440893,4059090,134441,4152478,138996,439966,4221679,4299106,4152477,44782946,4239727,4110707,4171257,444209,4266786,4054736,4299294,440260,437461,43020946,43021473,43020947,43020950,4333742,4187067,4155491,4155492,4217633,442309,197148,4157332,4292361,4266803,43531579,43530647,37395516,37395521,37395514,37395519,37395517,37395520,37395518,197320,36716312,44809061,44809062,44809063,193641,4054770,4062110,4054771,4062111,4058963,4094964,46269878,4159137,46274073,201167,4162253,46269883,439417,4081229,4029043,4103224,4112853,4113802,4134603,137944,4295611,4316083,4112141,4063481,4077056,4063484,4262920,4153972,195948,201093,81251,4131014,4154438,44782947,197422,4056446,442789,4138269,197154,197714,4202813,4239386,4052200,4105287,380731,81195,4062221,4058964,4054772,4054773,4058965,4096006,4343689,4093843,80576,443644,194180,441443,442788,4139109,4246209,438603,4052197,4298721,4266339,4271029,194807,444290,4050538,4113927,4047868,45766654,4295714,36716852,4119621,312327,4055468,140168,198019,138936,4140204,4058953,4044402,4095264,4152476,317713,315113,4054890,4301414,4136849,4258285,437725,432480,438600,4052203,36713561,36713560,4083118,435358,36713562,435933,4095882,4151981,4095276,138612,4062108,4054762,4054763,4056885,4056886,4058956,4056887,4056889,4094962,4056718,45772673,45766655,432458,438580,4216828,195673,4016546,4019718,4095553,4149600,138876,313608,4195932,201157,4151986,432296,4060621,4297643,4287931,4221820,4110154,4270502,4136660,36713411,37017593,4160362,4054852,4058957,4054767,4054768,4054769,4058958,4058959,4062109,4058960,4054765,4058961,4058962,4054766,4095542,4056438,45768794,4095881,4144389,257094,46273640,4028389,4134940,435663,433883,4054053,4237809,4119786,4028118,46270493,439171,438894,4048093,437413,435390,198016,438285,432474,436553,4054887,435391,373057,4298007,4059100,440250,433050,373347,4154170,4095879,4246290,259044,42872427,74179,141972,4300061,258781,317009,4252581,40487824,253506,4119796,257907,4087379,4318404,4312754,4300880,36716582,36716907,45766714,4080926,133835,4029295,4331304,4242720,4206876,198286,435964,440251,440244,434789,441147,439182,438003,440236,432752,437133,441985,439194,433899,4056714,439949,436258,435104,197417,441709,4095880,439944,438595,435959,436557,440870,256556,4019713,4071066,4180998,4003349,4328879,4096608,434508,4129394,381440,320563,4206875,4019341,4311280,4018366,435672,441158,444095,432764,436842,436526,437106,4087151,4134926,439950,4003147,4001786,432478,37017260,4057019,435646,432475,442341,438279,4173162,4116727,4275428,261433,256844,255105,433051,435960,441432,252477,4039014,433623,440561,433624,4068577,4103202,4307813,4338664,4028484,4199290,4006471,438596,134743,442568,439405,436841,444197,433058,444196,444198,433052,434785,4291304,316535,440869,42873157,4009796,134757,196260,195398,132446,4033514,4110254,193620,197311,4151224,192763,4308537,44806657,4054909,4093223,437993,312349,4095643,314409,4347418,4220631,4054908,4308093,4001790,4001132,4001785,4001787,4001788,4001789,316795,79908,37017028,381591,381316,4266046,46271022,4266792,4246661,4058375,76239,4175807,77387,4155078,4128544,4155604,433604,432585,316139,4112611,4096610,4159875,4298720,4006984,134118,4083300,4301027,4116878,4027539,4028056,4319304,36713625,4149682,4048886,4116706,4218591,4147280,4233644,4216413,4207522,4276038,4265920,436824,4242290,443248,4059096,321052,44782775,4054878,4054857,373101,4054855,36715774,432719,4025193,4129393,434337,4062235,4062234,4057023,4227086,4054856,317305,319844,76241,4033051,4299804,4301018,4030274,4062230,4059101,138841,254061,316993,4059095,4085103,4296184,4134132,4317258,44801656,4133026,4228879,4080321,4033355,4266661,4299545,40484572,4271016,4189459,4295465,45768719,4033500,4295326,4133000,4330636,4031490,4081245,4024549,44807964,4266657,4033034,4031629,442761,80860,4053828,4146496,4062231,40485984,4062229,4057020,4066995,4185932,4329847,4298736,4132999,4054401,4054853,433208,44783617,4322024,4033802,4290835,4297644,4320791,200174,4132089,4133001,4105286,437990,435665,433602,433331,438874,440222,435377,437105,438575,437391,436830,437108,435662,4131748,314659,4122617,4057580,312336,4103495,4047867,4152374,4054867,382034,4062238,433606,72457,441133,432742,318443,253607,4159165,437708,4119774,43021632,4007911,4007910,4008988,437983,438569,439143,442993,4010871,436818,442994,442992,442999,437386,4169459,77403,36716537,77129,4054868,4110141,4176173,4095860,4170742,4079562,435138,4062239,313543,4058511,321886,312339,4194610,4059112,321887,4278217,4162038,4180636,43020847,43020845,4057030,4059115,4059113,4062242,4062226,4054870,4057035,4112481,4109232,4208028,433642,4056898,36715775,36715773,434504,439943,197418,4325866,381416,441134,375366,42872560,4133018,42872561,439933,440221,439384,437685,4011508,45772685,434764,4136701,4054860,435681,4175651,4324690,201435,4302223,79212,4062240,4057018,439211,4226282,4110293,4057029,4001336,373056,40492393,4059098,4057028,4050964,4054869,434509,36716603,4129397,4106172,4057027,4054859,136865,4056902,36715776,36716599,4264035,4248131,256451,36717351,4029831,4131328,4057350,78235,4054865,4059107,4062245,441703,439945,440551,4193520,4102446,4210469,4331317,4054864,4059106,4054866,4062236,4132083,443944,4133017,4132082,381978,42872578,438280,444239,438590,36715609,36716905,4347416,377439,4057017,4059092,4062227,4056900,4056901,4133715,4195439,36716540,4234112,4191596,4096616,36715608,36715607,36715606,4016540,36716577,4132546,46270764,4095852,45763835,4152375,4059109,142033,44796176,44813482,4059097,4059091,4056899,4062228,4059094,43531029,43531030,43531649,4059110,4054879,36717481,4178773,4043672,45763834,46273183,197024,321876,4054872,377266,40487970,4175582,4318800,79168,78880,4220695,4119460,4174520,4048695,4180126,44784217,4068155,4248028,435093,45766773,4062244,4291005,441479,4062243,46271082,4054873,44783024,4057033,4062246,4044351,44801158,44795688,4056895,4057031,4057032,4218884,4267553,133646,199204,4015352,4071876,318174,4234997,40488439,4145868,4119777,40488825,4119775,4145867,439415,192359,4300192,317296,441589,4176301,4299440,441980,4185607,4264033,4137275,4190192,4194729,4091710,4092155,4150304,443210,4208466,4027369,443784,36713504,4311420,4152378,434462,4044405,4062224,4059088,4194060,4314002,4194153,197656,312723,40456182,4099994,4103130,4322316,193016,201161,193630,4340114,4176139,4047862,440543,36715674,4152631,4047866,196724,4101468,36716541,193355,4134584,4190194,4136697,4136694,4160875,4138288,80767,319845,40490966,36716739,4096315,4282857,436209,4340123,4202065,37016841,4168061,201990,4056713,4160289,4154164,73349,44782949,4053833,44802665,4059116,4057036,4112480,435829,4095851,4062225,4199590,193079,442619,4180779,201313,4323289,4266370,4342643,40491492,4185758,442560,78916,4185273,4176137,4182555,4278672,4131595,4178962,4079931,312358,435101,4134889,134453,4015350,4050747,46272915,4142905,4179826,4177556,4134336,4048393,4134338,4263367,40480859,4179519,4181799,4189531,79116,314383,193253,4135566,319825,37395689,4169743,443575,4059173,4054605,4151202,4332937,4018481,4155322,4057354,78910,4153396,4051895,4164489,433064,4018480,4095554,44783947,75970,4057352,4155493,193250,4170637,4108637,4024306,76611,4131616,438777,4177494,4024552,4230774,4134586,43020780,4334638,321588,4102856,4101488,4132088,43020945,4166245,4119458,43021803,43020844,4167693,43020653,43020655,43022061,43020843,4165905,4048520,4281749,4195003,4100136,442982,4239975,4101621,43020904,4027255,40457757,4054819,37017259,45763653,4187096,4130375,4291649,4151200,195363,4283381,196559,199991,4126132,194995,192964,443923,37016648,4137332,4134920,4113942,4113941,195107,4027396,4003666,37018708,4050235,435123,78937,4044403,4043673,4096005,4049002,432754,4129398,4014519,4320020,434329,4157036,198897,444215,443091,192753,201718,201160,443092,373638,200566,4219086,4059104,4242392,4158483,372547,44783026,4057038,4054861,443225,36716912,4116573,4059103,45770735,4059452,45757752,4208264,197136,4126119,435395,40483287,4242411,4126305,40487130,40487131,198124,4128220,4030518,4128201,433629,444212,443872,442639,4095415,4095884,4059253,4053591,4086530,4086529,44782948,36717491,4053831,200247,4129400,4053592,4053593,197710,4053832,36715892,4072650,4135623,4054059,4212235,4053834,4094324,434770,201756,4058951,4058952,4054760,4055466,136279,442008,139239,254832,437431,441183,132775,136309,4271034,4240404,4062101,4013775,4088018,442103,4055460,4055464,4055461,4054758,4055463,4062102,4054759,4275024,4055457,78149,73001,4128532,4233941,195482,4176943,44784302,44784609,40492837,40492697,40493327,40488813,36717471,36717576,4134129,377680,382014,40480936,4180790,4044770,4154088,4153401,4047859,4129407,77074,4208025,44806633,44806635,4134947,4034005,4057484,4156050,78097,435701,78621,4054989,434530,4247802,4246461,444132,40492239,4011811,4212887,4170714,72618,4271598,4126293,437763,373082,4319256,4247654,375716,380265,4202381,4061735,443398,443396,4059105,141608,36715926,4043720,200611,44783025,197089,4151221,4057022,4046348,4046347,4078976,4054862,4248551,4154173,4151210,4048039,4048040,4151825,440545,4062388,4104919,4057176,4056716,4330086,444115,4054977,4166905,4279139,4265765,74216,137909,74135,134398,4281516,46273899,4177483,43531034,43531033,4182966,4053308,439975,4238825,4130995,4131598,4130514,4131614,435411,440587,135717,437471,438935,434525,432774,443400,4232159,4222327,4282445,4296169,4238982,132344,4090111,37017130,37017127,37397434,133002,4096009,134735,443454,4136764,4226266,4228484,4233604,4228485,4236885,4233605,44805546,4228486,4228487,4236886,4233607,4228488,4226267,4226268,4157319,195575,197808,4131746,141663,4151205,194684,4177488,4212991,436303,138455,201714,4335893,195585,4244235,4239382,4055020,4212992,4338764,4098851,4335980,4335979,4235826,4207288,200060,442530,4162138,376267,4134459,4147015,4154578,4071709,4246693,4033966,36713486,4129887,4129868,4335891,4335892,4112494,442628,4138286,4335978,4335977,4179094,4112493,134730,4180144,4167909,376564,4218018,4094966,4165911,4334742,4338869,4335872,4152401,36715605,4338883,4210440,4016541,4206874,40491472,4129744,4054423,4129236,4054421,4129743,4331953,315085,135858,432833,4193869,36716920,135122,75996,443976,141758,4058954,4055270,28083,4049938,4307254,4194977,4048279,4071589,376713,4122755,4112974,4152156,4053701,4129869,432941,80497,374748,44784365,36715772,36716598,40489826,4235863,4154171,4173809,4054429,4054828,4053595,4030889,44806631,44806640,44806632,4166904,4087572,4053306,4198381,73571,4244949,4132458,4340958,201221,195906,4030056,196347,132356,37016130,139057,4062391,4057178,4057177,4108813,198704,4057170,4138837,45766265,4276025,45765647,4133611,4130045,4151989,4334725,4334727,4122226,4095549,4096010,4110759,4337359,200564,4094967,4153712,318772,434877,194087,4283232,44808285,44806638,44806639,4167103,374226,4208700,4106678,4102550,200872,4094968,4107554,4053403,4093228,4155029,46270817,198010,443100,4154442,4053830,4052678,4175522,4206244,4174262,79890,4175329,195961,442270,45772120,4083964,4155080,4151821,4002661,4154572,4280659,4152644,4123732,4153713,4112889,4096496,4096497,4060536,4158480,4094976,4228447,4152481,4053272,4049809,4169992,40486462,75053,4084934,46270317,4095546,4237734,4307518,4056717,4059258,4244080,4031116,4059257,4096008,4344273,4028969,4062390,4152163,46273310,4027237,4344027,4059256,4059259,4344259,4090615,4090616,4054980,374313,192671,4338544,4312944,4154739,4151199,4344387,194990,43022062,195761,4001981,443588,443561,4133973,45763833,36715577,443387,4001445,200355,4096056,4153400,444455,4053159,4247357,4094816,4051290,4050382,4053120,4056168,197654,4054063,80578,4208663,4061734,440965,4301239,4044349,4112731,44783027,23164,4043241,4043242,4043243,4043244,4158482,4273449,4273452,4280421,4273448,4273451,4273447,4280419,4277674,4273450,4280420,81670,4113129,4131611,193626,4016547,4155764,26052,4134430,4140164,74211,374915,4104859,46269881,46269886,46269876,4266701,28385,4054986,4057479,193518,4090129,75406,4051900,4059553,4114197,4159865,506636,4276587,44791649,44809088,44791591,46286830,4275347,40491505,4050990,4052810,194804,4095565,4216397,4054910,4254542,4147478,4056892,4058966,4056891,439407,4125021,4055361,381952,374221,4054774,4062222,4056890,36715671,36715672,36715673,4154172,380378,4232071,373724,4130037,4272646,442553,4034150,4147013,4137339,4044384,4000938,4166906,40486605,23986,4019720,4098736,4019722,81454,4309673,4053596,4311270,4129401,4295126,4052831,4003839,197508,201340,4292402,4214982,4009314,4030203,4181350,4118989,4341650,443949,4311557,4305006,4314630,4064161,4062387,378135,4227090,4101997,376647,258084,197816,316866,252840,4134591,135772,133228,443795,4009635,44782549,4302295,4151103,4301248,4194971,4057044,40490974,4134455,4237168,444202,4326255,4171019,4176868,440703,4207688,198678,4233825,439842,442105,4134156,434251,4151208,4134932,4112120,4110295,4151985,36717345,437385,4267417,435803,4129865,432307,4151982,4154163,435537,194984,4144765,4277921,4110858,4052648,437409,42873007,4181760,4101480,132780,4025024,4106092,4022231,4151824,444465,443772,4117779,194791,4054979,81752,444466,4108471,40486604,4170636,4323139,4194941,4154165,4155324,4054064,74606,45769840,4049932,4096477,4181343,4167777,4129737,4054813,138906,444403,4120952,135417,4122774,4122776,76914,4094338,4095266,197709,4054443,4137348,4053835,4153554,4320822,4181484,374888,443701,4019343,435835,4156265,36715807,4155495,4054985,4051901,4153882,4153393,4151703,4151820,4049957,260246,4018479,4133990,4179823,4130990,4166907,4154441,4238868,4233525,4094815,4172488,4096314,4106679,4164344,4048141,444191,4152293,4152164,140821,4293897,4182210,375239,4318864,4168666,4153392,4243161,4106357,37017244,196363,4220824,4236986,439840,4167105,79069,4290881,4171254,4146847,4174422,4301415,4079861,4086195,141411,375415,4334643,4152162,4133008,4200423,4164341,4197180,45763953,200680,4129178,375504,4093226,37018711,4131456,375800,443564,373718,4027558,4028366,4180005,4140510,444467,4069441,4239720,36712767,4164867,4168585,374009,4023986,195963,4096028,373747,4219283,4208051,78025,76848,372328,4130842,4080305,4126291,4151827,75426,4308811,193897,200252,443078,193354,4059554,4148082,4016550,4153397,443202,4051897,4132549,4298441,4096026,44783029,4336254,4106353,4051896,435402,434595,4016548,4211106,4019730,4106680,4239360,4120461,4126292,80591,196152,4032939,4059434,4059551,4304969,4130372,4154733,37018294,72497,433350,443937,196845,442746,40487453,40487456,4019728,4268004,4096771,40487455,4047791,4178904,4153399,4153716,4153717,40489808,37017294,4311499,4035436,4129405,440674,439224,4173389,4165666,4163664,4170505,4165634,4165471,4166819,4169051,4169020,4170318,4166017,444204,197913,4151983,42872732,441788,4054984,4059433,74809,4057477,4057478,4057476,4162685,4153715,4054062,443957,75114,4051898,4059432,36715303,437818,434742,442284,4086197,4164346,444129,4124521,80004,444210,4134585,132706,4299555,4298732,4050989,374020,4054448,77630,4193169,196151,4340368,4129899,4033977,4344633,4053585,37017319,4043674,4161180,4028087,377085,4099090,4053594,4027522,4129392,4054060,4295346,4134128,4129898,138965,4029499,200579,74817,378523,4090614,4218013,197230,4028265,4090135,4042838,141124,4176794,132797,4044251,4104577,4289999,443257,197324,444063,4049930,4135631,4134929,4049931,195002,4342655,142026,4122768,4155081,4120947,4122771,44802272,434822,378143,77679,44784364,73546,443905,4054987,4155327,4095850,4129406,138387,201240,36717608,4247420,4095312,439382,200293,4057482,373216,4001632,4156051,439920,4134130,4134127,4040720,253481,432347,4164347,193666,193242,435242,4181338,4341631,435253,201719,4027543,4129900,4072639,4053307,4145825,443951,36716744,261309,252911,196160,46269880,4027566,4044252,4002355,378144,135526,4177243,40486208,4185528,4156052,4168054,40486152,37019054,4347406,4043738,4029498,4106574,4244738,4215937,4332246,4181190,4134927,4134921,4151201,372887,4329160,4318862,4028072,4319467,378745,43021132,433524,4026004,318096,4057822,36715874,4134952,4113104,40493409,4094845,4155627,4028244,4198624,4029816,134057,4028367,4179992,4028058,4231363,79072,4163232,4344040,44814072,4137472,4058933,4046076,4198828,4247331,4320030,4054514,4054617,4129250,36716756,4131451,4174382,37018868,316356,45765623,4260515,435786,37018869,435657,72410,4253010,4132086,4309222,4033902,4102937,4023985,373126,37017279,4314190,381783,4272488,201773,4201402,201618,45763613,4340234,4311399,4027881,4027880,4208083,4127437,4002905,4001716,4272162,4134562,4112603,4112117,46284319,257370,4022201,4194894,4053825,4149680,4034972,134520,4308931,4090134,4090613,45771288,37017094,4344265,4178774,4085557,4056894,75354,4168461,201986,4131931,376208,4093225,4093227,4344497,80665,442542,140364,141253,4142479,444111,442942,4131008,4047648,4131007,4009797,374366,4155497,74533,4151831,4153827,42709770,4153402,4153824,4153825,4103653,4053604,37016775,4053837,4294241,4151987,4151206,4151204,4344386,4160354,4009310,4167096,4196380,75909,44799715,4133027,4153116,4176800,4347300,4153722,4149694,443920,4054502,4054836,4111018,4282761,438022,4180915,80471,4057481,442299,4108641,43530814,4027882,77030,4129213,40486062,4155328,443218,4053602,4317831,40482651,36716733,40491865,4133009,4115963,4057355,4151823,433076,4059555,4054990,4146602,44783028,4058510,73072,4167230,442564,435524,73366,4054988,4151093,76270,4152297,4106351,444190,4155499,4112878,4101511,444131,4151203,4154169,4260844,75709,4182251,73925,4057780,443858,4332657,4273442,4270575,4277664,4277665,4181351,4054877,4059120,379019,4155484,195977,4131619,4129884,4153398,4053599,141095,4054982,375545,78907,4289832,4057474,139200,4057357,4153714,4152377,79962,4057473,134222,44806518,199178,201817,444189,4057487,4199740,4320024,4153395,4216185,444195,4193875,73362,4058513,4174977,78609,4057356,4209553,4054957,4016551,4028252,4054052,4208507,72487,4055059,4154443,4154444,4276508,442328,4153828,4153826,4153403,4153829,4129886,4130851,44797551,36712842,4167229,201238,436362,4309340,75128,4054067,4169598,4151829,4051743,4059557,4164348,444130,4151207,4054512,80592,4057486,4154579,443732,4094114,4166908,197751,77162,43021252,253717,31610,36713491,4280597,4193873,4143700,40479707,4113015,440890,79768,4152468,44790797,4174250,4178018,4309538,4104918,4096020,4132080,4159649,4047650,4114001,36716695,4092212,4242982,4009312,43530813,4178968,138708,132853,4154577,140666,140057,36715915,4294055,4164707,4155326,4177244,197435,4151828,4023317,4097962,4056435,194229,4057485,4057483,44784105,44798434,4174096,4130852,44782619,4182738,4167107,4166909,197810,36716624,42873123,317510,4055265,4054520,198194,443767,4113639,4038037,4203096,26935,4249292,4158481,4131756,375428,4247726,4317685,376961,439711,4233903,443728,4312034,4062251,439710,141814,40493020,4023310,4241921,438725,439712,4130532,4044250,199913,4054513,4100932,4280305,4273444,4280417,4280304,4270689,4273445,4103045,4277671,4277668,4277670,4277666,4280307,4270688,4277669,4273443,4280306,4273446,4165092,439709,4312545,198819,4314073,195588,4054511,436080,255711,4151992,4151222,253670,137813,4160276,4247962,4154630,36716538,4056893,4134439,4173075,4342868,4190297,4072640,196307,4059086,40490353,256811,195682,4154286,4152299,4154285,4308794,45757478,4282921,436222,197304,4182796,4280298,4270685,4277660,4273440,4270579,4273333,4277657,4273441,4280299,4280301,4242546,4277663,4280297,4280303,4273332,4280300,4270581,4277662,4277658,4280302,4130032,4317284,439727,193345,4209556,433916,4154174,4151197,4151223,4151980,4151993,4151979,375539,4271634,4270551,4270554,4278609,4270552,4278607,4277521,4271641,4277516,4277515,4271636,4277519,4271534,4277518,4278608,4277522,4270556,4277517,4270549,4271635,4271640,4277513,4271638,4277512,4277520,4270555,4271637,4278606,4236178,78518,4280282,4270558,4198494,4270692,4273453,4280422,4270693,4280423,4280424,4277675,443357,4279218,4100438,4273454,4000516,4113949,4247409,4044013,4130839,40481910,40482784,200871,201996,196734,198017,4279237,4273474,4273472,4280439,4279234,4279238,4270703,4273473,4273471,4280441,4280442,4280440,4280438,4184709,4280296,4270577,4198645,374034,4053820,4208662,4207184,4240153,4152373,201436,4049933,4206878,4272240,4056721,4339485,4116572,43530862,4181251,4280291,4273325,4280290,4280288,4277530,4270572,4273324,4277528,4270569,4280289,4273326,4277529,4270570,4280292,4270568,4280287,4270573,4280294,4270566,4273328,4273327,4198798,4155629,4280283,4270560,4277526,4277525,4271643,4280284,4273320,4270563,4273322,4270561,4277524,4280286,4270562,73847,4270564,4277527,4181250,4119158,4153720,4322161,4083353,198892,4342882,4279362,4273607,4280448,4270711,4270712,4273608,4273605,4273603,4280449,4279363,4273604,4270710,4270709,4270694,4280428,4273460,4279224,4101641,4104503,4273456,4279222,443356,4280429,4104502,4280426,4279221,4270697,4270695,4280431,4273459,4273457,4279220,4279223,4279225,4279226,4273461,4101656,440009,43021977,43021240,4029812,441408,4229909,4048485,196271,4176571,4248125,4287542,4273600,4280446,4280445,4279359,4270708,4198822,4302801,4273601,4270706,4273599,4280444,4273602,4279360,4279361,4273598,4270704,4270707,4280443,4273329,4277532,4182791,133298,4167106,195108,4058948,4152935,4169252,4054455,4180313,40485387,196214,436091,36716740,40486603,200588,4314946,4084789,4217497,195685,4313916,36716602,4054754,437161,4083638,442529,4156941,434824,4151226,4151227,4152300,4137353,4085075,4305008,4329906,4250613,4032365,36713658,4032528,4214826,46286899,4193702,45767057,37018218,45767316,4031881,4237624,4254373,4059748,136575,435463,4249437,4206579,4054837,4293432,4053826,4299012,4298592,439404,4312023,4264853,312922,4182318,135033,4035023,381733,381732,4224011,4309914,4060704,432453,4154401,434489,45765703,4302198,443584,4306164,4305552,4269348,44806491,4239819,4209070,4199558,4268708,4179218,4206255,4168960,4086969,4102134,4159873,4276588,4149529,4060353,4060982,4061887,441140,4061886,4271391,4159877,4276280,197163,4101635,4102560,193631,4023576,4300649,4129138,4101662,4182647,4198964,4219381,4186164,4213400,4126892,4218029,4184707,4184708,4182664,4101498,4126575,4126572,4126574,4129135,4103643,4179309,4182459,4095947,4091534,4181972,4022448,4182151,4152464,45772081,4151826,4153721,4052969,4188027,201727,4107678,377091,4134134,44806656,4152641,4152482,4153975,196259,439148,4000609,201891,4265600,4027663,4155325,4108640,4167108,4168618,4314071,432484,74786,4144835,4107514,4153719,4082831,4022202,40487977,4172855,4154168,194108,4169994,4317551,4316049,378425,192353,4094683,4308329,4314923,4154166,4152295,4154167,201265,37016189,316084,4106203,198620,433600,196856,4334322,4164345,438068,4151529,4055709,194526,44798461,441737,433694,4271501,4091650,4269129,192952,440029,4252853,4022810,4236143,4277745,4147672,4248392,4023319,4253153,4022207,4141878,4088368,4207186,42873124,42873109,4059114,261528,25189,4114353,4169307,4122227,444052,136937,254669,436045,252280,4112735,4134605,441819,44783939,256531,433656,193983,4178815,4027381,73302,4241146,4242661,4243411,443545,4131439,4180168,4028930,4130986,4131604,4123594,435836,4054510,46270500,4316615,4181191,4053652,4154574,4177093,40484020,4239871,4129247,46270499,201518,4226263,31057,193262,439199,195867,81239,4193168,4166589,4103776,4027537,437169,4066295,4120313,4116648,4181813,4179720,40492458,4247822,316822,4177097,4180012,444093,4260918,4037691,24969,31602,4048236,4313834,135061,442180,4180643,4194856,4313511,4077969,4181858,4193176,40493428,4282930,4051577,43530807,140823,435280,201257,4176945,4178431,4180010,4297375,4026163,4093957,196158,4134424,4127726,433730,4317829,4181583,195312,4207302,4114212,437541,4318691,4156115,376660,4215370,4021807,4128408,4333227,44790646,42689534,42689535,42689539,46286018,42689538,46286017,42689531,42689560,42689542,44791199,42690665,42689532,44790743,42689530,46286084,42689529,44791698,42689541,46286019,42689533,42689537,42689540,46286094,42689536,46286082,44790727,44791197,44791198,44790728,44790744,44790745,44790746,44790747,44791203,44791204,44791205,44790762,44790763,4147145,442264,4344039,4215217,4181477,4242498,4088937,4268849,4275498,4023358,4022129,198988,73017,40491439,4179999,4212885,4208786,317248,4131124,4134131,4297179,4008701,4186405,4169954,193165,4032351,4030441,197804,4177242,4181485,443568,377889,197605,4192174,4302836,4300595,4239897,4160345,4130668,4208665,4193167,4153394,4151822,4053597,4155285,4114336,36715485,4101350,29979,4155494,4134133,4176946,4244662,4028365,4178680,4339410,4178826,24818,4240847,4218389,4208661,439928,4242980,4054845,4311409,4149414,4283893,4024550,4021759,4023983,256440,4023984,37016649,4272867,443240,4230389,4266464,4118121,4118122,4309912,4130373,201820,45757077,4027258,373432,261176,4180312,4054508,4054841,442790,4217478,201337,4293479,4032437,4043671,254068,4276801,4032587,196738,4132092,4041256,4175810,4042514,4153553,36717034,439093,140190,138225,36717482,196931,4131770,4180778,4193166,4124677,4024006,4068363,4312698,378414,4115239,4117286,4021769,4322687,75650,376918,4085833,4312000,4177236,4193874,4060429,4180794,437982,435726,4051331,4151702,4246695,4021606,4265879,4206460,4175379,439156,4269555,4269556,4266765,4187520,4266763,4200202,4199559,4201383,4103472,4126735,4199560,4126738,4201382,4126409,4090747,4269452,4268980,201388,4170415,4279142,4041283,4194619,4088739,4030759,4228480,4214962,4268836,4182455,4118265,4022230,4277353,4181999,4021605,4270005,46286973,45770396,46284461,4277369,4270571,4202797,4270000,4025202,44811500,46285820,4262177,4274415,4090324,434173,4185946,4269999,4188906,4146944,4102115,4185198,4116798,4118266,4114804,4117140,4327857,4191142,4223182,4101203,4117138,4028872,4271387,4040737,4185197,4021604,4253739,4265570,444108,4302476,4031365,4041278,4279366,4266757,4023181,4221108,4278447,4093837,4022830,46284465,4270715,46287163,4093850,444035,4153160,46287164,4269139,4086984,46284437,46284462,4243947,4048755,36716415,4014476,4304359,4063821,4207164,4156035,4221796,4167037,4009872,46286969,4182003,444194,4182317,4103199,4115241,4181685,4257054,4022130,46284495,4217210,4041989,4023988,4028922,4209159,4187369,4030912,4276577,4193695,4153285,4103474,4042137,4271383,4271386,42690493,4228809,4038493,4271512,4042138,4071866,254213,44782981,4152480,4145142,4234320,4086202,4154162,4155030,4108636,197506,40492037,132776,138713,436665,4162283,4301416,40482750,30361,4322737,4054839,4095257,43530816,4150129,4172522,196172,78560,439847,260131,4288734,4119451,4337463,4133353,40481902,194406,4318939,4089963,434033,193431,4121450,4134946,4181200,4329445,4320821,44806516,44806495,44806512,44806648,44806515,44814085,44806490,44806514,44806494,44806493,377270,4157331,380395,4133974,4054503,4129891,441170,43530821,4028939,4132094,4212927,4167354,444211,133280,444249,441992,4131106,434073,4130161,4054501,201956,196162,4035007,77635,4318985,4224741,4102561,4028528,4161546,378416,36717282,4208223,36712992,4119139,4296205,4029964,433243,4159157,141050,437902,4078431,260759,36716623,4028241,444200,201603,4113913,4122115,434592,4294303,4300113,433917,195403,4299128,4082487,4235162,4109394,200780,442781,4303951,4038838,4003183,442013,4112341,4175297,4170143,4047784,4029880,4029118,4160342,4134301,4312955,4313083,432513,4257686,4153852,4173025,4153419,4173657,4046112,374035,437530,4264851,4300157,4280434,4182972,4023176,4182974,4021668,4177604,4182973,4117293,4090583,4083311,4090581,4082593,4270699,4273464,4273463,439961,140526,434167,4106840,40492403,4207628,4027702,4134613,4143833,4055782,438039,4094808,4085340,440358,441669,436805,372424,4148204,4028970,252662,444110,435459,439408,4300243,4207307,434547,443539,42690708,42689818,42689820,42689819,4246696,74470,4338843,435517,444187,36712756,44806406,4153710,4127290,4123271,4264281,4095859,4209845,4126318,4322407,4096479,440913,438923,4053494,443647,439215,4155218,432787,44790611,44790612,44790613,4070268,444002,436867,444003,438653,4179079,4312714,439540,439536,439539,439541,439530,439538,439537,4148572,4310789,439548,439544,439547,439549,439550,439546,439545,4309623,439533,439517,439532,439534,439535,439531,439516,4054683,4068575,443664,443657,443658,443665,443666,4070397,443659,443662,443663,443660,443661,4065955,443654,443648,443655,443656,4065196,443649,443652,443653,443650,443651,4068576,443639,437765,443638,443645,443646,4172516,443104,4053484,4053422,4054378,4054377,4054365,4053560,4053561,4053559,4204615,437428,4057353,4153974,4196565,441565,4153362,44799223,435641,4300467,4113009,4173175,4082319,4151842,443108,4228469,440921,4219871,436568,4096614,4314728,4212076,45769811,4031009,44790962,44783443,44783442,4155044,4154419,4154161,4054302,44790556,44790637,36712858,42690707,4324187,4228467,4228466,4233467,4233469,4180872,42689731,4054307,4053477,4094830,44790717,44790718,4072665,40483249,42689785,42689763,42689764,42689765,42690698,42689791,42689780,42689800,42689735,42690596,42690697,42689752,42689824,42689732,42689724,42689789,42689749,42689796,42689798,42689799,42689804,42690702,42690695,42689748,42689809,42690700,42689808,42689760,42690600,42689814,42690706,42689730,42689766,42690703,42689772,42689770,42689728,42689774,42689782,42690705,42689811,42690602,42689812,42689783,42689773,42689802,42690701,42689803,42689801,42689823,42689793,42689754,42689753,42689759,42690699,42689822,42689758,42689746,42689768,42689736,42689776,42689817,42690704,42689729,42689797,42689781,42689755,42689756,42690709,42689711,42689727,42689717,42689714,42689707,42690599,42689722,42690592,42689721,42689720,42689705,42689726,42689718,42689709,42689712,42689761,42689747,42689710,42689713,42689708,42690694,42689762,42690691,42689706,42689719,42689715,42689716,42690593,42690693,42689723,42690692,42689740,42689779,42689769,42689788,42689790,42690603,42689815,42689816,42689757,42689738,42689737,42689742,42689767,42689743,42689741,42689792,42690595,42689795,42689751,42689750,42689777,42690597,42689744,42689739,42689775,42689725,42690601,42689771,42689794,42689810,42689784,42690470,42689733,42690598,42689778,42689821,42689813,42689786,42689787,42689745,42689734,42690696,42689806,42689807,42689805,42690594,443419,4126319,4095263,4154715,4142267,4144296,4142253,4141057,4312136,4314920,44790649,44790650,44791180,44790652,4250614,44783441,4167104,44783440,4053584,4107861,37017129,4134407,45768454,43530815,4168335,438754,432916,4329511,134741,4247260,4229751,432323,436652,436651,4038835,4103916,4109721,4109722,374040,372635,380401,40480179,195856,199929,4177067,44783869,44783871,133857,4129390,4053705,37396728,4053405,4072651,439429,436601,4182470,4182777,4181989,4182288,4182289,4182610,4182471,4182606,4182776,4181986,4182285,4181990,4182608,4182472,4181991,4182605,4182287,4182778,4182609,4181988,4182286,4182469,4182284,44805888,4071565,4071566,4071567,4071568,4071316,4071575,436893,434834,4071569,4073614,437771,4055243,4072373,4054928,4073618,4055788,4073613,4054932,4055789,4055790,4055781,4073504,4055792,4055239,4055241,4055238,4073620,4073615,4073616,4054933,440013,4073510,4073617,4055240,4055787,4055786,4073506,4073503,4055232,4073507,4055785,4055783,4054930,4073509,4073508,4055784,4054931,435168,4055233,4055234,4054934,4073505,4175076,440926,4055235,4072371,4054927,4073619,4055780,4055237,4055236,4054929,4055245,4055244,4055791,4055795,441772,441766,4170645,439419,432519,42710039,4055794,4072304,4072305,4071570,4074175,432520,4071572,439434,4071317,4072306,434838,4055242,439423,439422,439421,439420,4071573,4055793,439436,4071315,433940,437481,439430,439428,439427,439426,439425,4072310,435156,439433,440935,439432,439431,439435,435448,4072308,440615,439397,439396,439389,4161331,442045,4072642,4122066,4025198,4093987,4179314,4181984,4253778,4267560,78804,4124645,4129499,40481998,45757399,4063381,4181199,4028876,4162282,4180170,4052554,320136,4006969,4224259,4027553,46270398,4197065,381854,46269998,317299,443350,377280,4270897,4146001,45770925,44805373,44805372,4151280,44805371,4042904,432620,196064,4144769,4142306,40491001,4116238,40488823,439030,373785,4154760,4058224,72986,436134,439439,31821,4130671,4176808,4040385,439235,4257906,4055128,4148580,439236,141771,440314,435155,433107,437200,440932,4072217,436317,434252,4071466,435167,4074053,435715,4072212,436885,437201,4074054,4071463,4072213,4074056,4071464,4072210,4074052,4071188,4072215,4054809,4055155,4074057,4054808,433118,434846,432810,4073500,4073499,441770,432801,441190,4073501,4055775,437464,433672,4071305,140297,4201531,4158245,436892,432795,44801101,44801109,4053720,4267683,37016824,4307140,42690668,46286360,46286365,42689548,46286372,46286364,42689606,42689605,46286363,42690585,46286368,46286369,42689546,46286366,46286367,46287268,46287267,42689634,42689547,42689549,37394594,42689607,42689545,42689550,46286374,46286373,42689553,42690586,42689552,4273331,46286371,46286362,42689551,46286361,46287266,42690667,46286375,46286370,4054924,436878,4151398,4072226,442047,4055777,4055776,4054925,4055230,4073502,443272,136016,4071306,439443,433103,439440,43530876,4171889,4162868,4306085,4147035,45768447,43530877,442770,375807,4132792,444207,4183040,4028363,375252,4132556,37018677,4116208,4134422,433477,4027883,4319474,4209989,4303513,46270009,4145627,443431,4087649,4079851,441830,4035139,197917,4068261,4043343,4340396,432571,435785,4345680,136779,4184398,4113408,4204187,381559,4012234,4181985,4185355,4023567,4184257,4184397,4353722,4087618,4115391,46271827,4114468,4087002,4181983,4090408,4114467,4086652,4182773,4182466,4086997,4181982,78831,4087647,76191,4134443,444090,437779,4042501,4028253,4111798,44782620,4027383,4181064,4042834,4028074,133468,4180011,4040719,193460,44784106,4042503,4181057,44784347,4116963,43021257,36712821,4192640,192963,4341771,4342872,4115107,4102114,4113714,4126895,4339088,4126904,4113998,4299449,4305027,4093170,4023577,4101510,4022924,4104490,4102427,4104486,4100463,4102425,4104482,4279219,4270698,4102562,40481843,4113082,4280425,4227252,37018713,4185640,433417,138239,4092563,42709797,4278596,4092564,4092569,40482430,42709843,4186162,4115395,43531064,4115396,4274099,4197328,444221,4193464,4185823,4093189,77358,444220,4022923,4022922,4198802,4184882,4181093,4184706,4184704,4184881,4185639,4022449,4181089,4169466,4193465,4020346,4020347,4177829,4277511,4277535,4277531,4270578,4270576,4087010,4270977,4092885,4271530,4086687,4203095,4205256,4336074,4206592,40480061,4081177,4270559,4063941,4298309,4100593,4198958,4277534,4270574,4277536,4079179,380510,4044878,4118018,200450,4127712,432851,434570,4143250,4103992,4166587,4028070,4133989,4099840,438066,4109397,434056,4101227,4143397,374360,4113116,375801,135923,435742,4252534,4253013,4257545,4030292,4314648,4314958,197331,4301471,4128536,4238036,4027567,133303,4106212,42709918,372604,4190307,198860,4170116,201131,4132457,4207977,45757479,4195137,36715548,4134442,46273429,4276175,4254485,4271239,4155079,375819,43021974,4249456,4124511,443212,4051956,442019,4126124,4317269,4027133,443420,4126445,4147829,376703,4023314,4023313,4108905,4082014,381575,4300116,4085406,374364,4149084,193254,77987,4278456,4115385,4275650,4275652,4152502,4027548,4074037,4269131,381866,4091066,4181820,4181821,200452,81303,4132087,4101918,436101,381865,435645,4100778,4179167,435739,199063,25572,436033,4285734,4027395,376125,4228178,4278591,4270437,4271528,4277507,4278593,4277504,4270434,4182780,4271523,4277366,4278585,4271524,74392,4278590,4278592,4277367,4277372,4270438,4271527,4277506,4270435,4278465,4278586,4278589,4270436,4278588,4271525,4179148,4185177,4277368,4278594,4271529,4277371,4278595,4277361,4182779,4271522,4277365,4277362,4278587,192438,4181992,254361,77960,4182011,4182028,4279233,4182007,4272224,4216200,4270713,4089635,4279364,4179141,4272098,4205390,4270714,4270716,259827,258755,257293,4319609,442610,377568,40481368,4335747,40486024,45763557,4287399,4134597,4183452,378161,4132093,45757697,36714286,4062790,4191597,4021773,4199394,4024568,4082164,4309542,4211252,4206591,45772100,4104310,376106,4213310,4046447,4251578,4024563,4299729,199067,432734,434557,132724,201951,437312,4307580,4002659,440631,4008721,4242338,4241043,4186146,4185637,4184117,4181084,4242368,4113121,4114223,135930,4185201,4182160,4042505,4043349,4182032,4183522,4186159,4179288,4181081,4185643,4184245,4180948,4183246,4022921,4181067,4179296,4185202,4183378,4183519,4185359,4183514,4218347,4097137,4185194,4154799,4100611,4215513,4186158,4186165,4183521,4185507,4184114,4183517,4185494,4183371,4185504,4180974,4020345,4185206,4214304,4270548,4271532,4270547,4277510,4280450,4185976,4179462,4094284,4275342,4116964,4272225,4022913,4202835,4181094,4116968,4095203,4185973,4002898,4271770,4243365,76797,440409,4027731,4275359,4212079,435842,4042502,4028251,4122228,4106676,4033922,4094986,433967,441543,432725,200843,432545,4200533,4161193,4248801,36715956,436677,4178179,4181298,4118020,4318699,432910,45757635,4318700,380834,4028245,373499,4043345,377861,4182553,4328214,4324555,4129391,442132,442131,4193182,4193988,435783,37016748,4099350,30346,4216273,4134552,434633,4262364,444214,4177325,45757779,75865,4178955,4319447,4028069,4107729,374142,4102400,4054499,436073,37016741,37016719,443730,80294,200836,4151863,43531045,377554,37396146,440213,4024715,4276722,443436,4291291,44783012,441655,4116810,434008,4219296,4166872,4022199,133278,4116322,4146242,432582,444100,43021849,433968,4169977,4193990,4134887,4266176,4081090,4291290,4214445,4148914,4028387,443261,4033853,4267682,4176947,374377,437547,432868,4144746,4130066,201728,198249,4134606,4317294,200768,4103650,374653,443343,442259,4154150,441848,4305075,40483613,40486161,4179095,4079986,4181194,4180154,43530714,4134595,4168062,4266190,4159963,4171379,4018852,4179871,4178979,40479582,4149850,4116236,4114222,37396745,433702,4023329,4112852,4193989,438359,435188,4022818,441793,4224822,378444,4028865,4021470,432251,43531046,4329158,4168834,4180314,4251321,4049810,444252,4180159,437191,4063155,4114349,4134145,376337,4132091,4080146,4045840,4043889,4180629,4175154,373852,4301699,4048027,4041681,4116574,441493,443367,443370,4166164,432809,434554,441744,4096125,4096435,443628,435147,443373,434556,443353,439238,440292,441206,436315,4116092,4131436,4054835,434239,435173,441207,443345,436008,4129244,4232106,4111017,4112586,36716548,4134607,4116332,4000610,37017421,4134429,4197094,4266809,4295370,4129389,4202064,4318716,4247120,4138253,432739,4133980,4214409,4025120,4133002,4178816,435506,40481474,4239865,4300206,4132553,200524,4134593,4074815,4190185,4043371,4201745,4132552,4224063,4181047,4297887,4309188,4198525,377877,378165,435642,439761,36715590,439392,36716620,439045,4054430,135473,4212705,377870,4329707,436658,377885,435788,4189294,440142,40488964,432661,4181217,4188971,4178818,4181188,4176645,4176644,4180628,4329041,443720,4212886,440363,4318379,4190076,4318982,4116813,44790620,4223584,4118269,4115413,4142861,4118270,4177196,4258370,4180158,4214408,4180173,4181326,4121131,4077644,4260916,4038217,4132926,4116811,4264996,4116951,4082445,4115418,4116817,4118275,4134440,438536,77673,434323,440005,443782,437828,4147164,443392,40484156,4162276,4311439,4300118,435216,4012356,4271013,4105192,4099942,434300,433435,4263109,435613,37018293,4270826,4304926,4083333,4087808,201965,36717239,4225982,441523,438112,4294433,40571981,4111953,4173971,4290837,4132554,4132555,4128893,4189640,4291594,4227653,440424,433823,434819,4114475,4090416,434614,4095458,4094891,4094434,435569,433740,4087380,4120636,4121285,4239314,441818,4091208,4181831,4115236,4176944,74174,375527,440002,443935,4114487,434540,4274970,4294298,439394,44783159,436295,44783281,4287251,4117274,4101207,4145556,4091367,44783160,4181960,4091823,4269005,4091366,4113541,4310835,4022571,440270,4055774,438688,255334,437688,440905,4122199,4106211,4337941,44783003,443282,439206,4089385,4115733,4182451,4182147,43530950,434842,4159691,434223,434281,437456,435416,4303975,436886,4080299,25056,437158,436006,434247,433134,438649,437183,443253,4084325,4161621,443283,443915,432796,436296,433102,438028,4157814,4160962,4196024,4165559,4077081,4208841,434094,438815,4036507,4035674,4025199,443903,4114481,4150307,4182444,4182131,27314,4182627,4182132,4199550,4182128,134401,4182630,4150422,4150306,4132600,4150432,4132598,4182629,4114480,4133349,45768668,4182125,4182441,4181817,4182443,4182625,4150445,443219,4103983,4116806,4103980,4115404,4075827,46271834,4103977,4122577,46273710,4113532,4113539,4118267,4114482,4307122,4090902,4115403,4091937,4091364,4181815,4091939,4091375,4182440,4182124,4182126,4113533,4116808,4114483,4103982,4182129,4086828,4113997,4322566,40481371,4182442,4060063,4313909,4083062,4022570,4004998,43530620,4090894,4091365,4113534,4271513,4096692,4182626,4182130,4158189,4101204,4182624,4181818,4090887,4012069,4182123,4182127,4132462,4182439,4060062,377286,4091363,441364,433701,4207190,4094061,4241110,4310567,4297098,440795,435325,435875,4024560,4338120,437758,434821,4116653,442983,4177609,4117271,4273467,4104133,4149859,440069,4166143,4091948,4115252,4091953,4155904,4115254,4278451,4278452,4172539,4079308,4103327,4091496,4158326,4090884,45770820,4091360,4096565,4269006,4091821,4091356,4078327,4219002,4103320,435784,199860,4028373,4053270,4275199,4300137,4269984,4267653,4275190,4275196,4275211,4269713,4273008,4273011,4274274,4276563,4274269,4267649,4268832,4267647,4269721,4276573,4303688,4296542,4180030,4035267,434311,435233,4031941,46272739,36715326,36715346,36715347,36715348,36713789,36713790,36715426,36713446,36713447,46271312,43020878,4029881,441268,4035283,4031796,4079879,444377,4188467,4145580,4181187,4042836,36716870,4180647,4042835,4049222,4033494,45770886,4101069,4114454,4201555,4117272,4080664,4080663,4034987,4173938,4129540,4184252,4269019,4042837,4183245,4184253,4182283,4185207,4100606,4198042,4032334,4275521,4090401,4037310,4082416,4275522,4114331,4113389,4102880,4114458,4114457,4101059,4101073,4119467,4114470,4113401,4114335,4114625,4142301,4137574,4102878,4114333,4102881,4137577,4102876,4082784,4101053,4268995,4114462,4102112,4083629,4101079,4082423,4090398,4278445,4083627,4082780,4268994,4102891,4200516,4202328,4275510,4278309,4081007,4081498,4303380,4268977,4087966,4087941,4088106,4278315,4278316,4090268,4082134,4268974,4275512,4080857,4275647,4094032,4079583,4080993,4228755,4081491,4087958,4182158,4223594,4081493,4082135,4201693,4278444,4080849,4280430,4269449,4201563,4158968,4199421,4201238,4201556,4199425,4117269,4200045,4200050,4101796,4103657,4201562,4199428,4103352,4201236,4182161,4101799,4200055,4201242,4201557,4199420,4199427,4117273,4201558,4201237,4103321,4201251,4268991,4116799,4201566,4201691,4025945,4200042,4117270,4200046,4265432,4271384,4025353,4326003,4138620,4271395,4275518,4269003,4269001,4278450,4269004,4275506,4271385,4268850,4271390,4304798,4080992,4268983,4247371,36714387,4353709,4311115,4201399,4081638,4278313,4087818,4304927,4087814,4221913,4278433,4087815,4275513,4087934,4167193,4278432,4268976,4082140,4201554,4199417,4116650,4081476,4079572,4079344,4087155,4082284,443360,4331509,40480483,4304928,4275507,4145817,4189730,4042142,4090874,4087936,4089810,4268978,4271394,4271393,4083610,4090395,4087949,4087950,4080853,4079578,4304925,4080847,4278429,4268975,4275509,4270007,4268972,4278314,4081153,4268852,4081627,4271401,4088100,4278312,4268854,4268853,4278310,4278311,4275511,4268851,4081156,4162092,4278431,4082275,4090246,4271392,4090239,4082274,4081495,4271389,4153213,4158242,4268979,4079347,4081478,4083473,4278430,255919,4339468,4178545,4182467,443258,435127,442295,438905,444243,4250025,439003,40480698,40480699,437514,4197787,4262793,4030370,4291019,4305951,4030372,441827,4030374,4101293,4044705,4295357,4119311,4029098,4235585,4096209,440981,4103821,4114292,4103825,4100774,4182969,4114291,4102715,4103822,4100776,44811877,45770358,44811863,45770354,4127194,4128827,4122715,4126253,4126254,4122714,4278307,432595,438408,435521,4220675,4127205,4124631,4129334,4129329,4124633,4127202,4129328,4127195,4124506,4129331,4127696,4039378,4038488,444112,4288940,4280435,4299676,4299678,4279230,40481101,4182977,4025935,443288,4126392,4125612,4091675,4181850,44810825,4122729,195877,4177607,4127069,4021479,4127828,4125616,4177603,4183951,4183957,42709864,442981,443289,4021665,4181854,4113566,4090854,4181859,4127207,4181851,4181839,4273466,136610,4083927,4183953,4273465,4152361,4182456,4014716,4096418,4088581,4182684,4279229,4182767,4279228,4280433,141960,4032669,4319300,4297811,4256625,4270701,4279227,433031,4132102,4127854,4124636,4124479,4124637,436672,135157,4023987,4275489,4269994,4268839,4276729,43021214,4268837,4275487,4275488,4269992,4123202,4268840,4276728,4269990,4268838,4031885,4088476,441460,4023347,4026076,4026169,4262968,4263312,46269879,4250314,438721,4171352,4148051,4270083,4029602,4042399,4047637,4048687,4048869,46269874,439968,4089958,4104153,4157605,440647,435227,4029269,4276360,437515,4029735,4029732,4130526,4029738,4029737,434798,4012208,43020471,4024000,4182446,4182137,4182142,4092881,4181824,4182447,4092648,4181825,4101355,4113697,4101361,4113700,4113701,4104156,4115721,4113696,4113702,4113703,4115722,4115716,4113694,4101359,4091213,4101362,4200656,4182138,4182139,4182140,4182141,4091056,45769862,4104155,4021780,4092659,4182635,4181829,4181828,4101356,4181826,4091342,4182636,4090872,197330,4092653,4182143,4025212,4182637,4092640,434908,4301410,4055611,36713238,4055610,4038501,40481131,4268997,4108141,4275646,4262160,4163130,4082434,4083635,4082789,4154841,4090410,4036955,4278448,4268998,4271404,4268999,4278446,4268996,4275523,4021782,4029621,4085063,4272256,4266151,4273955,4046662,4268107,46269884,43530845,442575,4050767,434899,441838,4100681,440066,4188970,4139452,4147761,435979,4050689,440371,4056580,4137676,4052750,4140301,4041284,4267213,4127379,4199549,4201255,36714481,46284335,4081862,4042139,44801803,4270006,4041275,4127380,4114722,4199431,42689983,437896,4123214,4200192,4201256,4123215,4200193,4200183,44808928,4278306,4041282,4188013,4089214,4101829,4115737,4041277,4125592,4270979,4270985,4271131,4270969,4267081,4265987,4265986,4266006,4265138,4270854,4273949,4270836,4270972,4267057,4272067,4270974,4267973,4265127,4265131,4265141,4273938,4272097,4271925,4270983,4268103,4265995,4273943,4273944,4268098,4271241,4268102,4273941,4271135,4266004,4276439,4265140,4267974,4267058,4270978,4270853,4265270,4265271,4267059,4271107,4262172,4274403,4271926,4270843,4272070,4267071,4265993,4265998,4271253,4271246,4273951,4273953,44792427,4268104,4266154,4271248,4266152,4274092,4266149,4271247,4273954,4266150,4266143,4273952,4271242,4272071,4272073,4265282,4270992,4182454,4265129,4270838,4271123,4266138,4273945,4271117,4270989,4271120,4273946,4273937,4271128,4270835,4273932,44801888,4273939,4266932,4270839,4266945,4265126,4265267,4208333,4265139,4271939,4271937,4268095,4265278,37018388,37018390,37018389,4267073,4266002,4270994,4273942,4265285,4273958,4268106,4266147,4266145,4266146,4268108,4271251,4273948,4266141,4273956,4271250,4273957,4270829,4270848,4271934,4268105,4267070,4270847,4270850,4271936,4270971,4266944,4270851,4268111,4265273,4270982,4271935,4265136,4270984,4267064,4272069,4267065,4265277,4270988,4265276,4267069,4268113,4270968,4271243,4270837,4273950,4266140,4267061,4267062,4265279,4265994,4272095,4273013,4266588,4274400,4270980,4270993,4271124,4270828,4270990,4266589,4274402,4265274,4265275,4273016,4272074,4266466,4270981,4266005,4265269,4266587,4267082,4276720,4273936,4268097,4271119,4265992,4265991,4267972,4267214,4271121,4270986,4267066,4270844,4265265,4271931,4265132,4270845,4271932,4265134,4265135,4271933,4265137,4271930,44792433,4267076,4271129,4271133,4267067,4267056,4265266,4266934,4266935,4265124,4271254,4270830,4270832,4271922,4265120,4271923,4266927,4270831,4266928,4265119,4270833,4270841,4270842,4271940,4271941,4265125,4271942,4265121,4265122,4270840,4265997,4266000,4268092,4273933,4266937,4266943,4265144,4265142,4265143,4271924,4270975,44801553,4271122,4273940,4267978,4268099,4268096,4265130,4271260,4266930,4270976,37018399,4265128,4266941,4266942,4266946,4268112,4273015,4267976,4268094,4267212,4271125,4272089,4265990,4272092,37396656,4265984,4268100,4268110,4265283,4273934,4266008,4267977,4271252,4273792,4265280,4265988,4265284,4272072,4272075,4267078,4267074,4265985,4271134,4272091,4267211,4271118,4265999,4266148,4271127,4265281,4272076,4265996,4267079,4268093,4279369,4273614,4266938,4266939,4271928,4267667,4041276,4313860,4040734,4123443,4021343,4114865,43021229,4041991,4110772,4099800,4122717,44810949,4267676,4269859,4021901,4275341,4024706,4041281,4092349,4181843,4025923,4089382,4321696,4275490,4024012,4121038,4182632,4120752,4021489,4107761,4042145,4266144,4162589,4129143,435774,4300168,4181841,4124647,4104167,4127857,4113721,4104161,4127065,4124481,4126581,4190189,4127994,4124660,4129494,4124659,4128326,4078455,4095940,4095941,4095939,4124664,4190186,4172857,433633,4024004,4127031,4127028,4181833,4124473,4025213,4104157,4089548,4127846,4089532,4182145,4182763,4091795,4127855,4095793,4101818,4113712,4101364,4129175,4129483,4128176,4126732,4126587,4127848,4127850,4124329,4127847,4090743,4104160,4124639,4126731,4088431,4127064,4095807,4127853,4129173,4127842,4129146,4127993,4128185,4127833,4124493,4129152,4124324,4124489,4124634,4124483,4127852,4128193,4201849,4129321,4129171,4127689,4181832,4114798,4129317,4127046,4182760,4124485,4126585,4126728,4199544,4089535,4095796,4091212,4127047,4127043,4129163,4113711,4181837,4090864,4088977,443285,4124650,4113713,4115735,4104162,4127688,4124325,4096534,4090861,4181838,4314323,4129482,4182453,4182762,193529,4182758,4091796,4181840,4182449,4182764,4181835,4182144,4093344,4096980,4182146,4096536,4182450,4181830,4181842,4182638,4182759,4182448,4181834,4182761,4115728,4268533,4091204,4095922,4124486,4088777,4089540,4088900,4088906,4089404,4126903,4127048,4126724,4088421,4095800,4181836,4088775,4107655,4270002,4276737,4113002,4021826,4276736,4023990,4041274,4032662,4278305,4040738,4038490,439620,4041285,4143062,4165545,4027557,4181196,4323825,436670,4096947,4265629,4080012,4048363,45772127,4031808,4170226,4031814,4021042,4029608,4031960,4224804,4181048,4310649,4102763,4006316,4056581,437141,437584,40490404,434621,441488,4303952,443401,4012350,4028369,437727,137275,4027240,4182419,440272,444296,441722,4185471,4031159,4214550,440889,441993,435446,4209352,435973,435119,4170634,4074169,443508,4055604,4050683,193863,4176793,4178673,4131597,444429,197050,433401,438959,4073287,4134592,4134142,4114506,442176,432250,4271450,438332,4200532,4028062,4024018,4140599,4041286,440985,4025215,441542,4113821,4274094,4266161,4274115,4266163,4268240,4268247,4272714,4274111,4237620,4022133,4075831,4266301,4114975,4105183,441126,43020670,441398,4148897,434153,4178664,4093352,4304916,4092897,4093358,36716675,4091532,4303385,4101348,4103988,4091509,4101220,4103991,4113552,4182633,4091058,4113563,4101213,4101212,4101346,4115583,4201391,4214970,4104139,4038678,4104138,4103990,4101216,4113565,4115697,4042178,4113564,4115581,4101344,4182634,4182134,4101343,4182135,4089624,4088667,4325357,4113545,4103995,4113547,4012219,4206598,4096976,4038677,444114,444113,4022205,4266662,4190397,4271706,4220676,4025195,4176798,4178676,4079975,45765642,4180001,4301891,4079976,4113738,4204553,4010341,4125650,436666,4293175,4272869,4274424,4284848,4113621,4120421,4117523,4116282,4116264,4113496,4116279,4116261,4113486,4120569,4116271,4116260,4116394,4113612,4116398,4117515,4116276,4120417,4120566,4120571,4117519,4113479,4120572,4023194,4116407,4113489,4113480,4274260,4162723,4273002,444401,42689922,42689923,42689924,4269863,4212760,4185673,4131797,4268544,4085093,4021191,37394552,4153979,4113931,4306645,4266465,4269869,4268710,4276286,4276407,4276411,4273157,4273164,4269571,4267502,4276283,4267529,4273312,4269706,4269576,4273175,4267499,4269979,4268821,4275354,4268822,4276594,4275352,4276592,4268823,4275353,4268824,4275351,4275350,4276593,4276591,4275349,4276721,4150852,4024757,4154448,4075938,4272864,4268834,4250116,4262158,4272878,4267368,4025217,4268531,4273019,4268551,4274407,4273028,4269978,4085502,4021900,4276718,4075936,4268829,4276717,4268828,4276716,4268825,4268827,4269982,4275357,4276714,4276715,4269985,4269314,4025214,4081310,4090012,4024707,4025218,4268833,4126787,4075218,4085024,4094235,4088165,4088488,4213776,4267372,4268830,4268819,4267354,4269864,4088164,4268263,4085503,4274248,4269983,4274262,4275356,4276719,4268706,4276590,4273147,440508,45765673,4104127,4104001,432590,4092424,4302537,4030917,4101229,4113553,4115574,4113556,4101234,4115580,4115572,4092876,4115576,4104000,4093333,4115106,4182631,442793,4004672,201461,437754,4312497,253549,4180645,4176799,443200,4037306,433128,44798962,44798625,4105886,40589905,45772881,4021558,4223616,444199,43530874,4211546,440389,4056770,40483111,4046804,4053838,40482783,443445,4163851,4038495,4216316,4126388,4200201,4128840,4125599,4126264,4128836,4125609,4126390,4125606,4181845,4122720,4096383,4125602,4182150,4038496,4182149,4181846,434902,4053583,4304781,4174549,4036149,4289305,432441,4061847,194694,444094,4132566,40484207,439658,4029496,4182148,4171359,44801963,4126257,4125593,4199274,4128832,4126258,4041988,4039379,4040730,4182766,4067106,4041279,40539858,4040733,4034097,443604,4146479,435232,43020503,4024567,4031379,4156136,4152911,4152292,44805087,44805089,4161595,4308356,4152418,4191827,4265861,4116777,4278453,4269134,4041664,4271506,4271505,4117280,4115386,4116794,4116784,4115387,4116776,4116783,4028091,4021770,4275659,4271507,4103331,4199395,4116778,4115259,4115260,4115105,4275653,4269008,4023993,4096558,4154943,4269137,4277351,4116786,4271500,4199701,4275657,4181812,4108173,4119821,4027547,4277350,4267789,4275658,4275656,4269133,4269135,4275655,4299317,4103330,4027549,4134415,4269136,433993,433453,4176902,438392,4031958,4239381,4334472,138667,4025940,444250,40481346,4195634,4289104,4266361,436587,443625,4178421,4029638,4300404,4309063,4021344,4268845,4268844,4270001,43531688,4275366,4276735,4275497,4268835,4254479,4113020,4109370,4042889,4109371,443437,4269989,4276726,4275505,4275367,4275365,4269988,4092411,4168684,4041822,4047125,442023,4102986,4105188,46284789,4105191,436381,4266169,436634,432306,4148387,4288747,4148284,4090909,438020,4043545,4333000,4134596,4185575,4009182,4049386,432586,4100101,43020452,4025200,4008565,4249458,4103849,43530691,43531054,437420,434204,437459,4114159,436581,440076,434488,4123283,433933,4048345,433097,373786,4071365,4052225,4114164,4116638,4117136,4181682,40493502,4012384,4024013,4036154,4103826,4114302,4102723,44783587,4090426,4126244,4177708,4156629,4114801,4183971,4024712,4296465,4270687,4154801,4170962,4270690,442562,440310,4261870,4094202,4113237,4150614,4044415,4338039,4200181,4024716,4056578,4118054,195664,436641,4148091,4047120,4279309,4209223,4212884,80217,4081541,4181819,4101222,4182133,435244,444208,45770624,4035137,45771096,4335174,44782478,443783,4181055,4180021,441406,4287485,4323285,4213100,4021766,4042220,4180310,4176958,4187201,4173002,440059,4201705,4176969,4180770,4134294,4042141,4029363,4181063,4180169,4027384,4269221,43531056,4043346,441840,44797208,44793953,44796023,44795095,44794515,44798213,44800388,44795745,44794594,44800673,44797901,44813417,44795936,4088748,4104148,4278601,4096864,4271533,4270550,4179011,4290597,4241218,4054382,443883,4221489,4174159,43021227,4221798,4224260,4126394,4245242,4131992,4295654,4271642,4170673,4354265,4297361,4280295,4181975,4176522,4267521,4173994,4174158,4108607,4116635,4266770,4095786,4047308,43021588,4095631,43021599,4182438,4182623,4268993,4082835,4223595,4182613,4181678,4176705,4193523,4171799,4006473,4077761,4312226,4174627,4277505,4278438,4275514,4182460,4219057,4071689,4333743,4080561,4321148,4145214,4022933,4095790,4182462,4300154,4270567,4291437,4196732,4095633,4182622,4021777,4182311,4182612,4103190,4103183,4353966,4021775,4090072,4023995,4115558,4277352,4021774,4182614,4353840,4147185,4169123,4141523,4086181,4217077,4176545,4306520,4105888,4182312,4154773,4269130,4092490,4257441,4182607,4278435,4299315,4094294,4213737,4038492,4300146,4107669,4182769,4182000,4182621,4182320,4182457,4274410,4267233,4265005,4278442,4353828,4182619,4182001,4245113,4140549,4024014,4181973,4280285,4182458,4209224,4312259,4168498,4182166,4179873,4143544,4087297,4267229,4278455,4162739,4274025,4193506,4271400,4024558,4047779,36714559,4160062,444089,43531052,4042833,4287929,4053327,4266188,4051670,443723,37017423,43530975,43530976,45763639,43530974,4042500,4185470,4179872,4180630,45771080,43531053,43531055,443404,4028071,4178626,4288085,4035837,4296108,4297095,4297094,4301709,4296109,4296110,4178804,4300956,4300957,4301711,4179244,4182005,4128624,4087641,4087640,4087642,4179757,4182445,4208104,4159874,45765791,45773405,444363,4294057,4167864,4022204,4182468,4024017,4021908,4263283,4180036,4266769,4224515,4314326,137193,4132108,4246288,4245700,4277661,4287344,4030364,4038502,4182757,4275520,4268987,4271399,4182774,4162087,4008090,4129486,4086316,4278598,4024705,4182770,4091642,4181848,4271775,4266772,4136529,4269559,4216341,4095460,4094893,4025219,4295641,4299322,4299324,4295643,4164485,4299320,4295645,4295646,4300143,4041434,4040740,4041287,4041435,4042143,4042140,43531058,43531061,4126883,43021801,4199275,4158309,4129672,4128494,4115698,4186153,4115244,4154314,4126405,4113691,4213101,4185192,4126569,4101673,4179308,4185196,4199402,4115708,4254076,4128489,4128322,4159361,4021487,4177614,4125617,4113569,4128162,4113570,44788977,4128197,4128997,4124318,4129010,4126889,4091645,4095791,4128830,4116970,4125619,4126396,4129673,4127860,4126412,4128170,4122740,4182037,4154783,44792185,4104311,4297708,4103189,4114162,4201384,4126255,4157351,4103184,4104314,4179307,4200648,4201711,4126416,4102730,4104150,4122738,4126888,4126564,4156026,4183510,4183516,4126406,4113704,4113236,4124656,4184239,4179304,4091050,4126397,4182768,4115700,4021613,4117137,4156630,4126887,4179305,43531059,43531060,4041987,4126750,4126422,4122885,4128171,4113221,4186155,44803043,4113688,4126402,4128984,4126403,4226938,4222872,4122716,4156025,4090721,4185503,4114163,4174252,4116633,43531065,4126881,4306009,4185751,4142309,4200028,4183511,4103661,4182165,4179299,4128846,44811702,4115704,4128199,4117930,4182038,43531057,4200056,4201690,4185193,4177611,4177612,4270691,4270702,4279235,4273455,4273458,4275363,4266924,4265118,4280432,4270700,4298314,4181680,4275360,4150046,4179301,4181978,4266768,4265569,4132559,4276724,4175850,4275362,4103829,4041273,4303401,4278603,4182765,4324769,4266007,4270580,4182002,4089844,4181981,4182282,4278604,4182775,4270440,4024016,4182452,4264133,4168259,4093991,4268982,4278600,4287625,4181847,4294060,4246062,4188147,4132573,4266760,4266653,4278599,4128096,4116634,4173845,4133149,4134446,4271503,443916,4202472,4130197,4295638,4295639,4278605,4181823,4179598,43021226,43530897,42709887,4262752,4223759,4141833,4130200,44805233,4244894,4228656,4257530,4260210,4268534,4143065,4182152,4266192,4288388,4280293,4089402,4172421,4172201,4182615,4182616,436435,4182313,4128492,4128194,4077967,37018424,4266771,4269557,4246059,4244837,4091528,4104961,4300155,4161665,4295651,4079147,4262998,4203098,4113999,4102111,4102113,4116962,40481517,4171231,4245478,4115390,44810437,432455,4299325,4117129,4175540,4300142,4280436,4275651,4203631,4271784,4266773,4266764,4024710,4277360,4149865,4103172,4269561,4028076,4106059,4186392,4024566,4273609,4108611,4103192,4354249,4182315,4262874,4263521,4237172,4125412,4117123,4266186,4021902,4170179,4011630,4103662,4353949,4133152,4228128,4025220,4095779,4182611,4294061,4152342,4224742,4172247,4266774,4181204,4090739,4156036,4158351,4152356,4196709,4090071,4020924,4271398,4268989,4268990,4275516,4268985,4275517,4268986,4090497,4275515,4271397,4269000,4080011,4214848,4090513,4264438,4166498,4175400,4177128,4176983,4179748,4168104,4176979,4166499,4053782,36713290,4178411,4268101,4202478,4269132,4271508,4276589,4156503,4271130,4266780,4278443,44784102,4161988,4103193,4024003,4053317,4182004,4081176,4277363,4181987,4181974,4182122,4273330,4332151,4187213,4295648,4299326,4230027,4230028,4230150,4235556,4181681,4266926,4042015,4182463,4266767,444201,4119969,4041280,4103317,4051204,444205,4088927,4266766,4181816,4260324,4275648,4082925,4172024,4305025,4303802,4168644,4264994,4299337,4164339,4161553,4264993,43530872,4023059,4300144,4207195,4217143,4234703,4266213,4273017,4267227,4221066,4114158,4278440,4278434,4311117,4139999,4145668,4133151,4268992,4021903,4268981,4278437,4271774,4226404,4300139,4182153,4263298,4169942,4181998,4182618,4181684,4182617,4182314,4271639,4169984,4086189,4021905,4174619,4196708,4025203,4041990,4269987,4275361,4269986,443403,4021907,4221555,4271531,4108454,4181677,4021906,4181976,4271773,4181979,4268543,4212577,44807963,4262734,4083787,4270439,4246374,4181995,4141968,4275519,4270442,4312116,4113619,4021783,4278441,4081173,4093335,4182319,4264695,4277508,4245475,4181683,4277509,4278439,4246061,4305682,4182461,40483632,4306659,44811708,44811709,44811710,44811704,44811705,4182316,4275722,4102121,4102117,4080740,4181977,44790589,44790587,44790588,4191716,4114166,4052407,4241182,4241183,4194614,4032012,4267228,4267226,4181814,4025351,4263127,4040732,4024015,4287482,46272922,4246262,4164313,4241430,4295649,4246247,4271570,4182628,443251,4277370,4114160,4266929,4271920,4042020,4300153,4216788,4263380,4163439,4300140,4025352,4267235,4267236,4177703,4172399,40492407,4079709,4182006,4128977,4096860,4059947,4246058,4245578,4274409,437382,4262600,4193463,4161274,4246385,4080870,4155883,4271509,4095634,4269138,4182620,4181827,4230709,4237659,4227253,4125411,4278436,4174922,4266001,4037885,4326403,4264995,4287341,4267522,4353957,4021480,42709875,4021667,4028271
            )
), 
CTE_FINAL_MAP AS (
    SELECT DISTINCT m.MEDDRA_CONCEPT_ID, m.MEDDRA_CONCEPT_NAME, m.MEDDRA_VOCABULARY_ID, 
        m.SNOMED_MAPPING_TYPE,
        c1.CONCEPT_ID AS SNOMED_CONCEPT_ID, c1.CONCEPT_NAME AS SNOMED_CONCEPT_NAME, c1.VOCABULARY_ID AS SNOMED_VOCABULARY_ID, 
        m.FAERS_DISTINCT_REPORT_TYPES, m.FAERS_SUM_REPORT
    FROM CTE_MAPPING_MEDDRA m
        LEFT OUTER JOIN vocabulary.CONCEPT c1
            ON c1.CONCEPT_ID = m.SNOMED_CONCEPT_ID
)
SELECT c.CONCEPT_CODE AS SOURCE_CODE, fm.MEDDRA_CONCEPT_ID AS SOURCE_CONCEPT_ID, c.VOCABULARY_ID AS SOURCE_VOCABULARY_ID,
    c.CONCEPT_NAME AS SOURCE_CODE_DESCRIPTION, 
    SNOMED_CONCEPT_ID AS TARGET_CONCEPT_ID, SNOMED_CONCEPT_NAME AS TARGET_CONCEPT_NAME,
    SNOMED_VOCABULARY_ID AS TARGET_VOCABULARY_ID,
    '1/1/1970' AS VALID_START_DATE,
    '12/31/2099' AS VALID_END_DATE,
    NULL AS INVALID_REASON, 
    SNOMED_MAPPING_TYPE, FAERS_DISTINCT_REPORT_TYPES, FAERS_SUM_REPORT
FROM CTE_FINAL_MAP fm
    JOIN vocabulary.CONCEPT c
        ON CAST(c.CONCEPT_ID AS VARCHAR(100)) = fm.MEDDRA_CONCEPT_ID
ORDER BY FAERS_SUM_REPORT DESC, SOURCE_CODE_DESCRIPTION
ericaVoss commented 6 years ago

Implemented everything except the USAGI mapping

schuemie commented 6 years ago

Maybe helpful: I notice that a lot of times the order of the words in a term is the only difference between MEDDRA and SNOMED. For example 'Jaundice neonatal' vs 'Neonatal jaundice'. You could get way more string matches if you did some more string normalization beforehand, like putting words in alphabetic order before matching.

Another normalization step to think of adding is stop word removal. For example, removing 'of' from 'Tuberculosis of spleen' will make it match with 'Spleen tuberculosis' after word-order normalization. In the past, I've used this highly restrictive set of stop words: 'of', 'the', 'and', and 'in', but you could go wild and use something like the PubMed Stop Word List.

I don't know how easy that is to do inside SQL, but it is trivial in R, especially when using the stringr package.

I think I would only do this in the subset of matches identified using the 'MedDRA - SNOMED eq' relationship to prevent spurious mappings, but I'm not sure how complete that mapping is.

rkboyce commented 6 years ago

Also, check out the following:

-- Most of the mappings might still be useful - data file with the mapping was a supplement to the paper and is still available here - https://static-content.springer.com/esm/art%3A10.1186%2F1472-6947-10-66/MediaObjects/12911_2009_367_MOESM1_ESM.XLS

-- We might be able to access their OntoADR tool but the last time I sent an email I received no reply.