码迷,mamicode.com
首页 > 其他好文 > 详细

BZOJ3501 : PA2008 Cliquers Strike Back

时间:2015-08-09 07:08:31      阅读:601      评论:0      收藏:0      [点我收藏+]

标签:

\[\begin{eqnarray*}ans&=&m^{\sum_{i=1}^n Stirling2(n,i)\bmod 999999598}\bmod 999999599\\
&=&m^{B_n\bmod 999999598}\bmod 999999599\end{eqnarray*}\]

999999598=2*13*5281*7283,对于每个小质数依次计算,最后用中国剩余定理合并即可。

对于贝尔数,有

\[\begin{eqnarray*}B_{p+n}&\equiv&B_n+B_{n+1}(\bmod p)\\
B_{p^m+n}&\equiv&mB_n+B_{n+1}(\bmod p)\end{eqnarray*}\]

根据这两个公式,可以从高位到低位递推,当$n<p$时直接输出解。时间复杂度$O(p^2\log p)$。

 

#include<cstdio>
typedef long long ll;
const int N=7284,P=999999598;
ll n,m;int a[4]={2,13,5281,7283},f[N]={1,1,2,5,15,52,203,877,4140,21147,115975,678570,4213597,27644437,190899322,382958947,480146167,864902768,77080323,744549521,179028420,7054491,550147557,604197592,570342585,944062145,387879224,401449617,770869529,183414916,4280247,316746725,653486782,180319907,335856599,70468498,855407155,983433965,231403320,149249947,648913159,340460910,764716907,977561149,326938348,99934771,159695771,626278792,62670713,132653247,59357674,527142103,661211915,149126128,333857527,661708683,347209904,142574663,984776691,235283292,339165187,737258613,921812370,298840587,714855343,785747412,578156629,850854071,611687532,883228189,646494861,812747584,801181323,354062485,734584914,588941721,569513841,723841432,458361117,398864661,539856762,30592783,598895321,926051332,667372881,402414575,926090628,722615155,320574843,532450284,483632183,239195859,264476384,924799697,754893475,248176184,849558909,698584429,351966250,859990297,326608249,888694306,182458039,449189209,316228194,712827043,557174983,137060034,74870913,89997181,326766670,293149645,752267857,829957972,33192877,894072489,879345308,483869167,294614041,229279162,147355423,663762555,434644220,577891423,395447259,166001994,815927023,439369581,923609006,756121781,375132429,440527804,467644699,917110397,341694806,8099431,759390805,187880772,752619443,321726629,35081380,211716005,943383293,392628286,693149851,346004097,833807682,77926225,58368823,54044814,377428017,843016025,182906320,604981549,411523231,525819950,697374615,129688937,159913614,719670399,248834085,146155566,781605887,828105927,719951836,364560029,750133363,108278620,476287313,89655075,615662194,18816105,714687271,971074576,702005273,962271943,268436914,752732391,417318051,45649006,821761931,275655885,626310536,661558521,8050817,707181348,751265371,714138091,594617414,221647491,89830795,459417056,211520221,363595259,401284460,448154441,251405045,30777758,651569713,469482107,879962712,759397211,99257069,479670226,685537083,199771043,181375564,366575065,530619845,366720490,64477569,711148287,469133244,758124789,516385353,696751534,905517047,762290647,60670126,876014261,31950283,472741914,266114855,66511619,428323194,686405513,606618697,107645162,986590869,197599097,167363454,902480321,874475959,98575902,567528183,211143515,201102868,304427839,654963761,717678582,663392293,672583793,849521470,731542383,615877777,740908378,75957645,3910243,900214474,210924005,978314777,963608796,211029509,537904487,64855820,620515485,940326291,700070524,405448913,267978707,471833338,21731927,895617857,244285488,481615455,160672985,430869120,88829931,840307039,406184472,10392469,245517423,846557476,999479791,210088281,339725044,797121443,847375829,389551472,906317829,759468939,890227694,492710583,457082513,727917430,623422549,909579929,717039618,752522365,531435595,721105488,944893689,320279293,354704896,165277287,697896113,542521886,72244681,315361365,375651062,901486891,141381629,479208458,880566659,252763831,705451262,850703119,715858791,898350026,755113319,736185875,557429614,112277789,399985539,516739288,797693805,855693195,706894478,368216617,351741433,571675104,373389745,106539441,156009864,641957681,689283145,73513198,423856783,479848439,907273286,723297789,64519773,565096458,150684223,793006457,184645700,410301175,702511595,854174864,25297341,953436865,692328600,618990271,916323355,31185424,981914783,661239901,443987948,499503085,689810879,345507464,114387339,688902911,99819960,123944631,981151147,460242194,953417103,158853749,674234416,708099149,746363547,284374864,721732561,267931725,841141692,450534953,808475155,736344724,940364839,433029211,985001732,930134051,109646561,45813730,350287793,831264031,482658654,34918779,270985941,433036102,882964507,18385135,797584428,637553685,100248421,801893832,494551433,335012585,635358942,683239163,363317309,184836688,537814577,845553707,303500450,721013689,600441285,753782314,492819377,931297793,133381828,734889369,113341345,457163422,780138123,109791993,405672466,914083663,317129587,597850254,451370891,378762145,875356916,717574859,139483727,57894786,401175865,979052513,979443988,371634669,840745523,289880938,223427683,609525805,303686240,47083861,69134553,845731192,129340081,98017409,465780484,439408677,808928897,828013748,146530781,409143751,76293482,527225263,936259389,120822456,267846781,133115199,250046624,828233269,907151365,408801718,381317375,938624801,250935810,611195713,383694317,509855672,354246589,578989479,889853034,540792995,75407003,455579738,627925997,185099389,511281100,21817607,566062683,747390404,368634951,991117593,309533544,986565431,931749921,518117950,354006809,262617021,956167822,335978355,823521423,274513718,267259593,825331319,787679782,999223929,303716769,973268748,780116557,13293453,72939584,528943633,527910313,862242194,107930421,380412705,530999560,257772185,227069603,936449126,906870649,520652941,956908310,531386427,754086221,637777624,451461305,49830987,625854382,653421933,428811489,867608348,477201853,302209335,116724436,583108897,939848161,658530816,701787891,297071951,416584592,909517263,107049199,359101052,731160255,796324643,892412244,161269853,932968269,785546606,396308985,866933827,242515028,245887681,926217385,406098246,583813469,580019405,227135226,537448379,743995021,20599942,246685589,893519367,889837684,216735313,408785431,972837304,555709271,763931671,496721430,723426099,708823079,799018430,497910107,235810907,530815722,551822437,260626721,632540232,740575833,238215077,416103252,240277521,917824579,404842196,399603927,397546877,327494468,810065157,34173049,599332854,565651797,427204823,192526596,378238831,358274669,42899078,139006179,110599445,915260010,797426221,597033911,91715992,723249305,728322571,513718408,43001099,605350195,268100300,883009713,930421097,769727462,390210869,34530509,977500950,927010893,152366293,106898906,270443959,475565083,88500498,490240375,741297735,798974428,35078465,304488635,671162658,331474143,10155591,845848014,621331051,174933979,909611730,869836587,185415773,185196532,558744977,805013757,736665520,725534313,646842343,739252230,851228223,721871009,422078150,982065965,47419287,485007820,15708861,508685645,116144504,503297941,942660447,975061912,202294173,435911479,534810538,446212361,847900823,635878312,811638721,447029725,911002204,190601409,573485657,201667070,626172569,157011107,526910142,88807965,946028265,585241248,796380469,569622725,696909090,393910081,579591391,804170534,181283599,907756241,343719764,623418683,839127795,181992558,148681359,916436557,268332028,100089743,110896963,80063880,332257589,187965185,800324876,137193695,343303041,468906470,705486693,133134461,895092692,514202627,454283071,673090790,825824793,576398283,473220506,124409677,296078957,213610588,324857333,916633127,378590620,716346439,547442907,655498132,828333775,67819421,659484590,135571573,929277109,538610112,336063381,669600739,15426852,420999301,779029577,559627654,664988505,245987017,785870220,78600839,297103743,192325466,546386209,452467125,844453884,582416543,25484065,176545696,899295787,334811739,184645222,446412197,82454677,529995280,17066023,662806987,566615706,393325239,825969901,837583628,470490321,175901195,80049226,502334851,745625429,170393602,786742901,863145073,676876868,102631583,17744517,169769354,93177799,637128691,79913950,594759817,803628171,844442214,281953163,875224071,612081954,694163997,254102511,731223284,228527157,745358787,503112886,527776523,356410623,697592740,862749371,818882095,689144362,25830165,20953615,316815576,335662275,952084957,731280492,971328349,59750663,265299642,564809287,664875453,806437686,758154937,114646445,977228986,895212031,989667567,953511610,952940571,189880667,267934064,775745919,351160561,142520908,695514933,55803811,703978870,863254293,476842747,465741436,144250649,282419033,611222778,550801831,955951345,998364908,448799227,294692327,988564910,499127579,85398673,589115002,496269099,783548659,122922628,292567475,896954597,975352514,152988057,828400521,152862114,154391923,441959347,804490626,692913685,272153425,922643092,664543869,780695511,882887472,198143147,611993851,857498046,747731009,660613273,39206702,272486019,608880279,100077970,531790463,62460281,115410188,170564257,275973667,96049580,523407067,342728419,6952358,231197111,572599411,705988698,201360537,99336623,58448764,501234009,4391167,653976516,178045547,262907471,814292886,676087853,937698043,451610880,144363947,723684933,953647220,382771129,245214623,416256034,758712125,843385529,147228002,773758495,398791479,471288690,331458471,20064613,748019704,976056737,538945827,404425050,945736481,106566435,47221406,208588369,405376125,680461480,27543433,915273089,426764052,166814423,414194713,645246466,116896173,412840651,501688940,85738705,938064881,488009946,840188835,350981785,7723940,105536427,672290625,113970484,845267577,111847677,639567722,601274829,48010443,247684,732327245,154487817,709831266,937590055,294866977,878835578,937957295,506540519,376648006,601631771,45099183,533667792,61602523,62536763,693556920,822618251,990991457,148330038,832032915,946594057,951873986,820501455,359606337,244958786,342605357,930508863,876951264,292011763,485240393,448114680,390645435,852841085,312989356,529566627,697693041,444027642,87305527,863140981,347989140,117242201,889486447,883911484,582162319,417002251,164268880,59943139,557173953,589860946,418630267,806294539,194973148,230871761,245824153,477595696,249048383,194979201,894333270,452152797,737270489,774819250,467116041,418807143,164059224,626359431,696583855,547814744,858792199,811048199,897348322,977773489,501713679,307119440,260523145,35980961,737028180,298724205,91331125,692554228,545036519,525764829,869351210,407966199,530703683,896588670,847459239,560548029,618883026,517104879,716243803,624930934,209082513,787706575,969549586,814585035,110113647,777886726,608893915,747014455,813183472,299248053,917320307,691125194,707718915,806443829,643437312,384229361,785855965,815867234,97028073,169060877,358657678,89222533,777445429,275402296,464936095,673356089,570206410,260430619,462772421,388942110,238328245,685008425,820624480,321008011,203274803,170649018,303029675,794156873,122178638,32878899,376189217,957179384,844866851,825220795,754661918,345487297,737099275,426217868,297090619,306317365,748881510,764042719,842119215,439410874,40627745,218915885,471305516,35319345,635088885,572616448,508865791,790597415,260485020,172082831,866512777,71789284,966363601,607589705,695149324,519150595,663645747,236457562,835485761,806089455,40152320,532573549,895507221,925820410,835742807,909514427,17196758,262594749,72973667,504406384,446239829,339386289,582287890,970011017,764308063,230796078,221358005,492405283,868800150,700212313,28575431,986694216,427192321,309954779,219575002,732335633,607592713,398399682,285016047,992454129,822999700,791719089,331494341,201322526,298547715,450027709,820882622,567319025,525146755,341444446,998460927,417368895,814000610,404650683,753680513,644264138,756297373,969177117,981851366,603738097,179818395,898858540,495892541,712204809,330295968,6589975,773338133,856530362,268875345,791770329,191258016,41789803,607687981,814972338,35414089,6355575,585445698,360556889,759434609,108411376,893997777,331100481,592138742,390999821,722233363,200685526,163089167,590904809,729833050,976486079,861569529,796551762,842931029,440098445,626122988,402215467,154656305,266046478,731917897,682702821,602434130,490053559,112211605,112980902,132067895,378286713,568911308,695688007,588299467,422645126,273545537,282989971,299798168,337105711,540844727,520730594,405570353,855354731,427375510,227441635,402043047,481818918,132377205,8922195,692804630,417849381,357624671,204963370,785791565,265296593,356962112,274146777,358809537,577680206,908324711,214461463,485153702,696767057,504188505,562351636,20462573,152093633,755953266,240304501,795906283,663636604,578939329,675832719,885409176,563039405,834410071,362872956,477567301,192565819,358884428,225473493,214228285,379732948,530745801,900559163,333506568,299617573,849606401,204139694,578098593,192735121,795563298,496370541,88046097,287560788,647218687,278189663,254824988,518237577,217160673,364542190,724049559,902919733,544874802,6269017,620006569,136476656,645552043,278057997,471269110,452137155,604602585,544817794,125005645,342636177,526608594,11314347,783658747,673697054,598590197,420493569,554356630,802224009,313537527,55602394,942312825,584064635,918399500,217478453,522930869,809720020,503738067,394707143,515588422,857456429,438462277,268723098,206896809,15159037,421211560,825217369,706012687,283340302,793406269,35537281,954147516,149306361,391587343,619672950,549893613,661485447,154901448,421059215,187424021,228041672,187789853,612976903,241155704,741812909,933101351,70613898,497957625,271065621,742087774,872414067,588559241,257579302,624351083,369997443,886676404,505605155,346966535,268162340,317218343,861791571,133798724,567324203,813541315,249150320,772339397,877408261,386099402,169068217,902742707,257836212,345575975,588414727,596881660,805299103,190344693,227562132,261127101,346915309,710615986,716514597,829817445,229895308,900622737,174812451,397252910,837631791,684844177,567178948,609731661,260279111,53975898,560136117,182438147,577857574,837491623,562058623,940349160,984212929,342109261,498175680,25880417,97466675,703339926,690939545,758299883,638748906,835232127,672746961,879405234,443067191,313392961,170190204,735587937,428821469,186443748,142578449,770900221,735658748,435784367,872543287,480120520,714514243,307328859,801726692,310421119,392691277,678707284,204502789,754427505,724050632,217424699,498532915,204077342,458587763,619719887,249887124,108153677,637568879,609122188,917435641,186270991,976696974,500044055,828864785,770696522,730989959,729468081,955962306,621172397,476363219,991684848,369663493,396182737,484745966,325079765,708986251,873464858,735202659,94691521,917740126,560135863,262531823,989594234,713340799,10214431,725304988,944014851,907577017,302112816,489040073,389389791,2927034,997118595,388569723,495093560,597435885,900899709,670008220,488107365,61190307,569038588,978827389,715892359,588413570,588252091,41354483,973297854,153921593,711935993,75660942,958561997,811100083,703311788,257030717,299723457,65101586,774692999,884732237,60921728,775724017,533457297,328539648,70826687,82349583,943247914,836056577,510698359,928591454,646025217,328276521,261311904,365877863,470644511,342306644,608695117,648853777,173813850,150944459,230847325,242420776,870783645,659824731,12230488,921113501,180844195,210140076,509542067,793823047,820809238,90915739,293966761,423475098,862971425,290895811,391270624,297411835,962691439,539337294,974640691,255185969,532755710,880453165,835545843,53283442,977377347,198920659,639986648,917666695,517522877,132660382,544785787,600365113,879499288,104579319,905626653,687661916,409299529,570840985,229778722,747735247,675684787,228494862,948390713,900131853,890590716,319167737,856238067,697827184,60125853,359165237,680898846,199742299,412845391,509362538,181072627,184586565,770449016,301774675,811525001,1794232,652712811,672399959,460184900,731407177,340843269,85225406,398238819,845235835,732421488,212044241,707611159,80991494,898041321,121588591,693665534,303953,670885261,341839972,266321325,866357329,641175582,197803059,708998733,184982714,12483543,880421921,914024056,668205671,605295191,802987406,264223599,565381469,325441832,449995241,795540759,799770694,608783111,595186133,678745924,120423043,104102983,776254018,685707935,409632489,252879670,781817213,980180923,139684904,641453991,914646587,570502694,288558373,550520747,792149310,558300337,229984621,73835096,720903351,934592063,175999228,851118207,154202483,711531826,648395911,994048129,720216420,969751953,512500579,155226610,993716447,218029059,597237450,536512073,739441921,637922582,853806901,154585811,720801104,51240789,456199101,320528974,250324427,297556347,633005794,767755635,201621579,733341864,424773515,531896341,653633370,16318509,135925591,299995052,420841903,37210887,745355964,299933753,862158193,961739816,230699877,350764933,786764448,915571097,319586223,131887888,220511441,519432537,59703866,590479985,375687561,40637556,251177657,519704813,400144044,1846807,630422423,922580526,560581563,600265413,389678316,226260117,473907375,764299328,949270271,58458095,357886508,558300693,366071415,703325588,897737327,915655965,801633672,156107087,282609481,595437134,596587031,80485257,464026484,456378761,633880127,651184052,389140099,190609623,493687452,912629953,497164217,465415968,820278973,513627201,572269770,666120149,33618797,278812400,480089853,185622755,853947374,883443157,456244859,544098134,329021535,670617197,703672310,372944949,10290901,447993130,352543053,706791633,60426028,590959011,814956887,822384186,599213127,462815939,933859218,236075609,423523539,805828462,196226581,14086261,268052930,492294939,340207215,15661286,550562551,944626625,861708244,209394181,67927327,935670158,726032153,61883795,11186522,670121005,472843803,568222266,299668171,600876913,601005640,462960085,293457589,706300446,394757879,172718547,621922426,546368541,443345225,536703548,966246773,805993809,896310884,832082047,608987287,255464732,129119071,625614207,290765016,677275169,315571635,79876266,982476627,654881209,887098808,87212767,922645987,919643090,765034783,379325453,690071986,899250477,297863619,587155300,978474267,828444627,78406464,86467137,251034779,508185982,419774467,943322737,281643654,407178019,42089797,912237864,510684637,484163473,298401756,39545255,121540911,84903572,368090437,756419587,341972578,766693623,948333097,653861482,67064127,111518585,961414744,101179493,197017711,642270458,460519319,45306431,482961882,468463157,24691359,695854872,617083377,592713117,727155208,875271413,106412975,570396468,561092491,707781257,736841678,928261197,347459265,419851720,975338285,115733459,513417108,177206227,270025141,483862780,397189575,506907569,762928792,615313355,352687117,669435168,30457415,223701851,3281726,519360347,607766457,320099748,162116969,302438307,542881886,540715249,156399851,388878492,943114471,52071029,910921650,663743345,373526177,364106658,904409813,563096355,989541790,241323963,994322907,770450966,384623059,384277475,561047798,502854853,224889733,921036146,176739109,273478541,226951978,768770613,347761261,431020192,822781103,629288061,136198682,729015215,662192671,312188208,486415987,782323957,423986268,609183243,126791421,224053942,351616115,73682661,81793616,350583755,140405099,351742200,676843231,356127893,869716838,999001481,194623477,983879544,81393235,805573801,754243654,281713247,258852131,364530654,848036543,745576263,628359440,813947901,847638473,204295358,870417365,560186595,881125480,178445727,186274727,672431304,955319895,492314309,351836300,684777243,65893587,422398678,543979767,184642165,229739674,725044053,312470451,297491156,427214225,632019053,737724068,721721875,118502215,345899222,274630323,971291931,938994746,223363401,282937057,233600544,36714077,545719407,977288188,994408331,337593273,145342554,400615903,552504061,100773244,805305165,43355807,666253336,218813119,614265193,349937814,30610177,397177389,248132310,16493911,223637977,68568518,402832627,329787669,194898154,387882469,106001325,492020894,241129985,408294625,864744122,983407167,393037485,719228350,55870419,834585393,57873802,671011337,24113519,801117384,159892791,56657409,501006044,667888933,291022327,476925506,864968523,778297909,942782286,90380051,271809717,699194720,851538709,691846697,623122912,66956269,89000673,292080610,131284759,218469357,633187064,203011353,726228547,897776828,952538507,203138901,450739190,857896285,550085339,221863146,808489173,811279635,622057350,776376005,808248159,647503186,381799897,523018043,301764810,694550107,994103549,66342480,969255335,94915413,589265406,561563321,391185619,309918098,425377917,352921933,97918338,437516703,317047355,195300358,647373719,228662477,845801980,240569741,314238535,334997548,394561257,753508707,742250026,10030161,446199001,485269766,413151425,918694747,232867090,418398545,26903925,738184202,395302623,443014041,325158146,427046655,613011047,129871776,799687387,736328067,414945450,141138199,879505031,435341242,222467209,527001387,204303284,355176247,248458179,181084768,558569089,990025165,285551140,748576443,699177501,33785648,541839221,819951879,381750336,509846545,899622547,293695456,80361483,107669899,841366178,443803225,528542131,246435640,348489259,266877813,714482430,713279157,91227999,691354710,793628377,468064759,576847650,821909203,688440761,940691150,831554773,540156235,194035406,560796761,605959105,793050348,32261219,10827143,998599610,484159065,726596773,116007194,611481539,413575687,254016712,398786789,426188441,501656100,146807793,347582643,737891892,28755969,636396403,580408722,98369983,885407573,520305324,361754457,894991761,194355252,331046403,650380725,172895452,365223331,300974753,119401194,102453137,894489071,982758144,918884179,668368805,887752750,445415151,348002141,81365202,265626797,631865461,736966754,577562463,465570315,61583170,739526979,689517119,65141662,976093339,419478155,113060040,379439505,914824365,197637762,590675489,905437831,759383080,443531473,149614609,643161954,351250589,103932899,351496360,125939741,228806893,523724796,134616337,756478593,816749882,75047553,829522209,71697074,51887739,164858245,392953820,26295099,165451385,707694572,507658237,781425877,890360172,253110581,485452271,365221730,579171581,726991759,690034454,514397713,526207221,950210802,666008949,317726519,480131026,421766939,667874637,113929070,104170109,59799741,337810426,589479933,222611979,314885586,507919389,204175115,107071826,165110459,938907759,563943922,366982615,562659583,471161606,374326675,85676235,810404732,518743087,998118229,3659284,148693231,463312633,552498914,802679119,625309637,702725944,347154289,54377365,370328740,659960755,808427863,435187658,238947465,877723953,43099066,845391275,398738365,897924172,73980139,181177351,925413702,491271717,789992003,651443252,670092409,850753805,413967280,365665935,966079049,106456442,790046167,682087487,18208550,981836615,940774883,203950006,265157299,613630437,501689686,774357919,730550767,801594990,967837015,40260601,483079518,884098035,998887099,54366360,921695909,59676651,343090522,688008881,666694959,209646254,130658219,998321837,931015660,577559919,528336839,247366338,533934167,499219811,73904756,106881537,816092637,862840388,312830897,564400703,234745442,737050097,781353799,410134948,777243985,331994701,537194842,517388819,12011745,7633174,310649049,234388789,160151074,640390335,880236301,850979110,213722405,711206805,686881612,448868369,783450789,991185034,807563639,253358801,809128232,414117605,18472905,638825736,590163919,381049913,15412044,156613485,663797399,883839228,587030425,230326531,241571782,329817691,144178217,831280046,871883295,287366707,481119166,338047463,288551829,363250554,425185481,405037295,180988668,554480867,984860327,296120162,531675387,882278333,555927410,649512391,155319275,223628988,736141871,655197679,873712154,366934953,942342441,797030464,979767551,714497989,600951260,544276727,344815811,724369430,334624753,38179157,420142810,440462501,983731225,193887990,168559513,387421703,584831582,250080773,658746461,138960114,183366833,562116787,145482076,235999615,416674291,384574898,364159733,265947849,286666006,683194711,428078329,315549536,365351955,669622575,176641228,600077081,229061769,124330544,375940495,358011355,863486586,295456441,6268815,425852966,684289915,13679281,255988728,169724103,465289923,556913670,247356065,613185529,466588968,606256373,876834063,223321800,709268511,492755707,945679410,893750167,713488851,930947324,900319585,689412337,128756858,692317011,468253899,715935000,827331859,662608783,28418600,236959435,127478307,30881076,77670727,946875669,277655338,820817379,490827381,209497298,771882219,987728919,51882266,389996425,509169615,2188966,852301459,449083963,683861098,477381285,555916813,868164494,796225977,941334575,488798858,857630989,899895145,95889332,171996587,302690387,502017582,515803199,22120775,153745110,646580067,86492159,669554796,770997587,947666811,669250334,264499133,717743827,331525532,576691885,979025661,44389904,219561877,81053313,155163542,744274957,309722955,763976342,833258167,717527301,578308076,840764161,580730923,270110610,610899447,554332043,972819098,195799095,369439661,353926698,457454049,893172889,412408170,676998619,620405509,740590808,161677313,27591727,338331808,38720749,249421631,446586518,895328481,655156695,828658782,939887809,229009541,182532368,578671965,322443497,319557098,187924943,62349579,579761668,481406025,216458443,497193776,199982789,59319881,62616410,629432849,404049529,713743084,766498461,934394777,742449576,761545357,96213691,112029730,696754949,243116435,372208404,501812589,950147815,902857802,460462551,850316563,637008608,645866129,707509429,491767688,550289871,834519423,312087008,888298347,350655693,8422864,980392041,763819051,259471232,253358041,229872203,410508448,444345275,511918951,988306744,348083905,6832877,246397716,263510975,186410965,302888354,447885953,764220993,770348372,291673157,774053275,816810872,228242829,717667781,255299374,817746299,592146581,837065634,104050957,64228305,516539040,533462225,267712579,552665648,385575843,327165119,501707418,175069087,343812163,461495166,652728153,225902503,686169460,882507211,851677555,135384294,147190035,866283039,989658448,42382771,59417037,51733612,336519171,972244345,934836484,90795201,688027719,755618728,451257025,373904053,421493706,809749461,345488123,48557898,936485845,951193641,476437862,885709383,400291819,113207844,346029845,236375465,436294456,121156241,943036751,583489756,13612763,509575239,330733818,442246081,457663081,648034310,446210779,272549647,804678980,223177381,31226083,973197120,447232981,238801393,479746426,267534959,535416969,982969630,212084875,358275873,960884516,719475249,515591495,79502674,533558817,930109023,848951118,619527525,867130211,984110428,543902029,35303173,762843368,427600777,643302779,991220770,380539331,725129793,448930340,976204601,4780495,75851998,186267247,799178579,954977592,237010495,119302165,997869388,958306697,635644465,475964982,461454249,284667357,703658208,861348447,814873515,189736132,137595527,52058827,466970326,672987295,124169459,552714448,393081151,974784937,252697724,269177107,55470167,3267214,277685153,786916331,866466646,913390319,715786491,711203556,500212539,301369631,275095186,4709793,298569989,105106106,318863435,247626013,590636006,951283713,884328121,725566610,427052567,566403369,324286644,650420653,38543869,803188468,810599603,222575163,934618136,483501553,486303159,261256700,49539641,117597043,633477460,405514413,812676357,556900894,536531059,880243117,518763910,489436999,361190121,517779698,762989901,851423183,894738582,430052191,255537611,242667584,979297803,54581279,21726330,196136773,771933401,509297490,664362821,301457765,572913936,520616623,927962647,699918720,361484675,475521477,646486140,131278709,582496557,822049688,83761189,892198323,696257206,788639713,918771719,739477968,734514963,793758987,676758098,737075837,225003411,340866654,545993497,309506855,323991510,104853267,923725191,641432704,290193327,268577785,256097918,489843595,975571207,179050814,109051015,648126393,516251196,137294323,408358611,808632034,432390047,194041851,393640058,280483689,55490975,903071124,918633055,263287687,529902462,832529701,699488655,860445664,236178657,935700065,79634668,561415541,463363237,694215770,152245713,512375385,872583424,602527875,806415933,727808752,587431195,992862651,99311274,621957941,371281401,418005640,678460689,802628357,405084628,695734909,230656711,394138400,218128113,219684817,56521710,917972865,180952165,817761812,964113433,168630197,381748898,150580273,901585345,898951006,64776349,376918291,422400562,244992295,760794211,633677006,586809477,67825009,22324620,793801031,653214221,117716316,442861295,354095063,946590588,92646113,198269887,915658896,697933231,421067399,858834572,310407971,76092413,710012836,753931161,214957005,456907664,322485861,308312795,456956870,375632625,952841377,23091988,173200067,216250031,63024046,776412425,75523577,600981194,671764471,385303055,426006494,884946709,517486409,840164914,722649185,26513563,605133650,354205803,850412675,260350734,654565115,99393575,163838608,735779123,10049359,323606584,855954413,79110937,754322012,46589927,406534867,688684882,92281959,978685023,910515300,677637739,943107109,281947052,944298879,51068691,1436498,684110241,952189113,990138500,337949773,55920339,721561708,547966619,154958877,717034922,576893929,778545419,705555028,597009121,733482075,283935722,161374647,772808269,255624854,314244127,553128433,372076524,153710629,784482247,412569220,627241059,332356409,935662630,252203481,362732777,477350396,890051467,13071905,268458828,109734269,68508801,990834898,497352051,782314271,373085090,152513949,150708897,496037016,915238671,293543089,618620174,795481735,160709177,824772492,291331627,622441013,531019670,172840503,399772091,260326100,603319889,121274417,997097060,425133227,760642871,285604296,39876161,77533093,126806392,522265513,380533499,877450222,583090155,864376871,511414126,888980011,182052897,428033402,711056895,377929709,88565502,317575077,154820755,581558140,328653127,178141709,567762100,207906113,682734387,12028748,961478421,626746215,821431624,641108299,63429105,306539160,92209043,835776931,20415084,301557043,668154067,268130162,118470389,138162607,590186562,868933871,663842685,746702324,171310369,5183431,619263336,923710069,417783409,765086,550911243,81505329,321276724,501763175,833821689,393962910,930799155,494658699,995082266,88742445,159102047,482472186,936659343,583202901,547595982,189721629,409359447,950628148,840621993,792093005,68739708,642819029,939189211,434342104,22230413,712294431,682299676,340023363,928287837,541315234,196766315,466427655,740609636,928632815,241046527,587829554,161395011,948846055,780123042,221246815,204345973,349667878,269604527,733568053,133954592,818615843,678551887,197668504,423427977,203421815,373237200,190803009,742457479,947293400,640551273,217689843,337204272,238627985,878073891,696121186,32846975,838272913,191040184,953391249,896673405,447199660,462032609,776459767,839304358,174306977,349362095,437979542,578304271,414500153,639852948,148044067,811143121,14405224,416535441,302966031,763202350,376213431,434917695,701529144,138363211,633384935,704698198,363765307,844226797,551408050,946877177,279661331,805576244,568221365,255959275,7627576,542804499,415984829,154648322,44886795,946763201,341523906,108798427,437726887,426988464,362679813,140943,252709374,156519413,447193659,936042884,927698917,370363473,603312154,979217895,959786539,534891090,872473467,800996793,8853070,345985945,27858819,892206016,618962057,656280145,824322202,679995819,821318657,723387226,126570497,466163003,642529840,702668913,565501463,413302150,551202781,961519689,482647012,747540155,486063785,956258010,609851337,297026049,478655526,934107449,809060647,142175626,554765731,526697027,955937908,146242669,631750519,372944850,964261659,820589041,739507424,112886865,286882759,882518338,960120325,164165481,434668834,390103315,245621543,756439270,20732103,963009225,252550784,917370889,155002153,458946508,134186541,996761201,305804422,697040467,527790291,558236848,557182851,813683219,73481136,858229435,44854173,308306714,429164803,703239201,161093616,855725059,87884103,155653786,765186361,683191251,600956654,779422877,817963573,502824622,859282115,869263971,717951062,110300647,260141403,748834746,667173539,66985639,347678540,359386987,329685639,701043082,914324857,105106125,892136740,834544437,90043087,348566100,547879465,147890963,9759744,384067007,549376095,100956722,692193843,486959809,16295742,980106907,110783195,575053430,516546383,950946089,524962756,498884639,574344375,213127620,122824857,886495091,321676660,440816059,715993879,185624068,389194525,906663099,94378006,517163685,228210229,268368618,499912299,214752603,487910,517054721,534862417,692220200,415125995,805188913,717003988,295462161,785703229,696938708,471025543,947955505,324688436,29927295,867556117,54734908,602401963,469404709,859972056,185529909,29810319,878801492,941525051,909751717,520090724,159073709,924802717,111831102,755275483,759382547,88717644,805649079,724538099,583494460,978421063,46670731,999147202,611601665,385053275,275624856,541564615,726442901,40252722,394398891,691878395,127762130,423885695,486734013,960986888,179831587,848785985,230172120,394503415,149260939,346712332,385278367,250772577,855518406,119837459,657864205,445086814,445741911,353962461,527278964,891715425,1287419,930760936,844830881,602921523,793623524,858456069,669522593,262374438,321768961,153208925,36100960,448730679,252013807,238680550,182441115,406814051,640578316,639292441,188593043,711325212,724360307,274157305,621410476,658005679,193900889,838237826,707489955,763157453,765414294,567120017,251772583,780935768,305113375,6066399,593773756,457267009,346857543,289674876,309229271,771155381,926534766,539150031,519260605,801413326,101388765,395437337,355343006,827229515,505596257,786712618,822380517,975911309,233657382,623338097,66052477,808110334,786648963,796088663,420253692,391140191,682139775,735844434,704470663,668538695,83906842,266295941,305028011,66235912,998880143,299567127,257677258,248366223,11630377,218236010,409906939,292804583,35860434,586123689,333800549,470852178,630449589,676478793,546543630,626548047,161612015,719854990,698844437,262843899,989848098,496374171,365034201,60635284,382437569,408373257,929753148,2872965,455898041,754883548,310258977,578195603,10726298,959343501,117734961,524481952,40887199,925187393,227143584,663267959,993844545,264261196,395275535,615132037,941651304,933536679,832359013,658996,374092715,975402911,656301430,57686559,755037707,758253076,960604979,850605943,687903576,297337865,52342981,115847958,377578691,812312681,93192652,913656757,889182453,539386462,120805573,795758653,470168284,292238559,628228089,83947416,677593047,635787003,964169874,499509693,295591949,117851858,402376997,254628861,444890994,731317317,485314047,835353820,48557699,135353551,45515222,396584265,747417681,217116026,186729767,609589021,922998552,421432341,235294553,176958274,326452799,958571617,506346796,487551699,229323389,717436480,845835523,885460243,957422788,56435171,60864263,482243826,3197541,107921749,726224184,992086451,62675295,972334392,855605121,520609523,297485788,208961087,168764081,275002602,348834351,86569297,554539606,671900621,757667767,34817182,209015609,967771401,824616566,772311071,989250979,187025432,574590795,634983717,900834486,682458191,331029557,940169824,451790229,722684855,84487968,459472851,331287607,821877106,512163387,904431245,131898972,556234463,792232935,640604104,466279297,563625689,576069886,658621183,324376189,705347642,72060813,953903195,332384806,325004409,72148341,410129470,763853285,644952587,62921240,71082025,514483027,702912788,626949653,146586119,92158922,464894419,724546505,90714080,304396089,611812805,502667228,137546831,298711537,586525276,49613783,999663141,55843660,73112273,337735589,769374134,114587277,410400773,360019144,338005737,527789769,350424028,753722187,874878843,756530266,232363809,718098715,373126460,799223407,353148317,393752470,258309735,174477255,671289508,237863239,919143489,268132714,758942431,615218563,488518174,796924037,339686383,557847208,55779765,405696693,489619400,991984717,786188943,950428722,691215205,88379341,798747156,723548411,434090589,394342084,709950109,288268943,905794652,431205989,593209555,549813800,244786959,858676367,385080290,391247207,296770719,142045348,26951123,787459997,799873292,341660113,539377731,941568348,416667619,508055825,2917382,241935327,365583749,457780636,71113205,571244027,848233876,784378503,856244803,217398222,151259391,543561273,246859474,356672989,9465867,193006436,200850281,94573515,704566680,40695299,672314003,494951912,485363319,294635307,826775364,167558093,379340915,102542278,160185461,913563981,417325190,119459061,434772941,63964872,865424533,905778267,239896206,130280943,985904341,494484626,258199579,637982045,887162576,632845749,551248567,147228902,339302323,24522371,430921486,220562853,24286827,735554318,743388945,99280519,834844920,557016009,4070237,225770182,349103285,689800929,369532070,336957399,402105363,325819336,359084705,62404433,86506108,424826705,617386893,553717908,459810051,804655147,391157842,687329341,566971765,629285132,615635257,611778289,50464674,830936747,777317343,815188942,582920977,178339313,576255674,230211937,334672695,138327856,724115039,666143447,565782586,285383167,282492913,358239108,560898531,972111125,620170918,652034085,21045947,986961960,610262889,590538825,721385782,778605057,309090891,938970104,518177625,93675071,59638762,321939427,963270569,457171712,474632937,364889273,833628022,921640443,452954139,423840624,250464511,688772383,793505476,743102261,744773047,899013542,565077535,310123717,309154236,384926011,587132361,249323308,893775815,403471859,744434610,961918583,678977517,483221066,826364039,189581707,424201266,357685929,702729273,234022994,620358463,508556277,256914692,261227303,666204837,345437924,788340069,906815075,345452014,840704161,79986935,748732214,642287549,677824815,637072712,660678545,408380399,88781926,229663457,232520555,589303970,964320795,206853881,379236310,382447679,566455395,712622594,566469823,148267319,691420532,263392801,899406603,460945578,19382757,15518941,378315000,475949631,105380355,672194218,57475735,309366735,888250170,601295467,797726787,485455704,91301905,927206969,760731342,994774013,701301747,152289328,25633321,219926051,798219946,749777127,314988147,672816774,994985315,475512043,667212826,48237455,463389513,415092456,627810997,591009165,117278562,626798171,782585623,422281430,685448691,233338487,114615020,962614445,411039169,157428558,13788639,795481545,140963476,971868271,745823741,174109052,251619827,395604635,644852902,395921201,271698877,480683654,311519853,288024693,195030100,278875429,911993339,738381046,517779383,602216369,236950560,9437849,394429147,580149808,714542209,316453127,704256358,972602065,643989695,946588848,4915655,263938901,636736636,735531921,477887501,263027426,313115057,894654885,207663888,292943969,747921867,89968042,575090257,465185509,330759008,964262569,540920257,883179270,582802825,951506727,175612122,357856105,547259489,563031052,877490129,491557817,574033906,587578867,340390067,613184292,341510383,454861689,53458846,118581495,696535469,644532014,506134819,827045459,948302746,264308859,626178809,531443182,141032631,140398819,155397536,568275219,963858115,515895902,745113165,734471687,337934968,918069071,937402445,677201310,746086545,919826363,744356896,155497667,502810429,346879092,50206955,851888003,201899056,207436285,27921103,429322996,90551931,763454637,393769608,748408047,3012455,591224990,325325917,874766449,168238356,646311275,103411613,188149052,82150939,944642893,123425466,394389549,206357347,428845868,535787459,565868919,168863810,560123615,231864495,313653710,781163097,729989493,527738270,40780639,625182385,275568706,667454237,694026701,183431550,928556301,869646821,664924128,212577319,575657757,142192290,418510141,353228277,294659176,445617619,372191351,292370592,816547823,71627973,97810104,251161967,680252851,214535820,548471563,21908337,855996094,905747399,236735659,896748196,113144493,788528079,864027882,671772705,619996581,546351036,596111329,736819121,895177232,326598015,786543617,60990784,913089957,96171837,515967326,666066709,246304957,803877236,209017619,247359509,846099306,16656059,158698389,62775062,266061299,465339753,499533722,797757935,12237925,305773060,572206763,959779807,987034692,911399337,287240079,291267292,133379099,397547519,897733194,4837065,310535249,837280788,951185605,884337113,193650762,181944111,857017473,789566570,541242689,772044859,205847498,256290287,39074019,178212792,898588079,733265861,865290936,881698081,743982575,628156594,880236149,454455639,443187264,375030219,1754405,11674612,970604833,752000849,758038950,590773359,651912029,735495772,810554277,189045585,50434268,773524471,475091911,432755730,158737973,628449931,682501568,109783869,679456761,714520196,426386881,760714943,717161018,42620025,156600171,581865036,421301967,233009539,490090224,785276383,636478657,862124168,189685013,512844773,369458794,483581743,116951321,262216486,721445069,913485629,81598292,26199623,250741287,90544602,301764795,138389833,606956352,48580595,433323307,962465548,44096903,390405845,800388992,620686291,629476041,590283950,21796631,247499451,990361618,786160895,672966371,660891276,717034693,88339619,408394894,747540265,430674091,292965850,487594089,230902935,723879926,340785145,553484281,801170232,967135979,277826343,345297968,234883833,607639377,507519582,445509639,900115929,242351310,36262553,200780565,133908428,372659751,566965145,304577888,295416619,52820049,927880,358167317,146692001,487292758,217116479,394866745,64613590,3548675,851009499,111851646,743371793,77907505,698475220,899700847,268084689,441118046,820765919,967634403,328159470,435119193,837741231,571135096,914949261,649702503,919826766,551835993,126877239,79974226,596468149,581882581,628215260,97468193,892947709,912222754,380187149,442355667,374988662,666554793,701958493,952951898,99075975,435643141,294055064,565685407,254150177,16586224,641550421,863901991,738110252,150985163,29782139,423649880,366543177,231437917,394056912,81952213,147772725,809568084,436635547,347761371,102197316,890357013,409973409,182769900,184141429,220086941,994936356,942705537,120772081,310982798,491313183,369586769,797361054,78779701,222766571,71351022,512981409,191896523,922208632,330024843,763271465,22757966,430505627,451340503,973994192,749481859,256422609,548059320,457592129,479951997,29453106,965068441,445015961,521664824,359775289,84897289,75774288,148128069,665642663,886234730,639747937,740423475,431355742,748688687,293705827,110243060,837637,72039031,833406744,30993667,523672261,113520252,399656895,714597633,549128292,571415707,165869345,631405974,466516999,410507923,846967030,935794019,379927507,791172430,516981961,429274739,550923770,147487863,639871333,825379304,180054749,30763207,105115836,798080885,866730737,387864588,6719139,386147501,467096686,635499771,29245099,806522372,840634119,652138667,67958554,520454517,86087215,744166900,280166333,826660377,299537956,852053775,595276809,845121998,611969715,437028161,668442800,214196995,997036889,863052478,36375093,685085611,254667738,776993481,968305531,472513096,348472175,279197949,741240302,733766187,226708095,313252608,156817053,511541891,202534490,916144519,917600387,684947654,392597155,415575163,331340998,360366625,48968687,840356916,591813517,853958137,750642066,340025523,491916041,289451984,943658277,460918255,62538714,563950331,697145341,438014470,235336769,749004505,268391134,698855077,490057021,100522158,762558023,14674109,41262828,179026263,393860641,431418084,905779123,321055495,933583820,559042051,353721937,982024246,510334749,527281899,216737018,413505907,531878027,446607796,187875709,769051825,976303218,880057395,769451117,957828656,50278069,740712937,750787016,499669391,736660133,12184292,496626617,542598047,245386664,544892325,754590657,219368836,222698413,889712993,493961632,266852435,217149895,277050492,695584665,977277909,569735264,850011207,422247857,939065166,254458035,598257337,332531168,250711331,121546301,660769426,666064633,130345637,612339914,619949863,1119779,685169620,926122171,707235271,671403626,831583709,745597885,974928680,71192919,339367489,131680546,897886097,660184029,694214784,945056221,35294495,708927114,969694081,805647831,179379828,531141757,907648935,364742732,763615945,787712473,709364904,632825747,367266855,459629002,25869809,77393179,688759310,83730017,298972207,443278538,945211011,948328475,122890212,445862673,671962319,277818848,951560277,935234271,905696426,40497053,344797461,10931000,924426417,627676381,364638956,956469201,194856049,384353616,970489533,138303947,333156130,149885525,535241363,524882264,782119891,227665047,979718090,756308363,986462539,385970814,967717,619263933,705822556,582116319,41464583,964823240,557275541,340430291,576834712,860996037,990734175,645976154,572176753,952974541,133688060,19169217,416544839,821240636,979003969,799282091,528200886,941904461,118599657,967130470,711782939,745006019,493399918,164555431,244294269,761847636,588558415,218398419,46883462,847073925,745029231,551943224,870824803,916442099,452736962,956619507,493345215,148952026,443314125,792684277,911182370,943566167,847296665,619161438,704826361,319643069,876267850,849944889,556666823,587255982,916168925,917912647,56103244,852349243,293066467,452547712,792329607,972062803,223747558,550280267,936519115,643329920,705197763,956863685,965439726,998734705,354529523,565457644,785186633,338873601,107098048,128198199,838505281,249301882,909749083,44711181,223705926,733731165,215923803,89443622,548782151,868651067,906234270,606774393,128841143,736377682,317899277,459808327,689576326,190542287,78433305,397403252,879767723,425870425,918391088,490482457,130273383,636949420,896750031,893898939,496119144,925508035,929749225,759885556,207878777,520234685,656340552,209669305,396557099,575341386,656314683,138689583,123996924,752332423,350901459,920048782,413985783,332464377,642978992,699147421,536608973,544137424,807571941,833844093,180045416,529362129,545326233,739918584,906779295,152087079,341417808,134381745,108619019,197970776,713910983,260974829,196054712,447602521,764782571,63608778,534811597,135399219,984925154,869239015,595991753,264045410,264421439,538977079,947910828,547825809,358813971,707158406,896368857,717492115,300715206,945931961,581294455,678247698,698981947,515226335,166440454,703180223,831042453,555184762,766014457,558361813,496768598,901785793,719206125,12230828,812052435,652416363,940109116,457483107,198495517,529331890,870193053,817145377,258264302,795657057,786762171,789307558,214390837,895269921,539309614,852960291,689717225,375994354,186532175,209078023,124496742,745356973,950241487,884430820,661918775,588288751,451080668,798094505,649533485,679337214,304316291,163664237,636572928,461907735,995749583,471785132,732535919,220901885,932141480,730826849,322207317,820845272,541568147,946127119,702475592,750213445,535707861,628965984,390788331,462993473,648528328,251256469,611547809,244651358,455548629,594819503,944312176,333793805,182962371,190233066,735895597,699661929,529431526,658585787,686831299,317398008,656380861,552768679,627928230,640518433,944612527,971580406,747199523,265124951,167980792,60027307,308379747,82971762,411818249,502500077,370348240,666313001,52295305,981153594,155403855,22646915,357290692,229520883,273507769,458219622,979720795,216733919,646306378,984452721,890156267,41634088,467722841,660220263,236174390,796340505,676667559,862271246,278412983,588842787,194019516,206950999,26811595,593737744,148743975,274769523,939337176,623920579,615559381,163548048,289619261,66089807,13000158,462639837,11964199,830917640,180406569,649802119,956345130,689305299,598667645,373626496,851118681,638829295,366850906,978332809,665699265,241795990,284094433,948622243,329594998,405409453,517787957,281844030,486100855,282800567,798715534,51315789,432158827,305576522,853700269,721049377,252214016,103012025,619575299,490742926,408306879,219256365,416474022,574573361,172151773,274877070,119403047,271935289,600682990,587065545,60628273,826216004,521941255,193439437,798098736,884278825,98092539,953149224,604462271,20819811,572245830,245597247,323424041,731429602,337793827,142112737,32446338,741626217,724426573,775233316,740688687,542566007,851388888,207154869,715220757,990440788,137395415,449986817,294419998,114117883,151285141,31253300,574951297,552094953,186126104,211363293,448341247,855975162,29608865,857374383,137707306,532127477,921142953,179294798,837118033,135209989,662893064,508926047,192071543,377200206,522194949,921072693,539713958,459204129,729709267,341176898,158435685,914943513,433159110,137245597,593555437,462589056,871874831,471710705,42657068,577987551,319816219,518272688,41961103,993181379,293736544,75480953,475815901,834914484,941420795,362692467,234198832,430303533,320732223,109888304,424873943,138364639,662576010,742800083,767134359,751315932,849602355,84774661,183976472,893231437,700168355,111531016,741816237,658755445,683181930,239923155,195250955,963051902,910438497,531850957,879064434,925943445,153255281,680720744,238224251,683372797,361671972,125265237,276738313,591249786,813550271,963067529,195484798,514199191,697135031,594023468,282058745,460936185,575669356,481461557,442295217,296752616,341965401,892445953,348489710,504838803,794929805,782287474,941498395,950642175,397854558,231099499,476251781,959241352,93411281,756179483,300337498,302635097,720426507,20111040,961001899,155085185,997478884,858515831,194480753,564347702,773001651,919089609,248200706,976811515,400427943,121135452,111934187,17968621,365767786,488950101,846448749,758107254,12350431,200202849,267091470,827439279,272261181,608059480,322888771,950794451,541070168,775903203,558863519,476483096,108808385,206387809,613446286,93085083,925263041,32141680,950372695,213165075,934741208,33323627,986272459,234967360,995671321,547279383,185764802,244882389,519644477,848804242,809241171,981303159,810693862,565375977,610577281,691088704,60683,164415143,380598702,780102713,990303313,664107354,819025439,312720593,412058006,242884669,139167313,843057432,145105317,432080527,918147268,497776971,336904125,617650332,137279349,560001261,226272162,354261723,638773343,414362294,999847045,592502145,532426200,172987323,95934789,132183076,528661171,138708843,496920268,96297691,225645469,320039156,472538011,458593905,120930636,217968877,414557823,113403512,323767871,423918403,629185596,958551,819715071,661933888,707932035,390995215,414087828,918534777,344445361,144793264,301301701,596439919,327530982,297028403,399396077,910925546,24312077,598200335,87843390,725240141,805881067,556196386,744754365,520437875,280330306,233464941,519150409,12976834,869968497,91789375,307329922,187986825,568047941,528454078,817431741,607045647,451377048,680372125,124214239,265041944,953807993,159041555,959601336,845896535,702776457,375000680,799621555,917047621,780399638,795113237,94109467,292799862,446731447,859660365,238598388,324690621,453057575,979427522,226778533,976344331,898843674,970372495,655151035,678311830,458365645,878126689,976317336,999743391,979872235,95195546,597570157,892808197,955783714,704314509,309709511,749247584,655346235,474891529,287121658,781686481,446491085,774874368,985728373,386557675,621587262,50458789,405697301,977800942,910541689,214737295,374331932,238470371,43820275,995557650,499665375,489138159,936939738,454034751,670471425,671115286,296058041,831549145,70035322,488119667,334418397,598098762,717802147,389568911,820024384,763233661,485887169,98156432,991478283,995471975,249150906,423384717,148592545,795034086,278303907,563353831,740825918,713585423,772694685,304896252,324095785,764469115,790055768,922912633,607372375,119881748,658298771,965005625,68632930,66979789,262812785,53968948,771847971,462094913,430227696,667992469,606632343,341255016,555881897,183285361,498435276,158488481,770653371,313159452,449195037,111040311,817185430,778468655,12458933,802236750,596217515,536082077,726351054,102326623,273127727,653946620,461398613,55468813,806884950,199910801,822555093,499046752,775240297,300500377,132209868,828669045,669793135,697533828,975820523,24405235,877930116,741334425,939489793,86800394,123613473,593607971,499712934,206432857,459562825,347000240,178101475,416887717,282192724,839586239,786999663,735764640,89271859,103431865,647668126,962617175,775393737,424377300,310069937,506296289,667005424,403743125,879644291,61085084,120232711,101148143,930181374,144853463,155064833,497672276,627224771,330384405,17749068,698417499,789776493,560812604,485252725,302982075,886592678,993866971,518538763,748070776,457236053,310579819,977357484,260470963,120334707,409736626,728356197,99566339,153068464,906720285,123245455,602656678,865614203,944711357,451203288,501862099,935885221,174878638,723135111,886120507,759087854,43501243,390652091,638003972,675704587,940396201,902817534,439487855,737803231,258330680,952861399,975997473,28586120,451124399,619119115,448504504,654457369,659031649,869577136,101101425,988600961,671563782,184954867,41862085,747889298,399656077,719278783,490646842,741644111,114522223,271958702,514034945,79509501,293057768,271062063,961897701,636320716,536399593,688019505,865886228,381879833,514956595,949375608,176955919,529792121,366006312,303867527,924753957,524630226,540353743,471569117,260472202,983670073,853167413,375107482,235723523,814547615,543329446,220473667,197928873,347717162,133561009,232530363,312402216,448043543,427212217,74774794,846493913,160450193,957294736,50172117,384554557,278162156,305464897,215083073,271765880,295104207,299994671,926394826,95831523,692422249,730336830,609926229,559711625,123978162,574739681,349515719,938726704,717071229,799013485,576251970,237453529,490762773,770108106,900219091,780550025,930365372,124934841,939248703,380081000,831921373,355308149,987253064,743295497,395654865,312346094,485945791,763416173,398463880,13970079,863826413,325568194,257226525,849417905,612511542,837211909,26743539,312765118,870446955,373225417,176682398,237035489,201671809,508560206,91739791,511787427,12042840,10333863,534166495,320034904,236439883,20577629,543235084,252137065,358894383,340466086,224614609,757438625,651489786,597575769,426385621,532947596,667150651,385605283,101999998,879504665,916639569,193144538,519201927,636890611,804547582,588836037,292362457,436474062,999387945,147284809,858412978,300366725,6960019,612626004,654627115,868874425,365426724,518350057,21473407,830572348,144606119,104907835,610787154,950110645,847024513,548834472,243776665,450169319,649574838,856822607,234554357,874927146,877995771,582683297,310172248,510773997,940415827,593814976,896094101,999130877,949003892,814189019,36501883,662404418,950687769,967579201,420800572,27580893,493968793,979099642,546743789,341310655,350222804,681330285,365412251,4083016,249971467,526062793,546396514,344458529,123254399,936243536,448874655,251671983,105807786,329795357,846920537,197890626,92189767,290645655,759648822,77624547,353161699,155730564,575719939,139132109,463873888,121074825,262222015,302882612,209173827,91706779,467234064,896293941,972900195,343233146,781149061,942466149,29334002,565343881,293977077,345449256,59313863,378320397,387837846,555065779,900150541,380460044,854002773,516912453,295070136,33581477,639100607,581553882,806478459,701812629,742632260,206498605,543143613,148355526,227289195,19988415,813537584,861960857,636464539,752027772,849061181,18034593,206188116,413539445,357037629,311866210,339254445,595404181,4081708,305364351,573587911,144954340,361765465,747739901,817669030,264093347,732092381,950443760,407746355,32089907,778781642,117835289,711212547,948125254,38938491,591045177,857889898,982120939,609617481,830755744,252469499,209694779,762346930,516468227,403198061,986584642,271234267,161016221,520710336,708999735,860886727,297131060,835892599,612824853,856788298,124950497,576994543,435633624,432748377,369132823,717153286,45862315,210934491,238386854,34625605,221044421,705961652,672242283,767055735,921599190,230940885,889252705,746329908,938819047,33084785,176107508,461663233,518475205,523066316,289671295,804825465,495825950,87912927,394400301,867487168,970002471,826247399,934620386,83106319,853908399,627189154,763136163,750076723,771834,333828723,247120309,724267932,605027369,747995741,592535802,934983655,639358047,213314478,996491149,596717111,124013140,97797757,799546021,911321286,441024931,16401785,468881348,382670791,548001283,821147824,101775561,540295191,769249696,1893589,393698155,989770346,393927769,677704033,302026306,536932457,622979793,831866348,173440859,51288313,773501002,771823549,587824837,782162952,465031483,878613327,940954108,77806787,435708029,251119084,217191645,1435309,201675694,997540665,826992171,676478596,973548127,44132895,280011222,93420115,901830861,713028392,673750119,774940127,646004532,843481837,74034801,845861386,491926013,535357869,821082936,570944965,366144693,739394702,460262817,289309933,902521962,154757051,809046003,310166716,85301333,128021817,825938976,511437047,527996441,337688948,665742163,104790781,198577490,454594463,865637597,471514486,491593247,310279321,274296288,135402835,124182593,991004388,812623793,191783747,850015554,895699199,861238473,841973386,769827997,670125303,141604652,765975563,871821221,835231266,493863309,928843909,787794992,86985629,872076409,417293576,951570539,205818853,669746490,222608629,557867869,895067144,95017757,117045159,645621408,640968497,346771177,491419598,323358511,78005021,124483466,228278693,670777441,265348054,34573695,74744657,636747020,554314179,131833311,229775006,244258471,164448477,567046434,535425549,408358147,808202544,733175219,460647603,271329968,20573023,846362597,142914010,680253257,812348927,573092030,795667251,705217953,881727764,368721005,875926243,935849538,610892805,353457967,803520816,255572031,276553441,430874994,198661651,439034583,929263146,754091427,786481579,808524090,732921855,265036507,134852938,133931935,580779129,113229752,854969255,189921543,120341474,255717089,515964629,794337996,97232629,271742313,61571010,588774543,970889805,199260952,732822723,438725563,663737736,613182177,5072719,765215446,978441383,835972551,110912872,687956295,433404577,130162028,55073827,120533633,466650602,791064933,646016305,653325306,417022819,761856441,887587418,150766153,246838951,754533264,184390829,881351369,954962932,904425533,912191405,578403510,48672951,892483527,720927582,749769977,192613837,648055992,241153539,708530343,614557544,72508669,648783115,531418892,204962223,956264571,129691586,363401681,204521403,656103460,825437355,288753677,431245260,326455417,617271205,688132026,244342685,608877425,183279694,797459173,550489083,777837990,298439753,880843177,516164202,721657579,113854189,285096528,284459473,391996945,332475702,87194163,980606905,608336204,879462137,62097627,684375212,150205641,745966455,331142210,216338149,564334785,596838530,13182459,129153267,35596522,462282421,661199983,854747980,670007509,517863997,504517282,25831205,258597913,608662720,110807625,448008587,342552128,605994899,41045763,233453854,815833951,258966165,841525422,219438381,582066003,704048220,506341663,333317679,835734376,547410551,814814905,373834398,210263229,824216419,18691114,736433025,780294455,12634418,669156151,400168589,300135136,631698413,119316789,605695048,196924425,963965945,558851410,681721225,472265919,568180128,711306861,852435197,212191048,494224897,594587723,639795186,938992307,195120695,495550556,252947425,300240887,396249156,785793789,860768059,683222534,323781875,22639317,276024300,355183319,42547371,488440300,506360501,535015937,622314864,388606457,319042447,79398750,333844233,270767003,823417912,210739623,468167225,299401420,58984413,804632801,228918680,329331373,897225239,741251132,550820475,385242073,343620412,202359945,34229451,495106988,160726267,951246249,189358482,392193253,753839367,126033712,100405417,42003473,612988766,119049697,648802249,560871072,983562163,577033163,280468454,756414917,542090567,201588290,515540825,969888465,659825808,794676831,994657577,996060584,181996835,971674331,335799228,913783927,722136899,437262994,101010365,605457977,752968156,400075499,264739765,606821712,768545095,282782693,490141576,32801173,912379527,526139772,88260965,934129997,763772216,592951005,892847341,478513562,177611755,126347511,849165772,853528407,949292327,317563398,832524487,55677461,338084598,343134983,978735647,94783328,582833345,270745709,950539464,899385725,506924977,812512706,621049479,775864125,677298286,162738397,51583417,821670924,823203595,348942025,107037584,808942675,966783029,337295730,603154191,82443967,491618412,216062787,963570431,470619342,11812829,44356555,119477274,30705089,237123223,248412576,287861647,842205167,155342168,923545211,44291127,825381040,266628271,202067591,452740772,868389619,335109903,88750436,27135073,193626959,40181328,290900751,569590763,83669378,50710273,662833377,213811872,588794709,795460813,308908762,77132171,68326905,804652080,74201585,385738755,99651800,659289959,645723625,21753276,745366073,519779065,72812126,535300823,650032093,416237700,31703907,710765447,551073458,866620395,839375671,219090768,160748987,504085969,569724204,460659123,314400971,386347316,993799205,574564539,961727860,638000003,83942607,832572030,464306033,837688143,595430570,352747719,417887603,465931354,50996751,792282373,785830700,29951759,530947377,511548348,488184671,759223649,988031122,867352661,888722629,808540676,380182665,323803115,277611442,594143119,738848713,771722534,134285215,16260493,201575610,247581977,555646411,458100978,331617481,9214937,482432928,252932851,149863015,927717196,726189591,448214027,766519004,292990771,598477127,672259606,272790931,455395295,730746894,896327047,127551117,263141092,875523649,370602113,547626890,600056573,640904325,843919992,557087299,938553019,865612928,706347121,251009587,856478166,386740321,754910115,495399414,143385363,501065131,738765432,106629947,282004219,619299940,44540025,380446647,61369056,285605155,467993673,780654616,891515203,175793617,98988588,587838755,467809249,843292114,163376131,295492931,469952604,816632725,415357067,25382648,405532109,177043041,89814136,796523865,65915975,723477300,50810147,512516825,149875944,345297735,443566403,724254206,725484539,224205411,372729398,636096217,672452991,479351738,747647925,156007189,757888936,86766433,611261011,2730878,486760391,230092669,518358688,583288971,79276839,549464042,501125475,87067823,601801238,995005803,206396083,45879630,905540773,963052897,61798702,975610397,155665117,713888346,232417227,284081503,929371622,407132373,538471267,263455830,159910619,11078075,124760108,531234573,458879543,357406438,729731137,564325197,517101092,505007147,458523163,808698784,596237043,301366409,127531092,682844465,20000205,600318086,641461383,125909835,482161350,517424085,7181865,718309492,278620195,20807701,458687716,18653015,685120457,968370476,72535,953809743,958724462,448066727,564939295,804473754,581585069,121459495,511961396,261075253,923067339,196911328,496072489,841771253,819022344,559410447,639086203,696355456,837024753,285307881,378759198,888697285,681764339,759357900,94720749,916124171,733058230,645941837,799760845,146238436,783987799,285336305,901155502,986306965,473482221,396888256,382098881,506480709,608855776,444583077,270296645,958892018,74431555,440844499,620116530,444769163,428171703,906510880,732936769,852052593,608903688,8170369,488484709,104741846,610178721,743647327,139704082,440204207,327937173,159862456,815696825,899542249,987771842,179430097,391225195,371240830,804794481,781283415,443889204,176274643,832696689,125340532,687856489,523847977,281617284,116566639,451936133,965650604,158229145,454024753,703512558,499119391,803484583,919379030,498178083,846399253,603217878,387406065,196114171,545327336,890657513,887821749,586143696,132753269,323935543,367487682,852403381,803009673,232655034,189406409,418918123,502793448,439559653,82054857,691553230,974911581,986353441,672677628,299052859,879311247,622987754,17187857,184152823,375359518,341308319,536121119,317077688,245606307,606282159,673239574,602124991,666369441,279516180,429874819,692535813,917519900,960662627,833662325,945294486,977384645,550332211,509254118,432003267,533072979,986003140,974361965,251528711,360357692,189831837,686240429,18855650,366134973,317223637,820794464,917781647,416622171,889653208,553490883,148621951,532845480,193316779,611647521,100611094,282107453,226594471,51736060,567331985,456637539,698226678,18042881,769628373,600493694,672888727,239836659,987374846,915551107,877021915,146308212,756151043,644742897,547320670,919545931,3723271,910141858,504565567,163755307,294114184,36761211,498872991,172037984,161261889,386049733,144556756,776785339,329005831,859192368,521390247,149789653,481771018,358082367,582273665,740727644,198097897,830729523,817457664,248017677,879266001,910658586,473995583,512986215,836248232,196709351,996652259,953121812,411976985,468497793,163152974,865667525,553546969,962447924,351641227,200641087,317362736,134243247,549057885,249451356,971300743,725052771,664028372,861888981,390681911,489910912,986826319,655083441,246703014,772691891,613810737,104722966,176609493,326879135,977064382,545149591,528473661,621043052,73596297,811022053,296100868,223512337,459524849,713498790,196334377,694163463,689289984,122758461,414478753,787084032,768056303,906438681,444413094,53242495,635435567,307633126,896181113,239132515,750251930,251452019,762941147,54855314,470312045,163984437,59331922,615715271,726148885,677149936,261810345,803206255,704323292,647877697,620503813,738148880,877410705,233896625,888416210,780716939,326052385,839530642,506463983,450656997,165393466,114173159,689549477,594143012,187913625,356943291,497090848,659146119,464637821,463979904,432892851,57068255,358878912,551275985,601199861,120681744,542259885,144219029,195704584,995655065,240106171,788761606,859860195,464385023,58777484,797267135,474760223,942312296,65443481,8756921,103713730,808485469,259205955,818000978,309459743,137736193,969117198,459904979,735502499,883512336,791027213,707570139,147359388,994335877,242453699,527549318,492046981,730243129,50133246,306138519,520543639,542644124,719173839,268025633,438701858,347691821,314450639,405423412,254354497,412605533,516721932,49431283,735881045,113560266,440376433,786060157,573270388,521226283,438657419,145641730,544434187,557871973,756493258,29616981,555727063,110736318,40567271,105774437,848897648,310280771,713362817,670544256,885829449,2039499,784792382,606976791,492544909,88213436,113229865,6523419,680130012,328900243,313847657,422268876,567359237,882649253,706610350,561353613,390385363,544465036,324055167,688888097,741551976,108963893,992966535,84948886,802153813,597123561,581585780,338739407,324188715,23610810,506311577,775927641,555186824,587383207,888949517,199237244,75689941,917922435,552020512,244146931,112891271,82740276,844976841,123590129,164299088,176748291,424857897,451841194,266095193,448129529,105805380,638486309,811483479,509943558,457233857,442283069,945847492,41113355,857835551,346769548,530983985,884314681,80402382,178764311,568789085,219336398,744550283,485687757,320522734,573368135,536806099,360387140,235509515,270878623,633715158,285497413,584142837,643680858,964784175,42596143,266733540,375037521,924126957,100224560,824762539,570006147,400341344,452390865,630805095,714570838,45319475,658141233,264092972,953137311,700598887,833944274,793207373,925778255,91440670,628658827,820327887,383636466,810952935,549443741,734842754,674653235,95961473,82904960,196017969,361060553,213248212,991391349,521755461,476558076,783555245,219717435,941243210,263606101,132577009,180984484,301303443,186829825,391303358,300034223,53858655,383586892,857059995,419626461,790433982,120546793,152338483,74603670,990536915,72492705,473762306,564416319,777731163,287142654,670726783,762764307,868237624,235788881,114181315,766006588,711311161,50050289,489276830,575531167,846615705,725370172,796397061,415642609,312337168,744949449,159379549,725118742,474759699,366883119,893938870,904391611,677631347,871719648,467739297,181651493,500920178,198934057,691283737,599255944,692353501,541313581,819921204,368097599,589300721,572769506,710069431,549135505,917793476,140188531,96694375,802827326,704516965,924928457,923650508,235126083,556667145,826865110,153409207,247632959,697335494,275884925,639921477,730712554,269875461,249373131,734163078,543089077,76545747,494982996,693554845,948465367,138101522,161931083,875997555,516904336,413967825,532490665,664616062,236021341,141705723,179214522,938064787,86293793,359712306,287946427,316884249,848512968,850955519,479118955,340840160,351625667,866377031,651245188,442207951,836535737,633795506,399088489,180764371,973024738,824591315,342548389,527226428,794792441,658809193,719614060,154995775,582096373,635655258,637107705,571628137,730847512,611764243,688632701,642690440,372483711,560882599,910170286,589688601,331662617,776234932,954393145,405467233,562758242,158916307,976605073,439724446,432466285,193094557,980730650,470936655,994282219,194938372,944483419,568323411,419361692,795516993,871480239,371612404,787123619,208294707,540883456,499005491,612124671,673279126,197123447,343705273,954273738,261706517,267115645,3101072,391625471,928369825,691726288,14439275,474390461,679926964,465773361,718361361,374751472,954717149,900083637,22743660,430286197,868335425,133621344,904327839,665106525,665818856,185170651,855442319,609107012,974791909,69164765,134868086,669795211,817299287,508815744,847337879,455111609,916760474,675370869,422763829,560525470,985552159,111622739,151722164,901013447,79668127,814450514,532768359,117040575,894949208,214804769,280603451,445160604,302711843,676257297,595647796,701943169,716882155,896601472,696316829,720832393,241639202,531205279,387593747,985717528,45834097,71817089,223888500,124271935,7076895,291428230,382200507,643665433,485490012,692936289,198146379,786421530,90558923,447377193,266295312,412554375,921190155,797997430,918874387,916207261,487429360,956543991,731520395,434231018,928271901,309968649,378838564,882228863,754101011,8227646,433301,161428771,123833148,61398105,453566927,5483018,187428499,215675669,72525924,924617365,202113961,499082570,510553143,705968583,589011274,391232555,649859909,502320692,896167759,217850151,862411476,879213347,483495161,348966276,655650965,395507103,531850984,151564419,812943881,992451200,314672965,944335345,624341188,235432239,711794127,143954410,934304349,282248615,251705278,843760679,151084975,181051074,154643979,995104527,947060694,245285553,328156317,260844396,313385897,278885337,570817330,594672365,898825093,513367320,852149875,188308507,773459098,758586193,554076537,215857358,393532581,915717435,896988516,155719141,763606049,311608214,520233925,968674007,215516242,453400815,995499507,737427044,717362479,311679845,756729120,449673355,273427509,665385454,899165837,424592979,382630490,93877683,100811983,170164168,237326185,323990899,733685134,295840927,733041743,344098648,118989511,272897849,605220772,477230947,95028221,204542290,746151637,864146637,828723946,563315667,853856975,683346536,913552771,318161903,434467738,34688561,611726297,197917726,574174667,574801721,708718440,501896281,351003395,478752000,824920723,962198323,368836114,680146533,394677905,672334084,656323493,840339943,218504456,447686165,741345441,32849948,194212865,894024493,140504642,587786639,774995753,321196048,389214761,283792621,386804732,979419043,355239803,183261604,620728761,751387923,152869278,161497235,866292177,176023994,437464265,703621719,484536088,276716707,802637005,716933596,887913191,752169733,325051262,990918207,685134567,166773568,608433703,776223707,238382942,572793875,738624869,397802330,77628393,819724463,537782966,782158399,137964807,684893716,171700185,879832427,651469030,17004165,622631047,439374778,388577463,928708427,594171700,885137333,815149181,409412516,812631073,70128955,411066640,729763749,561297745,242169756,301680521,379925505,434543566,74722265,119750947,55435830,604138379,899339019,742606966,307532885,921809273,134251486,709212487,483348343,620489298,650268615,42050331,897402960,864553659,855215095,787805516,867277717,360833803,615675710,860699347,809819757,382859396,954980191,367356919,3756672,500291773,887453595,220709552,664365843,985057163,958750122,275075165,434629423,830216104,609546073,989188177,905392778,490011487,454168945,434755854,328752277,734183057,790825078,265655773,373718977,607039430,730561139,697365379,66704424,612674811,400490337,53895422,655108853,533253467,364400076,14536987,640013323,799562834,385764021,135348361,582911150,362427899,945765751,98275576,734602159,839761301,165592590,921388089,301308551,936664670,526477729,421087535,848509696,949485321,644491689,728591322};
int cal(int x,ll n){
  int i,j,k,m=0,b[N],c[N],d[70];
  for(i=0;i<=x;i++)b[i]=f[i]%x;
  while(n)d[m++]=n%x,n/=x;
  for(i=1;i<m;i++)for(j=1;j<=d[i];j++){
    for(k=0;k<x;k++)c[k]=(b[k]*i+b[k+1])%x;
    c[x]=(c[0]+c[1])%x;
    for(k=0;k<=x;k++)b[k]=c[k];
  }
  return c[d[0]];
}
ll pow(ll a,ll b,ll p){ll t=1;for(a%=p;b;b>>=1LL,a=a*a%p)if(b&1LL)t=t*a%p;return t;}
ll bell(ll n){
  if(n<N)return f[n];
  ll t=0;
  for(int i=0;i<4;i++)t=(t+(P/a[i])*pow(P/a[i],a[i]-2,a[i])%P*cal(a[i],n)%P)%P;
  return t;
}
int main(){
  scanf("%lld%lld",&n,&m);
  printf("%lld",pow(m,bell(n),P+1));
  return 0;
}

  

BZOJ3501 : PA2008 Cliquers Strike Back

标签:

原文地址:http://www.cnblogs.com/clrs97/p/4714467.html

(1)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!