#include <bits/stdc++.h>
using namespace std;
const int bigp = 1000000007;
const int data[5151] = {
    452847791, 9957086,   523382264, 183176262, 423982370, 382713976, 390808113,
    223316441, 345223827, 980342629, 117628987, 267956937, 135337450, 114853607,
    667226644, 429038192, 814356384, 280693690, 197272858, 889806279, 227781940,
    245865045, 332787430, 835765801, 199177654, 688714738, 888130026, 996700239,
    175479160, 406233576, 813375932, 589820165, 325609214, 870908102, 658745453,
    45407295,  498699115, 549513112, 750500701, 25041549,  93170998,  790611414,
    562373689, 886651771, 692907947, 967768825, 58821894,  832589193, 386089224,
    317450358, 420700828, 859637291, 841380709, 478749567, 550349216, 891553388,
    576738016, 460140630, 556320118, 994241394, 754416804, 675117538, 309035961,
    108557617, 706424509, 696015576, 85194928,  113838200, 279385890, 396968727,
    774715209, 8636700,   957397457, 729836301, 871195525, 82886,     230633400,
    899952343, 463329996, 165178904, 751889832, 432658498, 881524425, 737144618,
    223428859, 96058566,  773611246, 297027198, 660861690, 573165616, 149353037,
    94904116,  170449220, 107982401, 257123414, 51038046,  611863796, 201040819,
    545526014, 89654831,  614859099, 820220120, 150885431, 325002140, 145635540,
    706285915, 876137666, 385614096, 619267307, 883933342, 268227398, 70070942,
    267720215, 553784794, 741680750, 714986582, 424306293, 859914021, 561019658,
    128853146, 505784383, 400631138, 65329364,  466864322, 586598799, 392901976,
    220964519, 626780118, 761827969, 604440043, 300663039, 622165784, 36090378,
    50618788,  446225270, 620680382, 673067768, 908069376, 315177508, 794268326,
    547551835, 38993631,  504018621, 26355509,  279154661, 157786629, 632958384,
    101562373, 821346602, 470097342, 352287006, 859637291, 390657416, 283860575,
    899958969, 289717758, 146743199, 189524368, 661411591, 184188163, 278910294,
    850540858, 650009232, 829086686, 409799590, 122000902, 832107756, 648764914,
    6953755,   797414016, 201906176, 380892219, 25197146,  76765406,  440436792,
    325277662, 610836627, 843763304, 612840684, 562923886, 724809510, 402315285,
    113613703, 973706669, 277482187, 706367575, 906732920, 494202009, 437840044,
    526412485, 955484919, 815049911, 77296350,  438186251, 782354316, 623138050,
    65700931,  54759232,  883127153, 960726342, 114309354, 131505531, 307242481,
    999778169, 604638175, 160390952, 223406606, 146759612, 966764257, 306196232,
    894377874, 603906657, 531325097, 254342117, 634091232, 493829009, 519535819,
    116491446, 412337199, 769315389, 814851293, 408932058, 69503515,  546049521,
    814275447, 484902413, 199184466, 788622797, 259716061, 795952109, 514259654,
    711939497, 275582769, 162825384, 292939186, 836834755, 475355839, 220057888,
    451706591, 445061550, 382401643, 224846546, 446680443, 982262473, 167992155,
    620096174, 141441422, 336945210, 85619079,  132745257, 524851774, 903819596,
    841380709, 283860575, 957871713, 229845953, 610936362, 332229219, 248811919,
    106619526, 477510997, 817346027, 381863692, 963813833, 942501770, 833205165,
    921916082, 155564095, 583551326, 817241303, 777723510, 616021418, 344436753,
    533276305, 703560090, 72623778,  397443959, 593499961, 852953432, 827736653,
    518903183, 388764534, 732242729, 244826626, 157293892, 645558981, 403126871,
    539335555, 211401419, 493307474, 283002810, 635820291, 513227787, 858045613,
    799896582, 677858360, 686276691, 243698279, 278023777, 905178328, 629766143,
    426132409, 358671042, 363445464, 783254898, 670336256, 995789739, 263110918,
    209502245, 452560062, 594224272, 5327938,   792520396, 445076433, 627003449,
    915755914, 575202376, 781398385, 853608592, 42092963,  34988140,  527166754,
    231297887, 34378588,  781641449, 52935599,  933066617, 928517747, 985618335,
    295827456, 957716440, 815540718, 185323344, 262176353, 759439416, 350688915,
    21280711,  928665019, 373603182, 754347586, 166162074, 793499784, 268777690,
    615043480, 151470923, 651019015, 995228755, 536649843, 826094464, 501281088,
    450287855, 612696681, 657929636, 478749567, 899958969, 229845953, 672276828,
    817498303, 73510139,  374733499, 497902511, 122024088, 899187031, 821669542,
    888636077, 224411398, 440554993, 538808067, 139480682, 618291402, 713742171,
    747710614, 290182719, 887223024, 324501753, 674138474, 773700334, 614285750,
    414798651, 22380399,  268412656, 985910990, 858744950, 896060674, 608130516,
    115863651, 90793489,  231547157, 790007884, 332749421, 455226281, 72466565,
    163228600, 496206395, 566662757, 575469162, 31343552,  44572544,  551151644,
    440756403, 735837732, 791101315, 697578586, 206215396, 860323698, 910475418,
    967296297, 325102725, 461502243, 156950930, 118328018, 596188261, 369747744,
    938868741, 146184882, 341977703, 636788219, 68126428,  640207452, 409777519,
    402546723, 721977387, 681274942, 840835600, 685701567, 61316231,  142400002,
    298793289, 820017398, 628761235, 84003494,  334087890, 995604613, 459078995,
    406956427, 882048005, 309333366, 876954992, 356008125, 950562173, 825927588,
    911275891, 64973714,  243751639, 671671515, 292087061, 555262972, 663184482,
    322723083, 685668659, 467765427, 595862862, 447548640, 810792155, 550349216,
    289717758, 610936362, 817498303, 662576183, 174915157, 624760658, 254124426,
    642759940, 151987185, 411819660, 797419497, 782132174, 129492095, 865219276,
    242068701, 605200950, 26602146,  871985769, 856650758, 190552297, 305545767,
    575388965, 237003079, 419664745, 821205176, 355344785, 812254664, 362571410,
    323874537, 577885775, 116971484, 530687188, 253094949, 149585655, 367710997,
    720235285, 443997877, 607666374, 246819,    638289552, 712183897, 788059994,
    202800297, 389352250, 997202867, 130644509, 334516840, 760735911, 29484540,
    63673484,  348344287, 660140988, 277962840, 412281212, 724548820, 239769718,
    902812239, 969415453, 567135614, 278619906, 93059220,  380748517, 676379399,
    297922442, 781913984, 109857104, 528446979, 993416104, 523521713, 598301530,
    467956491, 458372737, 74924679,  576945741, 399933305, 599096163, 922781503,
    716619498, 488733149, 51621835,  856649529, 80432947,  426241764, 529540879,
    662352107, 385116418, 8917942,   15993784,  991110934, 406683223, 762050058,
    409169427, 391257074, 642710924, 295538035, 67735981,  83772311,  512485360,
    817038437, 971264269, 891553388, 146743199, 332229219, 73510139,  174915157,
    120115392, 428551708, 460630432, 294468227, 452209889, 329947345, 546909643,
    649346608, 128265553, 891279687, 229707329, 923592690, 887634470, 623924816,
    584423662, 374243607, 556603343, 349173515, 717938561, 334694476, 48040503,
    137802153, 621727630, 927868399, 663196595, 656602362, 218951107, 531184534,
    57209124,  63311946,  264891770, 772339193, 569933455, 947389163, 740680482,
    748432390, 261387270, 683744902, 736753359, 505004325, 959308893, 551997635,
    284887146, 214550416, 470388744, 381910173, 110328252, 101420614, 596851855,
    453183859, 680281347, 76608511,  969710016, 251282833, 434762362, 619550996,
    128755147, 817469425, 70509821,  123171391, 764800092, 263459752, 33361989,
    774091448, 59392821,  501194094, 70407961,  927582083, 967365474, 99720759,
    493184737, 202772336, 763403262, 741293167, 530691657, 377767938, 248223052,
    248274002, 155658251, 284262166, 34329514,  102917679, 6466257,   470175958,
    140728210, 734341029, 186653865, 556804727, 901941003, 137498229, 987199797,
    379174629, 919909675, 88904350,  609025102, 521747671, 576738016, 189524368,
    248811919, 374733499, 624760658, 428551708, 358509700, 101128252, 961399518,
    538601776, 379210801, 287833225, 148218056, 126699754, 821861606, 828780802,
    298318122, 64750293,  154598253, 791142129, 72212686,  288104069, 51507758,
    432171416, 985251914, 578462269, 712906640, 855704280, 524936774, 852531296,
    778294750, 232553459, 831832528, 780890999, 582755049, 734617407, 489935824,
    311911238, 510685417, 192541962, 854652938, 854640520, 545545272, 586828594,
    696810735, 384375964, 2333815,   472939563, 644191492, 780152557, 132638936,
    14249680,  809885298, 232760336, 274627981, 442704121, 701848733, 524367256,
    166833849, 662656520, 564229293, 407427518, 253837767, 471229551, 407109870,
    483257395, 295598510, 756792785, 978537731, 913149312, 978936915, 13685459,
    402872797, 611910845, 688153062, 971725178, 970040582, 529890797, 920172933,
    911895068, 855048068, 116950527, 143688881, 781127531, 420417269, 701359216,
    476729322, 701413232, 364163196, 119601365, 326257526, 480744256, 350111548,
    437397702, 264946338, 782789365, 563228207, 481671069, 595957298, 242690,
    696381529, 460140630, 661411591, 106619526, 497902511, 254124426, 460630432,
    101128252, 23794054,  952725362, 165220810, 456138797, 516079819, 695882391,
    62790064,  166809718, 58261270,  885230317, 193693110, 594002800, 579903952,
    206609984, 351936054, 13018051,  82089919,  178178806, 241154786, 609593964,
    649474159, 580674797, 590706302, 516822676, 458830801, 478777492, 479262994,
    190374100, 345714466, 999243958, 594032275, 952875985, 963974540, 46939690,
    382130573, 878110194, 846725832, 802499141, 871376125, 711799461, 130421066,
    458916096, 394239554, 98053525,  548263282, 794665433, 150696050, 846613362,
    256118572, 602422805, 455757394, 14044475,  693092353, 572286356, 731436218,
    816952954, 639737679, 646273548, 975609760, 218117605, 194971380, 570413363,
    350186503, 279166707, 179825903, 230998676, 728547258, 511360469, 658626044,
    765047806, 834068268, 636840312, 572281662, 744788354, 241042680, 277404785,
    595631961, 940971791, 219049444, 626301838, 817653549, 778545937, 378341548,
    560977093, 513584841, 262995917, 699673348, 389780357, 670752635, 837419033,
    915584709, 630349274, 623585399, 253405604, 556320118, 184188163, 477510997,
    122024088, 642759940, 294468227, 961399518, 952725362, 289709902, 579321799,
    481903619, 659084365, 241071098, 357427825, 882779298, 855300465, 834087272,
    155974849, 155171316, 785897397, 450387987, 763883570, 698978617, 708373622,
    647729749, 963546615, 754211440, 889353056, 491566052, 2449552,   246858010,
    358926145, 799744987, 935927256, 989161108, 243318528, 841335927, 878407358,
    546879485, 281309884, 353676541, 397173139, 709188173, 85487178,  645526938,
    700845507, 834331405, 206149168, 782921081, 435485280, 119080228, 664158835,
    23971346,  287582024, 640496384, 892145004, 821765529, 606452891, 621393698,
    80269657,  575588737, 352177610, 827680472, 596125551, 965794504, 803983758,
    433090318, 146153060, 862085613, 197226187, 256886668, 803035854, 70960,
    931442305, 589886588, 449057380, 553009016, 886298450, 361638507, 680157607,
    435032196, 469556549, 297142796, 479401892, 398122395, 77687187,  24226407,
    232103037, 499915984, 795102299, 155775570, 511445134, 530930314, 756821270,
    613580342, 609487730, 213065419, 67027164,  920979470, 871870080, 147589787,
    994241394, 278910294, 817346027, 899187031, 151987185, 452209889, 538601776,
    165220810, 579321799, 466686214, 742037496, 859778492, 297506801, 406468872,
    631040559, 433957445, 282833452, 368648997, 947051813, 91510633,  443145502,
    553221173, 688471117, 713064566, 229024729, 482596730, 296650347, 468378282,
    988351212, 358926680, 185059917, 300875885, 555931107, 55339398,  589552012,
    540292127, 57167982,  186427336, 836248538, 906659141, 472230050, 449654702,
    652682685, 720767911, 269758175, 745715635, 471352823, 261719816, 787362426,
    952797005, 157587740, 971884425, 510135160, 2145407,   962748488, 231590229,
    18849941,  33317745,  560982957, 114125861, 584476323, 587450892, 951021425,
    730500297, 314777318, 877562561, 265757587, 764841193, 115872583, 373239066,
    508333846, 733118318, 206950615, 999162200, 982694397, 893850991, 403628715,
    365808379, 361329002, 360535072, 283088525, 917210247, 968931809, 98294043,
    137648034, 993205733, 174689619, 766264016, 163156251, 29408305,  674055114,
    123913980, 411676885, 953561231, 278673549, 972075384, 251791281, 391917647,
    807162441, 109367731, 520903447, 754416804, 850540858, 381863692, 821669542,
    411819660, 329947345, 379210801, 456138797, 481903619, 742037496, 314544245,
    94261049,  485472398, 260330381, 66394645,  681538129, 602965351, 111457303,
    247892565, 89099852,  295328002, 371448838, 474963275, 942193384, 626864590,
    902179895, 22233678,  537063008, 329410572, 659593864, 741191499, 667384402,
    735117222, 684903520, 34582938,  150645224, 341679852, 166536895, 913937179,
    499986664, 667242939, 282830114, 16291282,  343469558, 622645058, 519569370,
    204979417, 791659718, 56405622,  729721440, 452711079, 188888373, 992986891,
    228549757, 159992036, 757381320, 68869020,  327781819, 99344198,  508402232,
    177052527, 637277802, 575575498, 763676087, 357140537, 725002486, 661339301,
    454576074, 774995993, 482098555, 578439357, 494240073, 228071397, 60678860,
    802658057, 3981138,   472131636, 979121531, 601662413, 988188783, 413784607,
    927160572, 248161467, 166029475, 745031618, 741271444, 890743986, 506160685,
    999070736, 185907770, 92567131,  234400896, 829029206, 374704543, 169690315,
    102983309, 1444520,   439456097, 865688686, 702982625, 887568016, 675117538,
    650009232, 963813833, 888636077, 797419497, 546909643, 287833225, 516079819,
    659084365, 859778492, 94261049,  917071519, 469173454, 598976482, 353715994,
    744359158, 306746371, 277705511, 996588381, 39002027,  723401110, 769544373,
    713085508, 170106900, 903655723, 575989885, 558215172, 176638040, 469450016,
    99885682,  129319465, 104870023, 225069404, 976718289, 881936137, 152280460,
    313583721, 103518375, 197327412, 493121462, 531565890, 297478097, 144627540,
    191240159, 164370345, 203834215, 68028545,  33946279,  149117435, 56324089,
    965768160, 117458602, 572979201, 237765660, 848222888, 188504522, 296916879,
    329115856, 666771688, 31783287,  626653329, 211038786, 784587694, 180069637,
    838550225, 944344608, 990235394, 542611566, 272509247, 676450325, 34059429,
    147420453, 478126434, 148311277, 782813439, 163477419, 184092362, 856281390,
    985459710, 651150536, 534412647, 833611359, 980558644, 507749784, 878397322,
    231882284, 658474219, 398446832, 534433781, 22187517,  927604867, 245978939,
    509963035, 493017416, 693731622, 140758688, 754454348, 584493806, 255564965,
    942228562, 86864561,  309035961, 829086686, 942501770, 224411398, 782132174,
    649346608, 148218056, 695882391, 241071098, 297506801, 485472398, 469173454,
    56443143,  419942771, 410603886, 701658810, 248550689, 868845497, 812560246,
    83883635,  602826243, 47487651,  25861188,  654981886, 644229873, 856187502,
    438373544, 903955318, 302942488, 949768754, 783931729, 828459546, 7715178,
    69400859,  444964402, 193678335, 663693755, 564566898, 893490056, 523620142,
    821947706, 787070445, 202574496, 344982358, 953983016, 475639578, 884437792,
    656298268, 445779762, 868827708, 719056309, 194631330, 39237394,  899200405,
    229961997, 519616951, 351135523, 683909483, 41335569,  254095439, 726249362,
    158664584, 243574594, 221074373, 694196244, 586748141, 914954567, 8529861,
    821669951, 524910777, 390296659, 71753563,  223485262, 426759817, 167039480,
    410048995, 420889109, 60230018,  998098487, 718689490, 95849463,  643020670,
    196627961, 34818851,  983383400, 718509549, 150754186, 900501706, 871213655,
    800497152, 69767587,  30861046,  603422422, 557731885, 378292538, 868335176,
    819965654, 644141990, 591926899, 585415626, 776480200, 108557617, 409799590,
    833205165, 440554993, 129492095, 128265553, 126699754, 62790064,  357427825,
    406468872, 260330381, 598976482, 419942771, 225864713, 392507084, 903780937,
    870934407, 965409648, 227388893, 402705155, 348020403, 121281122, 680314041,
    521541820, 922133318, 662951564, 30275844,  730592642, 944651193, 865813329,
    507116098, 812445091, 853040958, 817588812, 621895118, 62239572,  774620293,
    327033102, 417261748, 845180939, 343688059, 961909707, 502143187, 557290942,
    682091222, 383494499, 146447723, 11601265,  744840128, 139578022, 34347347,
    456014998, 365590845, 245132450, 517999496, 35498037,  413454051, 387443947,
    957617999, 270398700, 646397312, 802409148, 79890632,  993227047, 448431504,
    60338695,  890584690, 313727521, 374428266, 894736798, 775624017, 967575255,
    141336423, 96450617,  254411655, 377056587, 198740042, 369752370, 709329991,
    763474265, 477176379, 707132178, 122041249, 289636277, 749110382, 569226930,
    190201097, 697779032, 424203640, 794293684, 568253676, 795467784, 753013311,
    298432603, 667658127, 614802232, 510529646, 429332710, 817590746, 809865211,
    114917289, 706424509, 122000902, 921916082, 538808067, 865219276, 891279687,
    821861606, 166809718, 882779298, 631040559, 66394645,  353715994, 410603886,
    392507084, 921693041, 372879499, 346609159, 313832936, 679185968, 408872828,
    27123559,  462244452, 623783246, 869379431, 457738535, 142482735, 522840939,
    325908401, 181433029, 913016707, 590202940, 511906731, 310741803, 550446329,
    545926192, 920596906, 337775129, 449629169, 92718265,  547012462, 356182644,
    680694925, 464457230, 696838352, 802437385, 992558202, 25633292,  918693778,
    160350054, 951506987, 54521903,  898165327, 702804960, 762625429, 465694504,
    332125106, 805726435, 961815633, 580752811, 672013366, 913921595, 347100168,
    975113352, 24380424,  319763793, 400972563, 717235430, 75315518,  15154299,
    214207273, 613023601, 82102143,  681899051, 274712457, 348441108, 840543128,
    278922432, 964400932, 372202953, 923123663, 911810484, 557805121, 967700389,
    111536370, 946063695, 298383625, 241282262, 376181425, 454258121, 406688333,
    344657369, 444654074, 680485090, 145149639, 119149741, 955258347, 994604631,
    585190508, 40932593,  655040596, 831256435, 696015576, 832107756, 155564095,
    139480682, 242068701, 229707329, 828780802, 58261270,  855300465, 433957445,
    681538129, 744359158, 701658810, 903780937, 372879499, 424765043, 881313183,
    733554146, 97092792,  117600879, 74485073,  172503966, 307899743, 317534729,
    38453466,  816314513, 512073365, 438294812, 348888350, 420789072, 535734193,
    599000258, 69058354,  760274959, 249444850, 854327916, 903214254, 587004693,
    290091350, 15559463,  318716077, 899942530, 323192145, 460052922, 368043156,
    937730706, 452614339, 895470786, 5766489,   1614616,   99507190,  447597548,
    791501444, 776270067, 428235720, 686681578, 798828588, 550417826, 599565009,
    81017145,  782251772, 677974534, 505290395, 523823666, 281082872, 687718008,
    778253086, 806696109, 655325130, 949001377, 365999032, 797090542, 776165633,
    873498313, 350905280, 215817025, 559443044, 537733505, 312190897, 977704830,
    698270349, 66013662,  603508834, 438071583, 98046487,  800572568, 195555266,
    641542030, 505106709, 550750878, 474935674, 124429526, 133586908, 786340286,
    239984006, 617489768, 458937536, 380275929, 827476028, 526495044, 245837727,
    85194928,  648764914, 583551326, 618291402, 605200950, 923592690, 298318122,
    885230317, 834087272, 282833452, 602965351, 306746371, 248550689, 870934407,
    346609159, 881313183, 816726730, 141709539, 647810060, 851447803, 133919512,
    585245612, 316743033, 897563859, 889357044, 877003006, 57645717,  538609199,
    629322361, 447604694, 961561782, 798555228, 119551247, 245998433, 387726341,
    381455002, 761704063, 260568574, 721521507, 550236503, 373710985, 959125520,
    849873720, 627434958, 774375421, 615378170, 224758981, 147744432, 533750143,
    113685518, 237828018, 654238797, 605749065, 51130786,  613349594, 920208383,
    16721341,  169143603, 672098870, 293481154, 757993191, 262680101, 917350127,
    40948797,  192664370, 136089940, 631773921, 809365658, 522771390, 365706860,
    949725586, 762447534, 983179005, 779454762, 955039543, 174331058, 840430305,
    57016830,  369519844, 260984820, 757862146, 494322176, 14101930,  314492522,
    383016323, 321904494, 890897299, 636491614, 516245593, 218082350, 197081465,
    805384516, 546163293, 231673566, 471812585, 820489010, 108358514, 790198438,
    158865272, 871164218, 478661105, 113838200, 6953755,   817241303, 713742171,
    26602146,  887634470, 64750293,  193693110, 155974849, 368648997, 111457303,
    277705511, 868845497, 965409648, 313832936, 733554146, 141709539, 697988106,
    936381406, 574168710, 78374521,  493548693, 718367833, 784963137, 316748363,
    457855952, 453182029, 624567985, 234500066, 599591401, 361022607, 379619638,
    236775868, 588641892, 832837324, 218400265, 848092065, 748747042, 83326930,
    44157622,  339143070, 173076564, 732912644, 175736220, 587076197, 330102036,
    538850913, 85322097,  767368883, 210497181, 788800909, 29098629,  921764422,
    717585064, 987059278, 251508982, 392044517, 986180087, 172131217, 274100276,
    747081585, 845290500, 585604074, 189958027, 195633628, 939694276, 14060198,
    67387320,  7069246,   374020643, 488752462, 799714137, 282162731, 326299902,
    212692401, 270313265, 554130230, 126497837, 913264338, 811481917, 53842455,
    166525899, 673751896, 841035413, 704040483, 685191866, 937167184, 255940088,
    772215286, 953121327, 590442580, 229099079, 993712644, 334419408, 833234427,
    300649707, 353619112, 96932525,  463116807, 946887901, 683190206, 279385890,
    797414016, 777723510, 747710614, 871985769, 623924816, 154598253, 594002800,
    155171316, 947051813, 247892565, 996588381, 812560246, 227388893, 679185968,
    97092792,  647810060, 936381406, 202817663, 58785227,  399423590, 893416670,
    790711419, 342902589, 931434561, 633449862, 642808508, 370743376, 717163773,
    381632989, 92509865,  348583997, 331454705, 299108971, 50360243,  113186933,
    216052952, 643018222, 496953283, 49530342,  582370301, 789674154, 653692598,
    948883922, 832459686, 723837840, 404417046, 799972647, 154298619, 2569170,
    284325332, 877104185, 696906067, 733508156, 174708120, 428252664, 280793955,
    546434790, 400464652, 519147837, 791249920, 284182755, 824594457, 244462280,
    362113490, 154764678, 968118711, 180625620, 913633072, 994820138, 781101803,
    891024122, 240927548, 69072888,  736728347, 290261565, 259236362, 44517124,
    349445246, 897332857, 966902615, 612360775, 64978597,  993238390, 174971744,
    776100484, 233784709, 758121667, 518685391, 867556101, 511931207, 927618841,
    744531937, 710735191, 2805309,   453895793, 329572622, 217124821, 717727055,
    489587168, 129054451, 396968727, 201906176, 616021418, 290182719, 856650758,
    584423662, 791142129, 579903952, 785897397, 91510633,  89099852,  39002027,
    83883635,  402705155, 408872828, 117600879, 851447803, 574168710, 58785227,
    762257401, 740208389, 258587416, 807254989, 580276911, 283961482, 655334384,
    267032139, 542409076, 995186637, 982039187, 227885702, 308596054, 774290264,
    870819832, 17843513,  289810667, 140150125, 803725021, 619698103, 436761385,
    534925884, 208683590, 521919188, 896720259, 711568501, 932865142, 729699331,
    322445626, 312400720, 101429293, 737941890, 913681211, 244651532, 744364613,
    397201926, 656543066, 394646045, 593266978, 7207166,   95977315,  539859797,
    503937014, 881477887, 586185307, 855561479, 405588640, 792601695, 915123643,
    984588559, 315704209, 309013980, 320999968, 130175659, 284028721, 866805924,
    25729681,  666762969, 23027908,  984673987, 340984156, 185234890, 45860911,
    341549169, 358408004, 37502199,  789880144, 900037998, 284437500, 393953187,
    954501764, 186346002, 495823969, 691346996, 231004048, 591624179, 828991233,
    215810078, 592874854, 274767050, 628024714, 617117288, 774715209, 380892219,
    344436753, 887223024, 190552297, 374243607, 72212686,  206609984, 450387987,
    443145502, 295328002, 723401110, 602826243, 348020403, 27123559,  74485073,
    133919512, 78374521,  399423590, 740208389, 406932269, 917173913, 641071345,
    212837979, 332878276, 910965664, 661431775, 19997421,  324798148, 437952985,
    727076713, 341904682, 767904257, 372755627, 751714395, 623803089, 478075332,
    567833278, 424940993, 774322154, 240206782, 652825006, 752336074, 867595554,
    510546969, 490981242, 888388236, 358203592, 121850974, 516566212, 824697581,
    119015620, 484360341, 385521886, 949660138, 148078278, 3965308,   69058225,
    692221042, 565129328, 748348069, 484214524, 49267681,  641343759, 852039126,
    650278943, 707163539, 958321705, 410863148, 135466801, 76654882,  86523217,
    778449831, 521447104, 461626596, 81782684,  450594972, 30025975,  147679485,
    36187152,  239758573, 770555316, 267834655, 211753969, 55433744,  693263778,
    53726782,  314360462, 136082099, 850279063, 563178681, 936139113, 187739892,
    619737139, 599259479, 609631544, 311826662, 630076314, 141243576, 400105640,
    552556051, 8636700,   25197146,  533276305, 324501753, 305545767, 556603343,
    288104069, 351936054, 763883570, 553221173, 371448838, 769544373, 47487651,
    121281122, 462244452, 172503966, 585245612, 493548693, 893416670, 258587416,
    917173913, 847601653, 829237821, 85108701,  621539713, 798265220, 98515245,
    145651519, 759600989, 862817259, 817408995, 304169982, 787952914, 868539105,
    86728753,  719927297, 385955244, 622230077, 403912440, 680999222, 253387728,
    886603101, 493945413, 877728154, 266698317, 840284897, 673543488, 631086991,
    277725676, 778564979, 902113415, 431486947, 196821089, 999637037, 89581465,
    631774471, 15694181,  542179206, 905534939, 621806124, 674414690, 464865111,
    907918197, 368738225, 510223324, 908271532, 515205705, 83597355,  150655427,
    233977888, 134692574, 28590712,  92882650,  392645995, 387875397, 19619468,
    238709448, 745640373, 319822770, 55727416,  827334342, 399163371, 798322509,
    317142973, 358748574, 3757898,   841917156, 116708535, 683400547, 799446536,
    881983078, 741309435, 606228561, 733389566, 800506172, 275835721, 964124201,
    896244019, 49794092,  372882960, 819671908, 957397457, 76765406,  703560090,
    674138474, 575388965, 349173515, 51507758,  13018051,  698978617, 688471117,
    474963275, 713085508, 25861188,  680314041, 623783246, 307899743, 316743033,
    718367833, 790711419, 807254989, 641071345, 829237821, 633324856, 823968736,
    178482520, 883358390, 687443981, 140673606, 418335223, 805869463, 817843363,
    902412767, 246545888, 221556560, 968214108, 993259555, 690577314, 14692306,
    428208279, 415110559, 350752958, 662441836, 136973132, 192363557, 189514904,
    727054709, 491660509, 23775069,  279198809, 557036444, 191924314, 983309427,
    626762179, 45379731,  155540163, 538279815, 993365888, 283957999, 31019660,
    864677776, 468723518, 428606819, 913548888, 340171744, 227225153, 874030456,
    598981401, 662403834, 897952095, 746697779, 159287987, 65684636,  938618238,
    469797988, 376489834, 99690203,  263354503, 564550141, 847501199, 194736006,
    422544584, 765506500, 588157703, 391445847, 999191621, 301642235, 585536166,
    632353682, 142889551, 885513010, 639560628, 497369566, 825260003, 574800531,
    933346192, 316473479, 404231874, 216393382, 994779350, 581103479, 829940200,
    729836301, 440436792, 72623778,  773700334, 237003079, 717938561, 432171416,
    82089919,  708373622, 713064566, 942193384, 170106900, 654981886, 521541820,
    869379431, 317534729, 897563859, 784963137, 342902589, 580276911, 212837979,
    85108701,  823968736, 391753080, 912152492, 885467077, 219809526, 807927365,
    642894857, 803771152, 270008914, 783587595, 995549815, 108870257, 817126364,
    18343450,  917752943, 546710619, 490543943, 161693737, 118430311, 814942792,
    339820699, 203550149, 280986333, 805997134, 359672314, 433410966, 230743510,
    837834986, 892288511, 232169897, 195131434, 360629483, 613815709, 128781972,
    140130337, 285074893, 663576000, 323420407, 718908076, 329744194, 767203521,
    371589848, 118675269, 736843318, 839176106, 259725849, 246860980, 303524959,
    205835376, 254398770, 575240367, 255046189, 245400792, 64044715,  329289623,
    908241931, 617853451, 330216874, 782802971, 543738687, 641550332, 865223520,
    396955427, 146230440, 549881139, 595410572, 903979219, 825360347, 642142023,
    256010832, 652691389, 863609194, 883211814, 713368700, 628353849, 806437571,
    396193201, 633079015, 158214716, 871195525, 325277662, 397443959, 614285750,
    419664745, 334694476, 985251914, 178178806, 647729749, 229024729, 626864590,
    903655723, 644229873, 922133318, 457738535, 38453466,  889357044, 316748363,
    931434561, 283961482, 332878276, 621539713, 178482520, 912152492, 939791426,
    396254349, 5941969,   899001927, 359452402, 456633635, 457702119, 479506642,
    613104944, 58625810,  823460751, 496624562, 662184703, 110392973, 950177414,
    624259466, 577141062, 995966350, 252390250, 35597884,  721597963, 113561720,
    823727529, 243132458, 795213982, 567267647, 639688001, 90635044,  303314283,
    345546957, 602302308, 594527220, 221962714, 261080142, 46126440,  517816021,
    717128814, 81987062,  288728542, 437761324, 357919621, 465748196, 963558164,
    193657887, 966849650, 57144621,  498176041, 870860267, 514842044, 582290486,
    141541432, 173907222, 37206121,  987134896, 270763116, 220458647, 597611695,
    496713645, 466310570, 251674201, 125353156, 617455369, 751523965, 464136998,
    922664984, 758057948, 780382817, 349781825, 889738969, 606056371, 124988172,
    946127029, 138622080, 858296169, 981201398, 655234388, 446018367, 82886,
    610836627, 593499961, 414798651, 821205176, 48040503,  578462269, 241154786,
    963546615, 482596730, 902179895, 575989885, 856187502, 662951564, 142482735,
    816314513, 877003006, 457855952, 633449862, 655334384, 910965664, 798265220,
    883358390, 885467077, 396254349, 997925326, 184355790, 268810858, 398094288,
    219427927, 780522409, 444825210, 566141040, 523103351, 987448567, 287309735,
    912005339, 873485211, 6287452,   712007537, 661567267, 833345519, 262585375,
    574282436, 350292575, 614381792, 514218998, 859120026, 110930202, 404174504,
    248839463, 906506960, 703826545, 817220199, 101910258, 905771489, 357428031,
    502934965, 179420616, 282579060, 112313465, 839892209, 465787859, 307444101,
    231019940, 336142336, 915481091, 578580691, 658709787, 223681205, 187481696,
    845127166, 715062476, 125183508, 254571738, 325942080, 761748287, 286531721,
    88203722,  80930992,  572208395, 669350073, 67816505,  289653910, 665797541,
    675043300, 267834554, 355630556, 410115290, 695720143, 663426011, 975533638,
    657901827, 752681117, 725913055, 652404176, 538882313, 30213814,  431540442,
    670394194, 513977934, 230633400, 843763304, 852953432, 22380399,  355344785,
    137802153, 712906640, 609593964, 754211440, 296650347, 22233678,  558215172,
    438373544, 30275844,  522840939, 512073365, 57645717,  453182029, 642808508,
    267032139, 661431775, 98515245,  687443981, 219809526, 5941969,   184355790,
    104594328, 405356575, 769005878, 183267173, 676646416, 742248179, 851106324,
    383845282, 530931429, 725243460, 186627115, 44792684,  189087799, 107006494,
    787656561, 414047557, 478028739, 626928474, 960584423, 28539852,  711044136,
    455180838, 683181397, 718407815, 824982503, 29163910,  983667386, 809862068,
    823095122, 810625376, 938784652, 385140367, 395567791, 670333107, 15453088,
    77139767,  259169381, 547737163, 392993908, 312909719, 962621448, 142128301,
    330410157, 433443493, 3506889,   96295083,  336764168, 990668398, 448510108,
    164265182, 95241457,  236074616, 171848097, 191868638, 926888739, 607319857,
    612017159, 171345588, 124495243, 108684172, 29157788,  676471448, 489430276,
    70893768,  577257934, 526187500, 746909660, 464073945, 121400384, 592560126,
    492012018, 990140131, 210554555, 345403271, 530034566, 899952343, 612840684,
    827736653, 268412656, 812254664, 621727630, 855704280, 649474159, 889353056,
    468378282, 537063008, 176638040, 903955318, 730592642, 325908401, 438294812,
    538609199, 624567985, 370743376, 542409076, 19997421,  145651519, 140673606,
    807927365, 899001927, 268810858, 405356575, 539104360, 542880947, 25819536,
    215422203, 982122518, 692209191, 20453831,  349714863, 71370920,  376342080,
    521435506, 290005782, 359251621, 699253185, 668653276, 590010720, 595496270,
    614076643, 325098591, 174253041, 519052992, 711829009, 877108084, 827506348,
    803678879, 569351499, 353792428, 176355895, 893986673, 881960246, 676558287,
    485701724, 479101315, 604939724, 820284522, 182804144, 634908895, 577699436,
    534608474, 735715066, 48147540,  432434482, 313361145, 205122696, 91970732,
    675170222, 136144019, 716219297, 96296440,  753785744, 582886485, 927822352,
    759792453, 925734899, 438371862, 27158049,  347535279, 733350984, 652486819,
    354320866, 292194528, 726360128, 388439059, 879597040, 756173552, 41427455,
    132549311, 210682427, 152186074, 245813828, 789890388, 511198220, 282717690,
    523990196, 463329996, 562923886, 518903183, 985910990, 362571410, 927868399,
    524936774, 580674797, 491566052, 988351212, 329410572, 469450016, 302942488,
    944651193, 181433029, 348888350, 629322361, 234500066, 717163773, 995186637,
    324798148, 759600989, 418335223, 642894857, 359452402, 398094288, 769005878,
    542880947, 826994960, 443039701, 147808094, 41877700,  149693946, 157721100,
    150510510, 730027161, 64887731,  570544395, 456334093, 813634723, 168406791,
    481020397, 821999635, 188176277, 24729563,  781544842, 542628921, 893114827,
    631680776, 655834394, 270155645, 283506177, 15786862,  376842913, 980274096,
    273811224, 492781151, 908892716, 496906150, 735356907, 448702534, 140924956,
    32381713,  939326965, 189449524, 187422893, 586370408, 600221188, 880711000,
    271782304, 210738694, 984169221, 514284834, 737264108, 169271824, 619051911,
    799894184, 485579332, 255609921, 397174835, 520211569, 744799167, 529882506,
    18399925,  210491183, 281924544, 168313629, 691053077, 48722730,  620803371,
    867235485, 726433614, 751833620, 147306285, 599523101, 310012279, 678512894,
    130045305, 271442427, 332593184, 222390539, 165178904, 724809510, 388764534,
    858744950, 323874537, 663196595, 852531296, 590706302, 2449552,   358926680,
    659593864, 99885682,  949768754, 865813329, 913016707, 420789072, 447604694,
    599591401, 381632989, 982039187, 437952985, 862817259, 805869463, 803771152,
    456633635, 219427927, 183267173, 25819536,  443039701, 615794112, 535226987,
    635413384, 352062233, 431565345, 581376362, 514034751, 406379446, 663688135,
    306743659, 843986094, 298434842, 704055696, 432021754, 513158579, 205174714,
    553309414, 838792876, 944633566, 709030510, 828079065, 116536879, 919877107,
    451136909, 526213031, 697958761, 306752973, 914948220, 196886890, 230406379,
    16829376,  577349751, 439191839, 753452479, 74095103,  512245662, 334651572,
    529865478, 825601203, 88053214,  816374480, 481399003, 602521503, 655485753,
    647134096, 36955422,  956979497, 226751700, 986178524, 349896954, 653781966,
    479492519, 384416084, 658381917, 470438452, 543397301, 587089629, 814293717,
    943011666, 997299341, 686673381, 999229441, 663067614, 231407560, 834921897,
    265289529, 69401649,  154942852, 796756501, 326012165, 596731325, 610245555,
    751889832, 402315285, 732242729, 896060674, 577885775, 656602362, 778294750,
    516822676, 246858010, 185059917, 741191499, 129319465, 783931729, 507116098,
    590202940, 535734193, 961561782, 361022607, 92509865,  227885702, 727076713,
    817408995, 817843363, 270008914, 457702119, 780522409, 676646416, 215422203,
    147808094, 535226987, 387251335, 71027172,  103959430, 859248039, 600069161,
    156889349, 422999181, 113712276, 144367314, 328813201, 262039896, 533425071,
    302772853, 157637485, 65501946,  732185437, 521221565, 123073345, 763876870,
    228755828, 944262512, 535118525, 222895373, 374115008, 859009768, 589146024,
    635576655, 375533031, 786889945, 821654797, 69515858,  330610723, 992757923,
    662241367, 793812578, 839993068, 702105729, 417820629, 232597705, 248422118,
    588417183, 937174929, 628538765, 907195147, 834445174, 493288156, 586155080,
    547681719, 246165347, 436684343, 862300386, 175044244, 946278311, 418508489,
    473672057, 458017774, 766832602, 946347909, 636989694, 581150166, 309360077,
    570975964, 684203670, 356618156, 746899196, 366638308, 830879692, 315194280,
    951252756, 18989957,  125379709, 432658498, 113613703, 244826626, 608130516,
    116971484, 218951107, 232553459, 458830801, 358926145, 300875885, 667384402,
    104870023, 828459546, 812445091, 511906731, 599000258, 798555228, 379619638,
    348583997, 308596054, 341904682, 304169982, 902412767, 783587595, 479506642,
    444825210, 742248179, 982122518, 41877700,  635413384, 71027172,  110444692,
    878870302, 919700223, 45491948,  582042043, 896852103, 107976428, 670375514,
    300063211, 868875377, 907655569, 415771342, 468065574, 499897740, 312453286,
    960316104, 246731025, 44207057,  377026980, 908725452, 429113768, 94239164,
    50457688,  766132025, 196628204, 164203956, 624712853, 707309853, 542705629,
    306904990, 668431751, 671192481, 127380826, 288964852, 313672045, 572017855,
    773692069, 446135739, 959869903, 849151950, 420960483, 661514100, 39156712,
    557147436, 847199125, 123334094, 537988171, 781323829, 874785430, 375598887,
    281782146, 495568211, 431955045, 427374115, 219453190, 834710723, 607890394,
    294133542, 611193834, 440507765, 82186648,  73841325,  254009283, 775440332,
    491828261, 21516151,  3234999,   836380045, 861085544, 499356702, 881524425,
    973706669, 157293892, 115863651, 530687188, 531184534, 831832528, 478777492,
    799744987, 555931107, 735117222, 225069404, 7715178,   853040958, 310741803,
    69058354,  119551247, 236775868, 331454705, 774290264, 767904257, 787952914,
    246545888, 995549815, 613104944, 566141040, 851106324, 692209191, 149693946,
    352062233, 103959430, 878870302, 491150717, 844410452, 687371360, 592865231,
    479115212, 291372700, 33313624,  193166574, 222445692, 615979679, 940717771,
    754585162, 738874049, 115552850, 54089722,  755581876, 567936052, 436632606,
    70391344,  258279978, 65346503,  234665362, 474986567, 112129983, 990996949,
    840587634, 329127996, 892768160, 576827842, 211792989, 187893398, 833066674,
    848766243, 799098812, 445362842, 99153884,  896249497, 696387580, 681323446,
    294157564, 718809631, 609773214, 805120680, 851245966, 275319460, 159568707,
    566028061, 265224143, 545758970, 314033234, 760103670, 28913654,  897110649,
    266379729, 615624299, 479225203, 241395635, 673730409, 241234029, 804111793,
    310425232, 119763800, 406130167, 452497512, 362311518, 511004368, 290215179,
    685196543, 178784489, 737144618, 277482187, 645558981, 90793489,  253094949,
    57209124,  780890999, 479262994, 935927256, 55339398,  684903520, 976718289,
    69400859,  817588812, 550446329, 760274959, 245998433, 588641892, 299108971,
    870819832, 372755627, 868539105, 221556560, 108870257, 58625810,  523103351,
    383845282, 20453831,  157721100, 431565345, 859248039, 919700223, 844410452,
    99220614,  442366327, 404337846, 566457927, 486229981, 404292961, 360073769,
    181191663, 794122838, 879200962, 776976033, 175751341, 313035773, 814000662,
    559356523, 801028851, 485380219, 583832432, 129941287, 771359676, 499272583,
    31054039,  350772387, 677456831, 813478872, 388203186, 214163431, 482758506,
    729115331, 774832292, 977469565, 531493924, 709681844, 576159980, 999260467,
    20148871,  887584198, 4466449,   772167387, 284827890, 689559183, 120393457,
    10949251,  757305491, 599713467, 258154828, 614423569, 920019965, 568751490,
    533485379, 978548208, 51146085,  919584080, 21754633,  502863730, 463845668,
    603541022, 870857990, 143081525, 228819048, 136005109, 52976731,  470980970,
    971651867, 235336855, 405171630, 708200295, 553113077, 223428859, 706367575,
    403126871, 231547157, 149585655, 63311946,  582755049, 190374100, 989161108,
    589552012, 34582938,  881936137, 444964402, 621895118, 545926192, 249444850,
    387726341, 832837324, 50360243,  17843513,  751714395, 86728753,  968214108,
    817126364, 823460751, 987448567, 530931429, 349714863, 150510510, 581376362,
    600069161, 45491948,  687371360, 442366327, 977475057, 228350486, 694036476,
    129875855, 865890215, 446667559, 863284505, 194809007, 122253714, 890453345,
    968779656, 429153502, 613831899, 625010630, 416469676, 917600550, 617205312,
    501803357, 915160154, 213777938, 771400687, 16862238,  887332915, 357726784,
    27498927,  532228747, 618323775, 519400178, 328199647, 327359497, 806631050,
    710147131, 592271450, 853269533, 370283318, 147161718, 137120467, 981073466,
    606573862, 435338437, 186917112, 459949112, 348346278, 974944795, 997688948,
    396012916, 271247554, 580758038, 891724448, 27365942,  677122289, 907762620,
    230237845, 951717927, 987908625, 33966435,  833001543, 612149286, 225220242,
    447603546, 594451951, 92149577,  360001042, 786738116, 88692497,  401967500,
    967363705, 96058566,  906732920, 539335555, 790007884, 367710997, 264891770,
    734617407, 345714466, 243318528, 540292127, 150645224, 152280460, 193678335,
    62239572,  920596906, 854327916, 381455002, 218400265, 113186933, 289810667,
    623803089, 719927297, 993259555, 18343450,  496624562, 287309735, 725243460,
    71370920,  730027161, 514034751, 156889349, 582042043, 592865231, 404337846,
    228350486, 267276480, 588780822, 689402111, 901640779, 54346245,  698363252,
    293846760, 357478892, 901483747, 687109541, 316132891, 175727605, 381492835,
    723236981, 690259201, 36955194,  966135696, 182241121, 283070081, 540030963,
    576198161, 602664650, 171764122, 676269211, 211039870, 395499014, 921234984,
    357213117, 983665765, 492291783, 770407227, 148654012, 888387717, 15516060,
    754800520, 434794269, 52865252,  126837349, 561262951, 714497626, 18632701,
    654890498, 484415914, 43008027,  621296804, 394844856, 939812447, 715070953,
    978247429, 768288318, 997687672, 564650624, 557378763, 94618367,  71352398,
    793523851, 964081899, 766532319, 455171162, 608577629, 339113761, 561933151,
    358989901, 329332848, 239749411, 667271555, 773611246, 494202009, 211401419,
    332749421, 720235285, 772339193, 489935824, 999243958, 841335927, 57167982,
    341679852, 313583721, 663693755, 774620293, 337775129, 903214254, 761704063,
    848092065, 216052952, 140150125, 478075332, 385955244, 690577314, 917752943,
    662184703, 912005339, 186627115, 376342080, 64887731,  406379446, 422999181,
    896852103, 479115212, 566457927, 694036476, 588780822, 295348265, 802340820,
    168065716, 496716916, 822038429, 16095355,  676604457, 329356087, 969220127,
    856111847, 431504527, 83144711,  744338614, 199480823, 875179134, 349602249,
    593637761, 439678943, 209612799, 217329810, 992479752, 402416119, 546839414,
    940016229, 968522623, 1939698,   354669366, 709630981, 597959614, 528138854,
    776197946, 351241850, 389905850, 792023240, 968583172, 901847309, 419337215,
    12687536,  969290954, 532709056, 674738046, 358213173, 111409576, 524367712,
    611737194, 475113691, 978180596, 380499437, 320021982, 185781853, 75149362,
    737275446, 816934550, 85812245,  307670199, 74901035,  713368708, 948746086,
    379931506, 444121570, 339090139, 890201449, 950772565, 465195874, 847775752,
    297027198, 437840044, 493307474, 455226281, 443997877, 569933455, 311911238,
    594032275, 878407358, 186427336, 166536895, 103518375, 564566898, 327033102,
    449629169, 587004693, 260568574, 748747042, 643018222, 803725021, 567833278,
    622230077, 14692306,  546710619, 110392973, 873485211, 44792684,  521435506,
    570544395, 663688135, 113712276, 107976428, 291372700, 486229981, 129875855,
    689402111, 802340820, 874017109, 216676125, 521333082, 770975057, 856785000,
    907956815, 70380624,  776615002, 315741664, 932775880, 889057140, 419636797,
    306390970, 210071127, 548587740, 463461078, 642761389, 930830494, 954422187,
    226976706, 818194434, 74079335,  815334212, 706393498, 7405845,   405064004,
    93048911,  513958927, 926323933, 588774566, 834114707, 4587373,   982002918,
    659093061, 99549822,  774160808, 543626744, 386245390, 358444644, 684649375,
    26637173,  806540691, 988930850, 489929001, 603334247, 178965025, 580417035,
    783505367, 307881290, 679248183, 707164186, 522580452, 516473878, 883285713,
    378026015, 530695515, 399935579, 89266763,  262152118, 655338009, 967242067,
    732449611, 342296055, 328864855, 660861690, 526412485, 283002810, 72466565,
    607666374, 947389163, 510685417, 952875985, 546879485, 836248538, 913937179,
    197327412, 893490056, 417261748, 92718265,  290091350, 721521507, 83326930,
    496953283, 619698103, 424940993, 403912440, 428208279, 490543943, 950177414,
    6287452,   189087799, 290005782, 456334093, 306743659, 144367314, 670375514,
    33313624,  404292961, 865890215, 901640779, 168065716, 216676125, 184352515,
    632384819, 282433617, 935758225, 953112302, 715344474, 281778385, 793761183,
    269412214, 623508593, 244737130, 763900564, 736548273, 139032621, 439935622,
    791959136, 538523738, 889532112, 44470864,  130497993, 423113746, 68013090,
    537198837, 315277183, 282861312, 782563436, 777908653, 552647418, 43456786,
    921787030, 830310385, 770378948, 459806216, 707673168, 703543634, 434779014,
    535851282, 127611078, 788521602, 475984630, 491404509, 527055160, 296658342,
    618638063, 605354658, 661299180, 130013293, 396034771, 904655882, 450099788,
    238018506, 525632912, 809899600, 140947902, 400586060, 320061143, 895396380,
    19180224,  287021347, 99231687,  828220035, 458336833, 286987294, 573165616,
    955484919, 635820291, 163228600, 246819,    740680482, 192541962, 963974540,
    281309884, 906659141, 499986664, 493121462, 523620142, 845180939, 547012462,
    15559463,  550236503, 44157622,  49530342,  436761385, 774322154, 680999222,
    415110559, 161693737, 624259466, 712007537, 107006494, 359251621, 813634723,
    843986094, 328813201, 300063211, 193166574, 360073769, 446667559, 54346245,
    496716916, 521333082, 632384819, 533089914, 790360149, 559523453, 170562476,
    358237746, 487920529, 634397338, 919059746, 993150418, 99418333,  277566102,
    104570654, 321551861, 346898926, 344427180, 70775659,  725104942, 901740928,
    974267668, 19503744,  82281047,  526654744, 571623239, 542516445, 767422538,
    803714499, 818460073, 391669930, 717631422, 125556636, 351291067, 144439828,
    111548901, 711797183, 10225115,  21951727,  431399866, 444002291, 635845617,
    477089679, 373801679, 245855780, 295935396, 413529945, 579691066, 949868123,
    557771650, 115240770, 950920425, 999340234, 306549891, 139450771, 276235466,
    833737933, 496932031, 834300889, 938716630, 788545785, 634691732, 397107399,
    124296155, 904708740, 149353037, 815049911, 513227787, 496206395, 638289552,
    748432390, 854652938, 46939690,  353676541, 472230050, 667242939, 531565890,
    821947706, 343688059, 356182644, 318716077, 373710985, 339143070, 582370301,
    534925884, 240206782, 253387728, 350752958, 118430311, 577141062, 661567267,
    787656561, 699253185, 168406791, 298434842, 262039896, 868875377, 222445692,
    181191663, 863284505, 698363252, 822038429, 770975057, 282433617, 790360149,
    24144119,  262432204, 889128291, 33469277,  521405050, 600568000, 591032317,
    179144969, 891737693, 601419246, 738447991, 24274195,  40402031,  788755298,
    65919319,  458249859, 800176690, 108936028, 691546428, 413906580, 931267217,
    740882144, 185808591, 928149918, 353143483, 805111670, 207178339, 740026619,
    549851571, 49216117,  66400251,  556972202, 618737029, 730722175, 16717821,
    418447125, 723198295, 747294578, 962159107, 209054340, 591254140, 684614429,
    270050124, 246537892, 616559262, 390194932, 722530914, 487757714, 645656965,
    141966593, 428290683, 61770038,  455903370, 750980385, 529228776, 232441178,
    40453327,  413999265, 901806481, 81877643,  413787535, 94904116,  77296350,
    858045613, 566662757, 712183897, 261387270, 854640520, 382130573, 397173139,
    449654702, 282830114, 297478097, 787070445, 961909707, 680694925, 899942530,
    959125520, 173076564, 789674154, 208683590, 652825006, 886603101, 662441836,
    814942792, 995966350, 833345519, 414047557, 668653276, 481020397, 704055696,
    533425071, 907655569, 615979679, 794122838, 194809007, 293846760, 16095355,
    856785000, 935758225, 559523453, 262432204, 188788378, 493026184, 84309589,
    941315070, 888278627, 130822942, 967999273, 210821698, 285268249, 744932931,
    298952269, 455204170, 929094634, 122222133, 100553109, 433027432, 152208530,
    621429915, 797232909, 366034568, 905825350, 502449573, 639963561, 238140621,
    774815186, 975372211, 355111111, 42741356,  723800693, 624288618, 464118094,
    903915042, 708234615, 648692132, 162901616, 127119643, 276316908, 769373665,
    564397317, 738292443, 822185045, 5184622,   436946455, 86785199,  723549817,
    346024418, 791519960, 434727015, 164661155, 99796675,  564902600, 958578665,
    402698488, 195952675, 961482932, 63348478,  345362385, 896879753, 355071029,
    911539793, 170449220, 438186251, 799896582, 575469162, 788059994, 683744902,
    545545272, 878110194, 709188173, 652682685, 16291282,  144627540, 202574496,
    502143187, 464457230, 323192145, 849873720, 732912644, 653692598, 521919188,
    752336074, 493945413, 136973132, 339820699, 252390250, 262585375, 478028739,
    590010720, 821999635, 432021754, 302772853, 415771342, 940717771, 879200962,
    122253714, 357478892, 676604457, 907956815, 953112302, 170562476, 889128291,
    493026184, 185360597, 908090339, 39754516,  605207069, 960966102, 181911981,
    410972938, 825708541, 261621984, 431703776, 804092065, 469794377, 909608633,
    3072136,   349181386, 568710986, 427405022, 565932767, 529876778, 220289960,
    985636380, 589204669, 123171899, 395606571, 816901689, 6626284,   302829126,
    315499808, 432024291, 461980419, 405236981, 164498798, 886209612, 730950183,
    49035797,  632001795, 179071910, 147324162, 287177703, 330461453, 582144801,
    145750600, 842711873, 79290553,  653424183, 10145059,  604391783, 664938405,
    298732891, 841777897, 103998431, 894748907, 104821963, 871875892, 371793311,
    860975733, 856223496, 40623704,  686622585, 107982401, 782354316, 677858360,
    31343552,  202800297, 736753359, 586828594, 846725832, 85487178,  720767911,
    343469558, 191240159, 344982358, 557290942, 696838352, 460052922, 627434958,
    175736220, 948883922, 896720259, 867595554, 877728154, 192363557, 203550149,
    35597884,  574282436, 626928474, 595496270, 188176277, 513158579, 157637485,
    468065574, 754585162, 776976033, 890453345, 901483747, 329356087, 70380624,
    715344474, 358237746, 33469277,  84309589,  908090339, 647450170, 952291117,
    932534734, 687621288, 432491350, 71984146,  994280970, 477802387, 838183381,
    471418548, 686822566, 754063827, 13980708,  900736326, 886456311, 270329350,
    59924111,  19021976,  641664723, 817582620, 580769861, 781835362, 932105649,
    534331274, 170326646, 907474703, 49168651,  555209581, 415539393, 209765623,
    840989147, 165267040, 163153046, 108353329, 722167526, 29854731,  766904633,
    901629246, 786006175, 393871105, 34097495,  251262455, 216004766, 248890035,
    96176629,  81531240,  774402372, 901911563, 13327249,  927908332, 856495542,
    865040816, 35270475,  52358540,  787907744, 23450387,  675555624, 788083518,
    257123414, 623138050, 686276691, 44572544,  389352250, 505004325, 696810735,
    802499141, 645526938, 269758175, 622645058, 164370345, 953983016, 682091222,
    802437385, 368043156, 774375421, 587076197, 832459686, 711568501, 510546969,
    266698317, 189514904, 280986333, 721597963, 350292575, 960584423, 614076643,
    24729563,  205174714, 65501946,  499897740, 738874049, 175751341, 968779656,
    687109541, 969220127, 776615002, 281778385, 487920529, 521405050, 941315070,
    39754516,  952291117, 224966740, 98081586,  235956301, 811253558, 464846486,
    317849065, 717658123, 811166048, 122182002, 918812281, 85789391,  983207723,
    197980785, 269251009, 531678959, 556352072, 507142430, 599181389, 348098521,
    763245209, 63500292,  411370160, 583746005, 77749282,  772313545, 784573865,
    495559219, 283661663, 260334539, 763071724, 955797845, 517212962, 940323007,
    651895156, 148210314, 301722793, 871949944, 977422757, 731078157, 706754818,
    488798798, 427015366, 975504599, 366385145, 546977983, 32298508,  936927506,
    796645270, 836150128, 842917996, 319075542, 905234351, 387379369, 109219215,
    364280582, 158123253, 823125995, 51038046,  65700931,  243698279, 551151644,
    997202867, 959308893, 384375964, 871376125, 700845507, 745715635, 519569370,
    203834215, 475639578, 383494499, 992558202, 937730706, 615378170, 330102036,
    723837840, 932865142, 490981242, 840284897, 727054709, 805997134, 113561720,
    614381792, 28539852,  325098591, 781544842, 553309414, 732185437, 312453286,
    115552850, 313035773, 429153502, 316132891, 856111847, 315741664, 793761183,
    634397338, 600568000, 888278627, 605207069, 932534734, 98081586,  10006277,
    88653036,  997398318, 442731333, 37545949,  663552328, 607659028, 927712570,
    428218968, 327093164, 839418256, 862311501, 528081946, 693242914, 678007021,
    789049601, 175400854, 338026168, 332957793, 486173553, 907670721, 416413765,
    966002645, 104736125, 753387876, 575575484, 402469313, 918420756, 16005516,
    810281269, 147501382, 641580941, 649912741, 600464301, 567610432, 170127717,
    265422340, 134447836, 410159600, 605930394, 888156591, 17630485,  162704978,
    435591014, 798802110, 478312372, 489940308, 484878216, 303490578, 368200478,
    521546489, 720479187, 430317484, 606002952, 800351555, 288001784, 611863796,
    54759232,  278023777, 440756403, 130644509, 551997635, 2333815,   711799461,
    834331405, 471352823, 204979417, 68028545,  884437792, 146447723, 25633292,
    452614339, 224758981, 538850913, 404417046, 729699331, 888388236, 673543488,
    491660509, 359672314, 823727529, 514218998, 711044136, 174253041, 542628921,
    838792876, 521221565, 960316104, 54089722,  814000662, 613831899, 175727605,
    431504527, 932775880, 269412214, 919059746, 591032317, 130822942, 960966102,
    687621288, 235956301, 88653036,  157975247, 800339530, 221024209, 269553298,
    439079683, 86117292,  13384347,  959245307, 461093431, 440378760, 841548124,
    757627088, 652582689, 475956763, 922827156, 912086665, 789185492, 622090968,
    537874788, 290779456, 68941091,  469745270, 408331320, 593153368, 388667576,
    354113993, 24610356,  142326446, 840153447, 637413239, 518549279, 926013624,
    921988149, 540969685, 479042120, 272627275, 760784199, 8945394,   647214013,
    658536061, 395142538, 212372338, 721087391, 364434864, 395491840, 82701015,
    795152988, 491930007, 193720221, 868195879, 515139011, 130985538, 237023970,
    744298371, 74720101,  201040819, 883127153, 905178328, 735837732, 334516840,
    284887146, 472939563, 130421066, 206149168, 261719816, 791659718, 33946279,
    656298268, 11601265,  918693778, 895470786, 147744432, 85322097,  799972647,
    322445626, 358203592, 631086991, 23775069,  433410966, 243132458, 859120026,
    455180838, 519052992, 893114827, 944633566, 123073345, 246731025, 755581876,
    559356523, 625010630, 381492835, 83144711,  889057140, 623508593, 993150418,
    179144969, 967999273, 181911981, 432491350, 811253558, 997398318, 800339530,
    834524391, 88519481,  435388754, 651191869, 163462535, 551818519, 826050914,
    729662691, 782373425, 569641842, 345825514, 367969808, 262388642, 82040700,
    161420159, 47746611,  329432468, 330947302, 147558894, 220581436, 537954086,
    74523394,  359121527, 742645326, 436650391, 333742070, 840976849, 992650904,
    881655339, 870040350, 881383667, 35447189,  753634343, 471533701, 565902823,
    635287511, 371146696, 104206064, 974944011, 844920393, 597497254, 24035915,
    828040798, 894752379, 868111887, 135403272, 154550687, 644541651, 806293787,
    467059332, 42582221,  281011302, 135862659, 565561415, 545526014, 960726342,
    629766143, 791101315, 760735911, 214550416, 644191492, 458916096, 782921081,
    787362426, 56405622,  149117435, 445779762, 744840128, 160350054, 5766489,
    533750143, 767368883, 154298619, 312400720, 121850974, 277725676, 279198809,
    230743510, 795213982, 110930202, 683181397, 711829009, 631680776, 709030510,
    763876870, 44207057,  567936052, 801028851, 416469676, 723236981, 744338614,
    419636797, 244737130, 99418333,  891737693, 210821698, 410972938, 71984146,
    464846486, 442731333, 221024209, 88519481,  384546895, 518999557, 590566992,
    193114501, 772577697, 198425702, 779118254, 169285502, 139332621, 999024553,
    850161716, 199638241, 587382366, 892654195, 673900342, 55694924,  964149297,
    852827533, 443564197, 245023977, 714944181, 459870643, 391792539, 160977092,
    535085780, 348252876, 292568125, 319512352, 675912490, 611827677, 355819717,
    964119304, 625581542, 963606955, 360050977, 467435764, 827885757, 473192584,
    949213672, 166502131, 769047779, 331846198, 555774498, 927942297, 236466044,
    131603491, 862030509, 271439229, 351462399, 886431552, 841440067, 446105639,
    5569918,   89654831,  114309354, 426132409, 697578586, 29484540,  470388744,
    780152557, 394239554, 435485280, 952797005, 729721440, 56324089,  868827708,
    139578022, 951506987, 1614616,   113685518, 210497181, 2569170,   101429293,
    516566212, 778564979, 557036444, 837834986, 567267647, 404174504, 718407815,
    877108084, 655834394, 828079065, 228755828, 377026980, 436632606, 485380219,
    917600550, 690259201, 199480823, 306390970, 763900564, 277566102, 601419246,
    285268249, 825708541, 994280970, 317849065, 37545949,  269553298, 435388754,
    518999557, 887436798, 661820294, 981376200, 346872636, 335617957, 385838470,
    861087587, 77118391,  154894718, 826211466, 903319449, 74463253,  337275586,
    157220482, 383682062, 221782898, 460046446, 428035549, 147508269, 303462070,
    536658530, 745133540, 682785355, 783979930, 505918021, 691098743, 646633451,
    450411705, 543502005, 527396912, 274852762, 567651919, 46830102,  616595037,
    957215079, 623836197, 890472565, 351654840, 952225165, 475635038, 554144848,
    418344398, 668002445, 627253211, 846105441, 590950459, 79774132,  206801415,
    440118402, 704781419, 444845164, 849184596, 614859099, 131505531, 358671042,
    206215396, 63673484,  381910173, 132638936, 98053525,  119080228, 157587740,
    452711079, 965768160, 719056309, 34347347,  54521903,  99507190,  237828018,
    788800909, 284325332, 737941890, 824697581, 902113415, 191924314, 892288511,
    639688001, 248839463, 824982503, 827506348, 270155645, 116536879, 944262512,
    908725452, 70391344,  583832432, 617205312, 36955194,  875179134, 210071127,
    736548273, 104570654, 738447991, 744932931, 261621984, 477802387, 717658123,
    663552328, 439079683, 651191869, 590566992, 661820294, 498249215};
void mplus(int &a, int b) { a = (a + b) % bigp; }
int m, n, ans;
int f[152][152][152][2][2];
int main() {
  scanf("%d %d", &m, &n);
  if ((m >= 100) && (n >= 50)) {
    int cs = (m - 100) * 101 + (n - 50);
    cout << data[cs] << endl;
    return 0;
  }
  memset(f, 0, sizeof(f));
  for (int i = 1; i <= n; i++)
    for (int j = i; j <= n; j++) f[1][i][j][0][0] = 1;
  for (int i = 1; i < m; i++) {
    for (int j = 1; j <= n; j++)
      for (int k = j; k <= n; k++) {
        for (int s = 1; s <= j; s++) {
          mplus(f[i + 1][s][j][0][1],
                (f[i][j][k][0][0] + f[i][j][k][0][1]) % bigp);
          mplus(f[i + 1][s][k][0][1], -f[i][j][k][0][0]);
          mplus(f[i + 1][s][k][0][0], f[i][j][k][0][0]);
          mplus(f[i + 1][s][k + 1][0][1], -f[i][j][k][0][1]);
        }
        mplus(f[i + 1][j][j][1][1],
              (f[i][j][k][1][0] + f[i][j][k][1][1]) % bigp);
        mplus(f[i + 1][j][k][1][1], -f[i][j][k][1][0]);
        mplus(f[i + 1][j][k][1][0], f[i][j][k][1][0]);
        mplus(f[i + 1][j][k + 1][1][1], -f[i][j][k][1][1]);
        for (int s = j + 1; s <= k; s++) {
          mplus(f[i + 1][s][s][1][1],
                ((long long)f[i][j][k][0][0] + f[i][j][k][0][1] +
                 f[i][j][k][1][0] + f[i][j][k][1][1]) %
                    bigp);
          mplus(f[i + 1][s][k][1][1],
                (-f[i][j][k][0][0] - f[i][j][k][1][0]) % bigp);
          mplus(f[i + 1][s][k][1][0],
                (f[i][j][k][0][0] + f[i][j][k][1][0]) % bigp);
          mplus(f[i + 1][s][k + 1][1][1],
                (-f[i][j][k][0][1] - f[i][j][k][1][1]) % bigp);
        }
      }
    for (int j = 1; j <= n; j++)
      for (int f1 = 0; f1 <= 1; f1++)
        for (int f2 = 0; f2 <= 1; f2++)
          for (int k = 1; k < n; k++)
            mplus(f[i + 1][j][k + 1][f1][f2], f[i + 1][j][k][f1][f2]);
  }
  ans = 0;
  for (int i = 1; i <= m; i++)
    for (int j = 1; j <= n; j++)
      for (int k = j; k <= n; k++)
        for (int f1 = 0; f1 <= 1; f1++)
          for (int f2 = 0; f2 <= 1; f2++)
            ans = (ans + (long long)f[i][j][k][f1][f2] * (m - i + 1)) % bigp;
  ans = (ans + bigp) % bigp;
  printf("%d\n", ans);
  return 0;
}
