Using Maxim Rytin's delightful Mathematica notebook "Champernowne Constant and Its Continued Fraction Expansion" to calculate cf3[\[Xi]\_7], Mathematica 4 derives 13522 terms in under 15 hours on a 300 MHz G3 with 768 MB RAM. An attempt to calculate cf3[\[Xi]\_8] resulted, fairly early in the computation, in an "overflow occurred" error. Here then, replacing the three largest terms by W, X, and Y, is the calculated expansion:

[0; 8, 9, 1, 149083, 1, 1, 1, 4, 1, 1, 1, 3, 4, 1, 1, 1, 15, 4575401113910310764836466282429561185996039397104575550006620043930902626592563149379532077471286563138641209375503552094607183089984575801469863148833592141783010987, 6, 1, 1, 21, 1, 9, 1, 1, 2, 3, 1, 7, 2, 1, 83, 1, 156, 4, 58, 8, 54, 44573538009111788339590676716342937884372929580963249471885567000678776593245839308378747999583333444419144230386034915171963939048693602486332921365553380690211515021254199697493096040150295147168634828322062258721378621729022801863791830207197478109902207755485829075817441824079663010479831861401366321758822094341335022171045001170019177903316668640906738865695859304299729432625616050614747940441223758143117871042859037324425563988345292426845570328011535178530586590433904346473011777033641391073782729292353670794698743969680536706644379232312459932627690556208034871365707092742198133481168430299214266535788289427564686018602305581293422601321360811940885295675626033653572456887118870441149430038949713017554768956849985837125183708709628378938272655423111159376330765978817607949380338780237939386063248464952301680511476853411402434327806603520304261893932844763623885961738690857088770611901482879211453636649829183296267507163929066567041626636776871846268218087524487833080266579986631150866494967512306256393799607172041517647027922912238725703496027893501974974263613386811757077717060671595182779050587307145246732649030283223266071730633232576552268690726438599565212734460498609667341171423675652210539262210688256033238380983151478592895793275926478437496256449998457579207781117862027219317263561409109458206988254896474529861411365557569779670336678869838579506266374602912236203075776329107075654119767573111001633002365183357876637522923590055483865901203305698905016406278728891139945000481240546003027102283533542123839466349547967804196143618818994478376154165459861788921370927963760641697797652420094822803479628212448071928304852209757576627746716085889259111902859569396381651066533338182474780170227319165734198031441320899298054559923804974712833350157685937377601806486670132693427891468229303122423321949257158842710560927720358218093087339033830960421268308965444227281433127656471107571917904603693887568238634036675209547642083158667360563793276509367564834602298533145312444647982468879249898485262579248195534239835046842719106476129217540957381048092762214453543782620910506919150866393897898435763014341601480937973375803434031052622078036593783651626030315374714810756084867358661898429025528307717068656098286115627168051111763019267799974413429491263778666415613445609466715529333427164159224184998990432427726485196363982740501088208925321958762598015769600629751352409511411226199307758354527328156978283335126331554247219337675936476862326017635113172423, 2, 3, 1, 3, 1, 2, 14, 1, 1, 1, 1, 1, 2, 3, 1, 2, 155, 1, 1, 1, 1, 7, 6, 1, 4, 8, 4, 2, 1, 11, 1, 1, 1, 8, 2, 30, 1, 3, 6, 2, 6, 7, 1, 2, 3, 2, 1, 2, 7, 1, 2, 5, 2, 6, 1, 4, 2, 1, 7, 1, 97867208079482438309769396678709858472515616985153704523376785637406489430692260503029827384487615893885870400899915964301331839296944867434, 7, 72, 1, 1, 13, 1, 4, 1, 6, 2, 1, 268, 1, 1, 40, 1, 5, 1, 6, 1, 1, 4, 1, 12, 3, 1, 4, 2, 1, 1, 18, 7, 1, 1, 1, 2, 1, 1, 1, 6, 1, 1, 5, 1, 1, 13, 3, 73, 3, 1, 1, 3, 1, 2, 1, 1, 1, 2, 1, 1, 444573353780089111578807392430272030363410153611253033028569281949298804698493558522899795946114626603282519368557518663922123534312842138162812665687691879313488066761355682209388203470783284318822444163098736032275664151605627339146760465844631343472941620854557786326667078742930815361075636865491664049244619617365060546250274735001930996091874746975658010910463931787479406862238907795164702884988759565872325740559415418965296806561798063255214529834287085340396285660612606805374320121251523975533520346540673348818518478289430732896597102010729845067554331784458783615778933024506465020664893073188462931245552535319553978627767351920257061914466939106371790058371585104975106769745457492263397240542756393231596999174495634596806047542327667870755165481851682947437540411875854067635737943527377088501095252214169941693401785065194923101427240336123597933008981745194524660971974703003083623994861829714698365886738143069344987878089902880026643660390217493293862822156073008175835800164157111824983851343569910031238603991355862354325752674751795685068166177612694315600000997200943311905869035640334632678041628829753749958687754393507452797171850320982193561073342508617567049281557418700119625777293992370335242286644248232167538061379944322507778270246479584826598804826766687787183226235867229826418954977681774698195818030228113750002846702789876698866929788900764100145325107014953134658034920291516967622023687952292642875292511953555383745701109908127489125993425047238112228292592966186629634591620606076197674778851954253538792834054789162015728603976475984232336500205712881787373064754622703958304589651912487247791717605744900949480719895556363616838557508086213066101511369624740848132319125025519771294030269766971435894266735477174549825142004672579696606659495024478149608624775127896472866370214682687891328869067337855351005933423976903688581076410310947957308142413100783920121048128799032259392090042433379775603107732774253938318939296305224034263443958719208479548241418935657803240592628133258662157641474905859766228532110045996108544309602489477799237503748457566755028289799873048451849160237494408510801163518299069300177151664817585771031158733705191420183208439446518109720184651995954222189173948173696428034837282913510545303464478057523388824609797045276856922613522317330506622766545373595655803570828841739945153428940997195669204209782354042224371250414441584467337268042958039388787523434151683628731013762126881320841812392912414694214436623086012418649222263769176002054575020522040880551209548479351134657242081725692321502169996245594272700302734540786000480328867959696027501692974233832877692230663230120643726676736703547633755346879448046676621666700098623769706099249267212529912742636161740935348158914799157501812658677154040819960098476024864015136131564625055916870104019974337963388782195984751677537732673507140287384740747971169991749705906922303581415047910086526037286897926047534598131179854242546336360416031457051116058275847012587787202097617861868977885783818564131540314757685108291841860436271243294986958495372458700918594678522927823353638859121220359821087038508430810568517782224897986932961795238628829779924878475683023729242341874783906554160386509335800264837909839452726902289802734877565068113441185587483918537765170413498419241212537605578479316752151786085457143852214578353129114361049363795788530536639323542580220690773488038064038000326727097455475823449236153306675697508845695095553516437300864139091586533846663320175638772177481005297682457330739946304322632423451508276653626544698485734032622314029567577458443109126175294097243479818395686557988547954961427746680311627414987579555144285203235734326545547021269722423427741632939213647355348978034745379196356956316587404245121277465033396207061227585410263628356917761755323218831982936684596981128009618517343010639436982931000261665311039122424014976303326419658505800997169857722498615309197126496851035086547789593319501983578864976078088691818811877271926787659039034463562460522601488469827220578126922429091863151371251511453637261085776231164469687219654959362475863147924850811292234902282873154234840749514886615703011682284266506083148152223105672813610046912649775615447179785696010837624390593919797251647188559828624169657621111576783194644650765130584446508852140863005814228023148856566406692674359525632083933940491787545915138675838270368700644720627636793890655417147240966347324510167098320175319547414890180615480998409021028100170410777267055136152285780720924918299223432509408935016996186489131526292017309276328574073642536075965244632187798724193240234466208923650612988292411064369772817432382754018493128699691788793412504891614988315003182934720325526198000242427430897040461779786376510022946423207967900012904060492573714937585846413070634769538734098037962914337438620029968163544706217610654910332641081997878162925352002111479956558757968391548085673334265201585547869185444047326631342386792692516271187112325574159622428956112909528854155163621356997827899896342356982749084080957136235330544733414229776101617746391840898392515774741768106836128113787517240147875138799885606176781249447710688164370856144480605875401052645804888142280885676836795914261550475488275490657735951346867338376280423930991786530615284890582960760896409438806775685984392658242424235550994880369285583651653819345785448308687586041180965862410827567288190386330762731346695686364770162731492825201738256722958206155904605770896102381236880105385932665396820586245143837811999730337797219032739506930151727484230033585565604674992321033830216677044140924682506318641366409394117248739365722422223191983619844572017286619800098886321844544750882015479084627560472034169214459142919673303112108258987148269756255797194224415010982735018638120189534790978311798253171626770352869602146768618423404484369838523753766334730512542629060005118128120974459134612870466004715958673855342731160888572976694551776654355393779160167182207727118772566040947322813368424098179482995673552218114389665193080034210180395238744974339206762167511053751792948356548858187439425598790212219801107502053795940394501849591508771296697690741008711622924404209724207327323502703261265051566604542772570331064200210939811771468009091832495855386613772907854027615312153885317622083532201165604657180448638275278972773482282905657104488611503014310762298928817317313095417864484921873902273982309369115932209928255031582381968301273059557212661460970500384911488044254296805516127350350434601534305973999318488579356353442671759555784920260504483726246047069356152497845200868476729466135320783973856964991089254582293655009788145760223257643275159704480703703164594291186196808766689615029635868338011203801856587369344936162849602554760910818715631635712317511275029887256074785516835231690032472939832258855687647450937594716364157614174727096051740350759565557113278355038163331857020029432056846261247692550727581673634612410805238996387627203647539053240704841207798571920333810137204212256752955371985712482415193012780379808085030550183918885809132386988981454878123781654860854453077025889686057744087976648553337573312433162317610265065212606526402594382805587476525958693587590613202040680362647104063023976281814238850749778544391692009639721604403343254261833089451728887125138510216717263055878244015980312282125559596576176420320584406820511722383795162517978906808896967872177575843928272049446112849101535365758341042662069775754213187227110774017210058261412530392262588795942168928227621572551439775322443805475601865691778099190224877355977267098417945919458776951896388250073061532867424547925087003372347282268630174910067888233241748604851578303429275285130140724376159187224971673576069701831714579997134782183866610871748790374004629245183174864362766201741357230754391983861866932926142329092597417425837883294028290701851036337477412268483644618233670587842018113590604842987784221295557018930653391726197387920275777926198240611910122068193735084608491062407564948942869523291473248157046228849953728673587055610604432296594436039026353275183582937612718621859421265518900974889309083800350684767234220495177708529716383505482766697842954737428907325450382176611786039396843402806986031336564042048011278551858862098393901829685361373812312260143561525896514959387011845602747116910978150727924432180312041031603846368055850376168791224044515983270817133859176186845248974682052428582731932065466923634480610078848330100667770005117057365009696779106456312033881398622519790122014365502203674252360266551929629857456309582728694667445818388928418823027694930085797297843434385683073429581151786652251260677244244794748198840735768761530653219525444338156067828579009270068515254029006128641212824305220265965917583748029985427149203887418972516410423128161066176367078319465880469849139359675866093459065633274002398266887827783300167644041817573430522244571803316436967121852650715274092742156092734601333074421915100748239365796060879982759312763334406054862954896472584023407450314735863258251361796043734976862465558383496609600379822541106413681390275803003963721969173413857764051121695332773182665968663906010055119442551505639620474205213547596921609674799783785316015862402510008091051204220195889940866663237349603828998229860039878539015805586970386988490332637312367638505575089590742390364830483902217294862136729056018449799981095699918762976811590240676603277235086782909482161490196847500250641915201189129761943744455517262511629243031095006947532854530025658603437522922642404151038023460019034989029452486308695097362601389918056878559050275328543764438840065023272839111172928627369252590530982333919581032517906107460634280156603185446964274548639300715532549786458246002530955261231871007328725618628066335136455871502754905461370849115336101249912644742793046163441636429264002949751624616091642357817763514001077476845690456351023652218864302565893604323664870266681034829086291170901576662279854686379143984840377905627746865667533364746330173890936668125966955683696946888438456053427610239380948082718853632429621775435873120583451468640745234152699711976334351660967347106641768388803692211792113225617443797029804839898193125081186204682955472364088641843308645239809674789249651382595820649935253955413652285302011225373450951145703048752012798749235171067511797539539058559578604531446298390172607822529028625703159465410840517251277099954962286390440357196944067419313442970323870489279325017396795199903905423696713394339473744856367085445184576317663363539242682276420028419000715028125853439356311712598509946954571345583329047479392689474651619460546193482641316039170145055180369388133367093918314640817838805473309387092063554264710991955017284762520124822575303178820691805707608462216585425656457401255957649812080910504288912109586189006387773118357239653080908741944787587287364062606228032243929954400976146829545466090375286153113779565560509931910526215261178354974287380774785853656890433585575931982684663130803339167798334853325991180481663679463276980388522042800345447229052802475520732119213879287643474564184038819443156946468596267660447646818695358695526407712782470345081393959053083142754221274462341193752665992331537660219584269743362475644507319672151600334338058103462817442605432196035529305662856993640655606479839222272338324458787714675800330154317000002922654763979471376037638239101917112035012037677145710537404766692894065746118250542060921314504733809473028058851659580749218485065699531645314569848105839214897137705071569867906503100545250939967682970581650139992603725875571023741363458200280314309772651926596990173809959351738690537919928304800937928131526494219662372510970739067148611839383428528134988216291870774956357664396824053887401384219775636022205396153390067856821198372328855040892574486596721266207063638799984872977080347226140316245697575119704565497125509924402422054763358308551785985090633708938068910279013134089872802388926363317238748974510648762288094745360578265384076458182792283538847742209478236033742086003235255578423760014964944349701471489029583034412388481756350768928100071978333759726994458816021769541559882636435147347788038970243171085136105018615266222419582000576157982337424235016712451771060232613053876121800410486289278062448317574241188841347285794586999727644521121850346550498162036737354776468093603190512939618476959245278881333073480658572924978880715363082087347352543065615839030633172127510284091241298781752355608202057109750464825268724266697431635561467364174240593601219616673683725886697338389950001074775200310743913219633157775559496688259098400882151364112252793131509250183514070057560752497930042118772029095078771824164210943503277759826864484682138518741375094005181836406572117620910162286733439239969832261739596621085499470759995052630600829547768100287748005207966398213088674522380905894038355672478579452212029690620215194255719082029344997735084865925181571965134818846980382203439330776195600221448117363741309604349686693142699502590481393964897549470671780879877768774410191611133089708833146120489517855756597121801906755817046789489729034357833189193447587855962634256103384749161337867182504274087618294163791174274867738631351928320942202557077440150389916058101878533191821490610391820497317661647503192917928603014656486214254629367884612863413675714061969471490247619748749260022071108774288801550905119244219139587116206170698279259258911589076476838427178069649795736273299783303826717856965503409978511983510666936878116123287870278151276283208129017437696235204572012396409017538193942405853678293656450136568239382266563349978927669013896033605874570897501256939197005939441886813802637692756759438797386326903895464527930100351471348484831212297920074724159200523020586694881009426681086090027094206424534539436457504905628180902262696114877666997550087014464626445689297049293959300135071022549465001746420868263803983416213750215692107311244217799518085449099318457218757490495678963296820677186373446508860973798698840576146719998658552571993135003298362533011871911410908648839898099533484626643193581669906600164652609463111749776439010525165421781728083364982716258321118000101991850724222666690064077193685658040568036405724359259395096352658813787094404011397117592292152826096826101727877552751151058465704369701271180982299509532424725617566563777736038878229092410205796951019184102839450116613432912536968252391986052873008208314862084187364054363023646548658853620805527664210406831574650839415735913665709386660300090019174646755186793983004855854461679798274135070903806995898501727418936590532825874386676240284890195395032863427316616129281956554000047425095008196933952470149371749771097406782788606554386598864277334872658570812358527156022885944373430979817256604353172832673208613230866576301446597801793129924392724560757005436264659496913848877608299011553583089170109817438316216026345861561445687363964776001169801398530380512630851253964186613154595504510938464300359623844347217965576727158649640242032671217910400074728501504460620895365964639558250969640300957670266118039390376593074673380475220730262836135064686202983215266342469237972115837054493754200588927587289740425028916191135658110175866856672051037702783458974488264912897079507180037156066384860071549064734728807414042063982275917319060814671770709161122070522417073606190584135352219550582743148988220288321204950651202811719969230895147752999603787115687579641156567433906455783145698304296133104212907817768447588009507303605354291873082061653956426236786587690930155288288520957925716535351980483444734700731472052353503081360728774993430548672737558673924537380337868081968332909200269531737691478942752099174578690597118297820087122468332702265896938661607918878173360422008400799458307181518639416240286711528778355243140951729754687173151538843624036695739561685197310150761929103855904396780342535381992452172173874350406835392691934195715678245366281314481878884000674510467711343285929739795706554996017952160407711502739741971109509248988648816274494358107643935722190681390198658257397923997478010745936392351700965147723717936312223642456254024066213261370955142293167762303336357022143867136253566089760601965376827337649369452745777567983207479640177896477518916601097749235314424447477023406885486837134776193122991333926532252874132578395796142573767762317468594498556593136686751693355818093611542552685639595891935802761516847668308920458949924054267623703503484499033087879282620472768608653152229902556492763860094093317341385924555051925608442425546005781242879936974510539857393571231499630809867241947363615514876797435747283486254694384257846160407657254118495911454623919832969015330579865134024112216604837470614573276975126400012755151749589140472298942079875518695082057377425040592439326500825270596518706574380442977108605826320689445752519219138701735034227441666535632246272495714624842352673607868959996970864341398733188462985650863199313013680138889116447928829097028081668023699989826723701478023227566853608538325099204597204083106570498129353603883657411550706228945218023754973084348232276347352429843762106094084347658361456328586264029953147673606074626415526245345911807316560282590824647655062529791045669196973844693309582512901411084925391456448528142485009388845717856746202585501386973788281377294684360104066943911143722225534477641613092753986269308467910223727520138811237224402961452529937896780068651291962496519927522480866293030538036838314094919881931018435754426197939812325564877274731064121898237825033522194883805907351404956912847512494069851569364788456989512963543565766027590900255946385566342743807185170194993220786450699171296866688005979979119953882767646258695619215448851356486528655109503942296231775192195770287894911904440609444977442796517223853482951332758401273391053943548986629268944075407369349880704713276385660619953030310603851868414016750894080745163904012237992619351290071102535319732933725625425722610161197680981236470979923066340703530603261499204596037855933329274118577142390168221984151313883852362183901408296380103302138199325704341216783679750699721494998099848113975228037823901549159984272068325089078799748896682976909906590050109286425934246397666782340230860557383937807632195554378210630669414839074392491458622378751775439712909868291507125709181784609797387744504812069822137249750804120663786754304515523439956947518478158775768182128661765954846744790035844062235814070861442171626156183211915834620582744393107558576682754838269219615049189685815338612292177035808244745817183641284698778309534857396769420065775840702410455261667043250257824017923667542411766131539031395904285810995733569200938272533865373372322564620925228164252608206842438881262389710749319733857371037843019165976977418119344898129853368694882637526689003731857221855678151208210118670220087165214628590057047588015256781058986382007885429874028061834814966751881524119947033574442307720871889262255046791493109529102750532087065318004549927087540430319864889481573880487039476893044176299871242409839788271530854744671459681118507731058220300737450838571717225896526067572004785773017719802097430363104253938492581910336601193691716844167292281282444529738974397679881601476657180692865996479172706145105146548865951532570796008863722000787051896682807626411649071861586420835516163294897482207271062736681155477397376713051326758249490553313287221899420670535055290615129163282433960165266124016478377708652722772354166253194547453165320957178111374685788613798452203945573796901635339447893605398461050749339291554254348046665923373130527191712409508072730486828548059622901672337323280017207339026988960351454725013867102362077955744881905324354015253236854052778026738660912344300913377312038246165144361825129594076446935387302967496169495594212033266554796698914963051839319038267372313907151197815090953247043129008186583437579713764641701378242525920320719158685073852163632052695084397697743446931205196547990666123167400654082257728158723667094073098149988960723957556341078160268945210914965969761813010628915974468551288783501735813255587088549937607421257638667192069261709021464328623087195614459647041426749241226485234452842963005732381763274632373306399337679713066415347543730270045171146765378196119895297425471799346504693385688169885854253746316048479074858603170656785907237303654803974858199812726802518746336071999944864000387052118749600910211534153949357771481988531402377991463709876909349162562943065740320184280513403174483405256521797958861393261482913531108736068718818983375517249189379455004347195620547805353809667412673897521167797813769229915533330592255278374753441508042625189711925659027558567353022847157504076519074811929189665817264298690000484264600458488792892618688894747864384758823622289472170396256470029922424513880645512533763931854115986545424333900206827247974663130210747834687476651041961971646849816865098043098770586513422105715202422098580166254819294455745716070079002226270258351934734039537321553132033824530330790342065632015436826425611701952603830124973761525982337963640096045953378374229302957363467852043778340171638829043083070741864903604601415422754953742489135481377386719782514490505494032760535200471777156782042105039401617743302306901308084691350932687559169093993138518798570641567155569911920585403886678497845035315147382154439146301051463602811833684419818291142836957047000010404671436772445859818363369600123040986309998673111758295617622260884176035804298711597530452765743063150437724795724785309564501213809416206199638448018758605070110111783227995622731517861241461928862821250848994895496295237462473921329125240331007336281769076679662076511813314698291415141148442945574047835000795077472030357971070988233808746424855979588849598106402389315218278809123382622483718176931465894547515920973947013814765249339164485154905218629379341397545750990529074784043653628734202159374334288933668665499200483438272492436308247424430782558662175174559107870154166624881811274281042108562601223008185063735675060771364619236235662455369739974975029864016282125184425724846045290738319330164477814857574374581699448838131575548583408345070938796534212637299317766214598745287444371661856318011529872976263722119508833795687147013209279096908487880469803356362619104978246916883457484230900858278652389179896134858516858145237992669412951611918300548995630197880646887315922887169743823025907769028980809021857178658177563766885314739459011847895737030941399059679291654482903531401259617936722638249690844297110136519338589768024067628911990390805774468416475314413391878257129261192959965981462169611166771733476525057753520380099565976030281060737416933834963036592924980164129646600538019754457806604113193719767682083528253731733129612376005626928619787158236014089159787119660570486740912805718593952315675665826649782420043210175895552117329350756140541226932792902322168276936039223856052898648117032967316772758167061784258612029738495131697665379457892531078291722850348294465986715457874193731843982121174924921303803440162285455313244709176388202797211870149013920529998347571851717798382151892995014819269864589563640233113685853471609266056005425751612136337855591865843845400629632435049791523251134714250975436650118922648826066400310445103130562666692904937225720938295481335443603353061620191648801407445039176345562421707083084667611093187390771290259701793754520973968131396603000772921915694473889771086773079556252403822918287513597255355401082942345799388019323765809616299047319209172284670768371305430986387048806623190818362767293829984049117057589474148271551731236327053241955179206665550784178760741791149665296922861683750514985788788378423144344894168680077261557422377803295166289969162025237564371509728943759253527464656529537842773463866371431071526108549770070551587721438715384922239949978563686712451813684965862370606031286636675500928327640780853885087129355986426601290256602083846096790011055013483005833917364765044641011269426520495811156683010914321893250158856974023551975963350708823099320011292177283898986083355097591867623417525008084414643798079168118512056039809629215088345293788653277697289642639006662615933866093289761801767493569728129619156793273245399380272709652982798917264236851849668427735663186157901611490036782911655265933475608550658548848573928323000508806371305683572623265249855730111529722061526856205337160452691082669359822989503320904162374165639947855918955268705790055035504925779409025158468716868806914863840360512410429636294264550073250335406492798502949639244807902468486931683755592642730970475935632043856933349446275870254969925472916583001972614965244018700817384213221713577662759031327937491722978361793140173801253429772301613356080656596700051444360384198774017626170049993787431410111507112514528374452220479336855694610852914657838414400563303707815516628663604824756087882907987401985380244394209015496997618166421220954553036567471643189359301409100221472350847945656306850454098076652343557728608931651950415528135808951490887131859198211389729225085837277978254070363360283795773885943717247444910585298050655063639866464676683959921430522230577574325840181296288744159003489395340847226165298150145363567470083175342455685864967159356320999298261316889494121189104238556485297625269773158487961007215192036032631508448858129702734827155582918541408202280393431186564770106885336412738534968631814456725568632687948582554269508108708828615671863476798639643746759576464399889771113459684609559042704373227005728253832258451577287289276183116121450708294643328888468708797648082534404861692590177129495872587019556597175984460894095597837269628323407044811312148645667115626158831004992605208497834657303633043879222571306985396891661833928846866572802067896435317241222371701377707042762216444588147536833796300838078015288667161284404847329442671485595164002981857999334024302342876701164234378969889225311737148508920386949620074741356054868573142392451048322020132443580327447438394718663709253876272001247607708203652464208811723396122603472789545656438497930611677176507392828997657264492526523462561705637585380762190812922044420019057305378953436712200948651283333608234239878375397762076819193982883252812327967089418097687267523281172235090010706687439781768208225364253169539485875781631249057163644526677829790090328228600347508885949619584765302372358524054180615173137941799238868795749227067348629669722266042825492506490673825577146029534535101979136391610173481122608096150667493594351832728466646279805096970665446961814053077864331516802855820453541038878599196010590337065640538623499705639313189187027210127102513318108741096084254362438317781078644306658737362511640209409380235497678400195533497703989137113519352168786890223501318767021843922328770072808319940126198430553633836010826525219384463613893248359984663129484954791400286208506428162956158234573199939568984668745547006884015235801869053068009965765855805699986708956053933089548644141257591159644166441612189402865177254604649314902456726107455366558923458795218608882041390556727970410998198552789511941718956585875560133334811670461598185004541530444340805404688288509510417339085157078454271034276018621928342748211572062907730416766711024113175632415309233368799868710924002132994159135062452531537122903110963875784002820770717421236985267790994307847340933321856603879948433100472991825136502870158881988855139227212273369700698285596388292413945794813774888203559711025789317691403132320500472644966630010123172019573086172282759706250315340757898641354129895076501793423590506604598475611909903783354239036152314782202858727675885561184412541663808255372120370360399030183618053005792818996605100339928948069462711304050136978187313308289260929387544811613192114229532171208796570286523948061871951487165440068255814383959661073134445401351566394733451471897017057702387563774280856716583855878095398264029505719544184760301021231319415340614402345809955491620711099547309168498421635329472000463629941839106982848917180436681383721537478482302116426630168199819050708046942251003650587755625613785355528704674046975797842679497850419935670592971005413280447940376020733216666617548445239177258199111178181798271482918126243864999763034488851237369652905567045378198117258616218261461964568179414490108552940678723071780694729666883160168965442303287869317211413055766280306293286582575957627564673840278758240905664464705412160826628179422504698191240380244700014442503572299179917056191473853389240412135290401024753142046494166613025514197773209644644155584255460137288453412668833412678165636947066416093625281200473745432823387550614763122579335500807161639497597157146333562110468997609354469814381718536767533314695927318380475585049468266411334167334068445657634205800543191396736917120741466040081397409570698584922577110582469044641863609968384051194961338704609459791501919710149888601074639494221170588539389849899059230122061028549938149365138946226863685738114920379756262210503786161479890513556717316313132619356866792226478925773181901742722174373170167345508018544093797859230451668036900835653346319135551457504259361557474570459234587953826659935020374380563140930728548378043337795102095624815402495962759843210255740398499509598973755415725302630337353459244091420683713807317251440521730440664801121130933978433554027685234673088990017698177694538746857617758362473764899088112205956099019489945863468239040842617635651683681782045196225349073759872801043430643520275242467263099441381081905394794129768904689545826638827771541366367949481413947018304055928658453231853628226653278777998721495127040944395489322446394483752156930365166634854219446425765713183767931882211846226471590769295460086471375618286062649375051950871720312449829028789005140936238403548829923704690390726765326816274561406176668822467114426107528651433907755970345831087137584648817535671447935556789725317333788280111814031294840494165979240978141358406158664320399818635596520348682721368702620910092954919620469442376475750418619872666433975259759032695095975978376495626232352920716406074243796403849314497959835079201639368547470563345662320336345928844685534111460465024113331026769469754481529493985797743517381146301930103994682271106590659876493051209431295857078364969775287078445616817690210792059917907047072070524020218154239950703143967267036221556348278715574676723134124129937288753540067691903283835800901085147604184345037164375023375416281889883510956660381798258318324220290844534208282589120220208297830282996905673705838098807551612846615293446785116080439212647367950029001305390143543421937561377248755069056059496686548857243928779106015059172256252173638643029625518308526844710396926787589742821352525030903811233567755934374605963949533995757597297614742331851333434770414020607174952999275921786932581407665510856652286842723830726342102004128788967044709372518356575189527180222859089904925368383122116253433910628568137618070415993401628718376200927718952316261303178881347471522758279051943281065839101611701677308930683455919340389565198049785486893507212653532883137776914308907069904671592950398447987615394696981993588695690409969876473416008460909853012091060424214922655590745745474775089437740647698052778183769373306104009608902731660618209279600494989767321833948505060828284772467086739591678073916623948776850115452861096042595792649994581530076083800458680831824350161568413464529237603566391705891828961633891802444713749864677889425083398492002843573309427294596802885263364581208339424637367491577486387960179367576842210511457151832245709600822962952178805784376337310705101469835576193098074567962730588718084080746620076755256495268522858616130025802036844364027364515651690028292052769373763462802700404355495882071279324147228972362152925761656225742680610333031496991501422289342214971809805025146359483968069923804759970976389900886746058614193419274741351227859028152406371918589515579274976731845899788785035341752618499355986462852242319573837041383355569237157940878776139511553690129345710562974523145324039138715224355337915332841190005265006899573326213037535651455574012229291004378870825339638676488792110458888965343079679575615257255044948424587627499158445339659361094331156689233336917131241713794586442011848470633766049919382141934586735690101586799482859435463580385774724482627169104228222917366417311731320404408637726823765282007778918317037066858256782097230656131643070994689789680502489042934681770644518323409621530866194052815413676827715779715922711844151957009608182714192092777061299650163032597383536405235450727894128555342062318317921582660564641599078190528518520222097150687354010462110087957865909694659568684511597554722694153855040700843114950631955550235161053903869797241019653226067292662038326870178223430032916134469104937180928857464662014477723370047461014888722693832710425393940865062726321420663822358893554689995148510353693949206257482786073107659681503932448628277855284653322442563934806051947030731808613784981006415914492546799654922777424, 24, 1, 53, 3, 1, 1, 1, 1, 5, 2, 1, 1, 11, 1, 1, 31, 3, 1, 4, 4, 1, 9, 1, 38, 2, 1, 1, 6, 2, 1, 1, 2, 3, 24, 1, 3, 4, 1, 22, 2, 3, 1, 1, 1, 8, 3, 1, 1, 5, 1, 1, 1, 1, 3, 11, 3, 6, 3, 72, 1, 5, 3, 9, 1, 1, 1, 7, 1, 1, 5, 148, 26, 3, 1, 1, 2, 6, 5, 3, 1, 11, 36, 1, 3047840626935020757322412382876349251752753096861351625100697821773083929204428985869205502851999436473362987, 1, 1, 1, 6, 2, 84, 175, 2, 1, 2, 4, 2, 4, 1, 2, 3, 1, 5, 2, 3, 3, 1, 2, 2, 3, 9, 1, 11, 1, 1, 3, 7, 21, 98, 2, 52, 1, 21, 2, 1, 1, 1, 1, 1, 16, 1, 2, 5, 2, 1, 12, 1, 3, 1, 11, 3, 5, 14, 1, 33, 1, 31, 2, 1, 2, 56, 5, 1, 4, 2, 1, 4, 1, 1, 1, 1, 21, 12, 1, 17, 4, 1, 1, 2, 1, 1, 7, 1, 2, 1, 2, 10, 1, 10, 20, 9, 5, 1, 1, 2, 21, 28, 6, 6, 1, 8, 1, 1, 2, 1, 94811588185550802691888947109626145898533574537918532528955499880576295340737081663118400832930684187007545067592288704988174248276916763002316331147477010144893360963429819256957452971445892937796567925589531576783971905106707516382963692023860276925979403805183311229466893574060385895321683133913020686426382173232860928600185285948341769252572257695194151745406370748155583289282075632758867959130511109447754051269455576005365964680473537918525737406401026990437620887697112711554501031538280243033044262716011835340090300669557631330106202367674765937301689682690980879697150344818337730147112170024154813192722130264877901346675972168671081359705613092722485991653613259370547972884376342932054267171036399882067802664147649188704770677576515911496335359796440994510151155241081763592520297455906609585257849443392203994613466433297791868951115681553155152941418543456888477743601863700905852883551916874084010169477119288450740689486658185966032902816455405763090430381244683041017403694102381816786573971155389956621173077697614609579109134164398467458533129707142513988861556996750918953984445455559106536722611500209243985181093390539388689735485667788699288052487561793831326884347129237382792249236254467701398288450900705376745469167577824868217275789218126948661240354031671360731724372389879632832603855225211841166537027046768761674502293411492518398025520498850729809128395792509273194856229247953314329443782729645688942590298418678406507358224253108144786079925766511088525451939706513375917698478756216596559386625531202957229708262799503205596126958891290753248196725680608071000015039908026860938101573404170149676640674373252101858585923038677550238463960787797095470519926093919176728245813037432248180099059473185283725591028682316643313788774039321737855339253329769884940239688146311128171099552214481177098477450852507864984184153316298666508964820113845996883111989131852372621512286788418880158147345288365158171070113637616369200136780390994455509044353944469875683626327271181591598411581266106304107823635880923563205805641345096984900160155676399582212665360819876112658230776765007999946044815614052782249422375147439463867703331850736896052119904564049606443999528135174360080462684630525393717181099490509201036255640664012920486507954720093482284479652011169636910222606277635137269722760346710307574843436864803511919612961992305834924822745662807727074861562078338324303084413646819212796861653786945167844526167853858149679692, 1, 1, 4, 1, 6, 3, 1, 1, 2, 1, 1, 1, 1, 12, 1, 3, 1, 1, 68, 2, 4, 1, 34, 1, 2, 2, 5, 1, 1, 2, 2, 12, 2, 4, 2, 3, 3, 1, 3, 1, 2, 2, 1, 2, 4, 2, 7, 6, 1, 2, 1, 1, 4, 1, 2, 8, 10, 1, 4, 1, 154, 1, 3, 3, 2, 1, 4, 1, 14, 4, 1, 1, 68, 1, 4, 1, 1, 131, 3, 1, 1, 1, 23, 1, 4, 1, 11, 1, 12, 1, 1, 9, 3, 1, 2, 9, 3, 1, 3, 2, 1, 1282409532859743054814016581451672169597214608073139006012029770452718223534299625694581836197983168908272712969697509897267073018852743, 3, 6, 1, 22, 4, 2, 1, 4, 23, 3, 2, 1, 3, 2, 7, 4, 20, 1, 3, 1, 2, 2, 2, 1, 1, 2, 1, 8, 2, 1, 1, 12, 3, 1, 1, 1, 9, 1, 2, 1, 2, 1, 1, 1, 14, 2, 1, 4, 1, 33, 1, 25, 2, 1, 2, 4, 16, 3, 1, 12, 1, 56, 1, 1, 5, 1, 4444573335377800889111557880473920830231602624030086511233030032956151084816046502014818059611350412749314560480783255756276812965085095681101328974462541435742487655229108607549299501030775472855654490071451418333961978396581437925084887320684178527343795941670272293397229496836300993183044727694902759900383316684636305542152630388037530561494997393568486573170681673939965020103232725870247998743786336297485135502810821704204392968030118492943174609555700752980168475114841436723698491409654280056101630258104851225041771781759315151847557269255770159121032248979105973123148078545329590317394530416509790241509214026821122553421418784385481919627106989842068625888359440110347752888873718826288105641200846286351143798097396530796960618849003213015511054465380045779369545657937188205791953964484718859592132503754182356832388529295460643601836287123517405111056632963905337459456057199071279908252881517367434561384898045117672026470344683400809854614380307228139520694263884563127828762970482734491825836559695137876389054718656845913397294796856357244971106836242637128107112271912928428258022333885643766136142548019296958259340091262007250681615332928847278982926673014753060160282529764518391351600618871947060006235530232876833429673806464212180849098767763315081007751365612485428829030475761289403437743638279401065012324717787171420636964238107273030477662655971944722668392145435591836282402637248165216953608968081807419919250730278492456088744487522711884185449563903381043165507404933126562507233034120374547022634667969306467997413346093983087521911914907907926139627159999562523998852940495549063566077626898024902317984452481436481504979078924223490548790661132736257086701086137362443670670948181163904012338673282407925213593940701758649751690094229832240230815573486632656048792799896680692916172950374418405492697651675983624736730192318349405637097401089422028740723854979609481709757248212287065672281435514588479252734118341234095926794430146922555763827505383576956724884404882754985692383320391294548861152122728134119464291017812898478543179148719796078605855474662695213503516851575647763237574179316876830607940591017514489329459165435308569294042895424304038994694827861011291324214830867000627591887669470069694876629898165229284729116747848679732499175258865154034076454241999450912137070659475601186023767386852726642785701431292943869356312159865836632898819641097324911812466829095225876685044269950505689439505763578016616691197050998803023576619421407498492124650296158624100519392721609476955594695256998139530518739568396572710470426435211978884993901772324636803434299142439337961348107396293528274409910061147601938902394294453088086959826942135440575148326154298019573028844469216029109963822118478730893230047955150476190956081268579108215634797325362532904242628440476789945186519000134673175342294511998236358425568383041068817428205321033876753026650943619076367412596224839100750303012776590023674958753489098723025599398558716269769867244571086775445573064074210803977213954348859299036983801975692148619964223467158082578560752357471831286170667704054988595190655972057521624468867041202185399585408636654240804999386100982083938103363827595755043342398440400401936779715292279714404509610185792658191334983540357187439284358753483721304070175737057232038347537058145027104674628298041110848648670128202607611750129505414935198351897619727561648877254666489081362278497746509911257211445969949480239542585336533309007227236679867592283545309167582560264090901081431367420319980415026649377348736403156931948321447352778925252780810184700088762015278901348640821613533825893687564823442695901625527769196662226963160093952770646545005413699372063736975670159059783760939536808996044798737337061217024212103309634030052311840921250464024689581424374442133046887291402932769541636027245070953011002142900914535835380260337913977136496964289748306072862467434466765287488364918147026145511508407809262724901844028185364463306531418053514801475930802652010244341341023175616346001984049501152363260032350679863455798574098330231286933248916719748707887940713759114158934324749197178728534731948395753913872426246919575191456555128894131585947922343131215716529612049667008946148270965825370960340987489446905001494082476436478078207731610496078717907177180491388480617315546703388642703848182641003390765859304568716968463027858436749214595489945263950791172641933187469392344082480084077141731458571139592329871358100940290054116828344752600469128206181417474283787938069529756727045181367468687077746659105390053104043086922359061102614179573046598574419119071476374610645155216952676060330165222909922253209047018794684522571608382141297630567935288663197014193066999401079089100036297784767749505219856910110317396132780263899496383427307704400653047201772941884436608923442068158559274029338120956459200352132477502364658017074725940837665249160097079181549978335382808069438341932070322430294693844226211293979537537680716813751153585350708458270478278466377987643882484346364248069739607452971331826695945240028591505920992804038707610309357418317245474181761887280857387452418007090233475482572525334729157171883586979543963740981456737791908386945056948395071108268280918560350189497848693894811224049434215535116414991444525654917627565500885012248813718414875295464091617356167310258969072750490501540103799370364114933828778480623653536606643778253879208293094205305287195762196550097310365679303628004301586546052300994941785852395613878710775116364604707266334906576002034584618345980503385428093707335771127067135136877375695502870108394835479244998033285590725388339892418870583286981859100614181913067693323243668943649889981140523030880038000825574382899600223343867116515230867617028245491426625636420232438397626626740284313656803943889915368026615865880833255231930823314741538406204791459077827808727716372080815530733383312978511782797556041959982522998650659266127173704400214071997994570217696193118423678474249086624655204430995166223758707285795222313681968923940558612953709126206477855010334941201572291301012710186521670807382806499204884805678165010359561378261902916329815735282502372944262048118590936599371873326158411709413379462963721676989582221803834315166903973779498620572977193143381097507354451964085470304358374207586548414487007964947862858200191017707033704186554577095019236800156802737563265948468921662664268891863337531614316375261765319341232876522850565384962480414893216079174882464030246441129006941103408666455707107814381287902778148045244313394136795438036999350966800149004142411137992149134764544157164619676557672128019645364532000981429320880082407930834003163945564080916981395463821210901229737476007776203652095139092968634475867747531154501294256812220217096705689485516418217245657912900141250489414570465724835293880282602183742657901797622068039553315841435454739942459179445768119824555989832974836548755966014181244244122708326040239213697647271161054568061271102973503270128224561644937667522812529325913655044651231836100010339552996347168736740738562103331403836255806389357649027534112431558176112502321599497496990581212586927798412089755524189289133377819147485206972105227450787090748958921512152677979438251474735397465350855077892923379778010660815480551559751351870823699276172065265288695297523911357710855058599587260339822431698231808408143988111016121893793489077646783162044768140237781977521744934428274628936605214129705086582412991921337201144700349932342427244737485836446761421197822081541313042963919116098514231497397875398744930555864701658991605795224259561839352629591108724450861219755308798297885167332811000023092810548044608840983985871669276824231227587450729493875899586506253293730399750421965670654581436810750280722128572346701579515585528245386403878786954478401304427339729972510716498496289282514863098958262588997637373885139063801089602690325291613790695783827212664968221746247656765335979306365170585318663009962006174799586027891761651250446956369012776662675360258899442221278790482443320764641811577860062259006586200030131891501458425369785201913342188194462489062784333893667493145354447487028776792267792266733060830253829184806232452436422371201239386740883372593520250292022339445130178028050186614426374947120986726615505557985926750379904998199098710213363046052690067190730073552025366103479851921502079777315935688535514120548698953330517281537930622607243831060617981089813347668696622445378275261637524962578193502685844492662709060354798406052286143250041674319747143368672867052810571815141814697321306425561364931578805993758525390937582535265986868046762210026742145045896143481006604102923727176917989272099376821161892695062747871208316266756583702807701572771287602278874184850845020485037233887280094099419037481313908329829963313878093826667413938622810619901951102456925119354513208416127947190967938671083638326387856970038656975070568077846691943471601609448393522806162043725536467793799209854796974453202411782469117711974505027651339051003356390608799901558448925607999100716690211037121636216685005607096693827872629268997110201473726975344172869715958303341032608554535266115615263846572762272470141584482777543551013732591282675132309963595367190971360394232102612604126290268343629042089332300441770515420262160872556434024211261868553174014641271254038956615410796720817873591801908065572331299366938527987726335531110402267190109390344785345931766201804730006731872822002931313105748080755242287295432639221166226504592444699917213556953132252380824922547390835271806732690949160308330681940447261888894855419839750177213977053569838847108209381589375092946313767577018361496619189749350381619539433302641212401420531810293377008527396070467003931212948433002720608167529685223704223516066155796402026255000871990909161519193941455800309820511813326920296717940642606130305464068578480987720376618469887095532793261650949791521404582256310594987275649211916412281855089552607655939836675175989364545679478818310889658650673723867482592630839918397088235615841750572214103171812482291214856952148520759759134461463860036228801136975975270225694595126050255968369164195829819869669576324794979637573059637936095620291431122244570194980835332886182676055479555568240751194382546044677743311509718202786339953840640528574115791852241023640801386545497751981990299800200174535674984712477668743116989505177586205418902242911122032105422017599145581539622679091123565312620627586089354105889411506810683915120094533487441653878326593818155614639242325312033601629843810545175622841124349582700262989912494791913901744909365385582561864772892446662660247453024203025125075029778644899748957944817919208096877045788935704333606180151821966066389342531376059163973075071882815716934166088427237208045359896662993939328037891508465634141762277227687360871474805778367986101672238453247069716747751737285613005752366864768352619810760868985940735074268849193808817180425130610561480311515406236737341246662652052364996338458710081992362730279889854866775205645233286736175756692881450547285813897221111346058296456397218451539404450432469776889002016950708566033869504030245683117662867499054494017371364119544648022348228501962591010438629605444678964666588200178553238907097237671136128653018952523082467980749722555010587151927869010377803186228775222354356290253807132445539358973545801424126216572773936615145865692097698633474109511994958176449269628356324180946426832946554418701118482297200063361451155052617005203501569690220188087025747809574560565442967284626773186156067587552650492649146493303000080961838511561030870437234950157085846655065765270312696313215504316785659618670938869071832988719316701076920351145985262813316233230914683718347958869611643624571163099371570762513348334937647954334060202164675983509393491201802332056787555306497573927025479553845633152329063710440960201183340853812761443888575187743002231343456989251417408618453057538193333443297490270931300780602337796434453672418910385140011390790305387777400173460838915665927678741650823027722311826201159269535506031607672441021230026673915331286954983322766463009489690698084714878036952651265437322370717070822978800984696872472517423174459760104643865694462721948640779960613956158932826972789276564742222587828845332533847303118424464277672475562135635285560278689298743288925401297840019386888246371220996580678511851881603104491261248994181875707530096435934459270100056588036480972751063886542161941043603736492430622412991511956653158945598747310315058255565944032541444278659433369966366856861164793916274811123279895519954602047020600707239070842573256713884203988564681865767123463079769348892893901277850152513009239663702230568100287782775798981366873849225475425326327709024338647644178617808874528859841850233413966860849512140882348352511360864506830467403468053519970571028866726719981307733586382655737767247764661894476943119706975873252151147888919864571407208892355645264294387011461790442576669584352369422169088937953293221312165107300418588299819911640612255787307731668761179420562484947804199138828351585436319263068769921698637847191857522407032146427965251992086761082303231772419179201066722108584980934669901387714803303687935688350461708237858221433633684966282871042698525355334695592734167885060248091895679497070643957000353797230659019058024063050179882831573912162629379860986239200162918626302589180012535774220982255346631198712166900610099719593625086959039605067097792729747447131323831024813564908616751699781087805533012224107839027280853648538449083443455629911473304731115461739379648084740264730097990513679427057908474624854695362638293354077786468563404066268712723589957790756791237236007119111474251859148306048552923527737117430442338865059357051951565302292602146805340497783649065359219834700632392076498301102712190375846236215377350402400704878470098010228121056573594361819054461444303162546835269292422348179938013469959736873278581646055796545402727570259436078085766011232500507847033900385696290965202594866535159156741972938470839232584224758559542355373861679201813494162599470471973833928892346761660343893827576514520593364943992561708707332120706255870461995212210363657480832560707886722544983184385121780680544458278857340160890291978845659173395165488919534282689338107455465532569758657477633206034455637587998093144140213443844480852060203983698914719540176732330383816792512874016759492813533034562229632433625612090484557241880666786169161710386753831731569559700683668160154565006799650081162085310621117752387089745139231988946613896872219217604881679379340388650058329589193746571124776121366665873649334206172072559425121214967011478209484070599437082265736958626087948830171808342915471684906521017987441828260897598768152725094268369080707800100803499463066245075339347056377143082333189921975289139322433690624547843389623185453016430512527731920185666235507878827416922363626686678822952582109078175892578411272572142683895429765543744340825977408850200753867365480348984281353583398193334164890646185516851413385719706616072042208007981550997718322473455762141766538001411848857730959613495340176671378868571439523635674501366517372483554083089715923154860810787557537545979212922873970680529447459948094394095599689367344366728946022022219613697753680776228051841913843625156070419426159644136385237723633066869064687949412010016670947590580319560530586160689564127591243495836186058950662854390103494509756081580181427716395019611515427770932907322115404193529942311558299726204018004351267357786880091556574634285865856354609510785393506523962380838860615374273767892226932906505379626757543436012388331183000893318668369711390858883500515211394335968988982417770878745039750997810112617030309170337685599778709119397568930482909061437288640742635402413870611171722834227650463977368394663723475168123523764868800205081542434372920185203363025249870231805586391366794620390005768197166130574289350540823282008511002680615527696927154959938493710565161518969229368262407025730723841515952560777027503285406210495327554027193118266850169974508712978540169334340970744127194738666617405660176640194998160752538146405029389211916941488965245633350548134242149573769641639248685627321767728079667574816923749272887712853180880986557334464646190097418917914206727227654479135327017288056915754531663790103288010504710773569169965226034266008771283132484731166665454754575815371473724909776520610192140891927439334859945432067535894492139682922266817741223045411532649417802394899088049682770700694748744343814443751130035879530784624733370212025226438818246797183508342994475564415796531091356947691204952208563654623928180013336148446290220622571075794816994885945702628550897898536951685325449138742705850770223170880146420419294274350152000262976067701073291493846943145427561861683501838007147560572334646430108605749516096974871602470471744000709589240311534522736845391227450459018999857071176256856821354463995679454732509996744735607160995213924824436293030073610870076310655401642872452744588321445243169692678467516084874024127751277019258645120686370804097272464457493938720781226422578013313362426708861046620071651934157683733578302438517470951787262533544435210724177906415279981832084707136650392331738798210738825580121306102294585901480477292901914099694262448275705170833217969412405643720755615241582683101236936207652641779225832978153821278239185478329514512095756999478982857395483004879187359809759137041778670776009545738069833378560502335771085977124354911923378163377682296660544951640879083352995431420309413333907204558435154733587890757116441644721241785296035336173064438272281068753686993934076336022863060158043094764882245907258080510235898106364178852565020202975573109674435476916333481662680627459802132322177393759593801288863400838785249139495129596908916075210977746558840677167710429054627105526953087723485066569265655975090638868285224464988397810987979821876342635313593446936199521190818001093192120886284322233740371350320229942307905288501555087844278751285713118997948218039205907664588956417425224598918942126112915719905289669370622555087740230407854193270435305584275619762518927730402137354225735456540160189684534252903413335080872627889450860641017423397483371472850479651278162129340149719520660253926543628858418768845937122377163965071158239741500948430768749662511261497101875011842894467726769724619229031689763738821311495578363924053832974682023721839710070372227029092421425171768314680512012001391286144180810267655453719813734833574278880283544946337941958329356085288464938929267270699294384053548220654656779241554837104239201467548238472145756380489266834565639278723346374396951640000978609934121634719536684871309584066383972192182799604053942695402876752781172433718122561314467875263202871085752609188922985180753868873477960317322008024181970306351173642931796940895443301133585509373838884238035607764705484514267373549071947199935085094433449581441138900426030118326079839138937510964497297756015976725951434520015074791523939956353291213447120025158683330108176123880425768835040689730744104543420169444456603195952481767439606912320218622672583879128234705461409919158509583861367922513718556258930953331420765996676316109412334769074517713070687805227900890253424064197887174238331583838092854986534106732019326895312713354655738518946509112258311377154376368605645907160959152662604046701109602260736040432921107873228652999915591941853935721856241212665193221038668620407317438702521335053655804362374810915737820059615685762806379033955118437442547432018189015300257598491454118813534010085886012032486311668918305057686368712800348514179142822800755123985059643507525608902587215536368652572995822905568842926430297349734695358327009969028173165893306910797642101298918100458741005098343040103713294428988446157466741780362680927943229254580337220793265052106595312682536190475841269782883545901262724817332831993497890917134906155508529070413865264608649328046802362578727577113229640615860979109783719187351714311932951514266154054462542354050230253214138724324213301176141452150315846233914995478992305702777728622532230871440406836026418897341057475133298023263649063306659728391926184120329969821924287044738444601408401413839083381727225666190787954711646290762782427951290797591862112969461719760913576664168602747744430283806250962705287593801348970831333941782530692496416553136444527712241277209107805948197327008292260793530897121835982239309658723927044066466129837453251620478625953348298871845177479914771378923377499855224684758331649788677531071909722406633449120376984497003592274264511168048871843460578754245989189420095098906864381517734944133068513357661105218960111260843636820100630639190498824304225264920568149302167469446527781846930289511323301700446405293008573987828325779418422269317853447215225463331778508803630033129113171857352455570158318493635049993055367476400590106348813830103588702925604153414310023668769346440022810627601410884338679665595476437901126817641737017157503598429481773949554930322799711008694191140964469044878359533562919620242144201396478695493172926935452604720659998589994653930190505592369140024579062620276737575464305373848148750375282045033185414433782982492736101552147215960101603301844379686473663994942826984322466517374189992478617747133884820180322630114239036908421649040476068034647045668408112472423056699154060362156707709888064134742655308641043255968918185612326546176156974565489800663523361174600243226331894781725756822896423382480958863548456965561178768788088308352405035730756304450665086934137401213154255178862701399125502247172918490943469597896102894556232490486226946890786728073197783264254388248125235726096518409078161071004094072255518848867109847249270346425998295606214938232635337658645803313424498941201077689827267191177142869183926716202400037436869031567190648884979191683257792035582213239436489352593386294657929980797498636400956993861182940680675309529339742010506106422758612278187341119395691125774184774281018105262715576729472427868088597559188439586954390965911419110615500027713985011149828993403988815024089222016014874943589038469578873619109899712582632308365851668256954319920822736095562761628039642333718644123014843088445814384653838160130227204549059815208021528828939628061261089522611690768308291075083525656876472399628156151112663989407256080601387172808008608219369819742555028616158183037685961906756567047225314846490310463209290805314042617753811889615377958786739028784566404794717272295690820273844641857055332312807113114780937648983763066877285979597721914919714142016969547826564357360728151196254858881948125422231723388693161086552031269997873614277066421630193557757804581039987263504270366251801635083926958190204344135413460501262811854335969211790605134244240516958291136917703930868751478193257030403557325674480630143551659276961210264110355983906727858960247551089265030043786992845645881486715438204400567263900470323601056133884820807275189323383894061407499882214720078592884969352033443233147527422572002260928375525430564966579150671626991953238191865230226258910656023173341377275665762842798112484395258420723808051599206263953910217790781379623493062735264306255961463996791029225925480652581777940464363482110309810208592951609521453493648535742887289213208144182712687753394702618471671680293681735988318383206177157757012006449667187388810317474403959427301942203461219882721937908974556153563065601218822383334440050259033611599267372493889051347642775748020578643297897848810403973387444361356418576157054071883040893649089753819028183187827989389995194932564182627874338916700303450350482272738582471636514867841809744582161968945769407437657427594600752210561926381488697477540441760892168652203481884627465094472934474937079681393100331351825139095038909317763807033148587589409881259498540778686635175714857361325643411855987135781135674537785807712653671507846582431501154807241397760444775719730557756940021528057286452114578119302670812152938796020108172037000048027899570304152761001728531542057918219553591288921492897087628781746478593170886059688087174156899039626449021985723704126448445441085485963686299869483588734278239147423721709914738131495921681360801568150908906172154378558557046193291211749737682307798700051523140127692834412450042061732938482343575706501227117351484454491264765870985717011456215876163914431365032547797458343174631699717614666774581270109976876069367767014562862805504902015255030873751506833729375295489113196872953234504678750418468675363176419730192364598333594177747059325202787307264732647566570985421563254121623813873430544616004089599252245365821696631435637586402794430800157372996194615660126016971356953137743301613448202011496287187242741735649691209815921942203118614655637731103246771051961202962584476799798627319922388451089974542422283508259087679653785559242610356168154877873373169630539128873409078725292087577985714812146401672846226561377206353591761476631404739233220568981683601556175944559594131671628489056496786326063608634174910607262519701209849821917051813438091303055667882623715580712668319943371023782346713890958522771928504535205246957451751968452800494964106062405353826839291436318032519284125749938294314468278163629495944740908020345118048541392485238247813455282148407224002938533394702219331801333258005371582665319052291315724244552688803649429142047870034553219118424199505393306764844420332131478253671866854300703482393820792562698982373567025515068925644061619444939971102396060240819627129064341174476566977196462306158061530004612001628399355409084798392553514361417461477700374527317257379050931967531300321324801462811761968234061996509228038378010838330497756775655449326269589080410029036888001369024376782524970595827216275898918386740862158688913771484295042952416751346414001182256662194931888781796242917542923271130349459596168479813940438112273495534928809438669788163924347688425306884465704296775911544137051660619561133625717847005255959661681996300068816735207103604181349235882875222810785298798700342237318652920013361706632576808053875028077468092217050815259972975609761286528453909705144626103381946403762922831392191960131397071917848784319363380682039095164227285014582542411507258743677162334738509162246064405279626188701359968184127603559878506475740698688401408355305820225102883156210680805554708992611971798124487699451949786758463737714878915418521111788139883328597224548758546152747916263980219634674511392143661502105105640112084040686361065862312859845880291187845236325474693018249405035587663945924253074413933487550849542661791207377404575257644464179740135333596340704293618928223353702594655414605708899999981689814739263045099729849652693054701619745507854355633262271817176016394311416307839798891767817522524147454112978716872056707572623649400616462201531959465042624442093703487195816592430098242976617718040496749661316656847063089630055033119014233579678159671752113512148553181438415759550307839547249828098397716363677036555088055756660460455809149336431637932514794792192479084740189194372772027602593835214072013349211482437203445184769112879182422255079892548711539959475263204506540286119043616891962545420728047356366700337203583376365418217561202343642949712514246660779911626688677422642557230989112953339366017750475385109824122361708254313735348456994689500231455374760982189828025839543728630066293152782315642638880127972083647505920146061468034228133792300328518348666315683761497483926678674037976804902458942333274387858566272983774870063071749167076904870497318733171681783229193165805520681103367159053944189957401482980698665572177728663231457585777839516618703113747214566095186488947276704517815745304645583670556396053332996872284690607966603667267011536160051274277564996784156440067685811611959896727084977693933885871113137177937070514241096042287881788297678454489042078884421422492388127013240691340225831617189414999248831213575234022757411423666177354647705480050672991799909673571288946396424647739807604084844055221171619076674759672145884481491109371047855168567674080676269807520593511350739850742106122930990301805298392995194851517486651457496412727723774499951216831993580376893057224900860605875454227942838835212890750485282538734323694786879773650328366798272590633217062596705307740441565755176728190348524311143086480806885609311034798627476037578566030116359950549843792536913253135039251732708281527671559639876704470786397554177872025866995698472775387736651601028789376880661110304194390484064559555957715359567885618186992199333911096874940264544787018405065977925143446505156178864545414644102214784578381259401914090701670930389437021945825551000086575235940151461719654442647944789660336323681929636967424985076342752111283360910684581662840210098911791237870741717179299642904284643294701187839859007167056869976376775683366549077925533670089775174749668514791487962391592963191725377007785645276264466886187598395447868539152050862888244030813258493193174613736322291067191169292872031220801297364718685761490437585837134250202353028686937279879077345506921812399997538131825210934463250692729661090273117364845511858018675217422216769334316804410632752781820462367283639255068793048352182848519306960846056727889402800637978045103954356235918645403219001089917845275865136640824062398920413457372620453618422813301091904355478103300476860151587529967867487827233633260617960838671178736483393263440276514853153947712917164675907772376725839137540457579399803066968341877942248305192387965380766896803623282967362954418574218644524524857850688047789133262414579184534511486187901530056285473771805825054365111521449799260498452444622761715081207437868273149287042807869653872842669837248451186903468043998651087634641239693595066725341015371800635622164761357072873537642699998351311334221965346600395466705751533303929162971613822441056385316060458516992641104164718878162120210981243306799327994643069101728860257335226062797119653874811350489434856547594545347329445443737203203336711675734760609579479194176781423801312992804222659681472999168359214481217411939894291909404691747496102934987528177693752864970078527640586203336533816208501103135916225148598376894180886703989670940985163784180218511578220445704284863555652695556210568666676402718405262095261246766238127446000146966352567750575460102051936537374331769881719696030910293496901071660570300604888416176315109139672331625675668598123688138567507685358048369977046478814336642070902344386954816421321577384193785524497498496965394344788104205481203412670900805276778963180389212881979497261124815600201139216456877825079745896095117833367078651950075340237009821789321857884348065403355813400868450082587640446482957565549282090455194132171909392792184163934406358700900396608158648690899830330021855445800001017460947214988921387193218232188435991843630665501952557041093252241781585414190885713075687607844333119327844874507642332132386024669919019301853733926309278608427032288877642248273742395968750491466315411048730066649194558756450986055810915186250336931007648586947773065118386470850654631062784174898050677833405734575896000279511420461150660373268809889161667412096137724266187513485185358040913091061633205915754257183178383598056678934075619948935965415378231767819840868756999017407192358697024767414291394767283782639684290771099937814104821822388501046495322864942963635018477626431108657804898995883405495605244885289315388394243015047205255013290654107978025550594386502500018389451124971431390110595160886948631006257357682981697847217246116355499927190434457337351229542125005567478422318272551052625743135796862986860584574638320867416445273944944172468838918359404524305495436143870293208102813627348877985670689812556323209253839791770624699972256571685785105358773807333215553948606422217396221152096958281452430949756885929001210063081869234941193335550337629118021243550909776660141543487169780244177037215938854444001139341806260135558083174649245768637179196931365543931810198431349522147528895105369874749296353794705796717945499491247848452129886691639587813204440621855732938315351363384502796599171010950926873791889438341795661823915559648095029435051959134860900851776165026548870258696713310204538268873843768614924229471274700947054118604310619753895687067291475310318583802853437502931557800246704119504860884737738987631289560994291522923777165534186980455914362263451853491124763425501227405632782520008345662741620521844333158275378097595445821131677139788968522493277949299838521850138816768551160868614675846535515899943285986048300129912149021257741014456828982882074651036816983956978492839952091478708450788211810775971269113172647827803090803993146603431803758246870431236674069076725601831574937530151010900547171355827941722774591486949829505439686353953313150717279203728844467125629672795030517848908497670697061210260013722476269123081094247602403749175967887921218130219145622037559169817396117959242263007828154606296019090713616700336710550729675170505212924299026664288261113521816212271022406964224645722652212640834611077093411160676764354077221545399434972098153169752511644771739875776692396293965889757474215074315223437021832039125581687907733389518549117753139978082045644163720010870670423098354647411828676383793491363969456303349721568929397693504899227396920628103842993833075710168290161076603991822458284028270532172629725871227319444197040932559035162254741123032702350765267297074488752969368913290329786482880194228496773819038101688786654273023451111216386713186720377849955210139678820105050366163632641858149641904477272514075425890438920023123630113624705761723585688063877635032163537465450810612457335719748886930164382795106693689968894185466037693566301686933015482769373734659641743262616690389221219068921238492684751578421704874468212358565421913138854446395021323706893784489952225571532524666061405910757470344042759003446564529836972042093832643541118202752913952838601022742663507198596801596581374866383555446487812278646513084733895918886886168150401989930061311866120544911811948666595889367300168445973849185760499687865478613529869658481286430158399617939944479207060435097907756952572596129690980488850780329100534425648174909864381764941869433996229706128020071869260793762943619671944825210327360595608979663067074217793460527192346240429560569703876762884103375355602575577256181093528681458658057261714127944859042933840085317378870623897729368640379768764777387303990099463019671708146214642248569917135331480093346169513892000471865412175259515860192690297627216677142351454745938396412514373067219566536334064073607426353676754432750714576222648668825777430411804497686487763444213330975637272230131199732497654187483199784925250648195540553083697762907753849433115388983161805954479774390294220732242929196585694883050223953184730286651325726226513691398138877597572897198631799759330567887438005407282793008411188431718174932385385487264063232935668540178497971286463395512225580911568409655330888762248287042680395998580442324084701268409284137526362672482033036659191030081665038441184038654233497629748628119536576453791990742437395830434893558634353623730345305131236451057254671729306784199513544704625947973410633012327084158471530537946016134473050646485070803797632446814118809165579025960166941730843173290703267808779153764206968771774676036516493905336123831427586340851104801763464950823426612876890116662376717502730495409215333565609463349292319790496196954471076648536019092872032078446338013715156039438704849281961307996528771315863324251807511645887062191768292084622724252571495311314805440936147617793247441828984115956636808757065403454966857787021892315774567748405764598690145303926635680052236097588137450247616097581951626302704868889773486292778882490294776138981084738879875608722084396117931561156730432185013642544235489350832099571596276806943541784460796593650694645594567238810502999099514200267895453068179860224841861973091762091353491782837240846311032125954621611872640986951965978760598251826853099234942682098972844271851043887539936747491252692523521524930760626384202984569328286110473165225122833668299154980098666738062779832795645305024083440194544237327007158050250614247068806802912480625262246463232821612204867364791336167783417466321258989634138767728249346833796302000198283328659540358712105828453796665419936245273349402104513342854781729110182846156738463689811896742746550596010225665342321602448864485870526834554687326255700643568211171342335214199268142327772779043572934449196777253064138945306460249533509501060587513868094167644257471156413615945490831276779417989394917020328582306057927912427412472326575892014826324451359096490074278980977484308556443108453408617399923964992440231958961062318447508746046064017632725046168335335803169925270838658601827146218830753056644171995236358560356510040740730031553674737212702592313042085964609446101162221684719391214641681695726645189056968457126311896824507978323910933632987419118909655380538162235163234560104307146044137560244409701251608155536849334511499930198887410156748825974869722918364120140997559940264375957936591451940923085110538146150083046716245510235303714274197742634262815197530353128256499079440995925521205461683831878119123119659412233511371802074036491746398477313652312490833718153803257271252055012619901603725618026994680514743419685921509107287415392148040352856335238358846385115533793141340665068541016722235507730434537443912733748236336963924907020720343336986412941964140964648651483728990729730796400105918694283720813973798182372028388340456348340045801065822211424742571518875491153083496670906748502002762214652321699848793822886136774556109033091101976534447881879217395367052042335062505661279711575046546695529546382521117959471528211814133632669592409326047423018526389408016633476403297574150732456991085567166135131355362843898840408800722289833055011287274702230026941250869004398250225577604000942726185587520027086213934423256600116949206196861467554198877868630712282093514466542226165836837045622633310046855523850648892478736088084489006458869046873244525357970161349647817637261693626841406666823037541170717049511286415549018539115042348047709585867387552490027984686170687640855704841998825720385825578920464335674384802403971354316501867001859713637575454177494346134806188906291244704446667127952957668610546393579029632126863766964258101399370405887681926882427193331059969697529264217412651500851489885729037125182087685933641655382781593001899526443086653247141841003846866045745306764561405905016461795983433653867058921423078479331514146021443139882507015802744193583494798712835054341340350020852568766991364855812126824203694518884012456802192629596389077523135583702812332642145561678965453462863085260208907878971051301900611217115899448204018154719356617992537991985374791034779267967724793297024131687228647796731816235225116122646068141950507120254615339689999307677763727952055686030297793892359614001862185201171805750710406902007615959141668301650082108798105208701070713613795600258065349559602091372183947594705933752968715873004371089701763196769603470304975557727890727489033630318921701574845463222293573364415551173317545937244494111387786148343191707588357406932287618330787785076210097746762250653092858571836044514144322005831176142380699005166520706800392480832664054493104039419784852252051757048883305632131239386767091422794330248882988674739441944777507341824631433621167954630536778478818778986819204425693466893811430252461297134988503003186781221342916335825117923877168624142837408581050660850322903442761155323150898103303393268113492796226945998687498590264218743369492181090132006924089589711508766122022563234612650624646727269205558849023434750101939699321202891232250382920032652018156818612487590074389163900769537787800832911848681101768451406762646905694043711504054245343387756566880093083748355461199480498144765494212384438115754736436230200634639886141086217452691594293783724107562666380240758528027521480809824823209405782576439619121100826205811382318206586889020780776542759634666138907254603414928328588457117316984687238316456160695113952595156350384619121762795206463494101559652571424131010994165033613615418005305330265433328330333032783844259034741141305971959030654442844415910238061613271710396335212141466243450679591906591634350368592244330862015234986553531772865228570612391237109401313134921062012490040291550392253248156443007880982521704231556266477118962578822749678210982467335552078725544563527201533261880355795931432293348288079028901531775734038410834485253836706413913536145940617509124162825253408010605646265256579815051022784297998929750784584299495848266446036391430216592473548417771826138044576711681778284148468913595272261882369041071253711274477172460548798740340173860370002661293514322022240338583058804853587939435599599294808917146022189059879576584468614279795553885173265766207447368568789209056473369461525277702885282116086560015085600311092292902410347581932755433061358149646771342818328601233356728782073445779441657226790485768400594878346806850256118658709422387232934702039127121894681135677965334379490565275060150467964396958368449322231196436524342056173133304121396207650319068287668576965383465310169330953532105364943311859012527845454589495749413770401558139316383007000974455546919755892918060200817477494373807410320098222031026897414616167887761851088493803153928693966677132101338084036512195072814059181095682947587121267231509586316265354299017075068702003751587984553478594822466429887146149058479523291376818165380813703612902616292401569378141944157067013511483867659120334375819570373689591777725646154733464019540879328515257040031669712159532847010631952416222500811098012678742404810021811925758273437734801981493939199186884996359831350539821295394575484793198205834780102584056973886192599525721072573511148212658662549462881763442857417709461349124654945869262504781704950379970010520198543843030186810547097677560874304873055993927574710134576032982515184579078291682231060109399388102467987203124173589907576568866341109351455185507884982772381834652440026639881984741275126428664196721233190531735649959734236577111717621349692809889384788733275357252778033214592521981946321180358726942705049829084851690380692728493971875804840476354528678569365611994698741269540011562500589762487344070154086402795745965638912946317283123839832539903951308677453226009956572926502988277200321461361197112925541399150103335497665411515551872037317004041691749097232967560356537936378378820620963768953954478252671984147914554639499581036557533859973279029543655170834601644000753496163882135210040002187998313247281567659344635603402165239859054530402123375155017933038861021760915198753876082522133891220636217238219473756021294556447610734178804083570362703253304291582543075920114621958576329064668351113803210588845850309692775976079261062851106788160129870910260815776870377272924114220636528795575966171006519669943092758006535283925434702462886200084830537657570132034118245674182028822619151736836059866988106607845241929891756856741934868541413874958181378814515537403320877299818828350862215613589989352650878712461176913410006968288388909644068669631859199264709890376430242447429583480290851423971021164166124513438621366803842531731322458155354195853960276699323312901442027174482013301183982028419974584262150774729553020271788868728861144340301726166128045840489588868585591451749241142288524222320008906703132920417473562181472810285429714599529245737658347817423720490338069120247968345594352971200885530658911500390899751220011405317814959764588637781846432593423535707564387167189845817038998608501933027202136554460390077638513022357399460009772607337071593937580549307449659530630626882387933127498827305393885659461844897495794560885682254677035310002777156360084752685036242809477852770098486718073386028650934812381638706820101820239387882819424126720754358159886776051783080078298238389242123072439581422742951047610269752360421878134976927633944200684195939224007707973295788146036542695565050921317090252708536223225044042028777920884964415014208766075231014719850107258317049349369877206422318166334069077626418498658439711409144103223943688455236740541598873566307036320852274630289484035100937247662055869456530625551387666268171179404721728036317949483795874721512745597002624296204027044921386569431529987371840942603390875015771428808755799175773647196668125696160838512074435079501148283049642728848081991020833685029721142132269889252792137003915340842103380584813852179440794269632063107663018305331007942986972686343467696838782983251852842024258942435687080950562861278859358178524761679481905188037772354879100262348541145090491884395265247558104886466843731042706282536400951766925060916506158010109229298281943055100469346906926350571657275210375552210852066860620445339917336930800394343789357327722846511173163636232203549351473998415992404769752746463170887782420029580581175013978199643497385106537983256197158377964109529237707233160636783480757682136286198212646115775931213271151669208435246408389061567327531329545604423306966733727943359319935631693927898391107332860065270166378271591098113019668678045491226675767138906152951244207483943314884297196959421103932422911772676623285621010969268368771656954935950334904318013670926912056254094869389200288466886693774814384634307883355848554909936027048583911201582529656137671466927530574536515190320547887707709302109332855122454549689161031715283999399138177374451677083780921907693063490687368761959443168750767443036144971886615027098895975500040135238002275084225858409963811172136264124506987626532651849120344776002176212364408437264061922480321233387950615488498717934811308615702800080752527151545812270614653555320978694802873906406940314266870153931478878645493213031937381220903299934764305603600347392225509265121852448887921095165561399093419233208074554276525912434520363099009788196779182565116111722835106674414627921374694414156781845928135456950995587506752120747939237589922506636394295173757442955438310594880304137291969427017205997194633593545063980356864834585529791821371090346555417579948775913797832391033128011248372154861276342887227170384033308543451835189412549821464085797655971992388158739885738849783185069991315473886516675917979852327337119867787020525513165317732806403239941097311716020365825352216065386514183570747432499894919001187234549899299362971779303804780258275766103369532582325233121135616780256512686929008720346739951457584488470252363670447761135509498137854404921826819267075981915496105845859192029238192186491854711466758926123742389981295512933172477684757261450958717304175399882743104079106592344424977226735089285041183163962099991475245166321286224477104147061426391630547885133747228694854821187284602478936911664658405450721492196144490388376154763818139334687809433247337908749027297971158724620929641485965539946826630276250030768097392458429805635328733984102687225045388170785092897123620152509256206580775577427578300608652620379807168811640982126823995374845051999253499515988239751258656677104439440471063053912795806922935733864800046108281802925295168064019347562559099093010912925428536403511584180560595257982346336769376084245719805195972788073071631599004460910049780415124893278752645965832517977918904395668065104874223514672583409940090252232505233906508813889817121209449889045690144035942145848506431121189373036302763722572010469825269999579728809200008045710131844651871379122553408954063780456485945607250856301325545147487545597731972636219468672078222613680634064696319095517182135576836344244872230040274503347943082994940482778522380681980186592874917827814022681778661242653166075799549585090590645054130352032024589641437399058214669593748261412948609704564100819331152296087671710980678322467471832628660378214981724089632301956069413644870051386029558828731165166070656601926163199607275960313720277041152091362250043656448478380399817312828483019536301093116176933084931885421893494754860075508020320910490797578369532362810258294202388072122556719858185175356498584517812928415705444051377018916730801635745996034987584128342867844853722835981500018782912725278824260535951243556288998221688862228603654735734388153951750030049675652423014088724744023732721448516080242324953207901533824843170086189468572164875615909635164364368122184532050457295554061962499927108549939289767551557637679365003004402377630563531140044242800931116308924163834352534018525185974123620689569365199224948243827122494021587744801549036820220092868348424195277574766573435986093936109137520278362940881645188814107214845804152205137522612915079907429006666677372532317858687591122451363407381537714258473364599280597828916962055191017030352782835131861776888250423514420161412249443054719914402016239786342861046754828211431612909943824558867467299808633271279232009324938585983824736442156132080101144891356055389597534453311279941986262892109193648801587081194830033680566886357776622533067938394657015020191963219975185777051149744246602273526925191872562263185055936881535341314956043850555745440893916371184299901527034919259615958911261959611385192230939223530984485792562277366757118756743303204149108597797261567379283863438096755304109381785689574272881009656273112402885437504928774292969270652578524543315684056631821528457830179361342204842128459104675750766885171900071634141007735070092383016829191578384471165704202811250292656710786960629914637086822124697481686712161103264373932113892235303722735646094015517306702532138169877528180644335961710296526743111130274573053733076354422561752482643007310113976507461390597436908866607983362408349835796126261419334540807683787519649106777446192104935369705743100101688975746390869550989338135101479041958311414289780244010541748154049047228586887634783371822029602384037840380118917661652036116662973693178332411483069228092063425944759442773619370016168608622233106808509101634318293367396377727773554139043064580256531685754725151492041577274015833714744468707074389770385129410860614068397903666319449754123300221753674652876465090666327299801414913439343899512476653976480505704323488282014905053217673253561308233825929450066492398659016825451021739789041767541172779276391575096675612905323973390885010969079257437351577861926494925520646002068937642268353585812178031772353302025321757525762201622078653430710701502542337767629424691231574190094042386025880137979697529373287822189027498378197706554972216392533450980540906347591197170506010127977521516190213194387504326183815941233369918974933490674525287604839562871761163727711591626296186214671239258061742470543659460146992687554790819375073939432098647467339185864693403152515852342855940655385181032054290760712162954404801472824896828496960517886488399266223738918871868272955244900177036151519013378482193106920068755525639126569178912033567509747682666864519653630128557394562120480100925681555651262290460995906363944705548459753124530110349832911946954749447351862288976057000445377088318302463925569361736528764777514040313175982013729223176281047864345858604945640368143592537492885547269994334974076169053077571143478293687661239068782601587532717239470161610948362604844253338291711915248115171667636814423890574733139487158601094182318920138604572125859183660393026670311086941574375483504503267205139712174342208083458169420705124266477693698646365203222426427728175997909065577808993226693683286647971872183856274566840074505611681771997512851153739706102468208998102696133942889616013457398735855250862952765709840271764625883242648532442079769158534140157633124068864980394811375746919251661229916881990131728505743635484063809763108543052290674294570987059816720181758749061574405400272461545677804685038469759741345968372416546422692460314467532622816605579422085818540887636137616522840972677923673025563159538260765260643084744426602837598830550584951050028685054710211493517070439516977756391560881701881765398451825917804148587788370690565951236289219340570234029053955026023237075472528921828571935739628089162811210139411957076762438240044764058098535558074008189248572569352105234918049382818112533114689376052464681125137445962032595947021498337720411749210668893632920553234435947812528482565113982083898440185991990083022052852464962218851203946189629545444697801150531630421649154780852655354499732247034040646955503135929286453762308419200652571648117143059736349780670086567070009158329676577671347132255952921683132237895454200367620079097558040393821417742258696657107855364118678316540648996281978812689324881682104412435268831328162860802093067738889944317936641386823961366884861774486371725347117350365967037273206956429967713758648949105417282509701778482101754107023351431616243036345985287212073271787000804434075286178728243604541058983977845839081215213583025126430295878942860703679325232590742631783363981911549474145668631793240578087491277665931192027082180308254551005706840668099955668971940269083877149269279347460203997064239351292637580132875478304513545675825312192071166754770903710665930836853662995328759152071101022777284068999963709523650411279750689461700528323313013096729649895571732926086347340965253796945432173451938310421761014311029812215096533634449198208315957808845909073983895079435744045259908747916722714973895853288490566070141458554748631679578379626644346367117866353947952517909507174960716729084931870133273754424641876840736030776655351960882066428367555331112251248841496334279035578820165638367020247678640013026159059544930816808453534478333762283922595647876941983872026852699964095995233887677107890595423569269700220588007463863628845886438375164658214892594068824920256697930167843746317017438434238264855470537057222659285324755222203530309152342162582001313294801822857186192108847458062539337977537109183767417479534347617027594176689318962057488023028433194395660297919269759679506994902467355137327841703582989203252946128258237989252453593277663017926399645411187487776324557034803954647469922911289956968132777005767357911141544176754733571450979717449832035691590661525136483470950452989224355923645438703494202868583471207634189911358398628209728245340313346875139928141214140530221036163682916652028809218786515439532540318538283345723839504108711003673531722508808113330454522725317337882943820509576059825996681535833620388492182486476250681253301364778405885919975412764357218759889720243964037356764925616546745989642400227358318079804296593067661330338356704652738816843737191067991337474429012196233933233168308953976981062354162746541789279933407500220729598485033908081868343826927893565092672473548125187924191237581595672393237845106680731109373405949215242172319295131005283997101304625559425657928422129489584475966875319668654903262695274363869346123037389045588195031744971192479166777128650874977350470032051331547294390861730485991420429291981360248031263750812320922925772239051763526323430668984092973836758907946843520760963178252757515220213059477975830680388690513221979762340254933360601255145649564968401297887223025801720783318551586137538827945336771030448263892487414225971193437687358511079870598760780533832913092324594970273982374715522277018059892885357197903338094300118927086326807211029949333760162480154613245602584499644136309107434597826988923057758852821499018706730099458524257522273206242611743678296736789423854603454457708234980789096411656745252102644474206389918322473726731925288509324357056297242632228501098737644872829755934665131134697097533382486916814469653770323322882492867235950020330767589638898434644148446463752661061355964792306750715798476763248367212600571750896274225787852184282787850704905924897079890718297753809677965732473547871169084072258704237180842177179141741930424308310593351019109316811328495086396613685646644996968575028708133116204032712889025565345789960805659020832989501989332042259013875992706753934418791430773854900674096629445489724449283864764908027321193002270885331721223672639766665442887219507833691091936318275690657632663184002080819389956877539884840084317259530353552096967430909694823492276467149520412027932384208281727429689253351497291318368982338509129888169091224777654886008722101649773667906538959539485490355946449457778493317747970835316596576932571908880529468123152097809226924781989217799392544085266449769832817686972623259490202074459471211893698828086617157258552443040043710277644928714762577728082167661841330265650638544884485319234533898977973701991833378768062893402853962984680941022387327926121432947301885711874759016553581905011558661596795252908751329799433467595030014990717267757589224767268053022401317558292116711847140956082407666835730020776790762551709697985878499780577101603564877661995670870451232217888055529396070724602085780586734929369816385856808872483460278791366973687456455994001321240825232494357912591306299175971194588609223399667753664642515274009130674514199325642502306216682880766202762425744015788781431655419250821947947945099167280983323018137211989374076880119315526527534520765105234965234427990382656456626299447038613261969193593977408532911516360817923272493682487033226406347745714342958122212994293519860771517818871965613344331561008059664658636857024029030292392383202991401971865089734948241441217668823633713704005983723648742148151101979862133612684405248220168907758406375525483452738655276557059855460786779457074764721501982005033146408608763792490532748370585245326143899519515099398409533296665524895939576270537105602645021216247555846760616835944339312388414803300682934742020334786233110453506568650420916773944899440463600553976335825833633992137902609199357315067177302499747694580733730700148898704260059106355308393692375424554069843957532669284499461447077805465363940372107607472793972384587309417658800149805667988417348854661530463882751395519959476703644322401163296461602568455181723722539012580619068574073804655395913813227423544180670669725017337181503133699243986402948518080387605172339245444602812271758007648740256982857173151641690140292091354074171174840924170329260826246137795081619244435785163980992344737569288727102984263000916365480826602055322887334226979287628057132148230696755303694742552339876012750283663782112640070784342885412072207846059410576895326437011944602663130190973510374971268116519669185638798693415458941102700820519656353562883185465290913817507502519474982078372915813178266224488705685133703255526632086676988767638281430967766346029767161134522287249061758274573025745952365964163105135306772717528973638626298214106519777571080196578255618115714723007637628462857847074999442941112440793470956179476338659620003842886870567104429000108039804237434724446113594566619163362608376880246028169140981108380155072964402356028009486366141501612146239325962187762518473930987844926955088162372697596933335898247086603701838729887015732423221433915026246831888831066633516309576511580366156760308409947197048972026436547935596580606120111725880309196844842235429745634898531326304579561394831756464854851642637626799818768019922349817475617245196256957230514784516840062368677421924118595475211077395872197219684940449509866604289040187371717834786723259253723604313923708100566254912822424377522115835171295640926222461762224145967348142932391449341811557356288119856070985648457873179459259683263257897905945117527231283353399877714928274172449719564601766022090584720901535441247341495395929481974016548404011583129546388909780154136272843193120535670575283919097283511618064943650419420395920428373822227192199842437215645993437276381346994275370393431556199721296288278008189643405224562642458233842758554822062859141259102620624147549176133031084463088066914183128969817350259850017780558652732044079143880591205573094368240207963192984569056235384348148242308040025748894459232854133073986840229948810991170972310684694364539068990559156876433667673879952607754253436160572392446211874116115990900869579528128716683190702392363513117508831172597231218290444928915576041232638988243876327754909921178686610766468009270840745717050329736505573160267650242482949414592432611376393970233635358517634277369807136161757164762106904537777861511580974492734883825572801632404458152799326773731008555977028155581427088512630292925011121402182082334547123365115736857837012375262337196872808119811357118840509233056921094218732038926287150713571973431482531979266602375700413071908211441764288623811115733074742712904220238190683530088800039364563440038628733904650316418729029611948219693269502798750465854023706956478928194983992839189855755517209517786593701962715183763404103217952472020004648496042630807225067803813162935061084370531814558531768398073407125711453667623215285754973139878807262771314411575654639435661518918639078716981235157941558662704216980001214792288758229797121721415756294470975717378081275086916510215756292701463612456503261167503282980105455471405410372872394994765986437886270213388120429355875013565618485834453513980621816141846986920281909882300687062368423473749097309749698767820464968484410381017902296555274772864056323815674635182862503353370311746010500231012143593126965416397148420911184026830022083468666556813156940198560314827392470535660618729598944289817589187377733275707141947056076413232691942100491340177320272648620823932147213114537845637008742213865296943015466990901601157084722841670009132941498923233889295164373447153165775528558838937828929886744399041414845114643162672752131226221576002303334337605286486066457842548878178724717894313483926077952537130220552376645295739455000333629101139914402056337568297459692013959508893485976679296622491414835604035203286487939068940752806497883984985578975636424412716887772797249869324936530326984023461814957794878730690540036200169240523041662319181514615679944482710208609648406542004885288515797569149312882206109582893608024851999478194530141901403506222477470876860500584852239461460133382230773733959153639770596200723755480254121400547224414756304390347333854231285984019529893495222579904092226119429076576047828140728306735917245436244768396472165439688936941145983402856223888542799972342666718105178543733950961761139493171773123478213389177248966329317674821626912071865470326741453782929634009625799549498719788431005199238762782059925102426385574870387146244870146389021604345931859910561871116136223170809694882790075491775186435747002141460623453524085012068227602816295522652771225953710368818802962780102662303355047944438191907273280753803129094714814082544456137179942161311104011727718314210253414195527878582838554449829575114787164506595092572231480509594231904191601156925708178248067182094966709356972955469200240150554417413536338557479655320948330585562671158439436024284296161127586688587175978655610501402534839806803675867635035091717075360801867843562392178469778515998712347616178976972444498186171078838192425587291466551040007890665094275071772099301832703578509108835445794195124516392406943365089806249256479787781122758965070001904734208160391027318769314039395709306836582953943860494301755138668912702741858287193885679100789365285052761842946422994661688808035080351217915002931722663480241147229505382796898495841802964711304640646356496394840193127045023313349958464195809908594194516317258371728331328189497677248044145836381922388910443613245060345100121239034584896784772363499958184764632630039824445523949206957341874817060369284544750675202124216993960085236682293869866110786595402247705631913323840803985267731256582711414814911601022607160562143770137895401711877512583319387641670913553936385710726190580370886236371380106296839957010233680194276827785431664301831405218883532949215964619446058344804718775391992123447110672173069057558809676317046877009929251350988723102989825354515155326308883792020615718550399007990576769755846204553947870506647348496060344278446568341385927558599112050091102325627560147347829504466144205668076459494983456224445258512655463621338354673524084977363851680467124098536615680478708149785925668854735689612857242683755183262534864213658125269774485848702788447456398053686577087836894245677583373821312232063343299960212829698668014896020329076685453465557389145575698463199041561383710180563326702406270794429857463262196950157240455698610552250840373773891899433950579153468613403526966684841043035696618174898018927368582043805208321059704503514884443745081096476448863462954391881241946717421743102561433377117325887268256376850222771790647479643763663681797881778549063946947855405897980713702128326940579818535709387792155270024582294724332607109316605493373865417086830889979555016692725238988116208855104362399656154191714621340370376962077467801429018929603214414717973172292494489450013580895396280759668070848126428933754381782561780421666992336383158582268041706739441153811611966279117566773870778120389097524900517472235590594822969140461028710267629760023037959853022955808978027050935570086476586144475672702981007333124796798118721593235455751100614976648949172665733785272275784460854161486952062514218557624953507551231510544634854975704372651121724126218992875291549619598542939316545146126541234641430473297889262385375678642586685234134331081211964080165776813462602355080301439038125977414611142530524742738707146069779606840225018587448959257976765274464174583530925074513540647343882345048068270573225238139642153690896794506874268171217030273221111884009016908643239008246885879460010335568582071298633173841763701357972578269308696243173774389328334436311443490854830151685198767667063991115296639663168492852486120009372049305778891257241141102634255224436931880061036250638983662704179403421720415467521554356853350153518369840033959875720322263251612612020309469465701208557521063376865247741897618357542200325514038642344632028540005214745819158361043809574294651166198396795070144585953291669004072407089642287221135702073941166663037687608426914738307926499469449165210979886812590123467476670065135408309000082976114201100815053257220255715118289031439614444846997905638588449327938041602000134652570075718843495226902627642452117845936031733381229782260302886731684766294925551774323830855572119227540341100084957652713662163881846704945581585337031579440339296127513793356469813357148474520446576619916340896780449072812048613109605163015684398459772855252339377307563245612401869382369331029402602932198039989619568685081478900941099952586449722087691830172738530253795925965669454343826041933465359175652711224175099326970361958688692772262623217755673671194869795398871652438320543860126607950822970546823113996241728068455788986254292291267658575475258698572834477099495004236927430840721291343717643569589942025790777082766551591943461865594877241001564212515410706054213069591953679543310425823548385852556310652564849578884642179826949407518678002238271290552465342524056243271310368159058423258281388541229451205019962586568958278786575745341792176855932104515730460612292910059897644829214489230497477134667902362986598791882044180907300329336329769072441504591538954142304577688790133402507477161253209817580977743020220337502115499626037680164350033966448942705236006130511708784464927447540743476044122989242010805521710167080195054810900258273833396252679443980774414705882922715246587396509007091343744525802894086936809027997837837514210678312988961336125414390313603932418383492221990236491961280599228633536650603908176927220366704715996808510845366781667905832766673720120217666621383810201624792738368918107762355979298872432525192276055811098947977484352923498562915556041402032673816669489444419628589639351095347497787035894047422950705771137495599788185745260936070543933480201556457605396146888517080073721071391678807887832060866984521624693228600721078127745849249360663934883140847401460904307674569526018007923000228828678005828001166379204534218338474391369866622615076598437991511643050116725793632102219287102752113603910204864192342527511428454221423939976661057132644461874718166441891473121344095323307234823064984830858999352821508633829742990264399369002064108654754812612255239258637473925576629723887833667803285908964692116740838385507096876908076821449009837863057096464997657368424216117627221303762434393131826686340754534117943757691451072260108632177929016716028194943678476853009088278242026037928705476407371703347484400770424713413286105076212325501027581204672267228508812201299976231085522494387195528266395720253823096560124374318459655540884438493721785591077124303175372033474273589320792531051446660172532814312999377520569048050784315496571528443426022974001150079712721364480437509008033375112617425278741536708330836895852665010034093883639023903979977024468666654131853740922615065827154849294436531714940317564824116479554834015850504184350803927515953614490032233827831385495201478663475623766583030721877744338909116461254912151187773032418594867616172963648530310764284440548604468747952914364691530014871465496771232927656409763576653117571198565951720969417911924462107708373485493731337802034579644593643357061753600112947643975465777629449119944483322236404828023813554321453656751786229387982896069158960559579721635861082632978734313679478382221831913237533161955603345140770861926531149659969450392422088935121203580696986405004969159824386475503550504616233257216370856381546711921560837488621868798227095701060164068539488889930217717395485754760832532137049125296493257944760707847541571753174080298561638626308049010711327579435161728963769599167501735907443552395983925564119046893301204055399299340446985725306062741196328149813219752570780885518943489732385545807897029022096107343397303534498969207316748025549577160280165445967212500401149572614330235878257210070113919164873848282275546026604630636324543927097541538588728258157973119205153491452546145011473354529507771930097499108980586390247221496533551793718151908614710075355470904694119945983774061641162603629287569308618096194379976817523569270103071812106282320940625984503967395114241955390168769312929416937278977529111835873911616294490512717552839774727299677246558190985399455324894571242137025433952550603140913163160555676214779306887706990961241262357436307579693676710357114412044524126779484489525047040021842005923910277288088655551646612571886887327290196785357831721455128372754878700815910233047906397309619513231785803731302908336540650688869541945778785823314157464389091382286958874009870688840081079700403294909932129154239952649051396247700609702492856142764183409209481372921898770593649237313479328051893788314087338877079782915359485716209316618730137832233393148801549295397148541649476932213364398463700430911729203587613502217493026455263641973573218703459204060408693654187504921194117455790799257474609010137435279782930661586536126637476441306088066922751598068008436343513101432156929611816733517526762073176032493883769008215048616456328724173485014253058949990455225675961962069067595042605356623544790474634728129587908819950471901734536001237847799102009169387138104156138642210182068860894619955489703812363612205047036682077865399740346376981400851997652836317336106751230369886499446923865912351158909374763480710670490370567073100929874127340010606560053885383309822330463109812287785826369334002824729844451914512632958087209264927621765304114896533856970623878916180442398094093479192018015099195625102185255320539474450392817373797689356906567767888119714384396481849891559223610434442179615822392316785680094539237621164616799188515850276687155194034420690030474819101089475774026503015961147776024402223539645995763216603180477748172923368809459470422673720456914315897942856742596766005492773092558856082920552068771115954228337337036713874836778558222618550374663915909186715691009515220507036488992540166285638280336473981397245120965075256942403378237979793031799042157809419270104288610408227500207461625980113603859716410064321756437381838628347341267346401795569150141959901218529872650645179014495924402627758506949436911669429140529359913614251005562695425808704920665802951447717281513097224795043018333617230391742204627251815202514332647730086072493880767647929352845508950459294311617746266114224469729489762229289342469667055756768708171353556910321704745098622676273118284523067319586493928952819292034312189480790538474082784217257805042889944157455523849222139729391706551410664346060803075098215515285450957665985834076109046920916029329678711295746336926593857636174336965903725405235060284381668387905890344246214126390731120654953715084165227697914900243895144967448945098052565905920533559839233062426433658591359967969183756813113251832629608505203738536099406296052932725951689720064943555117025187333225484973606800699901245880760335678418836162591514819464950671286322615671444801845531746893595757902143868247614017683391389675168687989741348823497991493925740596850712640774776832742884624452626331501881948063438934170750515823540672897457147359010370779428971084925550549629362544159595946402470842564731373135682286045628959986597757100434708316261439672243762943824773465090302864184939808067298510960616530063970649313743231764847220027638704489019311663201852778030238355686003721083999751842906304266365727864197191395743835055855010554552619704729766745608293164934140543136127858830654146058750487400866340053106753268038420824572841347273216824009564834748372983943290140874682770578915800273144550513736093001621762832149559777425684674649653043984196968188528964213033885546807529961380754900184021114135206731279454667450895633072164077758379701452903713579886198185081625548685471236963926366550355660188867518139624959646222490752342481147260290103791270095271636910069186163698255704760051957826928568222963565363933037576230120565883700074600647952500790564284960363183910396761974746998620785201528336074168084402017230472549387219764243100356376466684649403062335911929208278094634116022437540794772819062915170438065888626378786121845383458079594523420195631837833198761520137946550205560880352103146373511527260225533689782754310420800009880252567130659886111393643286468074056145371788984879226441447243567129339269303010425255956682961061518700052787527765999351106226713350467769367771373832442844695464933159557140035118092385575871089873140642731409095579972630489121160338392338873532373667892221660651733366228932638458522379497781283136874031403979645410608557844330381795017472860925512974631929639953444664260892881549130604911515521716416093255126028497020775907909291411992780345181071130206586031171960006950985641381444124534882646667568830802141619192898467390147132769526468826060202509376189869822138916541221146098026110822663368985931229556131349562180471518977550433090027516535792508015379177195983545014222399699697194567487057257953429945804763632823211278668589907524786058845104308901549352553389883655167597319945512539537775498273039733038576706371077325059793837038338511654779194682688764954644629332556877956521141338532308044651342090504290165070703804639218070767687052807565175379281891071708107568015003783679185758527583534085935162498575936321049504403065135955414183710856876648894912356122843473384555827662586125737638897498441741298506924170551927058374107917200594297158799515040942805424504127664891082048327824605746410110184432303502215590707111305569639921291747119713163027496534071080462026046783161320306740818219274326967001237531200675765813827873731874746598746550873038475862768033832753974575490501296066899880353293941359245632856478405586695155120972555308241568003403997630749647953124831650091611723543187775520582840889324011664996525215954017566508381956917212491573123083066583466572654235481554709271281483084415902360071259205721762838346381313604451750650886409573739218061650908530693243831213250586563607415334523007693479124829663309077655908965560803414945969407117235851843562497804428628149985966471270037110040326157009439764395420678928562053710078301520067982440221180211669213953180987568343507698454894847924871464734276291637477725372956295167959505952661678079459901014125507650117885725755946311288485693836546369184741974449816593925769373948293821411417649745472343823248493501166782457443651357963184306736282920734129407491327616132636022693250239494108323296129095985574002947522358906839915615422171732163458054034720098071382612578550008756635832119303783268260494680106340054908726390144650196028335803295373107715397750529980062304432961233553593223313224548920491172131003824680023402236137720797228509807280272308723297331040265487438392041832010188966623736726751935274786355383118100572702830882337443926206267875255120550745536751378569899836786712057194925022353946926560691786903155182386844716233551651428795762458233854560361867053164807436257406751830266064163683995075114555927667470359742466035249177743718275219538750223362248895665086931124349050861844817305361973105822542331561405858647527711901697892740218639814468257556699894471674932313432244201360704949041985520004070700765783858543908065660154001922409418243511366912398271653315772134711319481500225079159498042964331674258304653300324570835270904144709251538598043525699585218162452704057330939049995068773745426951360827084642028664393082542594191589813531485647127303774993197999440619096416898783602423036124264593073279413959056648744077180297038974764315383921600410998707738165534493851134316510446185173186863925983817408456022258015297409116358216686133787090989143898624063819636161066794185355519624506071383223014570415969757223217196976628326915870410977284790020918568561915989532497254431130558743264825124656691065145974349599545348278575914254451382870242861479362684053977337576833279656401783367919768579702898512077295012676003054373524657894429264524970300020774744054220636021486191349458539427937443077171291082931377799513106406709618991565557289332167112763643587035343255665770595045859571793961854703246369995391902566561261364855981278323117370694581281114826054399137147566143887764998292684543351675023566420963038280225364143966859389920161849036004736268288875033264023778740696941092524839588622783985674433275114352127953658331298369880470621671605696690270944459303519134563721173239163863540241784946518898570625078371970604471109484876529579944273638130912675579285685653647364546717966966924247282896682075273291458597245528736268443614523502716565525700504431868616074862630025570903258655434913859461365592929874459218680197305830170287433968314887542352949650143404471009312504696789364191910427210551913313967287172675721868377930678518589479689592001772025442196179565257827738176200682265719250388105496868625082053862367354704089541105030462561509753312110196244467442128067703194277552864458253082675153108625431158479484272141804964276256725590724738764546679487879930120142688745357278431298844959280500171393029552982254783663162442579503026666367944016238076738025631333823072520155032701685319945936749378576055011676009411235618055785163050236310324439165452623478993141811187578026009552669611085979716778627557472654154163910196857341180413551593008274563988943762500288479676332465895101899926124959855617955985735122106308298867028377479916708676095806145219330909361062527936476764255836706403625038655858905844422412655205104776552009555465979911084831071164286866197770142166786072990975866925049627870015602853221248116077113892735291261114698020584350304712998184930751896844153701236400691511646609125608592607384297404685546746241593646790689746461799379372852640035895769873862029009226994962224890341195933821060805427695313974309051438933312773372975658376657641003365592850655867207387365445488399815430677039897550532737745732625254379617073638725403252065314291948211070223864289910561229975994559557176395974596646386856942970541036385522102827002741101525775189711628304802943997655477473081765763945748098128480628403095404183399071498679387773140280366246950682577367688727490419441130950747641418578281762444097283438480694715083076626239283163788875024048050491986739625633781235965288030819453753971707613980021082146036734682994892203143927139265916319306851844452832785818355175357458896466219394515394533461241829745691095703143574347381235119237655098726820653041208382531615888337396562107419487463045999148549509028595965410072084085779604562067670331076576121165296130255137327133440341941837248098159335771774223318058969723580088984966794909188152497668115589562434691896018997092334355093027543216924041996963891189998246254961496127945903244125585026745363066163745806935086364333983403362054318815555373764597153750263929872052701298516444160742306311890211429612985281152174616682121405230781288944191247842743673503207120149246513721423606448228736286335587608852944519052304113909342937790235584467817460229304943330178518889777681949974171620088737026797833022921675803192521632556285184428427976103465371299345940125209551549502186106244514530690454127621729904552995533025987491126012768985604962309144265011038109725478200328714456738020277211659145401883927888792609177101695838758086636925346379024941379164309475487075356498996245881279321794845689405954570658990124502233867720924676320836403929798752724277685618808379767320500944566178521669015416101022558948783246849347772742525987911748349486895132487698146503121284399684566044351434179870043969508398873094820510238671833356166651307852090095685886375516597762593754533970484633098843695715781354108818888814104541442353306860032646319870109650753323485637304853057067331066382578437032142943961837013192147783113149781045889936895187314131883564293002343630555545742128247266606065744483159379110665171710917411945518919690835045269658731787028086714089756316749354935867965888501037908721712410230727125856510246001683783645300698941912358856620064123746158507243928785812852274006613996329959974718759969725714136874516209779610439654867370132809625806964187105573964877232029416194413515645868068337422107366651911253681892829705043387257570591318108554101143864347263728591641165364921056152295619852097676186816659683931597063184343735154100441338689139270336208313914900493220901189753038608446402382382263230926407442206975005312073937215098034392497651403258962403391479164023611114972066532041114899742639252983883079254200132504695758216523228943059933221381374194320758338748448960192653552031689723911537043399811572801110207223098671819843417716938420429081890935375891855981702233608964465230872029396150182683461224820024595648254381963716948572703405039944627165640863682441675307098097433994134054078699817213748332831014070357942750969516000452159887110094498975694425176957378888536321368365510990079927223331997800865415089904100091406971596940612058734350421872963339208464091036494026607835664938761774338064734234270940561421308029549967411263543143714278946941835738057010138495949291455132454802486562216121091404829780207372829996617168826470692658860703084579595841729566318560268745684220409220349953681551650913006783697774271516920936567364274421546781805911661946552633670350873833967445594427996311560036917482442431734669430347102899855156442001997652069546090440612914133843401138198485058930493012405532691905973891634343929486260048013401423295501612842230130334727075548100891135887321866256531818268023025729927904167404109375759927959516684624839507669387771788909473715400576987295983481955625963698086462677630269573461256477512441081647035143781694356233598787728949961097720187625988139843030267515865035603387210619022059291794146609614712617975618756837973024351089512963580152681798888646494429807448745242849230032604164281987347135557546921065122022015658697098098141206583386076798526941729815878919757030964880601308709141365477679507750293455436352520051497061809469045289592740523992740902298525973906104790693970488155533175901816820466307123534124597752748083789996495310114164303997570928315850947352153213661546248048884209614586314079036859541082459060996602741024863728828030996348006814368835003807095600908255105078135083024463047407365018203909372162127364517678821650534605868451231591270380067976925418748691284124403614493592285704885096675479418700194013611080031020322047116736685022721362530548786942365268753140785884372750934317848110035768588954459658049606323047022883672498512446030164505040131424298930377159080469600803306819957742329462579665599530065996460694106319608340304063962312671067369475523665890188417796571594442312360562482645290600616954296375875047747932499233134521611371960590424434890857530659874659647202631899653044501408183622995556559453062332527974472186841569572792616277383245674914230157595815000440723982528111561734028446825687361184634319317254056257926759399672091472944016811304667470454457418349109786388295713258033132287688391209919814873003452760638197842655771855389839342285410982969657361212405603353187110839514837577349548797187926937362078733567063288644499818129451736399150464420120631058076397701397401518987125901239818893850259997418393739798604676336923290402155786819320094790880222517268078529407583231359555421368863336166092086185141650009016088461759726290556778968223920870156249437015013921823804780029966091364430888027333448136642152940557140929972255477947609419203578084423841643428299457109579542727580938905514419385998131344714783959826642746749268128258913934774997096523772124176525617568894393629292053415433844406802556176666783920194041994741418214846390498785422663672655435313625132755921822064960313120273737031483152985998877752007864410648029853284067277938003362168486103561854060272607308879383459900090522679040892853102115400461839313810723758800184031726624808163927786177088107948109797832286211647199511715957881436865464797884154516108504848477419753575589762756932452466284011676955481632101893114692707113456252729132950688826795344948379478767116169964542051656347429470002556062265318822372732157587401983380423726768726618328670408986726334123985147442074056554829070611703188533860275982248664776961813895916791073573214106293662378815375162265650308462978173217053485839396909120836320248962850275204599676788974232286588250497696006796650528374880410259899390903292712637839136579156628429106555245447137775795580894271387967726923854578401702000655784400547938612281717233910082065139613456551147546420630845864516754453351215518982680253314363288441146587374846607714487352070922509063278076702431237021599456327542007192372041404814917256631780992450421284163532407787851677507065960738923188954706621550492727962038232854339668977752364544960293436212151540178039030718788067258414099828521341668838428756992387916860591383406214701323114026024359712125378105562931713427605077515151621576181541507125798866146602268538441796624806257349140883939771368178723608427066449533945280494261779644017476457984612157057847244245875313880666457540362748288745855509324627833660423814218554981670370090372250285028753855244361288166224229185899641353300273599212651875906926064538963649340951059044212338511776669591541880219744217001065112338938458526864363339618989159715293257929520694061919655527637564920500625963325703039270260740504594234449722958809653763706063949324191340639306379056508235437635362905385075872987922112472627871021572260172576538730341866358383969802125749951104605780413369401408273978945993683526529846352536524381020438280034240654501020378269916804970387050471861612453263594180140903642029403388745218264056430456835053777131820108003570927178537360820404579605786745657134487625335146417216444366926273057888857270772677912246442658687042409187838467396614859602309269115730547959021260500467301792080412445704799250865463509222182271889790107097933649136837494778866657034881016843093546613521222522202160501784529557694167992596357601532307229374839238930861393454949294168988328838176224423258353633115074197390283784757364432197400778755242064466703585329365861673430647836263483613975437726542442912617269736733092169839712325351306134215597783897760012235838447089727655199512078142294634257102368330404800459978016862655006605035305941550949243195672342990040327450056377244487552896766728063154059508353596734167453847291035368192848814931692097355310521868670738895778536858545678629946127677626647361419320934600235842324704409519256676702341632033046588571639812069334242362096349323890280161557089045456629731970932012769668899986752248314782272968866563213576767800255514688797823201583823211858059851514857361019840260708547336185455319043902363570613550092132048384014598662968038519999970133701166520263880483555191784237924462343974182644852916142126568734050797438826866490514470274152865634436519304452176571542514979398120722011484202551827156420825231506347168486596828564509371061542293703603551540201631437614764218604404356007499676940416425196169659032835469758043103512775848405742907506902592607116536999856074245889836934561195747445150074044454451828513237305572623495687267359268257856326215584450706581407312875667379614243649114295489690911819594762347835675178208234563187871140532748819655905149090555097997727232211715272834200647758698921064080414730542973885239171559736098746407677172965999313058657188210571152235712125367210946288277629628544726680803534476999827741859315396160519377383841957821237930321985307134889187310698629856359115281518753022472838230161274909768188488036476543003396340883468246134841939247088231112828341884294433407170412259446794738379601583159681731191085795019450015653946088507470072368021230118274335922437433048127147409623751066472652394844187240298326677024054012631484378591878634428417974331865277950818781964458694374749518712303779936161488553813390816042069361006456860187603732188818815720151688452146980923565119243956744730849467855284329064348257690997533468709081110065443848381935865286586216344076285336584267916683190973511224992454856373487553263130437658858432241662097374953613128089719608559652342441747382265586153153183114676619338380573725618430124302826509121578655762675046142464641938256685138803021560610794822063362933574561250131683992352513149992433742504041387236457444718487960228222256408636806349653004867394000059608176100213523032297892265044468919872024742275456977228065420802599373142971175369676597886925583479761479326764102303704204769897901340166896004103380557022351897599317719762887480377233194016857508549879481315149592613138151882967486595922388304167541126592905409850080791245845563663736041775519034430485035913439824586774474952979425523845718146886703983557462995956505770068254879356532984957736118905719587983686747991071958462261007039947514127130075754794416248990669631067594159131300856123467351412518179199289050276881175947287632141491739788382914714393655738999812857792904017952370363598665713994908676304176013594082037090310711281865218295573980070341705130210128751361951472123497764097578669362596265250151062820834250787462666080780753143754036972641837084239000150255179588244430185048583860761672274793493974790988366495782806939050391861186003838278363839879618970894895893298333260452673685723289208939289472292327856848741082802303335449369111017045084894719465227669102486610208648785419913920033658795895624104368445489636094798989785584883114257338130686782846786694351091045506886822331446878802359593808254699918662323656471428222420396753461735975629906606603302919764144842907188804659532205843146044494780276148375688979099203391782230367657957956895074730489332825527625665908607610629320522005416063103587647725258184377562546476244263659170607190194389099961714796784249237774444007351400243496353131360835487740001580359984361575532783879475525720107153032926106949282962494364777104864589611562240452965927588246699866796753488663688754392520451966143957126734622989141534199294351467748718189196834131271812300655223043167886118426823505013265933747970917789556985256884851552999702808447486248106224414548126631534761059277797689120027519238510451990921644276373628049303248151433955166681096161917473596505808187274800648714869791411158217818646041107293293733314800216539143329059616840997535071648530075523129342145033972850140783924205550301386624873325462954889249200546170432496165522239722121416188456958366919061883632975429237228955485437551689358064932448716846506361093225542363760318016946344509090735117198612167911187947750003373775656586965148892300024529320989024875471909874745278026570384859210637548615740019568937890137233119638217104988543852898219926239277771603870124940495315140307200772509372354943125279170257937233030755921049238544360370660032842665354622298699975417923650989516561262833252029083697994999418698062178611992765217325163861139615328658145599205750727294509114626280366417822108555041031112470261159985675388530737299747157707225199628311698031047991057795395867146013951888065653489712399081885982110769876124492729552328305994966371751488612102542327946216105045666295238354989308676195769223986845218960745854437664502640203330044116127843920028022577652918229817807686033886855907340909729950016313913388543122301649892655560463524561530780871060031757893302377696816673423416587652504082862400055273255725211736812157824992513256613441867130292375005654974778270123000537862669608373872448093146037213637519337395266471130780132724576871737938073942034305443577667615140966810268135126959251106877258500547973214259971873890998197859332564161896276738046552854682885495752250943580725796378333526566030653967730397351550244682502643654540595926342227553248721609172836756165918429481974441491887005992846014147127125988276629141594078144378998962797298956504501352861319644946925406237878442018281224818863183164186459750310610275319622464137998318137351855487103701672060240474687846652594403838019859473524564357104072958844849814300079084843849852174932430836918821407411569544291905468246234142803036780719364106646708770263746698734997005936526127281970232824777309637569221995605284633223773637372196423581935177018720960288304192977085516476413495463598887569552074500442935364341972878744024106428815760128632028932232358825705498356591151062562640902003840318761548278771496686443074250575176628043963315529243495834600340475063579834722970264451271771972379204021219046498037309391171328597528219136284065806351932650544637692459317873961393845955749756382123166976725621893118383892565314734270970128745913884829663133472927704545349652129464810451700861620682138948464253026519978295861930314440933897404747095964857932395823844818880950516209680531855939245277613640759836689367856158914935742320076269820261660094339755143443513386617635802097642413928722449063368386435147653398255275549032638563321616979348521386872092608939051034172004207282397701774335576617229827874281128461497599841319503945799758571019292049169031288575016731560575226270693569865263281578395016121174974192453937084735929412515413414970875325695888457143419893867268861290183430179963218824025685298371788987290588345189852332354775506546960712050155304257757001714677584086536863079445556191846388383651524829941658399667274049529443664313113361711011012667849660981274497738949417923752354211042588443301905109253191623676772286622164204119040059386509701296275087473862479975657031995798635408203726192061186475502177689678926078922865613143129558151850059991433059806006970280895193924972912741169499563253335268309776952747663965322426951801886124164861358267935576403087135010399870550072781595294767784359766414212261110322357114462751514134715514758023235703056010171124685086396267906007756489110363236180005480924044070208261120071472006724454265813984086351156265826912947513778016560251550868266008805570447784801673661658627719374181457470038604043868497451062338103524534343817797892822288064930011634328100540462318220484397787810316603168587864084030359074889732047483362910775075820087066349093904041949597646670003536293003482797362346734178347341723895469786294872947694350680244157497406856560080193089844412757154210703877520156772143186105780089268061506480255357579659390308418517861926314353266571958236056951331893617526492311056199702105036768705458505509626720002002728923595520817362682764230185100235666936282174490412641593886286634146477343784404918832906703548527133521362222431247656682032044537960786824294218301022643708139731876956427461521062261405778511789902377405388915563739550776577582858470827937361244454018619176449536202836036024702051355801766136112946540335956412660686480362471533914598488303319614775801244098905841372146607903155955815853394289765670675918392514176982742778175409592467025161314050802618515129564317938792901885163210268049144455109902967553539810352674019153918222036183396233801778916625204108521362081099891376756167682153170325922861484239061190267843798675716372549227226851015345355538433846718444366042756831868311094334348607596014786062841856450043882380493603770300928378971039678465037702446000502144178264846247771493850411668247394362773388261091220309629540660328923632258650379010932957625612472192144336372680508983018763007932066649881045787366699873367375966185886346006130537471989560053303723876417644144061386708936095116195443965073608517237092595105342866221480757754810301433345226174993018917198857363285393440308517232418767511705297638967914721999829170191288638237845253419688364476040770443564427415082797886197854902574326114516778100256258125622365506943401100246591515148755978422561059973502682991112037408642595117380176135117312094848842455879038219143763810379061012325157798903653416206168553332776638846799488235153888539167458427592471064509586069434562301165853549908354302554430321645478449026314552392085926700201696910461941440375272962346589175534727461803899136294346050490544083628413088101411114581184164673146969676207931421043306434706745559497120297419877989880997714113748992259716549684170586777213247259246547832905521825042128873011747624837793599013541634298569085825992426829468182478835950346625144589685773523725481595920218826196483481246031239394280875918988787177604633514919178670052407626628408758525967855386595666608387381938287666964321626227214332188664776404882243020326148596779582200534650519359494514401780101359320655888068277426129850502698951449301720616320538112656937437655815404985766361216714673191586822767358184520554849904044341864597749886520659813112969604500008565676457599907040730146004252848937332477988467294803441513401226027896415753004634080650925206221325093566047334920130813994960604067179803517281880990116884418044753925700101393073638058286437398086973553380437519237207737479695711045560035319658980677066980662805743336583901264827359814794424481321476472870275724134822483761459057038273441734630831120830363879904805408839251879227798651684604105558450544685376941293776491250694765007265558215257063010584668065052953153168195045231577131919234857711709497291072258418388955598421348324379321733440005676189670450132895601466915698046204625825594707199351750347845651860336386619818564034543051008879896013976603758901013832320558404230323984951434305227058165657415877263198279480247177636938436638121761088788276360575149332613388790751477719598355564482537195712320004129722049669824136845427896201824117509012004986752828644273336955883402412981041613339887935570772953703180370650645852858734041020281307354733309055691602456365762466539731274243342907819399852730389636998578376836275153877618918640582015294078174701607001604524110573680894200977405791761346836180604034668837112779183158809779095825630713614205791885310093839589541247657361915321196178407598167971823208294478410391436511633499533005181633699231116650906927907942682417501243834394738944549411605366680958353297492568729853095893748829327088186763301306996698522344032117302873893972748595495655046212061589426677541457635885988414192128060537449728271616763118101905465776834876435217394982471570644497973883051005234242631815069537432039735094790477312586843778663038121700173736357067879063525277868576979744067485564096172078463218913423362644913722494726689276609695445959705076616285327101311714962537926037621394783844917120856261673014832494813645310523849253563647311045400398467393896162821877056492594815800430340522844932754212975276872356042053238899449361252199296208524995289450982900243570289077211430186193208636004791924829026856325992205672881761889032825678018569966206502854974734365549107586461186840093092172206458928679231618565889844843498178192388820392341319465794053435088074392238800957039506598656383520118116976604957557816704961494080266413304900277234112982642927846280641963330384823757498136612336814502503349833122355343532432159694490425887205541689529066793795298599612162357689166590093960457569445887487477362811638842022342117124076832273459396698112031890748397304923295029038342050107463649192713474053525327503645035207612459811983186837199560111044398816144719653695699494350596573502907076989809872822610976021141851439739176341712933345333680983333161330687626674561568301401173848535051675998720049020200143784804639609123623284919993494186491057670406009721122117817689241931134764715561359608817005063554353137388198900144936934205970235654993975166347891538077533111188960238065339151689472848639960371299219148486538071315403345924408412036128311766169211638790071931552837948522893882757294926317264937958468450025317400499504186053331581679410506126831938672926542475082950228499691975756751736834190894073830069191655466425023379992530150194757698185093188738380052305725059150557866381040653284791808100220542170656619382350605099695876528559846522835999086816559235165179749699648498969238422852490325336616410793955749204025376932810730067940614378435679534954636339118068699226497048269862485711146182067560071119223289911634834458215400310561987563313580031816009752776143474224827593003090346676753581266032789762657775451606801130350490158934693816441047216063606106226825353552676640238970750171341310506720438450157379285029537731766293697004158534401909555619768698955065307776773291503988083606893404535818878637125604488549825092536116283937045836634810068241727557679940218763905124493222571670246364312111383784843767679520315374398257220408513304900356940846845524851199876543676146260151070929772226822254658318000113652127404455027725312237198389617011609121150301099077293762920485470772288420936631478708232370819126685299898442320033605462926479362361103816018337214221501346297750182378825227900319534319708990990425175525196210962935978417720052809477659739513197200517859117955424157382886939785940999937218178394017723483144744910144698665375280500648041581789718402532096367483555098625707351448639056383637722816084124098987397624728188208423953442898863001734273680906821158619046891690513143635644598795400109330521300167445915837239216804971165192558324292543416079321608968101787893012254526522685112657820864633006845362059473331984145996848162063628689823320884195246392114919334699755751993046775612576384834692324118541230621762991289657386415473805972131706318740174466398173058329421322977501298319232767130908860575234560091604562517977847285462441879933364521153977776621957095002884247505259323727532972639135898049164440747286872286596755586080281427996510203096942321694753771188458438269348407814410632637239180235480404539913056445700787803591895703231155655576002063472667950120011749687329163636560558900382448342196566026844268081967184137936430534809746724761857724928791761048251129091581051140530535694219590078190407120203436921302147923814189384667903547518750237721346313111964608686426579088111004921035684414801171209310835538215261043043561705544830588103340134234384410699057517216820534490485165805985343170681149423109692803537475356896181090575565143575405544464143947112748058589496031894502229988395904015989857193612589291212347265911530389718280035859871229861030346117269546396268429487008264078142521207928283087530739452580500129269731772030230304995396912000577615319074892034365791587965913907002978469041062794395124555814627086953050035421434858081593189636210371675782710302734619413421613797024479492222179349236072895273508553170326847116045283501508785251908117008174643456528414672194670602345719268359610063250905819427869337932932067227414771276955673281667668397641829738739350048567323578273248969384984793114479546294118271881201755413180030177897539848996287353001260810394629963897969000113665714542670102895120062168086664483951028937329051816978684873275486934497163661797711031914329213048627596175764957196248572303473346180079999780254726819804164675996276678525643503888401036671328016567620614044223086093961120066502427909106704044960070160700368110377574104223304037832425676658558317413839751857969137525383653114954131085976984996823842457065156546551883826158810918157043641783328810355636611367410171269996975295922868075396344043307570151343341018224014610526036877941055023459987051653474435377799754454852548431401646580373911604136096779400163147491638770760751220859964666006382322359714135457708903286802187971535682768374844612623491192017340973694881370455885385275126018131765397668923738405947630768374137630395370710085911179076804456561761660753792225576570028111587819629033263350937027714213107246123679809589633388355061843204611103241978250570342332121222654866031261444781117441200928382294706107677815785225553802758324270380496165880467256173747020125858897144973216256761841027855174916334068135863549984763821616816529344665172479260124300932991626425103911050772778615298805456784419079197292242230852030233883519308852903446431472983704138233820632682933751164477809708095736904221204907948024219159021486822662708175423129763123861931972908900649601992704553464942567082961429573963959052999883465761154104842348547490017595885094928905589747681145976067029410831250894026631558602194883113769381996846949037598248466308754112058356118628244659687810139626003247572638170585530115696087234982829089691569993835169385993985147758992408023222726161761777679496277570070058969587853684868193225594396152133299130354506439004198865257110289307703061047437102703919909022037154991251097659396011896178958341105465459070063050307409721563582503581946974638597492099417268267015380181550614442145227142173737180574544702890321105083467891700654576899881790323633935254911597545380910569771099700266388881508880453286737855508668816164573464786234266792890359133938075211726696116962336405114640392908962285885266656643560858555159464553343802478759035481850923402258251564692557998946367200441358581348483763950382866646220074661053403960253327738067707589202130738579509927643423014362414001927654522012483192832654219823150850939147473952530097587556254866446179137661006194745962207584138951134820601851353454443340966689469170318465821936073062000878996657178286979472725014234346859466259492189234449800278788347942472962968586701640223073406335385069011637001266776298168281520817876312212273488279635914644350675513306390328153442324769375416353334902748094829795557073732839386824882735398996261842269344156509924565819480020523682894360760283737991971883347469388571930794225587316623732429794959369886441211875131821674902196757704847770856765398407783625788195918286859535067327934187943897507597370407112137006144748744847937524044932962688319697153744599613466001083061133723879084991313755204488363827918721746039343219173520718713647378141464831493826922419871822846773000554002086112898720704981012728704895407569294772881453878969867455543524552897134219035549483079081020928056102112322596125407281851488736851575611136100118273693163271408655323222590631637063737642440942587995103079960906782219775794850720326468863770473696932183326494689017038732068966210391106807541596423279073627847907629515321942787620002970635041795064155653521571162512274009628967160990307641971078123096315202132558466192395548295851149191070107253683371482257967278609826786472289879999170718178163495367432580145810792008333035406680132581484283993595093994881679361948220905788274474221627222873753452491243791215719038992529038569351464972842535364437129455505451016957825832762636913122022888524747212340167209542569721178802744525038505485341425476764122654304980412952714653696171458225473048474844343687823763971975780047320513558409126761888241603503626433364094991791121222659981896030150638609410665162997725462493642736617183207600611457275754430470458923806845901073500433999216698429343773975887393341231304086901563930358440477319282129100827629727736108121407208614556745500157057798992278273316123709362786611395559282606846492937017515372188806303976804100155922286609946893091356902439969621914707901578177066062642983988992376094082063843410387496890262578088654376155697565693054423617777631078971119290389732045352381936669706607652334788986803025049997266487361927290453304019903676833040373033378174406845329657726159666323842235100537531297515431911584371391504465128054441887298882024406663012570003882829846405739952179698493046145247326711357670981448847383378834747376037940862161635990424113776757865068650575529790073960373491423478314395769580737321681234379428732978808751130475043682238032474571023604225701648846654269638792514680170550978974334945640794481333700864235990071236120774409618574662471171675422464700326979233948446821981392769553694206887269558309470754598278984479507759317640635152544890135897461767985411999190378497775530274538913082813622730963055144943097228120190971949003779378216779960382466586005853383708167428289441090423670720248664667618991732000041599770372462469125784195511887595835000572221936926473577561967135259779654221858368011697532302359452759847114493304668305018528112485478422104560582493007008750398875412218187778417946542515718894890101011218293763540498288798586133091643795355213578588941458003497135819914798988181861664491916004392921735735501124389691147134924016482176208868842544703333408685240641633594454027371656487462805175056930143822281804550861843994907836546818585967878404146837768857206963309654985749114340269570105098820100126985641843214907472362136103758922725594506608039930341546410742356349317245651893163588305208543230447534574173266226978427688236786201564178733518211394777236269551816111518647445954128654016031790732161429018090812713442757846524595906607484917440765143725911744326350841761642534650579243846513136436407405806206215292625029845415594143488320127461368755148948719936195285537181414370037410563454983708701550531410445215478499522850409347845085948331531394468029103730856846947501587763542042009195425225506520224671143661023419984936440217775160099680242066981540529088489862619899995925004114518412035363418541207191807265889324590813651421318956397111701921701018323342026545807046844642196824639940578071259266115731817804385977506432358758174219794561012314904544144827475068998159366012554856790221436436788674778499525522288190091647973074777448449797677350409171221886245808270629481617588279446592080181327278137155035985636813557524314311973666422169510453129932032423127879586741037607024834553789121384091897247199414666743698565005309056983515181375273147863079555685417593977839292083527451044317455316633401724559377726772756530445104431599886724438913305136708252081603780517901864164759584695317927731684296627653581039393773755546482501921323189945494606551497135245914009570563109993205512822545229771971385089570056301012391298887707983869642089987310054705257795921607387948281025332287258623579929206591053225255877504280107308407049704287840527921254964500889289141011216409118630590566427196005463391826916938428254088401017982724630338058844036848267306879877256344144591292023007375765119380710897563701294047618905753112734722622062983445564108097082995303468491978536655015974097773339182689033395762178411362717182741664533909559697919681730710612093309105941195180500880926481624171892731536248170363320951841150861153261456492863128012062660972099528698581017818132526000906921451042376177448233508875159946525606568246818524448749499125745847424279242038433843741569120214627983647613326239651418372027855222499719795554030470861175772448302167387124710798061813814360352291038807268478235121295654985884916640173901789609470801058837601386002598542313416121472455255679651393103348750914190063183467724254307840974620284220275069195838550511534203236230133495335533693995194355819114025800256937545627614856129713310999243874513915033400526821113501148938806956309542012498929394092320628568480067571399938832254731278710190002446024398018359418468830716107956375905488942116268340241114930085519522874330796553152521613131308966895657123020233326191413269095245749631029996024238637868912737999728604122847975039267465140255823414765535718762290177702480242982616385775070723293901357934382139718939547014618057001798826396194756459114564443723657622585628729277844891647470039316560158995326168746211724809238249659640400510984489154023236919816418343451437533940466112667707057555313200907642223601668571508951674786912015376660304660613742110676371368296896642823375971965100956608865565714253569745260958265882735362500637299341881990843992705989170871418926896825725398754275060288289631403888723525243010233817775748676835119360283084923735323102924724168739766425052770217783952213937983081536867777818328781818021368771257529260605514009213378648066934547285378619487964498807775654834289121383964142027372217457661914522028418908499149179920749088940985061278746908828177782829673434722903900572829397841622506765080569615419654900833700928849776849061614642453569293353251686886283879979289770117195253219442288180736186251110118965042577717436640116470741514680827887817832866422134598339887505635041216251310271827939729616133743168897369403922856423062358089006709355240120384073922141489626688341051268552618237670986367213812488512254047580597057373345622162918656799446194151598276820378547730135619206401807150884730662357665083305647888887769286454861799312752855801683993144844940002413109274966108653747686045083162345496695871486538541150722990489122117717859586769801057633501822430542707385118263935895066845547200842323629834918183631225795168304208852126746661606530164741030739577711674956213746165965839373790511440611986851951605842034185732812802346481889182440016201930964461827382819801302768219725969739460461309565778445317735135485818012555115724776793237132222148189279315419192584792565377969431245581132403748223246920656973309773644171204576909220693347104829487097366422765556436791491815799929079691684973684475140266096454085761074797709235447840475500320005896820611377177831655136147004651745762890253424292276408646407503267286039444564665983256461521546217147720089779574264820089752204187280522300803754570018126913815847459216645322326752006045591998850004653778971494401037859371342669008441443559727152331501817592821441037794848571559033599319422065559831021368540580070087395933305515673386604385668871751102335374298440530965828667351620297633940282823882483763797741392725631070835982742803374348286706239967177764233120554927007310720627708452514484121038824571209809840776722452387811483722201426605189969344718990598264258383322705937785682868707203639557818737443228975463694856641022435701586840834020514389511458978139010001505205821634141068871769737838219301278426201691142874805893581356531406308935976221701510902086470738437482416580988475946475811075407498724408042170622732587951701281582435603949617165934753699922438130542251004859958211254971867788356226431138117784812008702214607366491495746163869296598636271428704759904938996588198876356263089048216003430598103131436927289325806371184194204292193874217271628297421291370592958930117828203866856967806232585840893978856158436273733954734549085896882705599789330787989435994381872264604142928810959217791545087840432272201992706029872123209101619208422788956839544323881400672373372067481080052136630186979616060145940242003640828992978390090996190070826134283014399197336212197021659721877581459111964960839073276978586941761615220818227334367215375695421730479220608821599941053688410040136819846011980658514584391898373450807320552584990941422384531466160716596930890293832983595162462130410339623394730829781325390719876109764718270886517368947258705757530897608914823928994050060518346315525506608667720905227235121327575681102712139024597717047190086233311886348337931300649853708189150702475499084906059402372827637183982070228705364960952305704490298947554811604115985749195228517015775274224664129930008180269576356993122654873698374738649823327977701526932557354672142585949743612138049916325684865032868527443676592185863007013100494121237525026810101036248360464920506969706805007688513242600933763714345854030738431996772644228014758758798950195996593784438933502025492892823270895625490796466473846695356049211154004720971906441432033302400656982208594572493055380917584432830592556752626347064462566052477349745742018513053159201275470406341954054868521104250022340311810321167840542996629218694792744546346092295091378686553921837794770121597581493846543730564536619448695063016861680535963905799105110221920275946309669506950942265193546335819806305131935411520844368781298461167064067393273920222831936268472060295818750674076913021795433919029462505259733451638194506827771509200698941028094171861267068566133240461612543006996645414617463590666574581833058350026864561127632352166372262385882287396476999226260632504252206622794415851170962443738603556295883064757408443807174906439727519314026530956571930492644123652438102200909281114736079905880827190900850737664604493876743767002018230426255077250138145789789052113347087719465695186177916519996328742018798981934903039553376033059806937025261826649741681938746916424424353375612386980981988770328904090992580986233487217832868031037090126933748595749855696977336626374442532104734671610846915239059615625404422755618643093013717997309881661156380335761149366121817509257270247394292808411721147724909553516714026623643574720235307807167186895626818195671260775229710184985154149334386126967599870272637097605826407856976300256996195172099496430001754410493055849715615963993856049424969428461096200932553364443928761890741565112975638027183852750358758542689964857204911638452733988091508715008646397261971860714120346129138088697220821373954324060151286536848257073640296693783107823962639122473588279591795908222604227756271865155059381186475932034510402690451363313920560596458537054285670757362759305582831569127238708826655171760414519103193017896807357870304253933673632487752565970520462345466405651803657665176707197677992518036699826702092650183856894732408402887651623202262600444589718239063842374021561960037401080088780904423610645939582917521256969850686725316289332278545408384303241338729015369187947185922095347227930253594547055605321420822902143494884412390227868846684548071008334742971651729689470671918010645485574528474843492277528540959471686076131757151431475128816217950747553322398931760088723813839386410984737332506790021927794849489823593381771287133277090107277326116434292121756681658122886034352865667002410272748437426854203957409539771166432349152273314497573535554144073858052870857130988580283156414525329835847740998949077031625115457220774802244459167300169323715464385800033855339667137593563791020005080886577753554020982530293730344637539858832332343674311607082273897475425315481929219353289523058674478063170259722676991963212794145517508088189803297806247625852979281129785789797022988970899281674558847831744477811774264145444781118897488284670236263769188734061530723648093855806836402972995602119206364237728540209698363108911500483753069489079278939299305701753256568170066763882215131782347254155853469849615267577754063817732152018007823497565010727705810334664940357053654755234692929286086013133707675502639008818092496617878368571487416504384765629669861877974481598730332045783634348658525362197669771033918050958153113438570502802166137976229671151550552645936126378919255042525522970404329269369128543464717652675047309432021861054200256375019252196328219761666140834889690188143194828074942383465289298145031509726793843481410080462896288638745455165125350611103746403317213192740445702321641656779353144610465404329927993857932745091213932839773693263737736895306503800563529915673328640673343795697190889398650759180139885018422364028886568916176160562150001329561855542048317659938740811931803460405616544991134329418908691814618029274619343714670907479215076651831385915691896779895861110534981275829869764176929869392577082367900646841696723754138371124107643608185910918699729359674565771299754853161703827670984162982491610160362504798010223434336121876978932149931953303322072904205272323047353105287197538940518612836530767845499648805921930899040165089782662295691602564792476696120559996025977721841537148633686389536793416291961224206266831952759638928794991540824490655048290370642304793049382253471394240565687659559336623852405488381393467415077742137208954874103169154130917278537348115226357840743239928938122842138334284878268666107308657283857986342367433303971637122188340114323146349570804298701231203584468706145043802955557658040078230504433100876141371512981621162262470435806047687900500133480875033359488764585459192009528064041211309263322530570331941008601347603498147672525994883447319171561104246210421993036315190679024772555242642664713714970079466139578184971097447016215090873262531419764228808092660287089119913596264549222129613703977954304140743810995765723344221618770844725889127256663325219723466466761389264269037012010420940200986148628225818417904545014216946635736699558528147930788981444822522385373717491673100590821338619615585353476863203408216736269138848030524649328464553452123693855660426748462970467123053407345340003391203191508362609281557577902614016939160450577309707021822313021989900933656551733022717495813300543616405559114462590598662125556345907367873981295753854342115867627374096915273225071694957019892167544099669092938805587993553391525010328564944516856330314360839675162512768027934201739397874887141285532500093081105180729566446288698591415588322650641293901945013500706345463343282074240440197837430716610271843255677838269158123784755368537440537497658569245173893408373566469530399786939847595459980988861324445158068144521215845057956366169500604746111289814348151600233047893739311569049853528891394454655371379158681003708801369371180313745752705919001660135789610944684450641729799614571581972309555484019944730547848734111997620667406982125165997725964230640054152804471006396640175929867336034000251779914033573612909561257352199833201432799021112017917396268759461667559287632246457039852318385295780865546217649177626473854713633382025066500268051502384948840652282736511408729300253848450960887967714001413396730030275942240454832122432144475159006854214803868431113650700495126562392720529917003231906916104647897600999697223859152285444506917394510371459458637675806731375133158794129961966223804915630281895079269701394890168563738549183679203447903569594464731446735478327330845899613988243407492389144361612093540614499394354039250940799826306215309124937691645209260610953131584954500953146393564172962519097852730894027058454229221548873623194207858610373735372674105862517202789482517804011779622431322685504239251965573313251476692621416415918675593127499780390416280165561279730810251938665214602104774469562878809971595476306343712281582500936376195835687770361771187586539111115728517121860484289838288823837138959060311100656114231801382212074347982002376157301818929740725271658236369641867021177776347906999402173370895428278091809930941232313743424913625915193852538635539285602025991895096183185159727376154464804853385777519467405120011808770069692252749533362100825944903220878342861611054400810160071288102859222259853040820832483803109437143300858164268069998963153985477632382041420818682405139036065889495217685237663444857048339056706549432492159036925971293062208290855794409651256343729891651609987475027890940732621533140957851317138868391604248251285774012658881477184124337267844325578972890215054473341366355124375955183026818887224968067451662342576516267841438211396534084108376875297979295806445364337622827073616077689982809182258351134367294095634602456602229418051796363379734624888592435654488218835296018296823545662980530965038624806579804466125121562817137766719097475572433768930875391585289587064401816071576756407435634750295380707536700212007010924433384001435668013946828082150303247008638824863940422230534076329446922768851506721438322205767217604487445977030116940954586103698315963683264282373731948071179977383493497921114816185417188639216260109735861153690704149460420519137033030582290585476372918677385139579266344995454321885889574193399191280170761238028077364983634579572193485156028266923053750206073604339734386786621138538448838061376803710417645768603523484501204913263932670853295564949820895608433669740079043635978947892847524425916705759608970701810940809740256353092668099561790987741044688666316970110205054683227065541690332831285988289976895702839707649281892348189542320015852880005703254924642007074386392076121348857621833642989999028543792162142996368918797905778928368746180643270081512035045805057422716757501707463679963231492915905015398864842261141918676211355060691561717741679238284439823349919464677820571196683109349506858743607121333021618880244168372716057775567427129325021268148758433384015590410584617241186182582364379684238804992500346569961761379998008094456453798292116343686035385061955093854924298150639661600554411777344806985492772800776568999684918090947785167056511089387221489909639639688127800071568396619448122143707680238364704154028306989489358500303682953398696037490974617711738880092268442451078742309075310476129756136221533061573271668417387421457076733041825094827884078847891612437260734105443874777275057766653996886730561258260731415008047746061875902236903912201843719132684605769007148147022186790936901847826780235469098586709464323674739571522449686017293947679039212697139787374768416970871297530982334586375213705187969651331882145469457926491180888255875941256179709770790220120022125524157509627917648985676404039232355603038560138643425822868409637865126151068309615257126431837257843874642742707335968045092182670441468809612618327489785593821288809890966662677685528717381244835888704226878370588118065501373800412208184069735415198349301461155751829348300412288834555021107699186627868816657421859030923804616072622042230834670613708392755172478142473798433317184128272600782308475547440456907584939660893135938985653163821868375593675788693135219195102415583774666392317713855483294474473568824721296027578448536841262521172252518163110822264533025391875585848913925382222861185971714598074315841464075576932407975899519645673331068423311647539389378778355080191313896087731207534287937705324271761526981143622664007521495939163143922097712822410321320147141135495034097945494783643339801395027255959990164718033230323000124949020322428385253910392869305367356852456011279460880809291875365955765343912924765660036115663502701833378336231839772631506117826805963988416330678308060304142010085786984885517429023983761098099993802524784267284072131492352978371720926148738360944283176910973845395792036237290781193487367695198597520616054410050650252778960765727207885647858487924824820332704691901266667208659301136867393778394478730700205561329178256500061312023039161630291942186634977077054650860540499578523965555554487100882316700622212522361836959729254695497900423017481817497343085809282621444276774064126745407499902287138405389879560020317397241276934810453187507359638190910899873502584942259794058827756746788497277783272665274430312053199020279438110990618030983608619334038533356071501245268330381951905735347102077918288484209212923911328081355778422650137893613674328577541816522148607258046646688835636861091161112882338087043865910211942480281561707590152309714596838100896177873033363968328891444971788343723432054230523104989617126471930270704738699700398937139394275256834507529293109444957836937890033517106949269174798257548327865428305556872102580006519913350148613018564862849243844790188968918288399783765270786703632567189646695642776594682004315409745614090335570855251374227369520898217291925450976150061287856046948916139352566068228639903059527463932494269567521286546600348695870691752231514880411952329124132154049481516407267209163748587789960068803049492983527678426755674143789556664709010817035872745055124854883045519021085595976986371720927470930046249248341384968454710185971598727493160948926375764608692535311495959293836750993908798812639795679492640037282147774869045212662266033387975596915426647804115847844934207080952587187947897132075515234122997194150000537444615628964399439117000940924495166508982093098276904680307331782566782213700012321073705689565978091485924227957256654430524902243328431810704612336074878458022258062235479100992563267746639559595617728061187722237321893852235621768255690064962159840845300558411196370788306163742225239959980017177776826454606965874928854187547673010243291175485850827128783472057079314735444518512698998773912111213908951991800680106633057086677765389207542589575195646887535959925784021974100315233956072270560915665069222851458368671488890071862323739733326366860550346360393976647742795428605677017259771234317146089420178725082480121420954530143918545450213485055348854331192969110462662785606490005467600241898326843860109381383328646248855355582572193373069694881292091222405187546986421123858079603080266939561033539132842527296352521029653108717759598018802586315993348171216722693452205284246302944721683372324061670128176398116605933624491360073002742665060490941399585674170450211935991810365055363343366004933911601030542508625630016804268980248411617489800023629610238868859408515176354270419320113395163586862116596072497985510535052909723120797953478746434049496669937094624928866661418854775023407506379697606403226138440090799729364396600814605402822648380572721240552413580410324860225957778155390641208166626047855951138427207956124706284773582318410912002363598489264664390814495668109314463454496615538782303822849111376234992735423984084355650737730566401994733498265776572530162630424007488602364795667801509165207363577774671517228281862344779224584927784395199769593997424686186394297263973667015940372338759063288503903543989615345728602909520626089311107659376811935126075414758668499282919733786079631590562547951593264990084707969415710485925582391559188027737066286092963165862463981531495326803468523808196781859220181824111874234352903766053983616660136299435415751854142611055161158137941025993366495879103275813706192149310679967339457986818981136945612862972945238550385089977692640948616172114774669462764276013704203196179643707253960529211569389728759919495417463770822980361116745793271667135282834623159840458620810486427754559220799826062690792513898801311650958601748554985971638292004174531185863890265282547323153479954149427668788305399886124850938404224147929199383203930112979106725591829192410381118894795209505942453081011658536655017162093278047508620629971362610055266078958658645827070925913764720306638691520779537210057329357513893045726754322094847089075253209972196192602818989914868696159580153906473522565741282731971521726270743919246866821965463363813644130890389320448695873193764871361093742439975654552068781382069661332561762625323653016695062366333764735456637443129244812078834814813057523545934306455813531220259282826312158809438675957753929858807094945058108889138975769051550232820835004654528902743380845698296856251106212576915444203833483596341912431831800120001927112529024312087191929259475179053611014091697477106841366282762982001321655390072086696419307659025665591399403922110278401747364844805748899528891858556235996173529920025290856452069575644296979382884098208481937615310835554680857280401446497978555738600097062742408195160035721145324603616540856538697333190098678261713471490476930618669993752656623102764048823160185794038016395929398028289714405897270698875492987978928058146535808761607906820712971040774242104584155325100869687102115982969875898499004948669472667577970911214197888400870665606428847718457160330296097490266777273797288748633995023369925459155684145210181027802737747097078278592362931961083584755186654439150381764818674891520632691211984311830518840573845347523389330547936803056858317808025321435035562416946538528364704757599674168439903412859164725389527089270181019160006685808846913620227354015847015890744419459328018423507207234288399625752522514340980240166669077515951820051927716051209905775301622867562511523927636207638372557309749238219067364194576960572891103461123381521388635137233979049042989582397579447664290654623392171787415263649584852280323650023673680426393753617460688933213919575437468166105448345515920329753771979325631697678019819879598434827575534473967142477076288353379768279306096879122894390596955764531256413499730955075070843976798461878067579020696959832610681480549006883910741983931091361485432200854616037658339828539324690855266560698587909736907300751503918263784911786819558562146238685530709170830751605714460879434732224176521942270032042633514071750154139928840075566249625961755931502061529853069353973368760603487642313604571325721056099070884812625458250760366479637524246064091128929636363948878917982445739527190968867166334277873970568204611421515842351096310541109071752184634309536305286561335254375563713631440097387621877849191263947086243251349945797497675321538707194083628265104927041185495569901987766637072663878484411852652811533711689782998596253733524120116929945928307722720360391117486130314421672581514698644671928557643840131795681326855790100465547888887020044546634251124196059157571521127940265403962018237187437758017419307435936422829209643848282687499211433983364554396477992372659349561385508034930134285378139977421052911729552260778917252868865623984460798066829270456493226477611168330288809555314711479251484062458912191913264884775040210133201704551906904096167760845021117276140793091052674417782304235861462666458260808127584409671473903733057803599754582091775297809364697519727776372324264468126719134694290387592587824935542499105112167030963114003096527824269822374180563167903781018827199711821671121016535140680080880285231629234082914581437607893683366078632253056154264393233827210145478395320468608170126320639374877685919825292123185338087696539342418939207950297282244772020896471809578155936126423615389600051182635525383355335571249134733145544149049819026573620851410484749374970150993115879764555853747329886220391248943483910680790739128563815486232331864220625402254884755568368948037332312138959036717332819062623253256430658865286791983625280058785627176110836176818296200370785537272081967207746720099550631854964990869211804835296113381054841914926101061305891392690528706945362593975448789904335613410275393548954890731176507591837981717501610896830191826581266462957287650280401336500373617748197437917774998795163142312299799154765807247450637873902356055237743887503629462827451653341006983984927851631450019542199670028729174246865118571533512554986816781280308986827808476237629581680771968157292880392064750743344681057203435846063127807385249311583743600721620204479794987731592551169367504562753343818954941824574555295649709046654811829322774992174208842011993712473237383259377683892695003662355756633803223492656780236319546532230734430262476223040055568477512586646567443968315102885580144308554816070200774208597594730491384379277973964696832845614516978361800487455563487286012276996365177002204826308104032902579808305010940865892138334493023263820628932092772599796157693735909954006954131505225985327620106050279438534141776329564061214504384350121919943535854427921016969244007605401542591184223219700067293615889625805658236145938019414764853473462691053181067001355935735762025907629712496572700785887054224532651154371872641086082954605561416064458510170663094031507831948814477679065646788804588231478778829961584959820432077233946713838450486651907594532910859682848373334926241888403953002348967419892954228049099833944953278495538479120823674656261628554162694269689732373374858203267994861198781251117183465267208416279904549448409105255485725665687805610350582943461257525007715614749783650176052276060916294924617085857192136761824773122296552726638133946215359903222686932331795125220176671558333812148574171947662781785999004555915114004928011139184257338601070306280451249452997377949939483534091629874363391521692019931464800122353785448210643469079358593006639687241776801360368798545282981790835747897901175150626638444212646150752829415596762888096670778461323221904488157868874589932159819784106899538789109387502783265002089214044939864501749852759229500441677213339276561087324548925985768940368468199772352515029953295816302821262051450426104311822410776152365064262750944784193348486350975200097975555892717915990093005969060912804549056618486109765123790124530878373939681070313012045890190035512600282212333732028909345468406220085514238257466442875881643989579696440572103960047470494493869616102945860591469713820311132291558971679294887660380636904571620273905188072446568707999248266425425897797616292872108231815498380517806607654126948673724052932578541327201824240745373077722733364601246377990516144917311247771879474787354113407011404505666093541173451851574614956805776818005999759627541888788985013339203151003195083224105838852217677576948831545808763105299498244780989297598566088339239619111662778881498349772271305825726984410639066412434400373455630117676930361607513265676039535880124909330665727940946491563622932491191336994084710109162578137239508465863766771026898759883122770921641159604523273395484716347455878948955028903242931833001173545355862931667037688225462674773746873793682004249218226013004669612124762723743550859550957591536454289468224182019063545408587379216273893063561067762825314981532895568569733500083196848640447183682576220782780172442961806346731525739935609542657814478026233322844700042220805179132706308274796495613774467407192049826019032074104554745634476774748374872456771069302758702087696421904267577955570833188876281011751025259246972302203763548370415303620744307318367093464127108272178600039059069424973635997231442408767837222949992378752032361113646247603222528706917016031083083720017980609843749036558526870720788000150323908129614861095478320997330834101588841147071771599911522492214783030169499554263827317732065060897624656402952277581473937929700231089407978481452000186261369525357310278588485355336786204108745993511224340639781261146392431225871886558378159391469685759705318185730401407637977463560545845557007782558384984219621667858733190891431845414477761246457367099660723960462231586807233246139402383791287201030320083879290313886411993300265443464629505207800897575436509671194061670483148614613736860215999580147480058326644657034492150763102989498208218834266756782881041577637453703567207204811113466559229968029940292124085480590501869139221153083665683301445698062116444552023241808370773713793197298440889679090847707859675028556487337831423361218118232720122791296114548473882774403045420183659844929643928072122993297914580899725271721186798880844496709948734624676214207631768080424956522009274853524072049146871933000993141388189187338050143183341572139970770186174948945941945987858871915935553219997443272011940788210392327127159084074716176671024757680077094469885198457266146594605346371241266915519043590377577099762276716652914179391476080387794000892915725375723935806468725206500570902696212963598372817130290959968539691314196846767183596952044446033898214946637684519441373292268673993819401654415694351840492328438848768304778373370739724812424090087943564398730228499905176550851852692817987497917385740380010405275670159993799098470170331963582678929757953115354433129875053706235841595055051215578662766576600980040678870558744484396358520218958804777678995697932618719107254061570969668955197086517116163478867071998003169953974967481345154956191254325031089115993958271323387638045971748456226568057356589091462092379613741510366968033459187385977605373733781170921423697491895207063546438112490816092511323247464140643707889356926013807554695390931111762427293540584279966231368701020326789971636533765198333113803807474278050379112866517326479250334425322991198500935330923802193006043645222382595712053216149316131207527150862725530849317477089293629418809553891244118166036768263928390014230301096628226682964925163674204104170779939577885180729459176271023691840181091760671855473894528143175184983346329119314512222568414107620007706747453799773790310270404683203044584781596193919917834738416703858109976896061690591660030560734709343146691499105353514314974706673465297772351594693921256299468628196285350251050182639227662903655808893595899264282668522085731837532235797303330254010980028825864891756799963884374669914697908772832845309278826942673033272623449531698043873274889760065763593323048506103586147586572952455492835227737082165004305354281010111461196102191264974512454496573181290442541490066167463782321957745855576608774202280548966170429321164137279684190568424472366849506208415455301204363377574876274665902319207184197200404288557028459401494060575693561165260369285579716484149347418333357070435894359448124640055963950285720120986247155507027102310177531724114557753126526430772170434132627617106554330876843211583619796273831763968969590020485317876455471988731421207945049248579090714420870246191811915215965726424916485050043922827098863920901506322940730435365824146553266152165377787815049724431327406786321673607398652479130782287162624327204008188015119274818384958026848130689874244975402712675546783240955240614782248892682139297127268891877112873856809482189929017391603000199215984059266241195413479216337619967101736058295103966275296046002970552882877125683349306386474337933469783592417552324208861528916087909953491567098883775554833938474184521245887955742257736392427225210821199408029493458373407188959870839716181836128692777214220379966375321203586063632028772350534692301292584718885954904728850984682497320148705593070139000096403301459217777202490403443905177508792934520963627255041501083259436602646419077240270525697552729521174252751867535306223761691209779859412722069843924624448683132077722894310427796200222000382251151908272435933460115275354718268050109152695907346150960036870949878154872839613698687627315192563732625321491806380539220697596613910952810603403807507291316571095052781185195649727756437195336709079119815025280014374106249047158716808207281014722884604127432867185901713684589212754399682057375956115931645656118670386842920787548974586681473242994287475037826924223220973436723205993796261812139895624154879331175926833879402219289918158940040766106725144798686817006048462978637843343495582965265291732244880253146924186912000834251327274425901657006881308709404203164925527292606255947083844487438068972861789318142755359249392329432811292058352649545162958139926152006420193442954614599288603488411767623231723882716093134134088109768020500639314213060632858684710077910034045675991055198885115787849264892125336500273188791188667249862618534108586850648711198239693196056403862922147169227755577228530676901365485376405443795626852123769286160144182784118393675491564537678740346720900483925519253528693969056854842736720184953464505538140959526782066154496784796385551756967944392945313652821101373633576315003209399566230180832717879410663253107588453912555843750454816194891983959679796181741226627789996670895786065941473240130240636114059884843978388447253060771823877301330410951212155080450924679629283860139980883440502635620589317120092846165986920962911276040684995133000914545887073094031310618709949000272881036730225180673751617506797623618049567890793779676685589407253426594762360872365738494339961475817961996724786219459427311805173298043390325301858838370146918212278670792243746550179643901641659139465486184012317969792259509278208264463654309986919066950524848725922781775942257573744973758132295901662878336760967702693115692851398705009567619343889921224258977364183017529729422223525462513033607419318546905102061546249627171609510180229174470542208158666424888583320278029546126993129847686903858176834688121406247115835699905594956551552539065591635703315316160395650561842793351030124476664447182830259665034736674546046921144628172445314384176833572599603688814204582172523737607955943393905009047700289241328218132984875793187868855408894821480827159172044653443249224845948774487724669968085076959879099339521511140466919410437141350574096318927675448900760228829003702613962885366942894669206375545287995775682436955232612949064802194312439557364145985498733327784829822327419808790459678374877617029740578467225165119756459870010037769855166965788451237042275909174884173769650096064494941497533161756353398881206619767619324710775343062245694694930856226354741631357523476969960422736299279646211646459469476346338273512033931726048686625944295870958881070944637945371203628552060602536017243410167112744457941032709868845354612560183526727585979190395278254004115043007321779119089475446105912398587056109888790960017154171881234088514981659643968230412379508811108387480073328989612531526851656433534139366515148758757094562947282109461333740261501012945440679901321728970425365360128644166272157042437230558368513808763136704693872730025200135309839768934059502259774197919843655878166976040156984529485135373762895230965297369028564766297912005192205322665380229849216705172515809446012138230108593289235631367664917092037445683342936748743089945022733157229513645596144395553438254537375975974384463776926101001728911849338772607709979060405946949751441628036634956604475022349309656750273233677765256393884868615686830927873406488457659483017254709361292509216155218534263872877683381721538475883022337442414672379471004949842121060762576299200291518791481303195088122511947593274692522575001520223016557253422823253738800879904623386126835549810308770861333494041526792758625763556013559517422074102420731067264579651880492478722523736281590716636429250542358771837147563413483958044532144575867998004457796358747310811921515522201695734361923232850272587396174804486055815210296509957513693318025236569677812672095367763975494567845839878197702978417248874578176878789064159927947717051235875438583935567899363008639315125203036154346443213844019157933598730448104774519592243543399913299299441505824605963365084166666230491701795925012728129668722999688546849544337133654421506484377670962519584065660066747792901058492023865973919649891074868856460810045419220400639135056510508147661844872978529938991159008603171982381130210210683469221964498229850136107846686272937880566221270456971621507597983866270182782358540300287200298567917539081143300508426599964155554831122372612515529590502277518888772078912761839095418750510923630286819466394889969741219546486763620112309371847108264101610800327312275213014922651272921792066543682033580743905280203035059595817925758116161900941228075683895901924103850401213041859142756371337176831806555225685122221176369477608564206073309685501209271986847033556308263797822141955974683601888156539498506744372390254180136732303558357982364194829601719019235041974208422249819962913205354746220881208580811878820718789685646805803923239739292611921741204357069162664492668021344726918765851474140167926428784475042175720911846583068044675976297832476379780330836069384104833856602378471288543186663210401507377540703253627089998785577472425018226895904461924310362091067450246527973901034698330100957040950592591305472536030728204520167294424569346064148260926996718393317615749019795004895999361435481156399438093182434102585086026033391666512586555752042579362949744439621817408004866440022848806617050035237138038411083715882264132337838447908083975053804210407796102736151678053252506757630808490162163482316055682285546108655965259039552447192345061250993907173383107264378492559543701080388823296462257491772849007324962879544393562903351890913873534360874841145783566151014841511999386327865113788101034224959419393538346719864533124561104641458661919662556508608098977198448941029470602323591136256579742258553666206652599003664921177327127932143657608077179476171212344775333727054917657185840650967537553432228148752711066331849221435315863195251122741607693156527857264324347753198931569885779126885771379326248115827555186010878234006377448562494852042937918358078028828847320635982679818627370910988216197695242519903748540445628174133311806299423138725668116303370074039694805083274219017694064175378128114043883216349653644174882461053897703716480884814468267995706022673770025008034394563128986193327072639114643386389790421987721964041480057318797499308195333822990392529806657180448855219076806826628102977133059811206703368122694372035898613374500004941555734607486860032520044485847264404805230197527453329961284599161094324315875231121294101194955270495343374767930293282868997147114959100370935523212782935212050008401124653045046537370636453532940069245531617046552769653231982827180783735276390632892592318385723495331746154119416913361702980924851208856120449325970874194661605889559442531557013122458243903311866867099031449070643815147300687834125280619748566937091725653462200604058146478276594998724310015083770515748496000642449918523433018297596048281345603751201691760069133181850578979599614754648842513985020786126176122894290842916694060065849251064981340968034772782927872312350978892207393116797099490792282488355759409199671262103041494312648659664189714580776794865389144047337108907070437414777308998924436516820876751756619915908058194687607686468922885757734525820225502453756342942904426406059476559525266052711363728804114852594355699676536802340072513096732155895863967689697596979029153548340185634640594161673626618136627902128442017871623724005898839592105065510591188975443615584218980260926080663444864725593995608508485826388426341147002001082316621556627737469168054947324446135858820928325507368217807896729435992462694843778230464562218735579590792000467501973387134782453578266821237410421404238326814363435155719743843989273863963912354343208367986161640576664056506478423099280832141455761685430605264845330624105225739489514045816199103487732599169876557817341928871362446170022303902558772975889398467426303364072271379852571584689010255937419348421691057254026379056530897088295374617705497508723652811763744110377149538407789569539368233567792009488091346537697581290445985756036747509968427489654985252851811977896023087199847317574237809599772168308971889760817534347296982061775042584766672830169203390864723870562804492500186846834264439657973190952226755161997995009788475992973524279508772670890715290439316414103314579184505233245666544503488837496815975906627882954393866554910304197863210303583896892145137719550810136925066194192438891731290749069597495288579788197893017089005793025013931506741020751939473530773641608190898935034033179681432932141264880176738521010841445515038257471310140057106250697387267176848766217794666512182993525195468677217433092941059321521239553737915009983822321949619991303047854429366594824130695375427204631874312502927103408308096519058555490800709544555878488572172522428143914931727556201367510980167283149623904225811678984088684024283070585122638329080556942531040494789845702889730397504114309194923883252100448836525169330282917268861947190076390323027559617057919322323456146297972761573453212584843900174740644873242582610302367199246809345266558695456245839299365265344984361111010040606336046409712145670113580745257640742719515941815849992429078622734747407195372906577362938416627736201598511680375416966383139646247454780412212884123555334851187498730957906760721104967846379830997332358206210124664496809741532451987503921751216591507160878227521812811554258467213228180707498317490569259068198996355255248518972290659377996154031310090320558662520248621446479640163142640186560380004444781879556416318730495402679179310241406948239665450228936479348597920276765105517951454345606654161608047852495664705832197028022139987758861576208504398531102470247062590904340739794706459938106845603447958351640021155861868212746576513482444678019261854550135664272979976313547260787381580045981213607583381694882102959858839430014912841081720704739951825628572510651587985848131341574983477538964420716191846859531002800555901039482430700624457529388543940862688839005941171679488066403100682381586844944131585318961541666945070638966466288630778771747598768585571472921066726252300497856000841282579174073488130742157860139606286695431397851527857610084537468300989466205449319657470175649143113785021137758399437509378681809216614587958301668750224319344934300747563444289725270067361841213570941277448488841379163434247992607114120720820079430794212916094132319117145168605015819518093998529748398783094426917152377543974875396799368615218270606505356944948060378576612035210752904215811471055259922043316982368450772357164864689955004662864508889890469016164848452976799064951240662087859426410771759815099904568525162197917565449447025130351075691145091079554568749427408717455502657414749722407623499634524391360362558939333229166987657581080209125133417936126947312719248964516815103637421097622154710978456796489068268018704462288003471400468441695811827771399916623997979474390260683887905876505368782884657413509097822902158047561472307714789249801952529641793576081782791991580708740568811599722202880779527695746911600735041117982765422794297730245309055064972629768468265841986747174428957007776574262465452703328490083235084972479815681447444451401161631631694166625727443420968016062684367149273318021694236282354939204672668969324178611733533039766534167830010538692312044333153377783821626049934265258794740339495868917642110046826791372971051749718030756537283711057983654833536537414173129672308609023747713959242785952631572009488821815731255079106037298718132776377499523311651317622571508249703525845077378249372219475928778749502242332042208899257472734886592032108072357897331004872161099410138719424574462627450327021552442891906601292901576779206597574953604322729676069225776458320734073953974328562907796510445965941675102077890148632066134045852060258078978083977855801710448701459530132181848634394763458449156328239999389993987237736044985103542043800212225371698233636966878854740862743884046016971421528485330508381247385676753421846142938260563674153652460594955475896891639284976255762363686860272132570558628250829873446949952561562470065755299064491962667270076949122567728433295499366003428375007611639696401461210393469867489614440853674511497234306539042180086872809314992505997937335679002119938982310574202037506081598384871779121666657425903643143661242273297847407389270407018825852252362239167135056433974195989406453509002641885468686941448966807760517260108179833096257136722882050170949619764157110342690431736674196408208593687341084313932888648604013668524718147242370823549909561744986033735248312312768717191326954523621926979387563098816498922739149586848178603743140851373665337945895477866208624085655396963576832481603884024469941483621096027653225821549243117969998770174340975786331371065313578752514508748488607647415794842939834089817676456665370824325279555882042542383283940322390315471225366643714598763450528812698285030282067122418701183001985021891825573750955926627358947604762512112966923651725326957436819544754297102938165984772337921828823068567716504384691631541757607250663149459652800047348771128340238833685734638757741631621142260635383009468983721498827745996567680857970190839438150140633773612231445516904415700676959740150614575014076238327907142151275640723005343251111541321006631105113308911956223963375909507012860362161209101120527102783456405480382961015129996781640770492368556833564180551426651909083604812825259672732248401825948518661225386001298777175839960935381904226480548092218163820544781774536913902461859889657845018926614941764726433472317080053529204113942476630181201291884854185261820631838739562386620956262904563559935835223617988662979262567125575040314600158005365402692174503840969563076326231729018003814577769417912197191305241954324678637713201464798203866944246854378582847948040526130589386527958030350090565325537940341564757204166799255838965468546102022417205333361818551919007928140368533777785987396871112624947551999621587830754745018395550833678050411083057557266418808082467467429682984032130655073685135739355823101635963468566199296564186111440820246461250674863551484656583614410839848570433825486137748301121054410760489532279234227718386025630670155466809814136046916556799073169887466529312197954128633276227730113014325187108937290477637759321113853218972786264900460927815239395105293769810471481469369599144440143194321911203356422708392299895552692534729182803865612728768280288519803503248916789013186956966070432264194763254296577287810998103466853056938902374841306129924678581482434699681498084779010488019067682982085862471950562151099868808695126787212785102991934137253816100671580687468010178143718330954808251703415777509220833449066920102185501302414730629645290484335806642693248555561207778446896884731564089492364789501197820701039798772517655327402616692820730452599337297982405830189499499321698360460859110114412056168700811790896594188970893357307272951460066686035708946290459362220290361897462853201567212402899594526872390813688976373652376552907469613873078641172304614045616740668777284604863633084073022524016399635932330244182185376081475869101674188582228990040898861510142574485059310626543869914827915846347149264763245111571673035486250126809967815197035173980657204008182553484225482081346360563572235044056767415584623981265414941701135170869314754016088894742042130470494251476566264486555091515191300217001569427841144933403693985238100859178055086952600342170453160284095580691972039626926973987732431986003011584251895765713356243856217287643785233148351778847277320951060231080263645230870605386591675474658282518334321215774882496277235890249876375787711889565293490208382841283498204758656735915482877590141302925862604244388146812668369207356427009726783210829368401726323151083582114124167592343676880617828597824999294684599840222585271249912347746757781270039437901847134165101610346031633194634452915939755786410187792931530192453479343358676661323601907356238142065072048760343846823002322263377861684127222604805401772675412058650761434567982444633008239214078125543703332485881642012307914376298171902476887065782764896773334671509884689606237697237756601913520182952099553736434663942069843021087628551245871436751453837555277587389491363936171472009083283699092995834703751935605127359668712093897264942481015556542778799887135638251632372232064308781927849614166694171104861276912203581052573270928146708807921376546625200231792754120311303199447775195025964230882854288797239566741811085599983609405837870241385595896561806541115632278560888339389441584500292310602898446704948780622474478456121426008099132072998501114502813240097994314727604698059155151725302655880407986435524936762925079769243163984703613840659918532063362124438265002587460879005506206259124300157382826368257691082815623687116836925249688502848953151674366548701136455510124136336769998075633115543390560877012682816325032477529224133647907131305467793429692480445919963399319033804927044848657650329318626146778947689596292151764847442320553709977107720217946261788224362188244996832527752229970522273266184957304482385662511820766592942456699623519239280110376814775713298908186545573641545857472917391423369861145111497216624804195230278751279436829382537832245855727047957258774933859814888055285190645411967429627638867425440138606218976604021524262799379483487221181052019379908052645791773351582166957869325883867792989504045964121801706133159682572852645928697712717285187548939343723793748788235685355499009880185741556068791487006812150239892473349797788792097647434618741446330311575615907251240162974759752428332296261008969209039431330049736915353166168930261340836163621431752681860413989080366605426453524411051185644441629034826316525228778502679423499552669755358889055676536891003103749648326683040472372982183619365705681276333241413739018534214917005786196462970279056076489548851271265434357146732284300151018093285780842770597188610691791897729601136436930187799941668610479296187549471785565182338634556235839152011686701880396284982853113523966006600379657380114970095268730403624931570361306940719606758101405328720202063089295801926786349318122526162917072917560761036879053460906827215967652259661541576532216835950032740405547242576354775943421729400900032737018387693871733900690186342154163477233063297713807266812938076667416182046002302443091167395335785273671691227916009183596149142862270824670639503008749695333552867930665387932801550403731897283293174941365431257020715807998235893638262273888805999711835491992267659392894407348927588526090238218287914205309416717176806508759163663117112467016485115440852639502762133882349840741733024404929846694397778470211933866323514344349812392050811313914914860963423672488513933227454568481753092634443080916179513554111344746281039342556012731802006013580536665494866995867624434146403935671452351428163442769369695652977236353849841622117141839962627876348376568706921466558705592065170457659693131948587883012436989879066354370617514176053658622153335543724714777379455116873454567707435618213920541420218764320090556931540345211138277583888032711159063705209247899310628031887465764527921350495269897974783844639404128124660631881458135156774234310492349697545254244172347007448371536922616015152971513505536153882807188641523782270176047534469899617250085102646160706654466351682915078769203108886117940195751378884877839463005759715704197942686021382077310073778366894565713763841022514003096872717812356242035852369098219191420034443065404001604374594212944113282224965603058632631005160314118575795807228967750573078340957344988633463142541402243893735484063665182379677235438106440867900003738606112082744125892292328801648363548767138503801409556623095935557147088491781685233090061608658866622187602215775336461839698164478179370190579620510362913010877673709303555824613940330681285738814654496956097316382444078460019863196267868964595117684598517796687639909759266128446924562626119792909140967069664233738021376285304983221514262692977772303358584547598330276759849061778723232217537052957406245038417437030173464456149049677518874150645076519063306244856018111654436767027267396547224555186098251695365852220502665154091000284858862403685515848422831669602630731540249417330925514336151958954917322648218461380940986507249757743224395208040099302906580700249495552556422896046117890308031332663692962503172855359088903011367548075641450525208102551595175902156211211086176934057537615282258602960292607431368746241786120574663264804509576443493110593117401770088049585457290118202549427390239766068485543081581055001018321897839839919383800210686361422649540233623730867126139545847453216193741336222308285951957349894913322472363794009895769889258893631894813678784017783764495994420978032549081784211619246644910449125624659203888601020358689023456645774293747137859863938732386184095215274678062047063828224305899701168789985491847069064968007061718687285677655147126991917140502513105249648697688574942906706306573798522360047691923506731557005106378299972176801642241063132548288127804481426056798850801550617144916926141382577707020978654862987706439426506384629380536356627434537596717829122624244340730915526558375725382441968716316174162899619775759934124933761584974777944844994619095425504646786464404543263447247635075229723380282795613065107925450752702881652844250191632354990024288650869839201307230676052676562439627671215423225462083808513787914090432790537453931487032713899439538376263801536846807125644532879108504604532481169213912195501837674364420866276119034132693713555160687960053796296798682683470963834604724514838187482829471222313690152658709430508483854631917277073860694358517998029923905391970942647085973305148998339849682490754292660508174650815003431511705784277311606285060893860904849322509300833807648583580648348468170787182978156231721608415569525482246074923161685260203712944998035496109586068565533598864140242416281829121281428557833552075649325768659039317974876260388573742350392192577952076125042073158527683165137474551783347729562248737011014749486673149300863746002906674406137030345164122710579386712805176890493348865335098138541297567151139095051745871265425853806358270601920715650556623273259144440755157953559040778913402829062900103424198770388667438858256259073679034357421554583300037668129595928734431701555214408091819928614446819569604973575354478329897196974415060671578209011062714336206131101563671543689903319861673190346440444772438057897488494501698722309475154236627523124194259090938948988727503810119428952568418037304342340492867037899464478970084867153565934636181400104681871080263642542478903259140926431232607799959057219359481715779539924548404497773015490354739960343721092955131567675683659790092836619655999523863803130537447980260663585001433474557134035507066369266024767010860371711453420734700177229706940822063391777446483634451593925071115159214614932365302507087105694151922233646122059727505464341019879043220761958809016490160523987008275208524336512717805063235337909813634886458083019130856461129257349105421891963518031655493883235701674219432768833584472659642525297908389815483363514582561122543538404681490952942308350176629926373638193953680265920562165408569213764744588496552904507682259291351439689730300181134697890039103330676087094338101808660801960039032650385703076901895710406054770616984736529427742821828085266911244198450299155850359429724719146056918687806711284171473457606955304306648426048666003054057725826116375182180136602600249088495684846174885589759314538708182420148780330166686227928213368758000573840606355573418555745001327284953920647522396102342997149464347930921432585360573671917958572257306829626006854415368012563109350573237339716254397042328541656722580659057309340216040943525446304738471711913881039048547476529068132717831453277781268211345272585335172694558460932362239229072684248956306964486466787902532259444399642725643838337918066077948870737009910294870647024168011714603492520512195497883972690949468902494933933513369531514607465394731313707822035803362534301917438372709713730075344344767749601826991544598135924184945111586263526544039144622676307576958318843180584585197222102236844357161174905903940094914668902280902651813714693554161027761429503672814887573677506055178665736250526380098038010676106900286020325889727199544473383372125444358390808217020558400586409694852437735552385930950986108058776989341910382677064715042742976268277683299762717854353180647498196575547737426650193019641170265478633037833158230776551615211172933879750252378242506828601456694801331176536170933460687851635196636709350183518724710830059009596205664372813843313703714462487229407618373275642762451556996846395411719868003495987427924034458276539001067815572155466460143171143270172581791428162494461669193171868619759468268878696276831771177164043282087538374332029982882826231417122062331929263686606712269379416227811082042970673620922058425631996377704524756095102132822525269712314894208682103393602004231687827307463980417402905119966107549899065289804974531761634048430576088186563988270866283502900767306705035855279590480722612684376288415382489958189778289615969418119369446728883362119948387175391791381141044318461397870812529346149843742503624066778512231022480260737471469941930417990752785793333445523808272602085843545128733663040106952887256858053963887743093672979559538556667340187105337226570461284709679691986563095650608576184856694488776266252175685352787237414659789381668069880563250548266822629563528702118284226198601066794004574322896041795463658389685863575038505433384914160636376435007824006861680867803991246160778953953194100301086016304526680630432760447749697445271281649183522063154918472754821575315025033011533318491811834476066097718145121431961726478238596424443185810394602937885785142597947811929986600176451193827867244466642825898862548567840511595914066443916000214005043406562849042989206954637664314188053239275573077007397827002422574870058122738424115208249544650828315479880937013244713828656177867753172958044191682382160857982423585579780204413998571479508053418367011189362334002443245608485070452666941189893258477600912497499919784213141604097397535595669129049061529480024295158195886802326968145724589063004777697573825208810175863662941516961568456427582101007729141142276131990830797996767119469747964707226543642969091536786388533740588507828707105841050170888037908750752193294718360223352175799436023698826840772120351060000006903295810958162109487850745488846556687359709770017706350948616069068160651208601494176175086759576360806003479921119519171308590714488989201725187816063252167496461900100223894390757930319950094610722835524572678681948929561733555576641880624723426871757869589905287612995570484250036017955155619220602909022343398101856182915127311409112714555675466572010807791946595004334621289299261266768911432206402018980993438595355784547431712600966581271287521277162573160636198118298258800585906037218107497964608825889548186049738349433179685665717385714714583284876794122142432007521452000282601240614812477365389497642009587934286334966291123932356361120382524026717439953422883407630397002712350568078668025015805895205242000266621650542088297099372294467863559970164625087637243722856410970375341230512758024437910889508204865101653105485630076557657202864494921901530796356536676443514075775817038296545370236907521350388469213320567317606096955714274813893334718910541073054289502196776741025500981603792696100669073294312252844155183355263725714098086151672133586173138679812130893617381355100446203843876472796325223141905700610394291361784957221714234114142263662768888838769649079192483853813830735390872546839344829819196722621846469824615266004338677453311802875774434243311992190330990518927248132223577741866687296551881005173017803824425698634636335301404569473836084874954532355547077173443803307174684578303745363946845306166557472147741862553620893145771347478916409654047248563404683175963515972829458087443095910198225611151666380484569669598240244677711309859139512568676234845739143665088755389602456749270541161728416254806500571366163458209627718639989831097642589894013571647172039173221347896029005060560572356505617751016660830331445517206358042924860273659912374296617386242893652450183455068001879925810738295067219014916204487980042993683911836721502860606930710036238545282932265836402662364143701109624791342217754236653516131583550386743542213742884231953623408388682105007272801915697134771163990178586917980246876093869224262145624742588329579479801682731577592264606931727876306406198544862989709530922930885339682262744384361425230007915016540486060624004637161266821577406133068818745313614762168015934966034027406360987858588339998594935941972767874388354470325993929245053290203584573781341494643275125740577094394575041281569251711794023898778542861250895252911054249504149430722578005982163397163209665108221111371252708871197653241428524372459003762865073698549088584131427806996638500633553425156478611838422638732323388486741582200154910008676153549738731883530863178040159795447891182989464714164181326438314435948231247175467196972632153167236304028589456276857410079152066923024404148927262622181591100541165540371057653359651516809465741719839226606618793202612863250224578240554726841881180311293934917004685521971215662561259172747523602705045741526320275633398683702012891262144285493945964421480685830860188826988325193224740334706668427664469924207966038125133426337569847619741555725244800302938949883141558013879695228858412799580517294280223497734087969452858257812946090637181037564498219294984832826024451539673056052232436628714873201075617439287484821607756025106954641848102480249306703046799621160526113894882812197475100815845530412840425636455958194543425574264232147201394957814306878165692647717493936614620756810966532426524948765350398248408206571831003914913470032738408630083216692338364569261369478514657664567332192692861260703411790906239581737885436984065328745304668604472736517519575796688007105282405511517395979183716696205701904861297939729251193744769891038631076640082568411747725930218172527701709268107939608404882328775053228477989915691261958624666891456766761283365301626716004886813848769610422131829024676285290391927102465062870874083528336504956661921264724587242257879481646092309707021165377835472078232570980902706216265863275574539471758817294466367235385733258184936040190102295334565252009775497124234931376697299721312826182914466423838639762199287081006855274810309174722029079907871369771226193598785846955793948786440077038389301935049670224959590468927393270742126049825081947699718385130589133102135390644241153975401009166777389470642118976298519384387295290766929295683484098638353761064532475638734762856807830384798810151761983760318685277591308282626689112779643297373031424539535141843169916804446922710551675757446957889187833304248338862330841326398031442641979524713590930647468682774896236377958753856117602112240389655298553584827686695934671939673477892063279648688130067940574440881648849927405685466318121691767204196655405388988366461402958952550428231485993965361917572167954040190451773834802981792719026499736382215738860184739574558584409399161471134143028653610130080733198075501843107659276272469795363406077499572665978901531363748111662869320761504915622165265942881650907937876525007181364868305777865524900048183045015592280740835992324644392266480568424146620633342446114480238516872275199007119033879968164707735378807850082262037204097116985202274006313230605963890092866477722910693517177840348821560634846509100199653123516320921644934351845347512798145147923360588931205458269784196175884495595292745042670989153210400162824503393411433373598917706564346954113863946729303273158294624495430491472889625597106126763861288664757480670076295131583642121729350615204571827359085609275390252487100885410363475428465807171808348827118558536840346488131045522697274863399231450454050870664684466891598128592593154543549422402085611309062099778422728992629183496816065191973333624949929847431444058103874952340526405325276288009557057392163373070498499579814529153873307975293807059957702319338090896724437975999458086595661032257597725885609963027870338542879841740232760646012743961784708864261187816836520953002394430188180394651207259210842268973615240717238438765675012271535844533768155017728008220804687116856429418264759054507082781627967939719185190381445447550094298686974420601782494220787156549795203810004744623881757452472162006549810266631367746718776176295969965650415188628325708105678559264209176655716872233821289287205864392792262936851191939941091718535011677230728925483649203474068217895057707384908730629850442631886332173002120403939300571388524901852499877867045815749194213164605745293195477745312250662524583845900416257312643279221515138783291594366111888336118453574129619192716037497141365508436227376755608686830448448145094249520038349687394114406551412918909856678841972653257195392258473106082849696882414270230129846563661501823581082816326724183325083992380633885415023087102055746434694563613297062687137778564005323269586751056092151970802532927167466363185602962731702247437041283014142809628675093232268160717426599982911994831662829344964333875967715825537295330738591504950116709682606274658621713713960308893361445697891413301001586131021228811324735810309220690271219901743939984025881948943465080779976203874473002447084070417107503010433269219523993684292895998616715254027902384928148154733094414391654439491863127533581701612764901051337245667991003413475372897400342499845527195827340577853829737403618954201166570983454584980887447788851552964001519946830980719027496571531382628240156189937373132148365255222345958011399253415632424398252489105236390178277652442793219004149511734416654458136279499945598654819294479449856626421920513094470546905667284817258013786707947291135107324205528926144161407472085370048233519497425633600732149039853992416081546954656970126171120250358362603348615186955708540094097119471911647325433257651283463604886351625810361093329440301634508994702718696056315808359391988759482866857624430394282895926617056033920556916278730739349260300810064805660686586205496196302761147392724374788144808359401499762024071465619705446898216338012930760772082524218469186680262149377461049918916860279433554660145062964506583250539610967529745551082606613698960185160257488497264124218401579059307295783704663239807446366182703612499498425244773594871994330928934445115611853319054270442696237748516695438293179657441991180538070987475749794568169838891058548733254040290387378362346770724194419345355859954401889669687453291228095319714520894515440028227865218507788338253522190234378796815388883684865082873627794166849407692386754713440699232664710446558574659848684011746456351723220339746553502886918524480437363270288878081221003360638482188457369948581112027120287037049823772485377620973585784464847675152774325793555088618097472026287448633199861870198821127674171212843191465651554287182574877625140453162197987375413528758976760101622915127794201986727347902585893300838174666956675663635358365901927258089454155503052179085697954432977214621247100685498077978675059773098505313525296027827011805671095103457294681315292498045616935812030436306014688932671011185033033082723456967449771125354852612417956631136075112366510458121808351497633882682565021192899183870159361076517609677929378293556921929619782230718242797469470456900100268718321102168107717875877015052369197443174310571363949264269328613865191266395121420322591454383904239868166211237929374921109347746696597450410871494485921500942628423281573855974156808135753601097983165836316500478753466824154047479341282164695486693776991386962402105879259104681592182110406156263615890557471608861287525682680703972940254133216740169317211453667731955384921445889237416446475532247692415356965440047061052352181088803242748625395299480049755820665271962659852761235997004321393463502150704537507101693091008622997510688496921516270118634062676969115519173845716357883613499229062345830069789213519470155812153304214132437114966547298038249039617678854696497456897565251206882358433100747809338869344325022815086365918558076637223173309908357773438507805857732351396512074745984379254503157602413271979668193540476614086133808210344008730963815100787010386276316485451608818205439321320298955953081224972417075452737739075951750681584645075117160170230163904163413739219979960889494968919269107174596304911517501558397384861333436273277419583645601769599539048023301104096894971377972231044720465567862336211014808062170906483406104060182595216240016224118800312449507102017959172399533951503494241536361628629805214107852024153741763589892929316361815778325384611974979073788470370253216478458752857563059436309341944398128431291627058822172193538264155960501059834443099532767041676012836394874512332156800608304229843809285515628465438492124596183724159542547844867412482594127360366019203932250418420526301594334079552554980822392333667760827981428569798061200579292985165895789432478697126946579466282458988951198044570183637340602278231056273757474286518154943631130393582990385972906433661072787683591927257830482660166189589903263630563588285749652058736886410046870041083618939706468856733852285029786125631878801290047279435218913826701485302258961373455305237492672416181447069933493090063758941333566151500852012160604414785946813904219713271979349829581672102456205711796804113692207054304698373038604800971090146330369954073313492375352777893107318447447058299774683684396280646040067080603592741746583418522306077901158294398416408858763701230386116280517315257563450414935446367257613790215746630454444893163088842436122623356435550661744177338617005869769739559615055486949643162826456646702024744495421218153232585409800683619418559143413568904305869236333255564454524253273501926492956446988192855888732777145933744382777851880160849445664440462179386728145710286259594716547453654616916951699716387528061869467383691951597465032132582682993734907255987972977438340992600254645132005762147946817110534584892467852013858465709803942503362300630239838714231997302219707841725502580944233238901041594050885096971762782769566747139001922626347572563381162392181822060162067059697502406629673472005661533060853589903562611625932501752421836541360970563295123800353995991884740785417044027532024148825567839509493763782780086324383704167770565547829941859234743136404852625813951069592119482786420596620103950583636775050333807974708849972496919918444543149942796216760829717184247910581863598574451354630198059632654347594172070863685884610643535108300704375210617967808409330150733075300958141168108116592615297533977308554896548836663421937846689565929532421510358218789103234104944048647837613890347624984308523991867155074128082948729433745069108748827650598054313244274820059884082346215825793907584664502893506994696876751135533755445753033342163904320248236182444461150648096855269220397951097468316136912263003080935254186106187106319159711790313335839242343897286012181083027454909941886062591859647077100757126492270881501424805701877594709785791771605670125892284273769492285353208260487492883359645458951017233900104778945559543275420439101703904890710708667285589225109114555720953766883448566296531146203694067959949149780680846001102823268658392329997906195702540140776050595852413305823009318643358693205988508422183639920435942013693545831826900470530071525277479321011032233624866765307457470935996170514506084462240035941932407317035402697624922538209279680617462648092327870910886125862009913118671246677040537432674803925125551003688346652356133846447161214585367972065588440904164161922728745009795961459371132242451782304331238197616323656829856772415240936893591053719443338708364933233912882596224715337058238645257181563299664776168650935555304256370672281067499703312697144819170533642534626638521203659612799739492026446672659732837722742491197097715840778373016865910084273637296840719240114348878549404377037356085168585687855150774169202301060779642466995605630047139803974932533408198410780697670182508065042569499206618757647202063252679303884895492896348540235105396865023592283927940100773840702028644479243271040764153359825775196288369569983867949455830185934261179343238384386910214884174919155829062019616196357990562014100495644836302181059158120246300043107106303897675154744431591969636988154474991010726155605839175467974213324483321934092517751633282302069359378198946213387314300289884651924298717928424316537466556355852504761217878161192234115352798511043325281578194191308343970167166200654307096391240171102270242225025232690265626613873549130197549618373584971371144910410328040754648683247218994914680448202734232895420056786802495273728435830115030407574843367710852097322113250455288096209570553355879363761145887558973051175831217472639449071112219690544711605084125424279754722190251750027044582341678491672460261366063812046882899772717258130261718131096509306724104524502906951543559914523948570020259068070720390698193789081751685586538756863190130733298560157161313908322599081227657375948202272337863588828977651924377785417941984964208457384140191267612297108191537998094993132830791283420069403148985731510019297932038280443553576740826379153692850351557225532921139550807336855921415760039378822016462440617742276685113963717213760440549066400934323956403653177995928004350705812124610115039191419394305124585194883226374740111145871031911885939862192274805962337229171178833306360467461381652772632530148418789240794681488972591576035495917576726320352329961189847736386040493349622309582366710581548040129320347279642637592899231042978427790872231992687783486678435347717803727099307762495954321246945606782362780739843701601901498818740764090230098331104278967697541195126609438541727303871780767406751531199933514348746828228061243610559761713855778109599112494416264750742322253914416954108991261047680933538221172522047284991479394043989592652856810080232353735206996728968823683559567866961728522961679605680141698975130483562929092436197796062995742311741654445316019667719078070604597543683580614041059283301001782169110004250687032640055158204489930273448034451324192854546752910592720857482663022694079150456147823764843542914531765466163236632994373554214895914237760446444140601306984612880253573298428608307378345691617313567942159837621654143975531419686359448076619434374357580010133214630639939100514144870613490764670345806533961238238016369841692121253399239128626282669139992124506901046939692854166620059639082254930118468485790051498945445179051829717903515280910192040909461176582605053615958666130228453826078504256526234274208526984217238815034871658612752957881438244463318821570069050646731263761357565526243214445536798563344139880355253972556859857967390655530313724047251797245030871022356368600928060268283512254170649601566572340060290525485347311518530705966829032360860228770877986560050383280880338465922158987688772511505065975081450458263844953424176240479932647575106487754715456698538793900497938500544369045941264807110393995917407071784880952403543900062449853489572817956281319832741377201326274297317835688907732150337707856738113737829412279202891170559452438797774053227525193793177836190981368706205027240679483957032579271203386516472981920033851194409398909814584828153695259760235660724677326067936188491176132164336555975481115039504901705819791500102328808181496781811160574634667938281916061854302864943196948099637112662326318896123818321598437292368937771977371879218811315597577145110368791946090046329463795062092672242089964613553149936533722127948335708960042634848653888718244991621374958570365553147491272287464719874490298667172496779251879474762187285846460968051918914119277508930665646444799790063331429675873489602065627733277000711039517034653440261777011538140651507237901883114256832325720328485355259612632194441570975438369871227313178561446738168367745648244933886622492330386719888880738837823695394160798915218176265891566489393553227722166977126512960211426102623421958369859897221868792771094765074616913295149823057929496602866893441642277616733312420021137494686808207546878883622894486802300790640710043311408528630292490802660448373030829268239979654652469858768002974697925343738684258055643172984322250401195559223250662815912006736999156743963024993759176432487572872777677300257486731168397630062768529119056031455096499448022498675216075075238986656605495328817082543486093579821337440531386710547476982654648070645955274954229934145240790611197156772133278836422001002726101810643179940868269547691466380880595053887145427734853271435868442346185832195804518301322351025601445709520362154424350412932646496384004778411291183054172531807542329552222082362724830329857080032854173705344044112074738558343607763789842364955782453743789912192644042478977018660501698730226150706630047087650467170307231655173192855743875044074489559893199472614323929461059443180571718058849674639676506996548163100409476839390692138545406490961439280195785610445861668267948856213396132181917514508157905759304703502185571310161161636212759974672502062963785822574506474218082123678356849450353727510528916576504266662502080844146167480952019118328737504496850029848200485929766536754769451006202080475988987076151754386557178830511130874044043541810049432334998116109009892995376783941158637770033484070628346230399951037526865229009642838963703268208939499584083626834305860969459414999312065984789585647691111391420627809777830304319582534586192749900192830773115359474898736930206218979533080644607090709035095522569280488415343619428060177659517121079246689304499168646073295270866936818698629862096591468183061482472893663183871017848867198199339980532158724850403016844911882393323339682974504825442108019361128384543718782790435383898473798733081368099242684150350519809930714471150462730733497160677227976626308271683467631214985735832682536409383808329705856007657067891803637269507561076140430297574041596882000701394992685492768582099857387630802486333631406351053411132196720268794237273904096284778636797096643423705228520053678471708113440359138085068585316642075716612037569840953124731577446668810310245250996355972472590991138846741102106806552616488942491319914524523944985105474408862618262239102280040732829234759591696910428034018176025113774032860520886614477560370994170847618304996550275734115647570505312480820243126817069798676943223356113545495711706630077366008766284605372728508879874232929287452269287897160514756921498006328527378206346936224233351298137610505495915724024936384009386632620017435272803973533468671984791228568407795716730271670634668678343185756436836392723147815839484807159724731819718580131956195828135573388580261304620413394243250333554168210577303913717830646452802657343129327161365354492062072627560460603254916889896140573553104304450193757280278703344265968692145490421809032618974820556669889842763489066527238275937696408163033122041521292907681956198043937202054810947273317224480071280652045296055679557480371180533610948071874596040246126811297171226854461723972800846100328586770845555167220856319761061063602057555026185233347254210253821537586710250200315831005591336588548728309788699350077523025385219103630656703215291160087328058670376164704383356613770910978853774970545845392890957843995862001538543731183336222206649177769548626502195977032910625826972376960526460900431983051268964229792375277511965578318796413908514622366489212581829583403595667466042925251727678198544070368062215763178504273024657553752586392961683623491951107141610744267661246105368479407042382653676448095946065787069915125495364726102710136768910630368377947189509106309634753297333069612146596187432609863708366823929358119362894620823080273713782925558363695107877831777715454390416737383369952845846180458448250546782934318494842497053140366127976192729019443518653323952635631666811035150354281663449396084018059546113937130224857982489269415226273558854931813343979356320196650124018300418814369930849792860838499736350274008171598472959378990435661287275098568941965976592338586468564862331175775176578449778615206729772361193473211166782150000498839048541726393499337055896793792098611083649627443768228308074899442666764014474378176796928491295526012430584376170291556397142755282392469773981695442481760803631763366135548435203412554606000062349458951188510689428956895574735522628181948455377926801233376728817994439380401862716239756654005189124777622928939454765676553480932285675031870198255273692017069226636495320824226897619054012958257916916271954715477242420435481150712474422491746844709404022805515126048951672269460212682737362503342172220389994533589934447485279664795993039447670160661108987356012594439860780801749083762930136754547684342494421113319006970187608141370942766029792852503780815499549826169623240167791316235246285869003786042325745684522905517538506916310424674641411615598330142008345617030640338930277413134161234435587496452700629886330362852100353854219189791309999093137285549591112131322300434598799461792537640528576357011072335492344964904271552390183948863908640595537560886177587232905571483882686988828017273762324381096795693764274930559572195944791069121105135629201255440955645527671497817115142405095985231682961588835420364114358524197144634846053663666475148900278247370006643339754404389269327615870624459747134663728959736165869695521632237088245789528972271896335053082116372920229803946988247424873727616571412576257592621653872399817520649753703078410573127922057272429805833888353604414715212391348792903109020388840493728117306841926238614144806278729115196411964764649126082172273558095913920849274423730898592914842809775160075711007149341520206434408539289020673192748840445281582113160741802911286143155213074744008465598685841137333561808191833400929198176258367079280829194543488993526532294762627546901243793457417299919200713031222547557513364487933908239443845807785582366704263653430483981113898387581015167270430007564035691313259459085030913240597146219877749171687836707492099759599819467385539459094021959693600203587662824815092489915599970434647191254774940850718094586764801789516260747436291913005875873075792365268449307790480086388857757800052501396604057957900392824420191419397320319920481789949131404106210976290177055418581051787111479336265797187256650450069952790432226767996842480189456950555868754931355969159885687081509119164433498794262386792012088265043805662658391008633591843868690459421523282400921873980897482593350128868349577426759278168394600976029255621986270161222391803040970516743508228578034782035867749746069866036372203662231971221694720925944909060324844978894237106496242652175756501772837394968293062284007876660798680226796375996567081619976753184743396183403379083199140325178536231100206744088980785643277839257592805440956355783823933800382488260108762688074593327550303870459222737278180007380687372715082897563976203791195112032935531147753422543927874692797192575641048372302748748010551136995095452807208048086595742636691258447890916508723816969537572769960873160268171204452117106558000710061976088771523787288486515132225394563018230718998846946849119530686174848488002758089130771252585146202877528881744234722622684074363467858037479956437099109456665847193640562746553447596692837652044872357164507360027534207008349335151988588310453258356741259605942063995387197811928704780146543318539179158698710334990078834520878731957557207912670994987192365876200396172131725599049559345396433493883176639435996134308430226859577138835917155318276314089337971133409244278462632721919526179137516292133353793763535215820964061971854789615460159124583532080514932569761636163658864320020291082626798873543255798810355550151239222749045809400326600918779280992382242088027764035956128141115008756834962825237321685421095621964694247690710390877398414324068577757622754064542881482366715412020297791929405458964103099787171556838059237047829970081226597128080029718275203421857607784584826688313163641672645073050298063881129965308160420402176720872613521325851961207024061578131596111856243496468383274378576369340366946575757217000177675991707282189939350460921280451591955552071593397919514817776302394822647941988972924691788247152231523031136440233911671439854643112570992128600021084032197918601562718047777224881339487894557342917573489577090189808341492822545881448798500617478284457316869297471651000958523156482643853060444212873000761006968465085083484017792358102171361536362208812723927363167772625929420994068449724749609194942521431716695822817562090102571786228810349605370912742000099251494955576878586565670657892938938768163884683632660396535404672252300052816554079399429652834518791785763291539072226307806080030924297482631013964602754134468479163064856938093034194030296388328875911141375936985378109538052365161334941460902363588223544453129355278386885302789506351078036348719047239935425913087728297436476488592911849245035501118604445147284165663589934597138251640883920409319315105684182135740357987541113698842924992311062296777591422663983284070721876914422503660746296271526369949171158650433169066678139680733510292009657583559978908310877408321024651015945563341068056242495825881166427927589478937308872700196997050443512558557558450675956707260101848943042989377545393459086246500418424385646389094265973153528525468257159136307314721348342477250258747502945515697901773991452858526682723362432619950454799281126965264429794997665250392339372277971000901425710183431618719595280579644605799393149223565700533101570707505147286859631142103460678903940745168845722130601581796856261602170377848208191982628401376232728226559500216463272409381264400903178343524882099164834192858387231944018094749277120224635952505406140702955588969310742279068635610262958546900757547402764566156018634954636886629189631879323857921001705539628741619605189205983145692745102495816642163205963569605021288820499453986413506391953742629741989099422204886964374376748462955020143642816509811185297650509744920820796026869686836876346056329455938833266837797957842717109139292377526194164397481241247423638558045101989750548889946758444032115095971917069858032223461302843105002692523050142090601900444259719270407961333712996002367147905448551323362957509898783288666489786769072066424880444374964582753368366764453258312843054153219646656989766456786862731775452424922820441670470401393353769483944806112115219033574232033833089693319651585513680750756799772103533928246883726824776140945985500514481947100727020307992230649636006491227319313433150359692516727941645555937730335319618760181081475024955400837381074801084473101875673544409201717764767526826113288048086975440378884386954785224647536964892737781706542283502157769703811315059648920320044530175892962037049589963022887334526610383996766142355577632693145466419349564238665668364293817450197258403532947760355359942997228760497853316599416164431235230673691451866360635950813251170748747857083159288721474935636550623890162351217838614810679526735266207522966424919861399099361955764696828716098114479735917039847011272996340282452865017567613079283832852878164660103346662540915042232597648796704603126026711530842971641458276939379295371050388700315881712281385140100588996660787781455859530784874852967822847864030330874632758733539033995116481100407192996642618713994576095588169564557721419548108629066053327307669271026454107286132698604917478559160504149243966072549259274612486866241208625114037534975198624529500329673298007844712339148703031344641959778194171364704405290916218303111993617874044743373425187415940934966083440652891593620221705650096544887068249836683557698410086798531860224130676699668247458372083080826227068213969618232612954099932709165614469153357459079294395359800876980017297188381148281045867033798351518860066796049434976134923484502609908313442763670847671520052810354804097238931502301980625973351256530792359113271936714459668071548638835101731396240794736308190960579473490364750786360348810136104070770155733518730945077028715027584980781898891486162392665348905218360344106140317699904488831879939878325614680149061565962862042857371960188906292459723087471132250686667019359717836814295367337678621106862879281640648184687798259633035996588877980553314836880310692757741816008664839733028412556861456122815567035585375907857683238355842176840688645494132916938387453335822386271434046553217282094406350063086365503902993877762877197719673241535134445777382805251266410834808878657278400266028057320466692291579336481331171390740954930896414245151994296613780589072948267486439854700496488329564465524018849338940387455524913762283194745332770566063430778275882022193575960669290894716845933425644995687884560607302013449972071021638104359217865759864034719854053028036039886659862187577540105233478566627227348469585492168364635184964918897267444550516575298093883523097136013984732965480015404897281865887015659560014840303028303386334597842716783813899578222117670971821056086957708455412530350610438999570259399495608626264780387400681482249019289027072517745152928457183161480208495037495539876649671011143005903947243792757764955099186876540616016283789062534419304054592276603209641608413655057472902363667122977891060792606895567636697918528433076110871624771469452229471785302439023315972739944893236889453247404623112543103549627180268527271241891528950115944885572712808069857033204416407294844226167856736540223242190933706779386595385651841478005884905484427530003167679008463764541888990675426747257847790553991985497028364539046508361414790759514520897834784463141957081514640868527101911713459202754820429974881311992421823077514671267195705192774781167522796820511432444544245089626108874762402315630048184031030650352753905685738034781773481468780198060010327592452790140671021173811966544069010438848884789207806589985201330882522596573476679028233714441713567836074223926876939880833150863442186909983309181131468252345952132684508091984388701052632469600004828736758136414970924821495439382107885051709416768137421688264263123678941466276483493216461606401885842190428298317877462088832437668571108774348013414756812277369842935617858829069033101740419914766121478575242332760820039068307209548258911152995016509537302860483649818299878510664530577886208786792534605400995553999271099492230951841916344244296491429365933342449034926418484320658517351498138023372894508102740902701251877089225242306795658175419821468812176389636602093172859647090088446844183595511024909878920676341903565089018122722770331045944564688312728385283197930584556691722618158439324707663392863225619462401535686397860870467930071959910210925174967491938563369792634885285485558130349189232207574244255974015015004101867800953402140192382746990528594351720866683715597510839056021156145409844804806797935143341528596663583525878371542674339772588565213524450558833234033190386671896660897417609645737976941890714182242805566117476901971264662799959332704581900318918763970303346942783749918656742549667170847366637453792058590491929248679121141868105663461544763268069568781034246674002467627542889556488495645210088754246805075863699738624476373184114335361969845247558416006893116325148304213953812039419089959091701397821367835693008534089511155034265862532673663462557145125323024658131589854036544795925441638666561630527411150881817168608279597337512233623858004207089057196532417977841335567735555408358513543540057177292353953649113320581422547351121375044521825176911550932706137740223616062416903134192330473215291575637852773009302727411342554367192697566984015544965929127657672036562386104544386071365711833469400311562776183733953278383572076188500571436384588394770848252602993427164893958211148871334981502256502812307496366696000712545541677757399882206585742433397030037175735053220960163913344741780895702555319457491341629353341294415212993180063327608185236242413011501604509991072411449604601544977274390996391939399350122457803464518868840446247857425708179733569459896897073300065691616621265956130679464497830228999300570711471108196034192751448451916170879650086735273320318979564142659956040616939662404154916570586197994597986006844630596895483738345290419763200950204351160829184130103236636585347678158056103015425146516760777702651409983655130618430984905695448978264196322939555251902551968745233850204402006288619454024912052382064647638552651470556696534434172391494400147167858598562779611410462583384211090039321687811158038996136898151741982120425012040030172531192581383796285328630311363021519710201212335514678216951083279088589681311620834806834844433066571677604455172047403844792229712143066072386631063507624084641339613211432582351811711244215462346232193019178888162978044325886964184233567331638687928395431240384924875916807567915716959214650077500205453441157810191182485205869339694240557768737648821211581367501288214698739723581986687138788871862185722302368666528775163208341090613155726783946857960860590413469998923787757503608304857185056306009450297474532057376060123816397581840904438238780375731502960563574653491142930381998886641883584601321064151378044864772383302147751894906488376676135241098502333292332469781698912229839142248397941190008933546526892515168940543419058927097512000151235594578907194027815872387872319583669934876860361548256153958246658204980602802921916408006850258691020329062327700144446668951080821663913994986478665401352088467705806040075692811884688325647145888108293285247391803055382808474273007749901414516089852395040153089152810709947606980215683232728193236886588226909925430998112644678115882253302990877431261050353849814875370899016580767347808968916992355386775750003291203749801822119489117502636457980896742552059243156614042402705887847968624839886432882331488349648962742117709576662613751925564782459479577395889360582367075464989374372658786599001561092168533517352631210062893729106434539062295329367766615839686436022555595715253328011528870426892034378935929691362961238316255605677991768838423298037141847685559180777666195858735378802564946580701145844181550956887117831877008891906568388546379396373591012435397734730558126264941025632553502752980110508774366014916997136963842650996145224429983373333625745401818217429527741164474198397915901384317225628847350501076477961822975160926124758208496630330092309345040519570484562712678834830865744830486084442742565363259089678075672755173085063682593670228857247713341546294093064493051113878051790638260819035154139878722488581479596629875492854786910160946236285909381259256230492133349583390757687440312062336378194266755264344000330312653420825301517596574031187952952367224647780899498113225973143489602578823495999446815486989571456135801571707834550278683053608583434978238042463524787277228693614578805172772142048703517973364955791029027488632322489043297767407380684165458052062781072701389057838307341310638630460394363490804006572801209312314874739088134519034993773001370841310568042836644372795639373900663486685635978958945495647850771436570542551126662129068008990731490700391276365419233806609647661313159760150042985169576568658854376947239954635992543662780679832486072251707693724515225545366109750337320902984300715413224409386188508883569893369715748895779366971986539910703458640741565590563532229261145765095357381278659496485481186309989957622102281508508848566848776363302986726315136745874028771151985124507189987593556143349820687867436035769507844508463438738310245765507029478455882371798810644788582869130218757780406290846615147080213609337219637069746593401240767980933851529140053861219149907120771016644603908119353371565569761143388051176630278689812429142752047870229479163494767444043258334242537802451652813065632947999447432616567975356114612764897664560775315067438719504278231740990996421016393127335271055113426522765700196190914343015636332357441546635137810281388218923542582368358694109982044115101583933434634912630862862437057133582031368125976691421896570432418910470054334338522032355947732726287563774267044877033706592438582487406883576882172507961964992357334717525546457728986493368719577661961741590993857899801648426241647543107020113965455739100771811224998038339393349853090483511553975053149440684607972229071236489072150881554896178455214913596026491376801460424260451711233023403695357078459374649114530365168920174415093612611899695775461827704411858892033467714848299372542484389036826924656007626272490868827297243246537188172737624911964224978902222701980275977530043343064302407551749239934414265508496407093698037394787716304666183467828853668377522213699495605051202221311322707384258638145789303349523690655882435766769612825610995490539224991003257684450533508362404654952771581513902453133630418354457389563574106860618506235347142868061478940933300446829154658575887082115134445865245470630230722652187021459202479968988807216237702956779549408865954266459639520662817967987325250457007935916918779347271277261767355565390005689857642572704314791808558078858991183110971004709113969303803821290547020337347068770102084575474225512114887639654777463028190552914626068117820178287315105459146489708853241879570528363951346729556679453628368610898461808360131467498722376216128663448912095988498547902191439744721033976238958933920780048205262830660059373466941551897032016067262421592411873821951270531430898410808362163318019751737413867292660349625973247050118721338514762574625311817410919221590035757437646357569766644408515155598472080762048267988432781757164448279187234330421496924608196601263596374895271370308861767556568374663750068599393064013252772601867369942554439225586401488879801111892267114218010189254010961723602969706373577933741072221388562990540659701575150981350860528528628368912201210401871417251562020633790454566103446923550773413118519681491732218770813185825338150062602072830926384405739811309994028543825184133166981054179868560289138228744286508678474316868232316881648108622609215484273829224723198377875566750019012679399629369432560062950151445550644777150155326128935703663281586964499106669900496501529761177024173945603486013207311071084058737453241504033403832619601329883078102143695688125981082339429824089100360604514480557416021167306180018615131703401740846282529637543788276771268431008519346596615954642897627887462810455896410612286399807669153836205412904544142842460230347422337647857033629280559517567067148494492415405867625705183198322436923566661696090369827504837344419698351569724892250913348474353593130544052439158125838648605394681970537010679704734330998740002682600099559459004975239092280124538751664215029026879360548105064889349880052525301579665730992380883159166397274986524414003681649037993174940236964635971819524166509037442879775931351647877555097585691952727683242030278285031705172157221603474725610564568986963781071579886178466306624689394034428507922686089357504541823832344190990151911256607747040363881254155321589010676913720646775199788328337347758538635422870184985233062455124792248275842628990699002054314871896439242728228328238907446195660474418911347090212510162612677132512673263119371179758462612964198770280587400183222340944818144478236783806338109667422106306469809623128374331261999166630050040898256997730750429759312659376381154885893039780944438627677903594621762702099415689528753945019358511650793728560498407021551576212392467071481831489085565054801191955240051486535176349321849844812534656815649231425515088784324698016540534720433739887153433586214998925216693991603649400090077390330467967719484384507087471746575936746765490486398445513680894843496389876008681616450785927159035604372110112102656883356388124834087232332701274766305926545686370187066615723735366015115423242076522691221227087471569697184259881128116839963673423911580571191197973152037201491402783621247419883848518460748219018385479731790840171002551721971832271654948992169469943415116369767870561514869061381479510245667067960478729371810870810670722875561637330431447174936180174913893771441413221707586648798507763620872433301930738180258593845444468671061090926730696980033699243434672315351121187068902724470361905421510666570777759329357245612487204921952447220208077868569945459552198983028144907142048855823714806225950398615519621308587728407560534021278155144656574426202584705170697673228419405131408421197335152360339701521272485543525196332585405461211457447430595718319087173916410249935879964624121840427539672476152229761999976458415354481051648382913608421088346060706517585749469994750754681502135279198425006339482020901330091986812100077464565127017661645516778368709155867704798947290185847009521067095860609636232912781496971007052309037424174360308554512546652061063612821712453197819116737780148933809570440936365501391199320255582340282628316107999022274065278414262871491866118192544759128838184328875818451782433604687419601237361175078186465110958430298410970076917629067640655112762877143270023521344677655667919001361439399725529602200811181470976344296194098251882308949700537095176676141520872198958622662257061019636458249267798595801197806575161467367454424661667372444133448985279684684704723818906145768316661744186059417878390353080557825016570580663180200816465846889552354465759456701019194076152647117544387824262795587394761097183542923543526112399435260978116737771096442215411347991840163297122371491744117188089246655700178067097543580280648050607331368069352831916579734791479259970218293428393148556859669048883499578706897400548068333808261232804596008229228735915534305867222181592909498432453682957993357254455465224629165734318119712039555370796249637913058765122000625401521941425051800443562387898157033067610235213442708821987877069326745501454303978390105182205363294912794491598618989613565766389362631362151049534010658179780369882275073115770798819085765005922207137456616068404162852674891253892328169998743761306930082336003515316402249764757978764180178865635851112099195860150536950127335354548187520761454561124117748769043332371700240426285166406402146090011795637200989984567676718472134684718062209408857973774669018063911040166255903935075789400443335049769123132367067994692310327371701899689835752950101891291871752982430092687457983196056686911169655446168511085809689782372420282634358198375914716122387231307919148611214488307870950418210025860669647708207641873413036598169370669709880020969802813888650212178066389079335181419511299901941659110379176521838979234767373112726125748602535161414002434978294897028446736167819624960899766632831685149948351362020028524730022931109902602382051932904146172205605020040564528748750732503465023843235355880556170312460440564623284463138240427999794557856444959493584434856841574791219044110036991188945779451514543433280694502388127924842930233555352832980402913906154861952164043584947977548750779806162282352106332359938074240970394911457611026267596337914106591460517641943961957099365558807092889222661910551343664774381027167090905464833128711760796688479605077048511132682813436686615662200430701130778570368839399730334234675376852643037064732303836039091493328310698475172594659519756991489491309975678659298294515879997437587875581306684685188493158994931721520963286865982899167302132698637649330600817102032778297719457911862225397654276625640847102683764869739664276011123915913782811800697803003847541820819712411723326402713864906732373197930152753196494384965244734783206121261110882493480573434854905171167817584834213658580844224984944101544384579552738028172784846679773762355461284935171293543166595689522140806114504159159094263102527646984255501572014973216643795857707012190864668555842488110920809513895676293921244669455552433381054691265373222492442522263286527871435685895622047621227957369298110692883882205139392436144418563219343189980600332465506986000147247393011132571137525117825424484243211741432858517027611707048591449781607624960287283646802272761600005420870099079768541594324047719706313827896096731051196613870347370318113814075543160147695252934615199200880476629576365913183133499428093045646390109625076120599629379402371739787521978372406728166868634535623682349890873375550064157853747795772070447386625537544806771287906800660989106182147802468984566902957676297013667105640575520328875102896002852138304152629596614349231221685693117862813599864147240862618792206242958079627646578028605810324991471338587318893267566713022309097303135374869878737788343592640619932920301787448851866932667481800323888024183559102621558540420770523896938447212587572146512159489863320779801673581460550832214996521485749600166581537184035881215356167975897205303063061060713760826292582031679104281901985503544354255840432164921069412979180223002807999707301892892625287589006999251133638049259595292362470382329554449617455123760754688921792137591956220925642152171823656758034269914456139033092595025653575956761980260085274646166800093083925185250984231370583913654410393192484200117173103303314787493245239060705731164743936000667487919873744189898783158207720965672727265661148116495244804783038535854890656105137512759155083802497771330226060706598071374405879223597074942664570356625963579724732735286548176222178120942312795452497558491042884953357049661831225999487979735684986877049528657926683124612101811518139558574905896683951332527780182644543765638393485762389315029872965284916824433473922286013380969877542739490625575674685490986993757710244961716126864300567081774124598473868643563418258018985810859695743177333938634281571168272792512871460465882356057703182787969531751277881360483530170353750404158399768384562810045520484471229126091888449768148458098592183585084161656045258120222265799983556351619201491337862906652184297401636993222793199913302984906693646622395395017436669379954814715381677828713309343813955822971087278000048175307921011567866787284323998719305053779754771870505964680163380722767176844209966447765158685614618383621683373812406718513718813494709527569207252978104053435209962318832605374458550838052027431406352995387742227682581494693098086039157670230006424666676889213472354899025786597648533988061371642303019107215769617804494546189469980306364050340546912455929533680343438978175204131360380185460444322980419638781649217655684907953636917429492893653760850896295991987927405030914537522572418896896241004716310428737869817517625784276284692636422624398788292908834691250297133038575586522290246534830455129850890494402558524603454594840830028440432570518639592761238744232972568159070698517212438368506696516609603235521847435041021511508032087187053616654837017483444207849287506019574388864509898021130028757872578499435832062057219480537946392337269762591675762787962210946086710960849994431990780855470593683974343371020508868064643063419874185895495844389789006685480113560914138336718844690968619227790490848201016994862268298579339590647649005258779394285108791239679051674696864720771879796319409305668126337933416696791843646161990038721079973303321565331228496476188269953414329642266350051784857487302291925107816229636115552706406151509569847582833476013715664853508433014289760074134118739114198715798332618751711007452368555543532257739473493500958423369442278867711298530150664776108524997990418271988699296753431291442469187031820915695923710323076263725033649939614090929818137026903467380162987352097792259676963959082410583299484002465422287412353020494896731196936474341100016254158574183301936668042123285287634106336952391259927012358153767538040739715942946389526826834501414162544202855185976985982875788632911881854087897522376561437351934392208550999200061730667671604738193844619867323249125187410249672267884328524042285380991040212368329306365069161584723224543325508483658240078785488981752748521446421726808370510162348880614253743091435081423291676921149384490747053870559047662666619715126340756979109724681830531007586508298669128302132890761401309317816533188009423889530346389535627433292389523622441838924240078820413220843204894933324864033006474873359848176941360477914611322068225188513292258686503025301371245564063878330887304175588742924780440736044908780921543514238047823332215859405474440355563081848348455436047833781959368933352148216030130858205490399662631352906190366073836172359337709091336911712572530382776080447771895568566838646199485503366663636185333358003848776678115564063194399516292187627226262610882917882645670756976662463984479769172578534183268668211486947081016022256736681879899172037113128662250541319356342876781835573488539486279087351802101500967131316373736797048690819820786102526022646355850232019715713923074497536101544579183245142386055091828968947423189515445719229721819980719610288375075237750289991936206665725176826662032434500964393512726229224395672217237019422939280080998744634753889404124586819586214697620718937706690728044057409607078024689176222115774344972308932383836419019081343876052001879990819160215007691734917686866331574485459713612837752316477701580571248200430115343269623838945225073559578295863082653549746586445866052678678951185060781549382862066505386270727173847791681889429559747204957999901644922016373994093557482745214411823541308018740376841387562086134770339306274078225005211223141457840173810682382646942292747068902105034679558681601259831004556494956266978083718179266369795819731057876458706353449488504437188601520685827108139286047287537348195966191663025102700973343030801109119485910545730901985819390552670464955828600454314919742551176874266602249764448515471218238753386392475590935763711415792437262878314596725462036170618101474292111624258111556371043872423647102316389476010922634633808743957549739857278085790348698304089771592219721077040131919479747183241473230199428389106345636539254080040930920822916722205138752408387516869768590501660637700656935868427601734210571986049208171512679212094883075206628166309683584233421258297171911183083678745226076134580940648176135210842662522715707594941087496546214848998816149613110689561677198678085652671737201649296248004609154366230235287874989272196411506449291921079081728463935872338879151913541742126205006271076437965642067605796645239180518369566019224010879762676295793583363241393014136497880428191488191563584618448048195404751076460126385688971541753933449791421474822626180631107140791813216920173538013178460814118925484042595238041241805994048330498791267017563579103898160726054324473398670497836914829904437248989656255666123761176558462755043169135986702954771816171690251410427557924327026644324589630536237247131689130106117274409234394712172983588193294122645155407090584273971202228273219976255437983710687509444942535976014160959557735043210979429899451244920049795089629450928087745620285885291916669577919499222915808159203784086570539270396367958118153330827156734059599654152803018383238004386227503865224508895421723152821577504200231883166359485773174884085282967076344894043234923612154393588276790459822745272581586571583974835686872292532124562883303700663881477893757711032708737651335602358045625170322313074559940956108987626963321346253167540279675486663304627529776038978125584139693426511288829370698086455929556314402046655134628150346741902529347307885686135879918048371813520171950386120748160629798177095648849290384203885726942571385073941082701787849306792497643073719901454093866594471850524237563896028970743875937796372841657334573494842050364692214184535492811279947489624118993789283785535307637832995278062472784892197296123823126043601375434984993128247587008310642671985980711924894390068850473172433320240593729309282767391320062758930109011076530271226449118169984932590836413171353480735481271609673469385301487972301868948934656052194409964825186797442518864852248964247357724154520420345642663056709421489845473882963786187472014890764877886009187356200237773757510525737299447372037311059315422038071664455705309802951335417887642010231775577156854551700853999488451545692673270062579529066913454604372491887626622237552766786997270271068316570907021194837575351317597668999818586258054584715307594678906002871117448121100097596481674312224210095787517341106319962597823480661365485510762543332291937264394582837836430390259000614583809656469212052169564226793701108882314016282974787747676671760314229625798580088649395879284666875105839648169324611166785635688465749449983720225304374254348043219680946698465865109442165629124335041150623550040752380441288629548975616738485943662090623107684573460826995019093028113670399352803393702490725239706343763697292719498624634675060822973510110247809955920645374004584329601553152513898200302820222307832444498274592412647742079107869112670207445660756763491143128574484554677274496809923453561186975542628889590120169647555131627919772638696633782835428407554348809981612706880299200342164812387842122065448700061846905190833768504390434800375250085801434326139488692087265163620290983625047337876471371289831639452294087723566125005026721663127014475785089092294383361032032893609114940007990722177061633860585562986821685324089864687363579712278717458883001594270634321523008065278591459010808925316031052044239615254622035745564065900245329716668792421828152411092211216457656291270734360315226183682921891744681666940611604218552277749966408536842345159246983565837650626338995280458122639414374181603646553253841120517118264071669706055478632468326891255011669009111210733156767244762923553466983122987625988531643439580721899980121672051187218766202018247760673022801670468318161409973084650973558618105662930797366101332625932292621350095049046913464792699028958080226233451193731775519110397307046679806773250953809822009859737184059919901596850169606064584493926866217793916774384548396815786905112363176762504101429336817496672955336516708866631841445664451288178991809923315181352221849969605602572566249407455309621391725955543564774618805005858395571740946206112354381817419323231694856908123299230351796223902468314427045486648434452429548316890831127391572214282235363607638513480330812413324188749079484321920439272562950509602367342127228085399205203102873069937329811816558057159254234753548293362814661732588623876410417463800953533781654588743932054446900304714600334074550292150063088192601043877646893961590670411169036394246795467860276016914013127436192268671871871965084852316806180272143370972252210972991098736436730231146690941655489593641729165580599639742805039873362622451771896709848437813280824195006750894480543106739555423085535401697911723019058610245448437300346429103612824385917207212341016173819839363246062429551898696872607232273849947682655820330631160761117567772830352096315724475368643850043697259286647459437154874969734660642788774531009523644463145152452764924149558711748136522699162615761795102214200966028640248939164539363970037249581913492107303526369459074416345466689009876639758196979041486474592682421333512863673233717338922482784080102058606460044756535925487317710230617980054359053575933388421618466450451136039266457041256493971445767593055978265308435579313284907020546073893105417528819817420335958564739373892823015606008404151545051907788856985574876766674084190325281417323067381444398527696593854855788963163398940248600351182746310660522675026728378186218735683895092539864989462407528967663706702894207911554567465104508038302109866882363903136591589877707029957712740723368147106236180359672447675152546778908271668771687103234235622588604921267370995704727070733617427923779964239715100714083258260445925480025919391712045038182728072587486249859097370272761763106890586317250689532479590057287741781765957534026323312340556511993012085685842660184654037901038069877548426182613049316076555074462808460756184671723103512418075050721739076734882305572661646330619161465107935704199779411617465070380837773033864629991597530874498791386044774161626074970672127199634310215638972338457537248167009836363387328123748762328679321522535495521651563979515969477216976774750637270363085349987517701156959072699592692666063529665302506669230241668930859873563126674642609988275771776208931248732140337050019735427947397104040879180393440513819070034751876183077683625405454837459255832178808806870664833049573134351480500285958035892981203694170270828287444776861021203536952151057996136101492597293678019714301641758427829363208088731805760705260893903163696687343762622655048840743978942013334103242492112972353105074042117821847329147304110033407871425111555825853464532137171125000749720329258737593367272591424096449352791273853790197620456132885014766589926119247727991260226481350548615145205309233492788642004257009173686767588011721204033438542515724173434954219437383675211618862599312812087556296814869461305911476300259115249415674632322508158718810480765146883526165720113246905783934101427267092980455324147738019995969067296276454680107334333640354791981206031036402801428538429880672853208343375415201488896079729763080774384943018148438200759534285858494689591108804000137419738962294612616496929268613424620639928336008714748386462282707716848941479362084236960073611040222849773329329558324219571747159543642921849201187984234734731380149147610820346026424268177176938936925579353037288385795128466062609304369257445158320370696655687267764153152235305571685369970405433172878004636361057278736545549558203398479637584724640038009793936293013841582371304580602983845819746525158264838729068129643530535701164665966180697185149387105948567300352786843228490219653294918472916634534137263222018966383929972561588802844924045389825061210599716183507999663327551034874908654308905255322039772869936761616950039180651034870603533487411943323946731586605000114859949819955417409235879587327544028755819280978407285617482022998708757533802789775673813310872635227662362762326838921135073420330631968215809095381461516954021837414881506102905752136408922687849932102187642701882828516497203593040854506597637867488024067022984754799282435375518711242737758362576632456268788306173253842901979624007686003005965356097094879435982942192182980115631046033159711693152042835364627394551087056892667875673213005289548696412893049972680265452902261546111225312422339439897914761684206154942792911739556268617734240195862226152761705307437153733603367349386275362270882761662430104397158338196177033745827106179180418818044279277942996996964983517351831536490339729274584087935692617878976098539702076446254257146189247434000086842693706059264871802180380835798093477018268839626702326260648914291614237467910262289241540381254196467615441412190654347656196824267689797884788511762463313492367268070499331520537685204948770016786347327304739511102688604487817930246181551628089501802357216309406685685769982558651382433145680250079884859509738538196706170962881835509688820590683925879919224703652579061074972054929293889412667388355428590634533115772840644550878835990210712092074134399021839626497144047711692267312956862485918979891801529054596165402873451676706692246957247731421525265456893281976400639038532242631175051541574766375701505166822933902602110424494606767857791528975305817166265496000968413394180416671901429481280357971480749699441751203370289318389321208517740196998330005639778851686751121600714020778068889424509734991722644022211827300983146178957468207834834691860093475191656496239845127581262250314268805620624483300705050910302330260071790229223661420154918462919666960940198193789730342124737586035876626169304906799311140780646100414158600858700845741508262492435677232046500101694730076937880750254761390313376092291658543148263105098487244577535033658419239122837209902809334572231659462498573252442449622817875635100813126786328919614992141530474750927532043877179759729809381223418799927122239967677866449911609132989832829614726925990040752840167238564205281769639603394923851587956694915565598483545038796642116687313572004300406756779013682149014259546774543828927635365317130536785989015564266651331306443171325446791339192366314895353436666695191034292488704669586886702217682645727738605704612171122125634529466605490942084105074281683687735626984556084533865619219767357972770472285642453028891505079860586806007920031601009255002187318992954353261281561164398386386325554603239934922895589237810780689277173019076997849266797819185274406168689696410660081400498787319711993407429083549557201498771429428287149174630639680020539489830856714761157984145939716572497379580644118646133439692228022012373153013573824735622941449908253798498014076896608981085097948542127517691739996552627922979925850203461843238142570198975033043411651069372088138123594178494330920251267869033761389081920072364155258526970830198900513567149728860183179195007104733438278366747510637497896934992876034729117019986189264108092845833498557730135649377055544244158808773835915273682488572406763095344083466150769960481017458201667353491522878131282408389027589689376314695935572574424302934654131114258245177143578923765107785457325962493756825805246679939644209872030926524504469917145308023769953747162143741059335308704784875427600574381130260521359957073148218968707435346703430430769687682073527594263787320463543924833127503286877380797889305073654968906838085261626930191225515499058625881702879494756204732373375652499942612017032665540315808179756833723250936916538830744507244865035500075557221844286604134463972386050968466438520988603655526419721406217124348738874180909548024985707779158065774119420821523912852460349003458141568997260885004095431480723633519369353557098827643304380268870177783099075448218781584465983412622629583125922545470667415718788762795738002528223692223693312216223344702697463456962352701708843184729703438265012745682420567066301592165618763520038393882200422143030268435602785676403913119631713646196871654199302553251701194195962823829757450985223912348333279606262277043872415808976673341405922751582745662404279361454404164379240083713454445900228136902979846116710294567324749807440597465950564462266652509275711117192627205194377475776022495121993319497592471761464068231121402562504485798330677947776316069601410464918387289073289887416747041610077799334528891645485422893198715807497368441788619484134608472614265536358934910897132182065643962847382671122212286510312700024321279966048401309980047191125375948742198199131554024017841372922458376383661039369470340230854824881563321623647660766360278413065187952799433296992406725894010750081561038429910117959248500485224357671895289885682334596981685033936999824391886771747552926102567657547855381829530714042642041836011520890789346703892456422997024752262049096599452414007034833586068360735132701646546952171637845517722714132561368662617176326311910521826841787683074505932726527221522707881191539323000077213324167170268119280786619485458329041960531897808709733429138241648382561784949561982912979322348661391957864360482872759243108318309670384736015044732175241043612208972266720472517513950578422025404028200998976813908001102993464162633006727979572781837273600904981863033944640112793388831687254991589132344207701640968828594431538038693653724796671504436546132938934975574248637118390593665780649323460597833772063617762044492070943999874481054828482291827305604066556738400749451477645304643973273207095067115672143065439556732445230990640546669491590027791610112667355016776435525362741259709566051540956279460505351608177233004183601009928835264325965792839789925059092605901384132949007255336074109176855160841141679960724056450892197442199023907570954175405440205457767385128878004322232475146848910020159514719353108436706279956709755286772305696209572097540636856548194448133847581523558409470126912306115383551421016721452657918203098947769406568413097443620960953350394249467100903986834981419972753498230407536580262468032462311391367967622076490345951610776135760084017322948970150202575249446318412218983438548731402281616052762802094166803660635950742716123250809326909269668396460716271172981598813651128614453879867705623427082585974249851501573866019668386355599054522418752919656133244490073694062448384995949326786411867083399984297129372354650911640137771342537100275922225316124874890587582838633064674310954611568961297114248588566764364071085545356679021619399164269940770449687845865874086832357312064460992632627432851849943022019073233290079189024743365815275982924390626785658200442572626951287176068694338637055638102174055692324738137743424019472524766659595569030974543524767687340636606868470563418687905864780387111461046530753536393793180848150824169902079470049288975128631147398980416856337943501241473105417904412842416674655354133824098543036373744780590084965418859594162947132064893231356592401818416083086518482357145738438069542694960481174347420485374012866710162996730459254891482192750538786907191616440092122651403160152992017316332887236397259145480510672553651326774506613283492973956559323399739306978682153068351431751403241554717688615271226035924998799201541387479611440879523227626551423712551126840117014008579744462835756668066493879850207045337739274987261358021758208196894490644825771328817091888095527709091288697534289492392451228871763654846781695812585536044078826953356780967398192788733655861259457042084947475738392627668006866178786125601797065454179842990529514953224059921392691308378198807173371265608312028928124433101250741972243875352962584140602565058443109053158437938806098406207928785772834463087457170487527745984434060096715119946990036487533061348672824092458014456298222766765193624909441590641779997536747247573060194773719514701015796128261802817071851838829545792849288560426883853084617547275931313042542642965007454244202839511569052838295636173238477556401485890753826086041906964191625828911999625693756916127686566316855809008053403551121550396149263306843428259631795182172989404872066205690601117757582086605758859399728976536121239444524142911427166991789966897004114872431454111879928567062018491640654233953362807102325529478607756627946057835049009938408511605857181119496148942085558472777780106577039825273805273740734649744147284492852247006541475987251333465348268416534994679733912283979005375515480335118048312894858244658322420675532838196337871574771368969178826832819409148822873069648371703514900118675513339537934574373664821320633438384062929737722492744040958841024237683410432471748251544378977285960506382346155227457535181376237939734542155652687523121016276475559241131266164719257951857928122198536822363621392212793784245752045579306911449872200621619867472461478398955059771620735871866346092585667438898310641329699634943964151106927013352614413263182411417181181808075920609331503524104061633637002943563419123678861440579760715803946043016198357964679966899100842602926126460964149572850472155083122201416027838320194062897853813418626682979601873008143694302730318902260710921253985384995796610516854657234192077281245506938999097974594901143662356243354779875417560385227202907852516031380197244635030905596702520619725208419179067434057626137771724740700539249138201766212451806243623498157567742166758694868762002163669511439521751058706906769115601594289314660825371763029138232641001524795657815048327431886340056195633481426420607882771564416173478091780667306944473926106247619445214998297023115975227708946953868060631957534720256401021647211646346635704779084970686088319906678520852713540258340747689534402853997141136689458407513579794419551096053565404163898772075979176671188353151338274189662218610285695057960837313005450291121212511869270646104910506475272605818268732273909544402025493367709562176719211609810019222726188499542358848859890508366240560636533570014620355953437329643461024563910433015544994312783980672214784865180145003444021016125458368539778447792755644188945122682435666170423276834543942611132449148725827674381124959977829272206000912488807844952783722625400199007679223966968495214895314213731965965497035462041272834382282098874397072723625729732047074116760358330709767805688818746934766107031719568672686941424420619289764562961194860046394809027560451525818987674383410166036768598977623383830175686919267372105284086982453707775446139201800204032914994532796821663998194505885775179072944127713743994613394673873239133830282428340671115703174525736226962419811896395542864044585443531638092679237276432850591065685634894786921277663324067879076171089373776069982877525475723943235561386807872931865264804840383208477086487796924980735791452370682930802855121960266605687023178308416577958312897427029909738027751393652493301555158409708234989324145070211849670118833078176428164072939194832992359815054764792271798522590660430606938880156344870019533031247669301478171818943105021286159031512992386208194283381981079124746321280838056551198722733119544850533830817080932869359718605813442076814210125952693333691439567036638810348201394009809098830110550895365719967296590049730087396048876967383968014469247830497325767344789515045597600295750607504884217693067193564590404097318706825896956707729517119529321686208175050663085747221196505084487516609084987272997823570869537061745310297560975141353470141132101589848530098486871486447676140742697404048726311416248963371235664535287620003691839001727346832489411606456881752543350827303978490814467174874624460168515839118717840679222895211321287115120731561864385488020388512966037746381962750977191951161343682377001712104076792269942984864256290799002756523198559227669599407760112717926085788056834693363339794654936643787905955635845012765786166848719222803935480873443669140228852799046412816601970653305120174425196334870471113799559864173103243924522991532377539723826501565903650494193078062957398756214940787659484371774802307079046005321211506268362350453138528359631200461528302418760704157532679490221077857323976882858943456208047423183160343425061768891097016592382453813359151827369943679708386847657319533491193368945805995675707984253118816716796263634513950074349208612141649182943624685161927905611046427013530609183492539679959390728003555074602885417316200928163144044397676283536184586921040485309705112504968141074958034402229671169715987079432769355929776808767404212807642312327164620899013025872945268876343187797018940583148479238462672018330610867912086333015367357306370994058715398954656046266842178768535935624761449989563450489644751452014118067788955729700134153424635090781254897655799972513919007305605565614171367344235499165354250426273835010115718696282833134936761409887979368524604442287569028932996713588497482819321415206574724659648348318156938840943912971836972072687655613466985834537605690365083098943600038579750524329871118631199058701963659180410967650905075303903104337100580464395244529062689067559554063839212754028985978049409481320090838781172140895823691858524525759317262888532703075055063905086941802147241471845395937360009955230479098497635564052701865859859630594981939659250147845362781284898026735241567254474776790107102717971003962349469741497398722162062857697989430311179217297798850591250575110244916517549191286646940361651861332651306003158831543934993550120947905281653082326810152941800994049821675842841817996930857635611763018043101588180800169428147202426656302327445389735441986461814783663585697984810069963613287129127020546767025185378988958876294457856211707633456019961406168397574324261680380975432817768869603378828557440483033089206571289204924329951188483388629929053459609684667083126622469303279604040734362145435252266909032313355406235570984193028782227296885194255856789502010704450684595188859719070198234025998290981118272487980425500355256582929872195601102610421815355237898449519377325885340373423791102150461319113794314761983505935781559195257688478896099070311328865315832234774113627182625320205250675041651292128449460810895330420424739290668571940551173486095821338243842760083159846241380738863652985374607927802776613398192484992613781183822295645241451896930920363375728006566370937607882546793449621840274982087280264506778153768866279789038081553847847741189659586260431770268677784103663799564312166252811933253955754026985678544626457722247673080969653789004402732699742964703135218136210894717719690187434590761430457228525350694521049303689461366956113390623431864050950390849888065716354677431057063157898921476420563424465453692740046352429789296795830483537272807120462435291890228611194569881165028968119418372396939422926103900239302946042435700787202209583600981697942443983007656236715261412397902320349760245559164931012187620147365032832475355861758600518240020675156217860641612143298131290337844327050734084195517449235084929051478801597023951348242086104086346005553918635690543302275540956685961684346388725200145993845719687882957106266026648918624380089074731925538127502286325336837245736539159728020674360427358381151775369202323845607796615354144419085397079556508149094474730630269767186618805818416983186366275734665847510597877208737055222160639185786151414499464486019741179237505375057461456576782050706365246949442956349644821310669254743306229734235288581424709051098293403438722850257520979822459721127434685753415506568693561824204754274122189849546347070770374936819293714086529096009035634978853714700746860464141202678306959907262922567126694078417175290882974625052650827847987841836695412512105441026741439856715686778343653815959513083262751544678406532982796542824745513655649665660285070126831322432377843202458126368564102136383120651175019693739819413972792160141324294094750375653425255592776057154948740513210631955159794023446091702694472328816668463269366344819862201584044974057570958252677936493376883354039490112549223056379541292087379826641347948286990136956713625379306626727442859531293104989559424727605371202261547914410522624459250879549296066623733873943324700265920556213212832432289019995892422281612073298171494191138323537928042680803527109704389956537024155430638863187859561461133769986119627883333784624177138267910690961639556343938009656152675386153640082095622413516098372664671013689138672917722800210492343760490616327250314100706419869443622142879731766436905656437014024485046520855737557708411346956256788613094329701503940509840229774035711397249132160859562415803919469339653655794304176167448720622477928369559814859004043554348994323323849111550247924651972740917599916103323564249492167978963662122282711897994238017611822872726847783629079752285153066333562842872739434882718963260666829393847063035138734742484238606401321592730583864170576473338659794102506281168962563465920022308593802859986477080928986159043649446837112495417006516258349321414978122871704620223078286169426815216905904149661238569455871779770799474523621056061503183153135327744995287546442167488108129792438370729933596527776861281873548944607164993645994329487717356687444742046830620841534205539539339961849873600477010599048208855222356315076135543567336133357925528983238165167948510405915129221967853224237783284425221004271447498515595040891227243206751169473724217794876883556694071785515444921861954347424909740125176234654523602791956369905388909982207731907125828578221492591059230400863980009125519018571165439511272647592483318142094264991943618163881213118900360447596520694254565504030849497275547514341660093338947315721479626395814113825390681947449126906655721646866542882854229605635148474977989822137957910620191318107835573832453303871864747156157901832928063230504996361130137150714132641626974744383297906529626794389206556652628688508755346075712551246989298893925554733574600411875627192013101446381681846644991811565116726086877188561300322473566702211155315105087482576342822299010862374139491589880966508764044598454191217052004218841030217673296561767597592882746572864093634870627299738770870456876674244822204112407803024205862590606476222356395437051305509403156283672877738947750452299004806448502066762737564023447316727326148736035326159314834747231835865175863259217342625053708505477538462349679348504784922957270154395312739988955451356067682703095545580388897652078872249671037949493192459612364812120703700741469559087142822068720412935002554243065185430698587240045198494718768329507408749119251625703545886006188061480737158591038162270529816943779099881590985694821940938571054391598911188266246147920339063502730528917927516522818678032713668312617629737393000745071689425197701282842520655814992976978661270460161355714457813520736675893534378171093467179837650273808555291036212078545147010496677756903383848304502454665453272152524477504200665413971357282812741121948887291892831278523408708902867230979372750658829339460490459087085645216601594835438309704156142506999803422053141843977295766686798040950615219485211427337817515097150461813199331952987439942850027782273866831437265975204284397784894825708566000066217772902583863198642514628758736301974627386694621583587920500162113069294693928596293741024684608495181786300026613783394146575156704103098543651975457734416583183668280172987588269151416100146879376880969653111286194998287556043524801379400508919660113369172616656395479449026043029986437499452833779947757092515345310276620430964191249142554115699466259294045166335826779250128876903740633847381456744774170276222457278780531187959170707543951276705134237893550374836881370827042683493978987473584587961053232290315429531851080060976281820702076731558481859130210971242293386952533841839856600174910523199918345624019547356290023494668542382936949420432365740304420579069315777157179563909000181401850510970744330371578625189386960882311639032890475396952149458439767645494782349083358567681048343455999529327914739776579978412916733984859811369722788899656852936191598150035480168940774174373485340192208582702758442320885699562660840933621229317138362586526655203531523877693416303635256673585074544393297623396860882585146045466813470068397735685002378259122058455592652051270720429738481284533188294561874235507860636941733796047030212057070848000884903021433017941669644736173694019877359189670830917688127160746053121722613107035525072823623156457919193604519675194095118646785973599822741212711704631515222104377111550983786686901574749317767929617881283071657742480707352198533235733619785042486338249923214100838355938285376908606440937531344038152695339869608419307565985217357205255118372966811320046566651082476880819105904401102258481806148248657837732645054692475693037931666882869158623529320318971325348630307925535011204099668685264442476409178856390814758073613100949668639365556996577081784365810565575084955271451380754709245041988909598881367631367364777762796299244798730342327191015608991652977415516134129793094172917969419662535879542798738789613160473911233243744332143292567526898289878244789351135705297999007775508695682617226251408256168310753162161111282357715436673372268655662418971425452961519576487684034354041750616006421086504154645469111146555677812994533979881021526401038236561107507285327734287782684994812224535127853768978066938466133258307007516816874388824194087240378048968175132369923287651210886932710308045484904353455741232082178631706778225636459409577353795178811471661937164947521089774022459623293565263412039369987142324820108391186874057920343098728301757994266012272617130953480332643123489699524063082393531709540655645357408036635747694955944579329803715600672292100121744883982161488353952735947765182358325957902096745365798441388775201390497287526088071611961137021378068062880632497672473544599506750887499937018404665982249383553668835005367357068525976767640343013236425414870272635277886133047189027738795532484807264775322858550506410090806761213009032779983986850547778443342979954158880670358785202834959714460889346488238029482491290412390822844871483813526847561111204726206805152445390451811884059250256277524328609314088073212661595159296500279679178059195190699279751531456409942663406540639376867451349884480135287925554492877916088079967935165373331130903178818983904171810210278327405237805463547885927465639971271502548205695269674737743944435306487711768212499327984112930898197070734071121198815050834441957691463444580731490841214909114541291025957738719721223999310399730863113133841897103952567826003553214383739688583693520000067065602482843705074462216319237847078677873507631184162981405224666920612900866900837246014997608164668354698196735873835378058350921913757088153864678334952419221606572894138274148900162856972090904735977986261795009774704827129678067570401630788449428383830992850195164285527796589186625114318649783484950889651803598620291812791171959240475423409743209973880371987853739983942325203786414793127540930113371516206815571295325926959527405188884758470968605880688404979052882720960607011364006210960603799748423211369059855435115441295253738317344246892438737233891966687988545755512679529090635241489576543755976685406701368368642078770328815750164120486797467669126347368476855961133573706884514857313087684566756946653693848291059928465634574569887783524212950555185838966011494674270056637867839187004080574416250696491284714388509264390848651855990514569259397183019633994596911749547004312385604684156981554078352498730317608583149073607212881732754180590114931330222418300557147943303877298229380967985180192687951455979006130600269663681503717083641876331606277840384788273427005007243354216033081359302388375758182056059917030070812725923039725549648072896885067912345713137037706918860327502091279942022170387701138809498271978705884888478078519583985339721148780128862125963860434980165668589883571141656451522756825579855526075191466173672440117560071343564218503437162807847553731444515637915690147667496694161028532142535266499472320468942842856093195982856353752494034218610504094452085574341952727239558811415079019997809002880962304438740302466941826198503121689522916248224337063050431816177980376349009664183206556036407094181419816048269855778848952944938138800591465864155154695944316139660040161732297632864768409474523682228590084593442815864306153467188080052714126341266618780210511981890561039103705765248927524940637959664843652840657904524787995722629955467007953136096782714935164243597638718221696818652811709695219630281459345929624427367682845831134501184972750651895347471845546026125102933573612854599876038065677464592504201604636809180659566187665420091690582483956162635097519615535273900439662981974249044703192925114410716265416243328438147386124165635455251103181700404057688074290530124360981882646103140286856078491135614712919955727980624670195069687337181076832237562032221600368719181004531760142072647035369769364443670590466762248969815961194342803372178047121284635182000969992759910426778530878478499615891555219183050752602826768096527416465850159028387656957558247051212679912490004713911743548600039087656336349459939939418521774143992681848447294609870535583528590505722720265669364229941837502639519594453014386903684899426636072474483495335922642616177595232406887004934493392439301239349467518004717060293043501974020025142820430073870048252699661752731699205579680892889208484755788603532946654237694990041971109148509435973503139346937507706314645272515304234161153241277899167538417016800155648453364408052606414331866398734519040975575606792584582797846259168769012363209934323722287342795706323548217433453634075078587213644212911240909376985894894537035417099157498795181942120193035626832405672717168849971177911937335422247774416191504382267672332507170540085022762632561829944673257672436670824098626681211937710802341219067433543578607483703264193859676258576173035356265697576405182767889012804793492757331149341230634776541712801930476084434603264314849153315865165766053043252320040951555180405083543356950741349656205274217419424726344282981679208570140840807453562922743942904303071812228928789187450327819977652584229456397288830746140095165554757696834994450977088208729814453117556193385833914065892811330590980229953016765534025932271317807360388636449223719844201524668164615261689126346189844061715141896910659560640147171273286470307816064585074049738352620943318228460387094586766498786533469801888269752115184080213072157855790665441337304823473752980793712095982287487197011969806606686887272400082077860427376673121039353215102082373112378886626250203514488776793016254592211590559963525992656599178124185824190881480451452239178915611648929582881485544415409259293260242911819484745218324190863157902180886041504608144697075459676319242595150471890648090160518256146005155743527032141949797779498861012233110601355792441259845872540268573893492215975555226727058951036150508211438756069886108713644837866229308591629406646767988298984048021732243933553454446960134486996114857697626762078394038318849323285950878928703738309921250562392149378921307874198163545042085530477030677500169304515950369801483233415082394741748040602773442565029357628527494578831453290626824317343798601354381396741181742533368434819013678509977576821366292994829838832972449669244133186994371891284985335446756845938270287498962112326127120842488146814227786258319601097517846057266595364121134094787142267406066839745839733455222967484111045255884865353817647323515820565421888757478636186689251203916058588908340583377560949462103333248288932469817788643872313410491454440084837357580589813634717610404414951334348073466365810969760388810358754510070611706165545377471134865725020175176794177687464019038138254218854523190133682397494717582020562516117738087452238536699942828317814730042829271148833423674559788138497670715944848497649142818899501088980991527620213544701969911366408130628541338472553483071109971460980179771567947012356387507238367884014537410666441311398963738413284095417387874356269646716428385280465228461633227992374713296329321729814483541114798893173681855528840160240342190595926467137336546577753226445362682295616311669453795703984115302480443559697742876245946593098518971062071420896284847733558002056322699625474036892182573613604598347290929748861889304044576946932970778751410652812109274568991967328165920638507522768757575777532306968282512724096922690451456332026310418811065563820864873497715349237040974594040587854965972386448857913787961346645590038580669866686412778227120211780326466558524897347912109126014698527943018347884357075014977788720254900769731825971087644290232832933501483029824286452965201173344033133238383024701989149560801092759405103354919140547946351231035155799289533593160912706491877801032517055436658937369069372109567704162569692657081465188920811232324793831994012928759632182975242915680460680045506502040027491057153720679399936711503959861663816404442617531602000556602487567958290229433837524648643217788052802072399028741658597574499027662003012840499046279151088201991287849588026114545766338285322049401231421631873160022217821551902811787375628797977059957033539860507702224471716025830150203202825802767432400993989647953851939004855912135845255882996448431774433407091241179780611018405675199041775127766545726197040303733142746543445730047753360600528113582873468240530149233861770179149422464681518449844209197725486865100497128788750751113740061778971205520047554525167476667758103415604399815176375985769667493589969227391393991543576206902131390231307508278215212665885462766341738914578308183020989494086883854300210360613747118337827731689763289062609468879675056444991654453315147969631133153117582391663933126822431820222151032031484971224155065893324874541904602975098127653772115821493543754729976125589015994943536367801525392400277418573708551571219077130064486221461398794819154152980197438190532490369288357739717664173778445512637490884478147939498722334758483153487643368415836677828368455631564404453415215977753175114549717290242314491227290380775882598780235893068390307959427561112009411724910763720297046993941538888135654332236372779913809872920574555071518859288491675305124288819658670262948486705841757522279858451987972340222784142473411959699658836956454908692070685851785924840446941401093831584252355719654461221894672512253387973462891656550578589245494470954386100662377054000419801525886371742934036351793227021023623755078026157512607610618391301146724092472380237528136652985665048055567712530278869676585511235838278099995855461086899542838426526441439344216161255214841806919456707267837589143356626904285691368524342746196451845566372558919662873602872977814417039735517721321209065167829613686935467328302242943908695253988450871336852570419781694429961722066805205395099105923865553142121002878302881597624034959158281194112370036836284008425258475214469285500718363087033966673989586571279703614814803497944553724599836791294340055065802308036826254551975559884085943288509181937051998632730621202441550225197430770376204599098738040855434579764844833522326459128747459723040755451351257960577936786634036507034764783520659812902982605383727403623060713452876199784146657329260129042735635454037838215578024731361842643321754165994059418238698233419234625941773803780909633467735388411862548941443690251711630145623208173257117132170838390860386403129582412270457336991025638206200906229516408820252806791157787887904357144606362116669540511734538721097580090696202018555795057930177248074274305195616567276800087584578246384650102818101438859430962284917422269565026703742168590213951262859453256412410515954856704543079478427615706797274805913045256961565512786145696832615104227690617798445617422768923088419105168519290660514867677332694160320565965432303002785699285937669149619910627911541187524522832751046976010708226550562590783273167194484263116021585480225514339340487032939363760666121465000946888019149736299299214968628044892496650113707351769759999946619177975835490477849800209637546385022403697668198120651983652024769156726003243394260415179163612782457130694479372225104565594195588022661113740814941538899155245349907217720642252826967002624165406118480188103055956331410073593454257677957004520298659456666313086627809223994656422625798138987991139154827636287970561516299764632554519836070504001350833909834911617406711570032021917517887492299204644876214776450684083229025431799807135105388044541121646943183009563492578310468285693434509514224896131477085840389412713634679777996385438315456169154218226439650947756027738017063135161235393272129709730902629512197515564244532408902099404856938531073422880673836873752852462549193050513724250896288177494505270092191675856738028179739844496923846781913111423491560680523402300301893782105762305175134511737517271101033912895637875338261414229492895493361393447387579597236862226058965899062964523606655015681605816385543406459676398206638324587328015734086153800797376659909610638773532953409544086410243183047393549367272336353065140089633253296229568129176860295158802181905391013465783511576221323058838006981673716869397401154706716334083652790562851962867507348642417471167291615442982033936789842085187272727039894692180839329182812657180453415653178894477333889501074638820662300741055792654382658602310245187066850287972913304162246812328458131682436327128637145291557722733225258992061735158163860759143712006037844113376201383158203402603851953010934522620022592034140919813852841969314695510374392851534857369284581180366941321558475575745761177821898641890200470877957181395793988511027754010090515943947598851530078490582881492087697793526776733193009946834867761234506248472077505265671604904197736314216241891832797287331742673002372504933136997721432837995958902008437958761667758552871776261079648636314068968118026518317265826670638538010610166671675304661125043569539411272741413845032923882481459872090307755760994204099938481681493572087544829989292403261554135596079647890774473492980147468552750515250183674266833243643748482498113744534660667061282814554475197093787488441889138598575911920388488149241354514521928983802454166938074742642427108732324694082812030486700880258821326108938346889603772116076938816519565950167678602831388083384240776619187622088329490748458483533122733261160645131841176443122701882240643999508631330508433498771415944523294334961456354268927079356146318210178005355908334491952916342650532967841679570764254020477967359419075472631921163985928970571984446418005334273319532741992061641439095802883542414778777444640835850780339443733349785060836378402222465600078124943253594770316650157986663037392440983676274834868941304164983231898015263388182692018423116650564809039722393008552155232564015331432493835657414798374065744467601628502304300588163062618057289664041467406655453340075677303863340909542206067202610540234190165619968988077920616703972448692576428833769155590119301174747878294693618603251256412149523839762319058064322590586800779276902412092884141894039583409595384290527857324904831823159734190806046823439452719235970911555397414609129625695345446656711652481893428197756751752498443167324812246891515309439305731477006883673994627024832247090207359035248313032624808113038017017025082253409336479223024501893496727275225170347266698881529207563294612226426884353423802272105484317238734323593319766882576553325150217323192339194443157329810523377525886686898578781657651611539439624327016606105913183383085887695376794696588570931932021252711669655905339748708625667459873866449942011990858463456112038535806605065416180662924038228452400440552874865984736793443479515477726094572579732568271144661816330988799028906083006351433159453919231659184148757128065870093712099646501153065871234993465772246353294544621992702703714341679896779400665677925215050970018708615357551051327865586716268749608525641831370475955464967965574291130675915102598132051231297652650782702041673973074366841196043299637631732131546906180283721838134903755061434407647777971676500111450613828449559650849327753914458893593632745855753152604038752281171166919241055405845424974222697041350281101820022063715578538357971971275185805593028563231044741385234865785753691546440792524918302237668435183052000167235831320027645507138671421557613346051328882130648349493658571949901070833024019934022489979786266007889251573284949671024337186128316676930718214695534846507042806522071161761271665146461516200963093218165864359261978544728955840840036496822304142087305359324623498428132389899566029598570981395616288521247611775973401906180174484813466399755216337486320215606396136502760655461511652616469750571964644378757950559241616777703626990440330594263618862157427875603059395536913638745231149430791298654312082708201986662040649239089598040189090208613567241577226538371490771474760959587293755589783757965710257369408983232116304992856166831109328313747298000529553530095640877910681752834426513363498740127388180797606685020494236712057094437104055907148575021835384184596475183051842823297028746459567973035420096286122100096358260883284075664166133762026153825226848989118259229484786625682326765233441488277268989632987133914292107896703751739667501290462638449983518055531862076360186030840008036783329405766930422836087335476403062981707407263131190708895066538492533114617524108473626399545973568412974899302164953252589438722451424328456462548317721276784394898381607602734776662135146822874090022870724910079129131366291688872204886007666875291717345744776085433796254066952326307377521462380405764089204840804484694512155592162603336105064191504562175777336001991295100693965175921840785544691421669868121603388558198973678565860674451127567002996233099901113407125000940340000672282987862276282148443613668815829248948872314243678954941350165242609152767116647235519773068840394311658870978623402300520984342393338146131238400385201168177469521019992076155975946929477721452744384672934001898501701473332698549988124347305332998422850629001140541275499364932090224936906429531982784068836973157797544325798153896548313183134952665330328586801812420261769865874361070069017091216826997230864908211336338394508728907381130590512193956026936447670079742109474823862424295238377235767012864181748180896508574152953598756605717996390997122621632827525592523156415310570387694245547955112216095276837532870426637781547632942123870275713923572515318662555000037274233290036959663300086200415003593374126439143377246545467595967516215929909221360572720915261181069380881279972287495098804749705567647828375851188004330348267229495408019733895686386454955100025614129091050148025496536593789405160073036938942164617432196662873131179494416440555441272766604586697032577044724613528814841496413862264252862286104195691820258397613050635590821906149839834461551096646341747454250176024732734957119505103252756667535149751864569749270469548458229825843376789393800332922271689235033537730755377856944050900399269243555655559928700199351617930786132076919208390444117179400128692424034234882809801605871836439171688845415572460422131003000586687696466662445445627273690743891663745792073398854259875132432262563207072973901149140910804143738564533999327368793770204345641804019445340517548784180873011894912116076062753473861203642027143991098546418240010617610591823916254355470059028593352069189041910202380771529954351138160140997815842425474371464161406292047710673794022277306082194589291254357265134687835017219993602204732209185911195479029240514775969227293966056372938271839423851379006175562264470440449796099549085120324913022378813844617191641060733070329931427728311062278138853407980558581333208990008208454041566881990380692422664973076246288070633413880096963158042218668590561040832080383748556310251580422642385232834233053872299273358318682931526371679029661267770699027260387251905533715117380203786672530157849209831430021297832415524595117885605150200180904864759625386140844332668213218374040865065342270803124753120145629677237881867755770515313133811634833488184310192975310928563083456268422168387111675495008611036587257815068081168327002781626739017572462919587016339254653121671045801413386180365492341028924468309328359996972201340045874056236161624003733891004689585889668617105746665113530297971625104805953250952107824706273818520396359198145382955366709666312096114249776560232288027013829416323335627604567731410901029436761775385450895573765719182219648681931128626036702952993385412037594933158575577629492668666750578106864795309958458260868737554714087693968532297778870308704626052003902895862579037471800134603275940641248444222952245696020051156047738773338838922275222060368140168125228462764418201366010273165107216435580901622559262111710425448963228248503919783141169463462952663484020597038376044480011402901447427691653015568442653174173340798710463432361044541544076563250362721053662698491635013371475346799238907892019352192107754305965032025372424297867506686510162701436618884521274292783856466020470391542999288660279284889396571217148635686829748118395668535681987816596453545454849855797727051133845009690731286768903428055561752238879320381487782082288313977802761318568407132789331408910893595550395203759500071999371446733143762606421953005337784371365507837497968597720261189493960206751315702842294608321531940099557165409248557675776485257960074883973154422518324783889528196967209221898898813540913908092560908170208067619362067561920135758865203498160690309722712783705946151795631859713295273407699583737444122303158087444766319757170753899644346569901246212979131101732835514540837713017435414293766576394119104735175063237196467620483060540500525927809153968496130922955569544926998347943552553320436126176236971460161938044305255303967712789325176934960849112819436103564541160533032880918757398819064219478748715171175892017205684371680973798922862750989068918130160544996051236475380472018314199097278877760260934987045019868188937427056598008711221398388887844743831077811357792291407104667496876106241269884523997919681185577558499203501265280512967697168408157416357968048653855702102269519077089861632489383025223437361854500898414194813069358787608097192367701304843719538753353305139803851319443347622300341472125620984688845968212385213415646935262919337710498907023779742782537931534206830518115981478939053684909275299329436964982094992665656267471901513946734681707746208314254252911908855455911109145042311709830755629553815978576428294364869129626261865916795798058615960764014064145855265941200190110196913558583197624170560677578107663954945782747409487523523366704078485267518941263068389101684136646704434979980856669110053380825063689520228684543838060095657162582645546322304194148547074971235804286473650140983550936684303767631434653324431919638948461334768874731540528916968024684929140891829248896533850247417242855151274603763048951240217540844473341548056388169091402272404381924592443160599999938667952354788135680504340186908339267210949989828425676077823624614867139749470110654715138581982076133227540765816373734037266245157772017531109281253296184409549614215854062669910472673462767352575889865125681077864747911620545660637498258493487924972809136614590794668213792229834608259884551863407615253549416296396398674880316949799184923123578148141985610824331222953257055961349541183262286173297870956266049315367210399800450433004815161361886454377884330982385590460762196914022123064113449315193774839513876310972326673084667255438324401609611068641516890723033210817853518500867287891140031938910182791751755155493453363666857270886633709877187198004861607554966917013856113807376970305571335527944353879266459690462116244519917909978350121489565246801396243705523074993478951414377087850083503776754377914847828932604156423920356373936315875879159609353946921841646018853400057526029139703356805046881045797299814789702016469220499395846251145993741326949577328471401360994522877292645833398832033740918661829572702384596679095928331337076139333230504637911294674512199083580031122759899413889330212389574238447524044141511123237843186749510917546867096118624638789331744527381829923997857954005016716683072391158504601534157996092786784039610088992106596016380795720193110784363338828986556274156483606624158620336566895436249929611168427721442727701526413848075634684883321410422462550596964101835598715159382884224441035599445334613515417614966936866593033128861347828779524709388847678354844940693712269024662980962752942540487795387585357154788221436133717466992486329140426483801097559313325610124732172620164507160404771738743115257905124555184955109023676835564919914427797440680611600578232868732489412394083471009967983923441362982988722127498568438893547437295084636288477713529570881832942774984873628459495844140513006258112234307485978695442995218302933124548364130706389945590674013353296446806598102742962574962923833104741776907024941407468006945535735261362417240387022599406987656264039868484013824882647157349718306310255900249476139690793868008802213636531482971825253999617641143563942336827735952252762073145678500387758971252856932829220155165738451865528159886147270754600758988790951978123364428639851087399626609027118466717617243365217874932114940357659143806810970800506334597015582737227321256809510099421565424407508680421316490848742963192860759800408821509871677770715595353567333632577897204268327819729429460734917658863951255000934805554734342978339913273731305294734896212347383544483363465314225514933462447621799750695310764494140311046919387633832036742042663070838809898559193314943183307522048696122891580868423651552948605054906900743228560291974825323035529166021817709085234125040131081503122005109826687428977140162021443406544881608741187430950339358453230424607910924635289418673754610111364378745806505115015434879298063284469579456870629139333985371649042163710610599085231466198640432709285410670697312327054890472733169440058164655739742442321909708297810787266987523221087424706667302807137888334859913488598473528775979598438871248329163980586754884654138642937074800320107353159641559831693475597162558277938900989418094910336062647292697022027212341234156122883948317791069260644764624570238875874426890634871253899809578643041021599200629705555428705408611500386640189360336241839693482035611186054272033411844335015052951609767318651147374576488790681069993308370953281722448652943437127227354058715033186237280878993274926025785337693074413176691155116010805091848227346580293233782630785194210710645825109563371138364192384720381883126828057635271501598451755420051972177664497915874347226618412712802702540133642324216057585018582363543547741736432316719383013319628161990670808317908280779527804959930041767497096484644059782187736504877865982690462279727688351803430281325716027030475949577721674400555243462773765681541087252460258583527065900030131900088213426206264703265948325085430758197756305049848712363929595891907895090964519863624611708394095977817634659747739487120173819488359366369478400849174034996807140542672401615626021271129985914142863779684538134190380417922607704904167549805565031195140133495354074869037461795893209647091590391472474676862269816269458259065486813283041111975259683330390897782505669669686473140280943302867802711597414650394313901962164766747837931071334891685929803480815292842515225000754866637691743166752783951275246442546049003045945365771626296345769438544314094815357304218504121962900824166774088515088811942006728701951334598114282720435414809170430817113822671328321814070453680198998887897891082770268645879721817816761831819434486996691622095468218148501014758829177083347700263869428565923949853056695161153294311818403079039757119861406805076707337776258507556239056372206931099871949734969012228747415976271138244885688751141069713212011998212116088239799812067034754857694912236410226067134834986297377334746344392599859312960621485688130935645540761605453341240286979653133543803526099760942634735245607292413431079537302899321990945034372285449127875863260601592215050998977584701000881004251516482735693208646344968261054861517748130461945246004266193475102304130135539252704710712301157604570377532673079385831702794299183005770157731253189754605932520386717310206886399633869330361053354355229955501340229028728952600314943278572599206267594277123616524428393983764051395876305663107801445355333905176449805432123198917167230158499463192160082266822258043816654546298858593610819863596116288135535094837430031394512115746421984094197942934424583986278129836031354417924782688573882779029881062384540310873547649591395202274189554115273252752982350370531148598686562318978125074851512559645056799478306818527007690931247115048978480810934153406482219192905077360910320552480723847860791459521453475845416201771618354244958930526953254231512436761462148218928344614368324680358212272761158613768288453970964040208181628608069358610542156980758175861517436165855166013063183828760179675589939963547609775114099834582873578584229598101391596024501330554341586291627692755185650671518007698149088544156478350217388190183407915827083628542685863927350554161830901154660266414964407735184645519404375465815137235867315399638009832059915862873864567273015674577019325344116194089190595074002210018048193156851590308354968889697772924976672736489130999850734478368834344884982532756987444491603142150184748140620265287579005551063923149274081910137358782654969622837057600349606129883320514465526282149808071786515653485185477171805796484912119572753067600284014031738481143259234546789582272108317392001956828393081952182143172666279989262967574835277407149518770524491511616690635578935595408040811511871662759507862231324205480958644600377144953101395064885581787940786995345256795025198735690076340082963756255331661855269108412381059124035236258451338269778549266845812480117322082540565812548417892552664286826463343705387476159824498012758082214770080131175256764264387581491521994836526857219770168760959895666588547398512376294477554303800333433151090055129212781448826490010731735818175844534963831975575838998891375491399750161662957629595528082700156763111117602044154280811762225032285197737254407972214764473141552432104386002309165153249305070989346864677569228621627986832317573555550293912933982637320948853127922094201908675800788863215724395785505408906643806391007630174177566186765310796818618082773401010455051970642592976292554914798404795721732664907117737738146426066192669983965584998938488970399593632164650539754111059035256551845457774965921426648591765038315167434913515144949314032308072144433959123518172946512602354150227421071920812700649972935279686418861637667343300579638227874790703445933851105544033574529653460376767490632432338790988559262186583594389558256710051526231879299590711787980243142303854566984058889942501319989458277108210451322198757313813342073982330376009237458622668248730793249868503678080575675572067273484552388242104782331155288855114895064862382831864018110617842253242841570188639291753812377511218065865627514014970121899505163502048078067634255264113466239867401232180918398126743280897143786061104017830186711393535075201805348178215084816475551283909901808813554399913593244836907902584217036504790084330352250637990898486980512224769102675206039399824574340806288509637687614381535136677101932625639975204969582454806154007634602472201992054014871617761024506145428575785789487336253722554549581170197599408346702531492199840556296762924465573439130644178517584704246933375886009709648388756966591972690073673546856157221647560289349535825846659544677523649992524633322777654937016779342523726263448124944598489565874856995842250827491740101738513872208617504079147736484710678931482888468401454837000492386530008772657667550582520759494825133072242991332434744357218489848104148142818431480684050374054960022840594459426593293177638281644818598555500774034837930072851456788905158438776429453744313829952955214662205113448470218442873603735586401641445080942662152544221923143943254091192927884815049224446504976281449896161195693429782341857977849219517777038461674202796892320366003055624002132614846289122398180419212660752264712123180334447820370693011334294251261866903440026390877743480941645953607601021994169001260583551760866224100518181047910833123732137505500135438924265684165404189260041157535632973738713400192627931753548843137109204480232298114779039309719221516845508371092371158721152290629679263751477487337704199241851434465737481113511912293592869580785059688463124957235577295960646311395693851862830195214253374716138762297192457558449404343930056806141798641750891569626107941577467593704516600871655773706959208907162310915364042779785962557292131361729417988485314572719729842064936682071763501744259651192254592535847882376689942144145972333434650447042753162440370579741234842821146486800256629344956450321833344966566766261820788503479460729815317048074549824477004263733792600742894521756268196515030160170469263664883213841231719351796303604187527188829323418050727585838762253450525897846071120818332760263629604821294501640156234506708417755713931191515858858979991305671427954312483690089414170549157466880518217579441296375699566343138709044209542582092417222187606182850216696699721635451119443931458876864498237942326922682805273075532475816639975236968220376057294322082179671190130354774695629850523293587913388488851763062156817407960118652440935078961436662016600628203138074929734050678127634538167786860677617418195203068058563122623610489469462996554425190350739421985349625943603738357342269758858707150779241618067407523639235505002982776406047381591103554322569092838588563855054022322118919314739437007989903672757782740556023735721245903500240909886878223734990163147717873090478219310558422568775185467247358980793843880866996107774700049949284851858434043686407616976030637658195086647975433753239388856268226223450520463340646828896841699368295905315889367673197469016856903462241848304133495061109081520541697188868290076022871144040734380160530382041187633413045915213823692799424582095458626158045919785854245436379655882378147529156617974949236683942490083966809633408203930324206656619907893075446659530667905773176068345615108868744460321916756402710568312162255337558585929199546501705859835530905282075173747371337966881352752003527899445170631181918102551905775857694423198635843597509992962209032838776699864860080914519644066573040100203318964374518707892873533962294667987461799205637701285010278574671827684027188190635200038410126716761506580887235367014693406715936901327005995354921418427494572047325201513928873629333644205177153876483916730625118649214311612933038621574643671183166929751390354481960017720114848371610280415801858261042016080068339482613880874372311797946121874523129491554094945168684622098085243011677567414973955810559041332183583579893300546289017630784786629330823686027028969720246288605267618246171172555462904472387047405901874569290121709467764446911212360121633861886641577166359904420165155204754818576833465176469507158763527550520392849851236194303248649598864298905641206828226658089242020185566703916752045648720038666996805756304311144781714103219727446246050934205015480072744112366490657341483148419798988763938696754670979377240211933907153082994325077888042802874090907952210026063065569696590975623543650111569998054197107844577137231472067546082897992050390501029955248389527169876623998473639200068112629483486425394876502188112938444790675475624329617584817995843656537613277020329838917457605602436586646172118886253459046511778043714967298655426933741684563975656023589001040390459708918720108233814852368440008355760315159668334596392513791004431561461893855257262002921400661558263737371167875179725991115119359016125995617074963476667740340228317924667049324363028537019100883195739680665508121746654864136456035902285577050129724730728808004418430552895480351315390335321206449091392464972730511448640584311889782727626985652416893170625393116717219334006166660555686543455277104064557086425005531446201338833983255335887873417013050480501697032559300032826928547264229940628292980639074490746594857963345309531242293899493174883538134780622476276116245859565455973067710451633178276076667072093201041425781334217720462870696920675290067422047059049513062924331985299319997400036156470675648259777078852233384756493047189035361245861468563019395121727364286715859235169437643731405223793874818938460600329920114457085549159263071508761829781395374612690460636316259712880744283194341769662299320775856296483539694059628086954716553142833708714656225237301584989995045155994158318129288603760603258207270650936637739339956232623692964868862224927788962315794380804415852935433535709689068194283080756886915911434646548152045023556422485221301368272236867483079243574077192178572877050627200667276482136634558256038226731580896387925891634329147499677825622950383322327733197912531619861956799676585923878942332517802396402741146685769656473458835431156049257327198849600834077671534311424630097957088702227904624216559461841268087941204564281017033119569537641673850824755897052288049043613626051280387860939871070076749405753487185220202163715703869639275332782944802582964643124181502438683914969208104439882562610049981279603300920124258479897580330935729549858357381997134084917064100074901805644197125504208351374134248003844310810842133087928638448908482668841066203538348526660602536402222491450042635936528805919912954679283519244001640055892771135146935697933701060997216533339458679948955709857480208595291942566457421843102867295157240324848667632887237743917146321839241982175652315453324649248260234165019945827099095700407034943723582572626068302458546431619973245561650483283873226002368507814103996610594706034357345959330251053201791465853185220148639168316309475040799042377142178443582704112657916529594396593415576469719923554979658613739140165555577946663850870617211470697177168415046520708119197504579439071227528808288186866451789414142422120384407209025695575820509669856104871700898413582946781872754787678139968102315555787338055574012776248017397695049916286241628606457897942439044077044841782737553689222602478740580786711215986483757076139893491538445889608483590746626613420968157343847116729304827224943340701720873079166317415876385485489679813757389822606435012654382562087136687060668592919685508589661502290158605912947576116592066877369277453292065502712081542109725575464182692011716429187194603752605075093549021701139405755062080131820268430724043889967681707023314564324946543345016326173606716657646879750308081759466046690117508821504694641133502725062009233054780144143589844059827833348238015435076784932541091905434318570139665446080974242252168405890338168658031549568849494348999314575850643721450910334936433067890973198758708278746050678782735969252383257593512799520373848723873119089357884853548625868047127838438886188015484096686614529568939999366102255786029580338426235403305853516252207505011508597586264938820923907408988509506461163270637983872390244071147883707794369583863811284050153128412235085084252530609659404591009100197155156176495878345675903959954429322160442353509664487625591370088509194025420360734426957233638253719462619538981850465158372414350563263319323504790059706038384732800569017735390756458129441844533223801763119049919146944967620171746942307100957954863167889634448604930135506520487368750880891358891244199689351575514632381608075375147685755259237776653450625291206670804277897989990589512166550460610302100550413832665646963811409742204380453332128773086431104916978166227963430595210033193745703458427169952764109708292808481919197746426584546870380033962038604441331211720422094423135550656737563074699937526381933843666012861917534934726870924127659919658827091083018314990130802346194171091471288213197220930228329916659001839608524019023700021615412863844178666602976128902503330115734775786530034071868268987953689307714960430587324893117203640853212794731316802116848147581884511614443387583005755534292225832747372254933075370963848667331982336792523308968175519082303868180095856554816808546810638088415745488155332665580702644161746939781110028678342738311964011058557494437266516434684927147744644955591796079739045960588523430597549251512071251356619123186328271684912703328448037981269428343259521232269329839151482488725018408977051534425827220543885613965656730578372882089025603278074729723033893977141223139308947975660543783269671657763124037893094751692504151990782391478368910498822134383646926567213211239907259716236716684359718528693252326940238479308041833917689204332177459863307360329385713935171774421550082607395682966914208308325605241112981006411835724770281009761591371717549157605674234771011026866549028296543545621195547077988044539521957809730369283538862687836042714539000775756808987336712062206934824781939436616263732182642564587877084158784343049426067179405508575172014273399372687617823022706701468685333197896175540735341816062573410744665561076195417126534486872553337957038418677961437672168057533269963632520761766999913393932728383072269028578449151269988840345240696817067903850340661773350178815470388717344516490773931000561765721072825338316244383868653385500410193296327275817942698190132262797930276884678303138041670749227186510661036596879516608596441263778854467111249576677819114381048459103440522256260309282079690262137686424485457529249178267811483109340091609916353283407767607646738456060262626840208251255621521661036873195918075856432264169842512387189326737989209699949595245529386721042831104299690186030038281375021136009171180139517529039655014044035927983659748640726818703509982964100041299293441437922327366407985841814909721934453960278258321712435628831439506368458179915038874864664181783543025409444231084949133953739361783891045828870084491030930546664949212881239256933279065078509727813411399625805439680634295558025132561690563657077508688256365526578702659178325615957521660982159932667099916290350566690028470517422982930116513860005878136498721482625812143024145307331249181064357016586773200519951190340715922790240543431627217273504807179289187929893415931963645047476880170839044718186987091867209556216812995412684561892642608030622159794538549811800649751314887627124155997977485846592109146096113532045287190927706067852065222530341316777281592091041987261827209175808516811989884670392684527999365326009549605650980304007687539678048758652556663748760307402265071804519806957562552997530262279738585658331441371913059151763444823010677625460504178034837063685289107199457779270869260052253267165374559652222073293584452443575417896999778980106541635882421905808742133368053330472692891909940898764691299938458133405606681898576185205763843122242378874409494911724905408896916376245333066323459101700578305823388343458060656414064844984872629956699235285615967974652156456499559083175586484691511317916956084103688342814070609991049734795715477275254871111421477497705558600107577649892893928305659510451135226538699883165660425467951964891934113333053692874923182077695253229512977538975464822510044448329265279472381478167130100564796968635844616465688017506486755285665778348086967231370248077412422186981637752626865446989458131519594595944416886892804357901523781834743516809389509750802825764351633566558522449781278758238541903879415842282970649633015408742337190028559614503517264130500959065323899749955541695215187070887493829297764140694055212014621087675747054168245214921344890281751351470181803651423424203701638913060435689033004495000683755696942963995203985777160146992289687927907327102032577181055797615111108205911322410768288399022825614345233417360211310902777794323157094875372783838771388848431026688691771450542216071615477445116207057532673130706478183607043412090114001466871023325531686420641495292723532402142159715224838957336068096186850854685638827272499010395130465193318611458274353201687138590700656497115977145281074408557704397041275723440099278285587428382423923676268619735801004210929295028652157491312102890122452432334372928407754752609452590407662644850547122320866365896158310172668096583756557788799441162889940784935426463012254202472646823604449477346609011585182638469098849060497026975106248060651967735769606999513509915834385706376380375830005102786066735376135040023187180847368541526844114729534574696986217685210425986258136303608967947951153486145952994918662404041129491287389184985991096632135560639305552866126535764540953641600231556700689789845410619846877105853218183624230370497994110577057309257530406671987000116859727595893966389627084731526650120140799397362079239185619741121681752248436748626826495839197333196822628528118002802238004061754243392512577267662329171773457106176854004045810634479639618628830746987598469246498249716431555790548986201989222204244353196951642282875409688047433509220599972545503863720792647750498656471472475696172612999276673514176052550547439509084998719201371399363468099058074923206645452359747800121880614207426493321303783444231855551447827988864110025088073897593899738704796380486693443887941243641741646802947859094985063928252769465596170328514125952794387295709842489275639835127206170171134109095673994909334543281667095168757397267498354164291491966741092070346796596144532123035918375500311066242973780901607118173279319974063440452919925099124366049477769766059424338532158881139662522596581429378091521693806086443614464310452637601708338531823987917900886610021403618176547132414201097733418794936315800387661583656378531193633399925494027419684851967511204886764430100831717639308102720919343276822561001786597713176416645952574430650939051342663576615666668008346812421604968796932289736906754205961898826086221919266909886770747801585468995757993776498427021932597079775012158502722287570244732092450807213175831036366879401440183233435091850728440974258238871053164259293156373694281895906466418987177195615590825225879361460566153369945199647398821073240428761249392876620433595110686083986134197631639207423983661852609813742626967935592465226856952923414785210984444950029997699281746957951634219037261554086105034854032574142506446162088691606342951764408245524265497408879799555996199459571147513999681425780992013429010580270806070413151237984930225072699487349218696431477651142914308149449852353871581875683324833957231542959239815612108380135057286452463898213727070559477130212886063385266640160898618916516616479491969426864852849565138744457511418010022550958371130628872742936627436464923854806916258256335525980239740448318335669212020413643225638126614181820903939147875523883899190897153312760322522474541379026185855639963246693138133434646160783008394434306997217273144977002783937720833349368088301150914908609256160081403051787130433072200212836899166180156906310355318897983658595156003698521454037090070389186101737008042089172082901019851142377501430372808126562163055421498279495678104943306146282503083698503742575690760455003314647230088546763061511369339935716651662123282030435181541118868146970633948843207925326117138588316053511153191278349930862333111804393784319095590577699765030983358292273612785321203631129329140867013682286489425249462444660584240397637611027350315632233867744199623143070825312009299426755121751834289735483100866459403548659141867579669459252617017134941570577624327361985932304228282525542145462767139847812929089620161351184437408460168398700572950109661968416843868615503331433336711408741140308468914427034426984212046266306534438905063181997858857387502274587081430703429060349307833527040933059003150252872786868659448626025703908886968266383015976041202550457283478079712712704623618175560215667806732889345978199443048536774158717747681618981048362568780031579592863789740237243792020975480984710696080125653773341430945939967028198401207601722902497853627384529152007433118220176762223752685865970427395115166108078229744768971884454196581778452461799319819772297274179282033474107705012848833356744066131714632931979902307816122117366063738659652861108865484160414590039315567130008375957712136398057251879411868724695009061403828591844444140440308022805351795652832707969619409552673670001549226957478440035938955561702289406951963900084718836047628218711439514933953467765947816182962409915938000935961908478536248255985985100604422039591343228691476162561715360278616312158454571092188177412641004937463856983961966538110933858990757040597159500357636183220057484356535501917578687928393371647202094140343988511153009508941323253923194541117737574356496620113397142664069804169284439026717837848329380774800425219761979160422824088775915747448714475195629379227372862898568371068675389110898384774341040743310057808164616749668552505626007372695019271119909204020894887198831165843587836149772061626130368575916877941599640812402427907751042470883774790211319388661500778426923633685481791506554141597639243809451700857290526652245208824751657445137331266249524962160672723232717136093827809475944055736048970912184038512129605339755474577245939462547080607827695128821092520875212094924941685797883638911417736524340000450019584911090581999225986602892901620651818395892914629816309990976755487518538910663949012056018755688277720461972111789126113257271960815020872765107463664354424208625814743350859804844593403067833040609686315832561818996336097679775804061680975857432519980988959986348960911901251888724990030672741731766229814300546479445510230178872534497518594953255652990101925321075978208446148396904660770779337762145063130923696805120550793306212559164543097508209165567599836849841620510803580262629727247894129390798044632339447725045078156203052055861800012916129374154801980941322870498243516825393736202146790274041892249845701980381742596590168730406507470066420508401045143067943000344138545264399283127412533648369672838896910732784337712584799043496238620300742733175337797622650942259144081425780699584317421291617974085608437196072020864582485060129361126539823848185570881406496049396442061613771977996464105968180274507198618874824638865262131118488320190324760797973355871259892608460875466546288178354866585407034953582917398623021063936600064928224947262622076614275899952597599393881209081567991433968027111781932760848189717831295744089336799314217304304820791152139005454624147300833482090429207005181654440296414903754256553624779542788401823541075887892174795318262413856779736764191583591412865874847417458981167643949605722364499892517620029597049459714374822307015339432837401696344232132572314306677105425656689297908819258799146046654324430405411278608100130738221704969016190806047316356982069949593906526174420053406954124892349256238461623398455229871982043378880356829067730697760878499164322159795538718613172044366553108774616421048299775703221090009098728929370380042431607350668773001344674169789158449853089187892586744531857092602310688696800703500269257996547333125110400949953837660416195247677653234704618911594258009784593488354424158997495903661702586448397556077844179417145348656433854164647499809713641864415813706351415126027181956439307343279452866673687968259875662478952443556563705031859127186777243861912677671762643377030784785720658189810876684139890079190824367576020582485516419926816725162077781553296358925209289494113142727509728092374654638265578879047124710007971352316665036673174482455755452630614177921417620806298777118057057637768637970358769597797017959820597478777870228108709584500634956636504211882027575398844259838564293322056097184661501430985852065502909999375597591236057817427752820135312336150630045713675066472049387162228358520414694597868683348732137431674624776133675214280451931399124079948027025126395477607497956511138067043806284552175335465755574189899543213962956593893692572663382213296075655720480579715792955714808632121175010108357379160847982640758130378217933689318400182571334734455635738932806973413379315132473704611545917272529030895628256793856371339015409160954597854430540056537286077411271511020573148130271833419265522573885225062629385882866458677187948692805739466993281172149402815524777823183266878690207613224393953768296659788593820026667092474582984703401175177725916745973154650637830713726451810993030496317144132854559178231346315400154192224740126516071415012750084581792933221478226743124541267558458516965536352668499515693073329484500880044321219981288822759560856507712951074882182899734431292624557181161500651677344946100268151008039348177709557132901562925278998337673249785687770338379272610208279899835247913215549716411879820680674172603594845095760496886021636905097750037098280421996149859966342659205396514872961372005101024276547456670411548762215953986151519770271478458076555262835810227824122817388300239982030265461267459926574563526603274942226822004085229332543092737375504658026202219168346612240791803059762587794676993445593636382079317145581597908712164216426656551225523434096924051793187814217147625225539670913056106373679145332864598028059439457546807498480860060386078151995517111292608882609559536779960121681300452229408507146756681514368957044889689676673306481277374301042288974550209400889350666507106858236902809781141076020397468876099486655732556054747784463184748347975168284221357615278692174713792064423668297179859713709748889382710266938611587499065468776004549794082788354770111827070373895072988215355083521975651399347207428377746043432095801610193092891867980565572263920449800584507168218011848627548544251245525852563323539298466990751987114635240458484339384383081383819124540918132180374936544484775039194773237179271842797609090457270920851656998599500130662957217388069277337946627954031448401628443813068831787480147184308837442186354639784375650753982458804921245694998070781774591528523401286331257410614191354800899512335820538944154578013101603289180213250185566498674017693329266455793263359288074090577121558905185710500759626715170994092462531058207231267863518730295687483860008318988818881233007718222947355155119898522402719854548011868469786099267913660918894558014965625101228823871463917722346434200756419828209204059383736781643455782266163186816514234898663850660827024975163860513300002597450296761395493475822597735317319709279695625251118635438938892241372100878174478602129035874137376257331773508639459069621995027707977564169811127423793582968608623754847440818814323611379596035315221819347431527212082445274015385774676984219844967750022962074217037413362980000810512254276200756483895309986320503374543343462835834270002789495721434905082401133632281862771116007929753194830477078446286900620519514447852571510674856689599677956443175462876329746996252759034730730387223806851835853633159230965075061770022939277779485279876898816827335503633882506368891546689476610706032792000156496710895269228243323450851668493898836267435072276394314429599006071407176964401907296181717306686656315056911172977046715601838839582656411827409174912540302265689369522253103721646253134237920873134713055009918112483688615365371935815746720093483215735806309753184465328261511905030948907233677714087018186076261785457244461908881336843963235264242827463478326557691259658914431599761451683786640035038643361383776896227540746388262946977179505076204916296667882954398838398573437962993892502270313720189503217718657589634217232634803576094310415876814942704526564980990007299907552636034863081846575972810561443086904479524517183710320089869522159379662089398199172429237037979121645442351367624924720866795492665378374064778074885066923126595585132453043921060136785028837577382231154458917132063077764469613390101525190235811077233484635528684740967985968173874900391696473624404722499842691776926546687156162855345557325264037878057874794420232831041430758003515591863599252865103952879623379168488984986907447671654755489437645849666563754176842651728535245414309332296609592275457775014756348089850067899978200619169376608184325722847057580394044366235982787941595733930876718265486245369670745254842225362423274347609805648187600345592797580610558043404270402915554684229550384191998615612446983825835400058047539546891561129438289717005084563571396377422883904586118645719733482244556205459505997820466741203935904835253037829581120407310951210203663496703696556454326991100089896883292795009553318183667021969847902286346779503233349695878557587376374549361435691546368625196745641756211521067519095471692621071511824680632688844335341880385836165460730214048390639699682413522155844438976944086035012834328834550476186091598149757996922956305255386592654724278189977949017914825353560720126883367855878855405576211887853286284291240841855788613138641006863203548567475430884806819568177251125371006844923668840232045519185061764071344096538077737382355615345740248874803246436227394322103871312729273429593518689443671906204999950693599520153916673756289099550539497490086000299485516288380994537281522869581104748289514715513522831235728392212991627332467148963513431723401752761662981286467593306225959412773751117166259699291465520504140365888477184622391284490141814883937048920282718571125618664958509574520487792691021664670251887860471631079650298428510358330826100250019893400171526307367324152449564151022886507326305859513064270478826015707512419563583317596021317614102820906248035509389715722343752037240550968813542997872751675657029448109894311208773023611653956562258908056069107883716783923446467061505667052104784312300919576076073751314121301456185972873701730036429054338797083381466898194367435054326529116236716461703364257664210480947485523957786352120978249768401135678425064985980124159926063732793258008048693499808281224704652460973712006028209249286207934512049513894592299602834384050843778760191933329304351036854050716025047790915502570878316039816595283879844032589684533093813468564465718642936349726346421514995918151729556897088461716445496006686262433834824540647382394604076352102114300334865536955109224365122152076219758363277782813754471468942703409550926398104895099310851149449575521741542089493756011408477906091542464196948541537341270416254540344672597660836153918190946619989275215270909481692132782877982807603135419705627354016557373679927051029978804972120913264217745481255353340050248089530848454492710049746499557970107058918600862101128200932365833683345857462139942742939206173809196402587104437129090955511772602910068947709210164367040385046078408614147850463321627497379423628851151519344498929742718222537661101649098729974863754379583075446590274986605774553438130751926187241301221055304766040593991272641990788965507710477674187884544201538054826383750513926214259930381613905615756747358778716744747683649150586136631851501014485931293663156007368471722078499516261060595987997580924308229224863728322248768064382095061179199097950162981654056017428567109215875386582566263020643017831829706697063487918883411165783856389792123943618041468392627124846137556918873224589622955335161438046073660147609459595333421628235724123347986806113792699175702958249298815823587310831946304775240656058994684322205990572138298828426337238618072614218026868154509185030127918706273437848813867691398371296493101182868481314156519998208065986301141634421384966393097619809717331947617811994345112490064475540476316853633601181052076278894301507090649456508058978140345230647477476105156605151697358762680882952724313167520701554371866714346206679545659277410018927517074160736127247755284512248076378289729095946814243931510512968172825273866139391993057916108851512674186750166626587816125483250329445174417225866709827850844986641054286775859774603138331376729823554140428650552479197928276198046463591735564133436558279643379825573438070090086179211198463965638715023945789372699054818523636948050420420232268181270908492081017591136127269155408583070765078594115990624128530496789872375352686205266942127619265676538821028354735239514838761458207157546157547043575865578988259182436190760454124590014493906522257140371272397817913890197788395094976116349992399616270227555696355268336546875912974951678954563576381991032634928803669525502030207084610552987038194656033956289728716774645000430465076740655934774885917970917001454458620780371467264087319641825825212464846239779366567908837777207961018020621414531971912905356610452561610663214677781047431421641769364620981522742982383080048970053410241805551541401360281692153129284111755066107412088698030518521051635893441790457716151380660036624917415499284794230575239575072128229336481555198245256070645392689996058349938330529557362483376858262455199761501109658915937751172989216598816822378102930960940561333718854444411985813252106385081016850108013297007858224589312368347692525414801528019884265396345567357690417395498479102565512545613140224002114986202911172821296135173212654204849641638728817212942474770420053709006070772952788267855913668537884573915766504833303276186015422416367254025825426337339737760450411200289832665834104186447224291245047412750780159534594546419243446585248455354542069106933572758656875988696276154508531590035688243740122833338742081603889467482519320266828856696706928761127467741670145213757942520384560626780326132033766073522837978055725435143445124327716289399949824538512576831213617119311272148275096984835797886118603913025863649414290092709753636570429456113051650510356573231100456064642063342642410544573437193218680619935649337853326480822633916704771501685312065372447462830577782981712829767226183335422270517659565892330278966579300133955470287189302106684792056544616022026746455318755214573176650708097168396198613074404442187442421563811696624567766193047122366828400345625545407986879359301919178838447060259669524672101628876798243614424531503634997832234043443088205992771916668550712559898486153093405582666606073535857378210865329240272836459702110682119337319235407141834203134175514718909451752625887044322211554985516318803594679136313978823147032443255251346888706945562829723444287903724639165722025793472983332691867533292389445470628188612391257184077277477024878900161530525340294193728213403288770648538870248183638112799405338201230000989212580282625970176039694568893411562017994783864758362065373970708326596398637533932704262484776431011658335890406504745053115921757973920356178067381066633710604577901257935438346332763475834274509535018099223274361946876661147798648971070156841760863108397751989745135320872347694714508021529503183136897268342549807153066003777519097710681691961292155103110952117373865912914960473737041518067193532822986017192245821922857938444219803166964417558802948967614298726768922562303545100155697280045639712159342481766974439315577330882406840970374885517225782951379383236892432962200723116847650058867838887553782803758251776303725765672192871612764033112795516816367005046843124461014454251386549811401059598332284492222146813873982132054888392590860590392140509583753805441940045325501736576785888738783324070576016079641324527814939298026478845369409985249092494178330600076579594831961646394862722603033267374942741138695700536499000047669594348080372085095649588894485772094751415660231600405548029911872243004163255698764586948163308226419752181054485514113482286835533768087531712679798240454954647395136369454473982878838439070114717431032688319784971217746971632242644523803986439714165512878520043911512234159609974342059288168023111144608073862670818927833388099173160738453712627947556508339512434202247309631314270662670626651497736880185575294167491989318329211630682187369137833334999321737295036128597276162801635316827070619176652754922439543709760755831743843357408068126980023955881829680350404722268399381831200563741260561732033316138935162249666683919891859672336505826348750535824527168464949528463146167115755765382192870096211283890087205495800414099329513986572068389649129111014992994920938113996744668778311149933279870691043429545068865730237372140182592846668341192140940235572863450886357977351707568667480853100290829266207438329537636506814236778473108103142812560135674147657230313058950237814559732964858599357026054631176645142143388202500478937541810947020786119389968949098363817065643503999669151759040947520131989199551315351830204896860277231130785213924174840706168539953852505703777661336219514780158213907739926891627295432212326937487238543140632516655490566273971011802076316915082245079920890487631742857131575809776482968421616666673231164846468720718767611441043380148761988808999889078447485131407548386618271891092796586184413644357155027096156995796719282637651760695752960359337635776457006524123342858267878127706825123271461991649507314974509167935335083130505122624404682835997146409138409622836823897004922762974708392849928837251899590441734701612417702248625937969075297556177626125306241476174787907549311838566589204724819077261703544701509044675030630394840809620081130607503884396192714916112420834740205880250185296088427537380460845286980513345233212270202357763173556221511233532768971039174883103032457506668529295415922417712789936251272904467286252893758642757788904849026325092502458611112380733056600860161847078730119565268889678281366420365128805613364393704391618771268585283792681929528663433327983277853184095629712509905902020073918566916280274540902741831726232380340072630708944194466033069263721656285090945036426207006757983772725448049846319572928232880224704216753046052942965291925576451608159953072322428121074725450242028877784251315363190024656857130164324454026444447061216650875761918111643932122190297673465057863494132359910346454154509170362259221700865946019453139700742192397262313376882054264901253457117553927080472344387986673321624053734081563881070722759256548560140838306021540742383986046539657158195498178504086167734677519372561250579631211172725173641816071192811001211898557419985586149869089301746088372915515525979306935446669128476751124049842417389921959896360469850027957106493875696339524933078851048806152448861325251143985676897327125261264936257787190072092291287086688377089633894730731698346870708903622971257221845523983493710924615785262417190790936791964261660309013543799342616419799309601048083647712985617839358568911369672139821270470239599232527827055745220367335136102571696566492639466905583636790360350024848340543945654621626622038953274277831782710042043279139358466126246512547301015251906165718228418919768972345226016981676736681018010255409224786864724370640380039774297302486074752294679481177009859586623376237787022146363545050141468509976874868633227108948511620502559314731992445795398950605017075746380395725339111889182967791477508668054744648917816300197965407473045535148615779331987819493246028907803795736405570725113969538910668151788896428131139343643476414709128174488618424404592286901789241203046576436138588113199422963033438083671415777374509503318213989849156841157307950844266243446107701940224265687221951499012303996568788739940291524282841588020148306799826234418587979934435521351363300971967908968814363791976948725943826689538022587386103613289625146477749007291496704309760976670104088168479014008927601955470406899771587671088346917361741189915655371285174653169818484497060635282155674070514953125212577978135593339848054578455535614159841494043560483693510666471438500467661004814500451162611089360078673852892701292021048206927127844975312682387172923790158137562471760645017347601645607712416078932452989561402635136135768754759012045498368180378108968426187683795172110427337926607535649184742290972673490160452344283270387181940083583484583894173463658363412025293321211388443868901050133964214891469337240680626391087227043813480132701376783211689967016312428947146477921596565113078561989142027908444074581844872954431249070373337047732330886101328175616161939132248097488712697813682158431015669009313630855180765404046514925603946984346566647178050637437407458522597570544354706979198907530943498546224615157158716924281275842097727172125789777490244768114811381163892731279725556329878055996526984940101534625389678392034882778705299624245310695810613910642201800617963834395627447817142109196346130856942976731608586626503079942741185109475743693247808410355440625417021297997543752818360876431441276890773530824554171677155368451186579884566543451871685545217665029057567545879428318979239150364856372056751858750172352818958339500922706727702444176747322939096639314932042620237506411245814294785753980350745025230895476444236802629886353990795189517092783364839055357115641940292330347454581692042884487159826980977636615527883382308957776347926083700004032381100439500181731807215252940080000177525373601734925040554814173497623476850893773419768595151568406540873899888963051663601566499122527817187875545977553196434036500669241560537082183775177005246402620128967100232653828350570973020696853985434540738619756145418675224918392094357588866563083702243939481833069747757483588505478114265684553946878052797171304979035355531880669361299707622638087163492105568290538535583238380475214251456147525802489535049323271521105280779523998432627482310022950832308179207847202939243502068785895563370487696818638308695830408138884823854573170532508580248438202919667893007576758449431658802915855431717240080938543184423690398915509900758659791597521841813474976664797811338475352141751960041733976952413740856990701868964119125508559427269855072452636257643465933072812796399032806948941315258495948813014520342105194453137771435570083581548187547028314459446609117700938578976414230613236298343226889575333705362445170806861430817343277985274158599675629574147513528012248693510394308901243012224582532544304079891620182969396555389175241733404883638793371307281262409281748049727412697458083821983227584681570937391176034127055389685662085445387122660685495558130043467275316775159549950774804408034335695626368583360094593374403432965290052487502873628399438212722270426709897648060521665264341657634222424166428378034145581860797984337437463778585570075271350673652673890987996525399536260833103725086615056329813976984565452798566902199300588494621197267808639938530014485602626985981324815788002320303865337074221955504894726619726090102962999666198228207920384118467894470661793292222607358712654798672722106504803708598979424102683323560209385246693239633312141042942245505369735735309225661240654149097447881306457851403236695462239675909046174255560543605498656238769849878838487105008679822608552058370993469768801298054910547551184823583183088020367324281882333282739264456262382213494495749729944437862404520569335634843988875784624181992456404048541587877165210443797626207217224430202171078381914866367058717493052936837777791060052436208580608359692636763437271680122793990902644002168139089742046340082864042647229245338383393659447686705858211879548174643456707370145170843917741367002518041621973268657201187713153876961742800973621400515075807941872825407839782157697587113938648891327428971243661614161760468900014531694855192351803037716760535471939544964814341404041261593748315883033179804133355063791363381407822184359224045494176341784822170010987278057784110591199736103721534307172647072915409729928941093307454089732878698423219104850573863048992428933806475744553669037004462674853049970606953122056220312382786699140565942359432608336179731537977364741876939233926936340451131334733292311056441353665574363714374147659576448576095849955655912921768246979582653440124067271940186141776703080232764894746013020195828268377691681517662856762531897515429989435960751412823050425325687051051713455352248404382244960733324297211757755290306296582251673589498097453644086097627709289853998304255723737273584607112145666967475604974930547889187260646778056160406982598086025866474233724862789410053795909457210039089831825788820910997678618419578487439839615053799877171628388540005287272592211194097038877728200699803804464264433850616689126144672894784658972328070682181897504660063948599248965134248504289425615569032566650308711603828282027537737362898126856010639989212728466963202301288254815964135638166816506529834528290367668569571335045193404099821893921088696203581724425757652274784143091666601484398650077658689869803078976617901191874233195474500151446774145369558092469453502346525316141938536487373519569482614887484321983522140757057614482814503408670767017052260816171605555164227649711905645393556111206333167466832351642035189095261577147550602406767387338129469936627989712541214071283362892536187523223747429232372112890914554063221883315602813902613541764444200353574502481585184357703604591319555071344024796342058611567796308351614314271460508391580657715917670196150731989923562907807129269930852655987403272845519680571433250784698951646512085952430132077378004150573869197672576007347226813644293097155697865696016575021052212133461790589964659880405879123912189206303494174780931545845686244821595741670695442124423408729243873425739259760859260187614497104734009256026632067390816250774223204053183591337723130227339963416686431204715123310675719571018816593560188534677578577254707483629586503117764244145890079437820111713066817498802868505668324327529065749692140308154306407416116000178959207853372357556126116316163466901541525416900899300930649315206793104500812453909877993967395229208720279133245835747877869202744939084970580097184036883068010878580435912129784456896864118970200073537971146522866173101941111029485374063425614964391114819695359711691978501727186900874543842877798200819958174200793748145932503272210061067922828781326832249596878320639983197390407802535256185976539354305786228403644593755742406708344450546000185247484233661188857691373838814677875519601629136459866247083007651875023835286192141248797385616303507751755608142145476625023557258365991956140615436884199634258319916204549877235741885356390916861812205954715066710184760761817827328000520749290242468864138703918506347588860118218130365616499347576580220613473076711027825961925250104547279048240794745175874881358222556731782691140666950426269588214795768658313359362781435861699882624988798869177104558357030735431714491181372019130113992968390515943034948828172896217419089575276648837602887639749625931729645832497469435028023859237172596963369418139370964177451421005698435339826004953778127447038301806990366984427377751774291441608184828819592405387910874260904336535510991881211678358484489864783009895912563964271248278229540571778296037868132150572388408837810833037784901601769741388952400191379731984536736046615552123370405939832884774740641013029981064313395496496775904728409178998857936410357072527257804395704198796634437977418515544676079492364366919883810323172505352137407075454129251029052740001261082054246986959765301888267243878923140264518132224612070846686682354041819160034700616103701046314914876512833822700882231120012721059264722307107380656451824443408099819389661706892753537126916681752328433063163006750916269254626766503167537761564310426909304847724491155110628562476539210559584302875197730488309636761169056627638743788419946332122449215753396180497166835315939202273516839575009506976426289717666132340168721258417568451066856362320828166754844913424395383024805287178013326193859480669167020304439196785605174658245614443780175256514680162678838948244578604103962972392101339177896450847642623180404414959558306203587999832884419058029752283572060391943798025964876676975243635187810923523372254431888362046378470815663204845825613810241582003037783079340657138041819247575896211184842080874328584656085746828089529820402624464107072129403571386569067152276446774283152276833979596364365607891732187515962109288502867396140742739958517520928634963965629505154641743604427649475752754143514327103125169406645666676506222296192204687132460928493213520037517006894057525106488626753452472742501601418809721238176784958835592611971254255501562664582972026835243265128136965219699164547019749217669999848523584629684846886278891466002948121765377226147077261896857951236931151447060239593349368847717117438020985496579584101592482699198595246957463116160207397952960608737639629775114510034800803009658838204438972383753623719587273187897576790675450392838207840061412562755028636825185374373651068555973718043313634262486689903120967111432768645659772138726407649079231937279315451677156397165704225916237588256203969268818851773463478833049739418253382602805827003220900591483810479269174878595843682526940706797646238719493709789561302353105069631852278224943974645659855089570090279400588336400183666785830402665648154827504376683705813741312178866026571631985984310141971827225780811278981480455968067376092918209167011750472014210688013817510879085267257270390506680440476749279032811021425540584802130887558152259232710786977050018325899721975636112126953327037277823162116810664214989379578223465082477125807966932907929852460203935812786347892954982072105381777982094398472764987795801473712311007323829863390639566234205265248914500952532609515556831408633366673247682293977318409840543220838132159927016193500557424303635037499347937958292687431743230232739767247276886082946324762888688323279201943884483941341500259390251081831000851629524085728543639365322966521510729599156602262855919173894245198914992436286239741640323722119956239966979727876736118938569470937835358022198867862344965998677243189674925815963613392726768682842041476868050730914081419920466817473979314960338454962772959470627733479976449765296107872352933475985850117738247492955784281761103841523701371163799085912362600031185936393310412644453077371791717239929361505104406873000167881895254577599291350223139405264880588979767167667829389949699384984467686110220686317453563608921874391700340320465556170665914039679416858926098893664008221454127613569977641345160133954987751910640517229957245532528861139322119111801397798327915679947209148849567431449574262926424304978755915797328005263053287372145631230338592356961054751653365048552075873634490119765737289835869268421061566196950062675728232075185931781451695008015760651540201226780400341262311880169668833160940165492522192912684471240064006334952715697479266975354322436022069301271312547896117574047975994969671676284074521570383296039826728125607779495819705328013470646396299481856848486521223830425084882125111252265510393124691537317223997903257313524833456316306967669359989916557609197992074518882481723285160514452224217762747360054133263432860380548494206330206317607550179740225841373453794974097590358281137868204877365617609422798090706183261684914629094870620308320735661214166707434918019439342757233210802307791456070802264854736345117690904269094795089435706203795006488109213061814272471427045416983403658851386323544131516973456418818295711286804442433688895846710493158799764971897468836698514322876298584255735697843136856591536054272999754952957014549596366407237843486865897618037588266087912002699337872055093761467541490621284374764162428392124577199804327256141250269361722577495026168602169710667430976897432316734278381484576071715919095450234316710434818784941001451819847166304114083388201644518357382584938044116049594642923981376940400972012559797600376870465888224413976660400836224787384814829961952039271168078570572403106037237071816747307095783203717880378475132729399131318428357721599038844511945340185584308098238401285092359561904883230078910821925423324862327621710560529746645097282635447216628337830690762790235426153605202533940520366697754080515843330349610949872767648444871386731799236718712550299720575290878406638203338422543642610710772046004416235619411135892113807875130988630627949369886163756268926285403226907106928772416526625649408639310504749482719298152624036437749639799102728816132090614014686594849712966526066841514730182346327321473357481421798645138061846475881400816633373254058040215504065306554048243366136638309629291544469417010518194644123221310986655561465048961587404817881724532905968207578569441508479416103208878270907233069812564007372108367630156502028580670247344527090660883589906626284565156284932582813354614996489474360963290581387779069529758336661507261342989342464150664095585185676516082623565176216479196719344063734332095006949340022366470629837071326653082176236035231467349277554193888096239664090745765879909203256816017088419514051369242279015802496875255543686573023353189307719448119653400082853390120693064381176662128283169179212296819554670538476856933049161500313311993039830194031080939884781307362808631102227910550003056854567157052927615641665899171215485416825699957169942199783757394559797368216767626393493978044878779143182166096793177711219275945469990757511730978578976168370718174969486981652696225372484030500382910088921890517922236218667362594451852114044366488870477949081752474564554145078500440571470937169062037532109000829150362880453208867331743836225771105603997918078056457413890023528219654092454180592987641335348842640437113177821197500929818860303426944440625843358485547247340328476658945470548514326181032743648538749068405570298230600303678545597855813437531866985877478538072196306867637449805934536848639331719522382731914710852084326190361969673968398525736728462788630252762333498384909585270134900101020689429923145045962802731832741953091743241372072712905752331285688245888507693408537680826363443968199421658338146714517189947098663014763509458540645556976422968364492847864178257123896986855659314810703189909891790763178982387786622442529390892282827930459680003452483125043000261315103651384488675102226842475156006274580899889238539795525125044832759386819637069543423514653078752941037351889259047051905079803628662456085260349687950761350082319085872218522984964007251801908111796493372415415947306479763068029840301654843198326917165858460410812159564377273442737326401438914030271173189354971208426016322585808402147712356988114658297162263646094637659399861100625278998202249234436788774156323177802190116405677105156821150373260839591081899914378630810017677615540240856648360979661168721213511485139003639328110824952675928535482529666716620644195274056529342751291676888984412111392989291589723333090180810216119835353824809496960585708024939940319116579034633081035308908180794967083486749689169847445573483505080149588558721473341701519932272823583917050976218054291349498815791918719376968725541192848852816974175216143728376830210518540981082879740365421803643660257737200879815997045182027202819224243808778304376711785102855620218113868172328059328949671420415809076180652981483296001836729261903491822543763866224469638255460537997622645064339018386296342782447371333302410284747397570568474358518243784983289555718779585627390657693094058881850877941943325716662101990081984943074445937616327311595952364319185274807836497091418886247068699634124783831897155934727402098847287976809720387467734094553365793347186665009116572974172321268230933253242634687856331713941474209840590439131900397350941242161261427316280660492837517972820528784895608103638880349291950128876769490552841190057730977233840184683351373359460969133831824066521946451897472005571287235307918261553694284397576602382098533563370385792069239973312882862033563840662675317694602063997708499002506850540788003435636654581709019580066848019857396018776323323145946795410235969693831014161613363647533689158929068859762484300403518614916603163596871012682181858194704278034329846208477952950778429348654494178446748578307933490687195898206438377311361809393703010790585697386838150000932418859253913359940296827207659183880813382216885191486111451177103431574748709103184961935514951645556817615353164241531395842995714041580576400854912169282761183485148887488144723761997937119416963168384606217515310239598805532407796109473057188907901942556694636484590189089928834528140604569412460342092470031855058457710808498726718020588123809872550234976409124533625333995701647742351557316314220772583093228540501086343887742387939445285276846032200558121688322075528241623113718946169290077033014175053855736809865594762744789183714496745392686976917811861629339802543911925277799572884744602945617074778113051433163550173645410375783723078581665183715821208200827571278666385342557063659966881831933697648620861526022124987908555640408419961530935054991529066448394849399420142117010554027722314273125224650119388944412232953521853782456751686868626685104051520215214598159342190469394147711892868583373259422464289068660103907586003313336549754067255637075928392978550014226830933365092405801763636564636158966963252919403400734172832119896991089769199754099251871546951898578528874782876505385819504251992629004145099757354152398143876102124062202047999923370189134428476575511183980094718439772035736608530403725003772695423926380698261244067610818499583211159900900731670615713590566361166772038110203246621355711991365228320134832805554826438239251414634183410561621598251932742798772152916830071059637911309046597328455737387562085884040076204016216298317143981741459026247555808714559001860363586332606446420175839495948783194073801664538555423757813953277597773991461293759464843730870134881594711997272256520883926679825157952413158252729799990548678629675554629994436542786168991259204603218069545660229325408508655067894551981311938697251481149488210866325046648281093207221358071096108621416161578477344626930757426873413507312904608240328401653020908662172354089102674943251609082769586874689576519187985775946165854757078105486395178272706720584286551716423546159731768999946068565609778425352819088288285200814929842765568819609640989661417778369389512196363777426340616230138164090560165343616428408015510527790090535768241794958168763174224337027718094551369807510423198924408211800891613783692094788434889632711181974566870070110470233778469208638440198650265601287427181249275254648496804522599026929197110975567657818566600533114287991035498670070901668894810109124680302587641061201662056519151029736699136576831001361275301758851863867341197624756955028303846992364516562293154563292862137842938746890576049750808045198955426735963729539848234514869150242219806768015773617847742482634223987661653180538925724258986006261860832369178556257415533008228363476571900864359028414538195427674858556309347385890618920576214900911097634704085211542729192708143146440990270165234798889868970292454258190972202887717194277607333472049816609648994611502727031998802908096544706436739618757943326554123813379373814893447272063838571591718149480916836138773914925264194326509439903165924067240455070178567372636375808075568067256490321007251404999809602721657043131369189950791158756615118731228555795145723745831162088885688035500302974018863396463750214028909383927821466352477744989772514414893100631588489634564071612180030756275963633711571032434558657239876172555303196191922123919860291223141062573559952185718467944257525482375584410977006413463755466355190538530344299738359238012734623787987087210078215878565180187796385844004723910005616053597298770992875973178520071174847753774360482882543570952732336655535579099789765828634023757386020201801481477970210716198358256140418842152910761104947905602642962654466170271590950575185611752377732948054712712236104848689242064367145590530469643919206772717610063287958124033031308180672683244158836515165486132639527538225066151671054340873014042426836447381136350455470900980650654996591709245637359212446989245323002964358013910239276280741220364223842505668198728880684637237708920826995114625572004199749119697129677869263866377018021725776500002083829163585204535027659902360802429321842785309147457200353075494685970221537865913603014751750656686881255890166868569922072674283347424973014380496061377505023754433624386874236945560416650028766085633374908185858388700620030005219970408854760363882779146516197555213009600246161464473151484781513545768205411536392068336108222717195416297226919645458792001305555419385013618602773557746406773266343933261329502608022896876130128278059490893786015663489642002113819584256918166281591415695482573419859619609691914036596962673259464445178256559260453381595936048409764677471616933310892565351134085203998510832424876858823485588866717474793403120490138854618032922442643510924777126666591302950533744104530382495334692944951657314644215892955923206316432374137254468885328995073288801080792317040250907860489669192690929065043343014162237752285976467184601014391329690156538764414432383039041478048602870961106308035336791034993345778009647682309212408483795279282705478676489351769902953218679772199114570045778333050500879226426866813255174234370952540075443871004753570038746047471433859897053018609533194107315926302622411875488425944389875440223518672577911407092359888017223293970870895015672171893676451420979563907264989370653707219371879085814073212028192494810375473124345605575195213314787425571684507772542048102853004992806918054938446510440899642806365740433706717203732969147630225122881973087227889920146066594636684481860658001519085396437416715290532134248883412588864065778226065238892743131195342501740209556253545237805176875870388437079041184488769525547120060557392354228589102726798904826127839923642512083239643673401658501316810032686518671905982875762818589157141726700617658653392793170057111802874377500886421626173385156656951009786982943844914825887160673413521145032140269531047492747520197523246130281530797931576381822313343408151260671235486716145517919537773162039111347113005075302433919665636190129779425693025230931750178623421805122910738416517965509864572737437315933442123246667523894374272455655639180174679629851591894758656264956382625024447136400007427795924431761203301403225328830299168924236111902951911848778112524374734054504934030661035929501474328164567591006620674876948294783023958081242998988304130803476620588039602705669616454269240201650006507788505927439290756287602569219988850012274885119314357509240012683039025483439052624184084529519612222897146787250261685991153519238158559747958865137648281691172044804890439471944496112912617262346876435504066059923675156577322198814763222241795268856274685600383238966781048640995966747007186096527831758868056051412433557040934010398994547047255537152979676095270214270188102294150351824540170065831757007944910555982497413464597265833739028987451736122353774855589867029462399573317385276888297485791646435909378966032916512917970167913448895975121729978279049343863769520819793896476475054456729811673156569275955266958987460538526061172310407064361547439921951777843338600659327045194661713393754053194163109019878869703691939471261177871653469702689992417696353793979517347312523472847736610152106714151574978584783994169644148608884905516477082251591107788280157158643652747223116940426991237390647618907386470799109068469890727804307022766166654838116532022226104796560921764650668637469117732621282687959439924341860610314523866985072916597470107458951963904238575630304929614785182313072433465122135808254624415634055584465113981816792112807511090932542379125392769462784432291864208080880573978794607848287463432119716315007346442922216862373005712995544516929492466384379417314953901283903406780676536310268602022906184228026261079649099454678750366121517919045506263647513821022351388136100442847898991824159685410329681119198935210992583622002265369707688465952565717095409445362507602368905723095614996466244864729730428237033471105115616064506246756033699390419493939243679703358436149019790043756259286792704725512762675961326081153323641671801992751725057133109284183965264506977874717766901163448730280328777565784757999519030139273537626500435778090373294271482658423417149810298902887790796421380010940652119520932544985076229920817918671259311872404542694037668714389304538469892991505921521079189039028759793161541502166044208005557934333261796566210628270817511803207357531345391488065942111050558245527951313065948209148042410847942563175879366237731335228482568722822046021860235329333208387515276487870811399477155224543787399109030242293318382162686938725443989417914536383638013731602728879493389971263502676752615178586872881599277973338066694759158723485319215094591728990483556488706484063120954881670971228825674422129698023655241847731074048904156655853623248963764777159531754552917401544399100604757270119590391329716787293010573001483736011931208204215563471566947152813840348283370719350827018299138017444688919215251251386728860600482411470164901814975640482527982939287016809564046374722697902515888838714612700761701097364205596907380711399709093008237280120922358323888713983159086852609117410156792127361368420132732776018869307116734071679649020960187808488765117936108190160879675087768886731257911994588456186474848008772053359517600185372039988485416916924849690561099251211299699272951298821656438825507162445515787301801119741347502064001054230439151350125304327573074511984752895707087348452131892356658813240795165226712452449707342858107339682185224787380873713201068155643495572038028181641582213547898874612525928114974111136967739904561419147914946716398294462077669328961094593138669366109338547215182467350070168147638922907319371396348660662022626704228174163638333013751848541031379441095099508487320124627691236442799752967444370599638978097167029898685513956746547603370493252436275337565561573469564100062773345468977942361518775389318807632979834320087444499576470924804957469465460377782084877198175614455590683807038337131107120195787384365782643253328449312139360961710558997386587821840519035108195331110396509174584633420043006652667793290514772075360459726457226185161222519749938346104023570125235477793019981720240004517188031882318125761921690647873406934977850581651274798147826871415314434539287336387441775401367788162947868995471623586187538035793695694761515053123712414073829038623966302977357050292440291373133267698660062454451840748822278006877201149693955980749841400339528781843147882421258356671953383019351312308100024595812038711230401382512212119616537877715607355153667861470613635176396327368811613033588558403525329433022215519184984887865784685245733085114696609708611358610610409534648265593960859783547027751742749061137210341704417544148975062423235597426994821924041882438498315518918618454436991147325184875876693165669051479955879383453934469704283974673192543526771752075854242391043458858083699196744198812422603551305827635600493878839456222227824840726288105197084277696756951333354508902357365286774942543941908749683119566704149385666771826181083921049951857372646800513602799535037053328313519371235272377609909887896584666780447151833429580427952215999452754800583177044477618976618952583959876095267644757646969514649130419615138527151237518697851760624694515632218069038712189151460598826762812315442213760221331481178614392934804907661849010011586123779584884613858487098324502450591407539629126300966997523459146672882725686235167776759454638115146579030650742421121558549209666622056566001251467682482143181688211060639478562270836451395495179624658510905554043649308756234390269210303801095721253381242044572817250178606061044807198459350244917516940578151028908514477688957344098577620172290589143219858116560459735960508900186499894731433987628590043454816656806024752470829689512230697917066891628111431363443149025288892784614140666492100655408288830965477574204145254990434324728004089856523396916605018371209313623760470092739694409666682217490284534088257532891262238470387455993338115287810896874048575803744308105867420445503744474705000040205951773794127092948734103868350265867714208367437322531018889210415746593701703182843447705545236055742903176425228367206870368790628087252450411132347082344363687197878455340123483520727256924860835395947163076676955367263461820171791247124699308717804660977928274377964194278779962332206006896727190848865819291275712743427074220986063012513559524278140143353345417633745312993049432057878546079377983541246544003555607325375158683375209052788816926940321343390093365936966905619448105143128910940678412500531535775028766330985716416240868130196349357810254561681745039100145592984146431174334468508777467779311827310929148931649472390831074850079112668170999638730664241140163751632622925953273707547472633280667807451994903850991176107291687800747295715190078683771507782675802524940945509713470187917279863495355181270885331029914670984132323674526315051119904345761702293990426565032115750082611304510383602209919631735607295137432802394018708017896159032627116234123569221362704836452806525900544070724950739008714440180827786900133696102727447786510483755518901212263947059018550936696794649460653778028504245262562505752477788407505595101173252732056015503904212795888341747048475594256599222276745002171828247252124948347129408081753425047959778632988104318201184893776926066501188447931076059139919531322196953701346444537152386294190388310757603695758652366058859646616836772525338154699028769551785873197309307657198924906503421306892132689214106144085362049833946752238724303981265857412863008086049197467101091758234027716786085513057669991752744819609957214486456380556587123411896481502270959712885560115138155198735823830138198941037866944588968062205850362816418713771312735696614502108210322721158496192824984536781478966191611390212149546075239858704668196777310381077647398388522145639904393665316172675074815511529650914444950504130069072602784656467622855205723148883872639387733462467820529011618510699861014864236218329431711751514680473215150066365142328988948646920693446000737914629020863218131823028423744860256580577522671348760764940033643693043213975350646482362560021771802421062669120046956571407842640774358547988646697963722965020012594162098449501348722687731344729306171880379826819058220245838594982181980309261937254363765112657692073984750693651665819981338440459986496644846618250879876431682151777226031443647489178483398283946336526163622799364757375670622752095150789341203531436198160037656821199171770490848765845268238139479756147001605515321099124515080292556167338689609412308213738469417070588733902883871757329935994444694178287197080719200024354794061392318301587080080475499512292931805279262763983790751606826522302483280076828065404050174609909177831895312459855241395676292853922632082926179336673719769165775922520609863535357550940205597378398296153503537621878064458970947154373770437681334336684232284469309479326554505864208053838053847987605911890711780168421298581604130842495914329050421031755498873703962658258827811820831837795821319095953365702901578878012752492664398942762486480913921971382745650773166864727836500411206525844113728168459508882072080858156962182014778626522098812301383179502780451775699923359606854451175237759459665504766390156113396023347454993227185017193407715716116324568124399093494517918431030384540635168500228715768169157268828957277556366559462351065414107065411696258199395446162806556557504036973407680485943553003251952060607644833364123641507874683928281183942935879932407885959497729296406310319605283447720822131050179241878440051197908215989335283368510552187856599333775036923906497990347046181439723105938084309014202374318750958945720817082707974629732864742323695619625095661784381554056907344467752410138798336597943632496185025219300256934999872875801565557754382740230214889283653125001129375902477891269274344522545055411122089693717976508090862697039014809183973590159770257743327327126946040774030024323047073554765815741794922633795344381467215072353606924478251675563776045621038840858191406345287951409816237910779825497129526071677850928729438937458220189965688199753439647908863605536277861675341301159965650126335094893526297799222951935559237715383662621442090978676133971002402202105902452924232348569568845794560387534670313996576783692615499259286932290615844109107280465399219974552442008712323230613719458338568207264096129427148897278687612175363024227275307496667337427188431668126755127142074854450550737292404552340480810986508957733269793877947196561480825786523818785327513042521852780435971120438105107308786016931968813136565173929720587729477315110400952037742777160787589088205846416790916246987883823562249078390706496311745337333055993640148340541645840494468662154870896568705719704292929374403263319109849052854720894492656438591442647353191359270194074216646508420015238576085447930000889037604519921689967135577436047085148375025638459625313625052096518788336837437650832290850155822670245797584404169341955349044352071548106645181895790626334166137211108868311203294835968219068354109176409618785036772210371476006881729610420688066463928652957820201011144871812114109116303804502873255910166964660507996877951388515104970987704652840826763653221130215284722047923739469286728592863915688388212456432132157916948443268603318489899803837312667909789800596981334440654803362197855665507226322559683698314778090675563859281962659189403436487798393580507436213419547408258797446146381728938547281882781450086089619292505088154873512372677685035877496593550338799057678624758671887567463691088157453390281177699225804361537909854040873736305781659583270583600175226311398736759970335463860590404260298407545538206212106993760082009695111788845019443471076180086965485478502992294648241918579401409109318534919263995340237676322706659663697142357617319078480574683585298708699459891708231683198939362691804089651477990221896661969108477300047315002537773990311377447633330375290022635961909099104552440208372246344490804848400669129357728767391853375342318403453681427014300806451096748315098795244776465077151538314721346418248214669602515493484425659620279974975800715003308911243424825541417818872299131875040161453174906367279798536857520723801365665695964152605062230226452164925327626879920715317467238927841658745289637671477044801506872168489085695665177399465397331359946429423163352925725172225583717315572637551560310500323098279681144131073035100636336539908335495136399899466396937464002261591152585766934237583068138683209023348580625041818640398367979331990257343424381586722373687948709623183605623239434132576819622681074532230883820766119383939742941224830157824201604413933617517364508959931338576203743292396426975839516653823214814503761494448648153885130817508106085079896563973330133504003423260211522465908051355130671159114371715475081259952963280122874801171285638553493416727999565760717543309740539063155201184837992700489680336594582709331637413018001031904844750777420701474801608742010035555387350556788395399782072884256675890920747730368659704734024703452799735261413695093795622345506570022223648416015915207599394218580024319334011244422197658914405945562781539383418274088602831361897196127269054534584131108256733905230944384840278296442674175955818074896696023187240101934074465808749084455148852054310003580666507503360670374290077955485749972348614355000299493114689896816744596951910932479804808512061297551250385126092868530274487762403638538314786496276767317594838226637673697519314171494060655478532597766780157131656137295292313600997649960668207311267802177859040259241978256218730456260384213198793709293550681315186421765090933402026626520470986797487855691487924947144663271833386461231898259977861890639931376558418282334140491049538194593071861724099032154556338338754334341272267398873327550665512886981982970253589994833796200353923493672977992088832258479199615722734472530201418180651900848892975633902815811838502844514810135055095144580559765724647294007016524703767329667537088280210354365585413943544220336060272722814702026240861347193700327006080404563203742447612366808865520985919978171251654151382898742032424634005689505168758716801537784716991731064339817210712777223509170654646925729263779789631676031774563303324401745000708177077709952282607138524690752426551164809958292884997812802545479281650982409917145662190070408718963279033690579059164165872978879677437978070417934510243372806040465576449243662609315211011117936660549534851430576282304188812139385577204827236490388949414870045980693922916416278950648914965526323997312902962102816068283310991879958275493817012751875654848686640764674767681846179469689683254967295971226095622334092183390789084475317055326779226949533901397400754988375474395934138081525863679388124367998594782226092497363141638549531122691112044800493745736030991769183427700585974807956610447988946914490060500567860405793670448110302103641847368487437871822589755141744009183607352609504837536928637469806824950322987858789664213709581465469926996755484750928863977118621143214794889468675276389428130823628780765165781724433900585892589613642143358326865815140392182009023052576803199046370835426563727811287235513719132316130743052251866705950910893304934856038790638837042319151035229276653033827099448167472731720780647263338445226250116265701052844308796079829236842274857827066671847000220661110321021661009759386124907338186530285811127314439071373188068529677271785031314558529674875016869805443399966015358215088086082266941813783032188063457377968199363318182069343450183269116185983178636371714867324879966482648168453832127508366861405595990451137630558059103860608344912532566498335639209610237693683034886099420748494362079226813135499601023840128516386408733546809158576021738085743548971688701764405727980749371425721546353716329652481434400565766383703129780749081568755301893278773513434807809406353358964740576266461110660951116774459109929424864651194975200016021584148472585603934788635339244675542380372288537879650905403502255740433296971323771950944995591528516895495220662770617690088187580761737777000914025355722570427800062599808095354878666126860455099838012557687987458486655845987936808856975201897692441255965856160089592034334807636175622852421888637804037643394835381975302380982026205584194014464698901170499295801529594987416088440941486222379113631441492530426281464339402002737196132759358224060764391354597608760288884065645604445512340876005526223315623922760486417410314393433713202692868692394800435205119182745079956944533053443365271171109935579785159320162764602842705347424592497120184269267019012331617196772947102906795816779587544787825312419400513780192602447087941529624972291188340520115562186277284036868188570905438690654519336563884793120324211156702324650467096460362941476522000741212882548262547823993060017215986262388231298454345713974538924626364433919193918332185136275142474231206101217862170569152981786675410445756212219937563152046508943465689461650017508302485616393184189561166403720524875780517145393919731849809860878818941065775635827987445735682304723560355745167018661090391488509860189932983883404247382169623062400824015663687564865394318092938695333544246016439118212578837489786775873625716075613922755242272284952926879956023883675398134792614207686458064841817856247284548489958313461365629427122807695717831377523955211801791013279151541571986765982128926233489687698631515724276760264110242446362194080823633080244241885584087067925837786921669589706485845693853676354388456303432251918990932360793484663666358803048903669450838174847022031118381888347177014070211687080441345867986807453043240687248983516577461185110496849274524758012505562510084600751062417167437402526424397909667157280219663536688205867853809620410526992330182281124930267151009456094329960506447257985694479388506073828093783939087501315214821723384048402758469893054337831104292425309799478318577694987331914775295768047520592902046241599938020809745410897452659961404443350116731130724814338117746327420418269649189362888403778940870554524762102160345037310397696049317113650233392773558640528982397508831393326887195334886972914830502157226953090326092750952644823207378553816380313292732264745073075201801209137793111928547310242390326183513323843568126748927772682263288057872562293772234694836043769648260851130415163344333404347262821263053530593255392559247727770022865290766589661577974858313086987292369181284318130327972780735811535734254450735265681798569219610784896205686110300645226384749086348636715707154799156877407564785166814659715374355133112025880194191772512570476446207654835365701805788167938543227841746871941351239823062759306854062702993232873279571411265731285019319839723461794075016695884024541897638413612855642807529541481313892310379373492302692799857308496300155799755299234165754003155363675534725853376369014738229908248184228824121621601930012878048571517224863115443733133621259356709460853730645222083395251452949590420005693949852329717625553066926028293540580438580671593815452110015826705506098639742747969293642576484243491718970248071366297211096547685658556162726116193620730018634878265152334426866229089373137125191160143382309189248865127622541784060561638764097473949419665623550505742837376907123427864548765934259167150177355746895744906454741163988934446766647639027938270140768501441711841512702124626390719644591779607230367117284745465982397673584636700471057674607038468764027891278232656593674693495216986244198365282295972109309256393399497107733710679658271236354405161967338480910132806165537888105284898859732802873805639445661219571256888543686446371187363253228771385526258462530515892042545264437959214138051762452883516034224844145908031157812421513507091579491068316412899662490606581795679918989885710620580545110732497434500004029024587895166787513050417348478506790051081549813382382867033435314433522066319091962339847388089094423587667289544291791019490325151767856080487675170961437871818445072535378906356961043105562322427274064658128659405314253190501668422725335290805068628183582563266433928920484934772889916547550889942689514531497394688515023464427466747639563233995442122718877475388622623922346990905925466164405169964600446788433954456000105391652574555257116714566541299870238939376294682226557229759519674887751702429953944576590600040651115037753272075110111359928635098595168463233719960614435506085821056490930715725423974480236761004000056952816928494425823254365020659693639279575531181664047260397840788068242517893523599203465010881683760512391835646559808984861047887930664753233446019877554041741003668048501864213246345971091631767409907497899068302253598863357663791161256817464670348241260859286473218970466019127131697616895870311112919459097316985565331222604833713801819071948118179412801176817324194706526250169350463168149109552939651053913448340020679493144452482386155441566243611208805239789969589674611856737676729442502889823216492532200130003770761416240430945973043530471186983323273715188100310230166481653270549873912707347318013370040124598391423191727356799194776634410948166685916948336769238022897753691420766068230032716719797940824147158984822396228221926321350380058311403167544312578236766434839196609435918212118128112569855630392296384842596723975160454721350619153813877027468099250887176507886666067078815748055302477510797838854850362682989560836491622827705860542898064477396822439710437344651059068703920836929103786397587937582687119839416066061484000512719101288683018888716294655032122069301155304018951815546190904358231479494885872394854971220810934704612317069824601578444162444675341474566531582201673681796018388787831842113235356443804486357447025498719548734939101672069945901920319063874791142569240813846375404950874528884283208754437754121639596779262155633266214928325227693701492590855221390814734001690883746019336079707449221279442466027013292905831877991252561944990283146238524107881429168841450951021547253811026291475697543541789991969189221839686289629930179072003040203874458563210984905014718719195762892402252422278043619520650185616660008843172503541783765668323382537510877902207710198160465359545509027285288707784394286839593269822028597758388513010737032037204737937122971479457488023262691604697957183342077225743727220928014474260738027197369338185459547490523926082623159729466495879254548826968118424897704307776209933156339476941415289069500342052319922769044443860264080634519501881592748184579175306672506316610243713196719354779542910382562417433295793004614706300614581332006213471970118279969200516039932443812955665225335002319527423684558681618979608934243458625973298714273090479583549829500331882231045079842770825522508376125227893497646193668409212971014151699773784952442382490873546257001443852793625289855947781642365407646598974568394150149729687951686178538125512560341516301965129571307157727492700676269444680722320268389520240118384295638137174142022560821915596081781835915935455689911087962333757341746737944234290159669454777544144785482695088219444484249455160227189147988615664995939717586957314047807600034030722539926705079570623303095739643134004783968954756093448275484612730821645111965262819968725955832283298687848035395851864738023428084066906485024427862530475953201970059112062130564246411913992188379621955858999336268471109242498550531162488669616436437578821296276232643816679786690836634730505282224417483293827256434868640012995440040478539757214939159797626364836601703084261932304269263385121859452834282525614503176365271235745159769196766245931694920963761182644232416656308106235375292448641253516435037939910320252569776141776821761429815956633147584329126981767869721067008595989213551136958727114762427418124501521892188505425292580920105282998441458766584550371292340890599174889969577293853819360284460121560123730163466242383630802251028191708645647304171260437358732777988099352503911484848759492805241192373430376180069995369866495607331841401373222948732980390089348170466145874523414996873841302421916190067386403076824002917224875834881607184319856147525829561955827456996691730451988537809801891826526478618979221838310433110316535822845210447098109605118437798075805845328000574154649323093963480282577370162501086393195680036042058779710395498142281100360659888975572691285618528617261355749873062656508869389648151639029476110690543693950843968654798085362879489975840721857276203973768876975780664158033994656521828142667786695553407760561729812812629539177632450326690990142765263164426860363332711778256510623153916524515973789051322631608092292541899759036299791827858644216357050747109756844532823327216285044990151692582475759179366254196982157758004201070868422480973854453972883460573556705487832238633054048839581981790516048342651850928982230889092354744224027384522041868949072176782998647278252542274289871223247697101566895411773068092772621255540450806212839658327519588859492526716183123172686525726262786119858755943115337385223165297459627307419071636281322563874593427385845753768733809372831641628554576777100983191064525012502723328627166858743440226113705078899694407770552517590017401313707466547426619041277499512203736301075825365292005335248274745099432833666784400448417308491529403747797994780082631081531163135397060698958685001274713999465489005989473134843966309888808849030549877986622308203677231450308934145766282244008425468916554437460022372128389245744632081753498712263114012668443585372642668659616708688521457678360241171709057245690356244909123007621427518543353865153079967352790526291594436768140237703948174766158550185734213748243787244967452399963900573463806653063917460280351907707497512247502860024273003767008944619582041768961764116164549771795200713843045989519648317461882822411646345455603878890328185902007701705989661189489330220466129804302046480487416908535442304751545204158947712099214842207349584146157685566383767831683679922169316355036636720911631120625229975287427354775057287056086868172343407079448952704162352737825401129209415388450925621053454590226667863867687024492538407067367096624319855996782941417419448666575943765903511252566976699404265420333094760922147865588682490732435940310631917787683363299526115414265981650656019338336999944310682206258482559360798985948790897876492590171759792510371224401729049992349177842361269875388608039882564289013558477768754220356015768549662906495981485144082412712215276342443313626822650369446339748619294790744959230147964537718692897569206499990561521488119674717054093311605826790589826286410653350057522619807254559621996201723982039261750648940832470601476214630104883563164233306952051031273346272936437703398629717945304258940425669373190844729997707152390567900206451654527576352153959707492284828101047217312457477035090660551647266874580445796878597796506607484039803388203061961771516831756394369537814614437810756910183259465650685330071159620467423868157410154689560718194388462084621141475566301898748451390674586350496255638394169006375412253110794696073538654824790379550598456267861770594315451517732787043492902254170368975301466860496557769902321426732348199233940209390605545678045265873975684110404044533755681859997152284885766208219854524593370255502385148992111216495600646837317906347364907158150679016419983842554419348966951500221445523939272661603155178059861625238004833747283194741541674473591032087609442100231709772255649161242804890184763232890115801355294346925913010225630213470550458323605792250944490108040575901029211436393661925983859546364095363893897064783905401441270928055994669447596722098242090298176328629086588859943471475080568999420671134433510393775309115572390224258630866383914144923442414741353237560611317264131825778349972930442471592307432667054678922415917193357781943391360274094108300850309958877001700362239383831971952864429493453649809807232071776670724085457587265497712173378424029297225056435067545094902016912224290628925853682056844762164237925953223995147024463291960266052426799948532908104323056269961682489671231557089878164059210764408044023277626454894518800935562282012875253703050152762871919297656077090319631865008300139014985630650975356138207546551246486847761868036226225031313712815009588643404623296936254252233364922812145744620304712654717442129057165693505997312571044787094414646517021367356475869638189208648106234003465727894520095890646205987858324720522406910504219084713474485925819071168409857416719517535846331032234132289159574426277346268653765727082127630222056051754132036487704220677841082979776266788414864875240948386204691377305103540193289125217879143786332037042290662197458849466865799922773583776243537488926593445409594534894032418556695496948994239120935238240584731915163396792992183374388203375232368880538998995056894802768887459662778893071257104323930010545521452822006267691862999057018464037449093566087571823064273166260089380009464219142637095466446138265305338804758951199824713531546676220504193395664960196594533220134185492817841633105616816367502874396768387896538251414061416202268625133760945546362142144737993420514371023978110974094255286226775556823750727645144242811687107329575537876855927813904705160155868700966321299780914715743307635524025495564444111311197129128766911894892149018323345541620849517950193503044702900295988427866914875746210885868067300611005181491124846284881345434537565016235906665627703249270726603415698543406104227976872916955718258709751297481655433481319365728980421051361963960565031255373586523303727938797246368458878191967410717165467011450288253999256382380856412491602205207816635969697624269957539866981915146428169203182032675134338782276511045532745160326782199663195588395247638947608340987474853518622840913199500180408296333802991277656197117834732288400320590790227158360635792425139546282078311613780429535282848416111472102129323027522913725305977155084055220443702140413637740839890135711721115654246698754335934058787768382773865557932888218977867655783862696463135668118720212490166099491011190159979744654562606495513163216799853766102634982852710297052885826112495111837885509313949508973520925422209077458467125236406553032334568907215132867462897128294848034981976992037637720924907681957686367592392501453283100261167981064567555708830505660072702836236702444881086269800001386966145117543597148337920059004797969577700365663959271919356562761618789115108252517645496409693047614430544671166379327491292215438253082921662210958247402436342278111932142719569750291631060797772881629964321596304064640998192280706235874938139653901772618476819530134686662399357004006293607055307886649536152547100871209812699684565546980396805523421404041024881372027904857191054007303315209300896937683175041881860582012686653078207812353396561031284927112752845254252608896426578775156115299556416262855011366765740631047338698311128978112663695155992729334421586465911502021935384284795886033957790871504865830579227583815550865148086297791777484461585967775653243381502483153426078799083792502057097486885463468041543319471238623760878304074874354006352980567080183375582893019091936985944623873043667234717018642794985679813131245453499704099598892046103999043985674280585641155789195614613198711974233822765178256046789747301559835871107177289571530463847879880356341440392462449898488971394392111802000666506064216229511157518414513394707814252198458454132432386003085844522700808025283508799991426936832998303890880814526197913800526465965691477261964796526971950605986385602401286254187272688459374218546326300369640289784396106563853157581639385724619666312307130897601843429982251619209684179245439219316946214284054501505268780581914759052982031160327347964205619042202689104703188122149209071910160259510515477221746127110674798025473794454324054183904978010607323170308300639409742602814296909949005098228872968886948953345721056667034986804452741878238769002387457352575774708211998960828861192512526211260167266074779814590595215663286496653994937836644512432297825421585469999999936503481776785022817820459520629638436030031352860054375159499820580312345975259454030352303678681706058494917547205782366375940563489868355217186847512598357348762445799821885281958518373435137483394875803660261944518670021190588700097862580909490025292366017993710116635772483914113994977854610897287059528733630294752221296882769068388070460633383300625507322361257371374309992209702518435932049291880763462897649792264300628236321288725060619463176392735494005853018769314102085452122377123822918343589676362052013077865999734179802826841940883200502380513428193414504970157841099046941744393062236652914023566269891854174030858940067063790578667856561070458060415273155959941998532773926232791307473946166206207596641822527763690339505736426493184942142698081172852701490007014672043240143913639784887464085065541559691223156545718622278625286059906795115762461436058175568968057106946273301287297820527241832571628525565077022388295333112988671715168395159760048326596534321852053141184886184728052619211840553140703454888901591787571610805139736901973145926232046598905560332067469275069512336286284336992399219360857578277069242215848515849932657243844102794098408527193020627962569723067290083163957238737885216053989856256426423529610423727568330088725181056962395722320847466906696616982588390491691378455643663095073769185103002027915610967278355760800077980417439242915698632614783028470452406386940400856209728711198015806667772643492018931262793508372756651048324479919129661694030993882968526425979158688528671925319078780954653631002336252887547432341052626327376953829732078103882771295154078117787086834887559772420676791470131483725730704049007520318189519512756644826658273933934454010663090498816070346654991736956684767211196054546931155148877937947014308051474760098260472099475404445438433106047660551399689103162274556100336008491158623772344311371590611822233661391924858565372236754954741403530632083949776626114556407201180294257008901945874415499126672551614759173014593612592124205833162730828023914428274330814304156415204954728742896990932189599025481038445521333584538266232483060197232687344893634718371727301046679152362945027586822276744755283706037913247733160595063940441814298570579220151884342750067407140814134899315856935260260143114226816376551939459036203225011540872408109139348859549608642958816855006788194558239814441170512441916160391162611182968160666200644553372068961742954176226659601891872429892886781168258714946382235189171466372524486154203545064115133966081493170253154493248008078798757157601445786575612284690486349022164983301419045573598957476243805883781112880076611328570752861770531159347589141742473117240832502056034492218470228112319279113270364872412257117032519229401837350714834545334531005827114397318446507942286111812132475609872902738528690347079814031315732534262085594883729409346007171632464258225307823215163666015600606012200214930560708569131091173145720460295566723055560393374303474238908857249528534055781940573374415593456945856002996524943622727859381107621134182743168655483485934874065529960436309097184539334245442147605347243296995170131553798406189350537996008396715983601346751439414088383076126307393454377652474296921544069202212452148840416617144283680659695375850027630350537841601392364763652959442619598760387734179681655799112080205883300907283557858249668534408269244919693821782854570021025034774086821720258790450945782812588008048067849631732755851503696818385662460155859257099260348977150460381213806918556382871699599596235521012506728374956633034048436902240144557300036674992666377682722990298749409385709308041331728294647765344000190625201271812494244798797593397655670115004776105025957067402582848867434613968602628513148458411345565976691545315142242400853760645289862885167475941523748041214390234115817242382951093901160878027973145287047722028489437791477830783922494085489763835305370464158262020194098892430613645361573019678093760354870294286504158559139646017213577383152104203397200232639110275485921171272302312294632594697419356923132604893687157976930058748809605235615726978024991975032301305462704077836976043772798338308508194291287267940489270097952427031135790227995498489109354617197303373534069810143541299344941406293728005163429955248451104157690045815745938720840693705057199948925280735348442203654914008702300762386819303420069721735791925125565820768939604496772268417291157686517050264542848647834089186366094805559507714543674240113714658856534026433847614553644650524475427836794669610152659888386769225928361995698532771468475914514538371291156661017642069686152444586383888284435830895659401775065996599038166908571768281998046921144248098084576581657411050062251936588541679372492556209181503017885373640778686048551248487933970096798360257484087884495001538842535816555128832370618260685523257591566396895464475149393864843635411230747694838411689092947901804847827138491542663927186252094387592891000127876232644048392134609646174073928637700172531704107027281775941742398464202351526090232133837825027175681441783233472196039587869910774027242033115777180330950436508469022422832218902996006848719141319366260384714283941964305623030383886912180529093050345244800930985547324433951366266765936726719970012038545601196936597333373171558805299340537968469315949045062095129383469961990061006626205000942781806474881067265837038363207878582834497865066835705751791033132238256479274072432618643162750587392138150369062859554152423490739498580888296204932889713602367329581113581504612512020143460542906011878221533427545443288364319194744845050784899725643293341023850169577826445660684500850432295985596451055898541369932393021051112861142292751601319671932410712784855684095982645669471109397190961417086051889715094115980797451023256259890582200144086814088854972035587658141454949420057005587150857067521464825616997463006527014724622253892836195206489217198959874932104263068167472207701933641195776572128279925094092023208520785837190708181001428647288372452943293091440820581908872819456460872061492784540643577452554212159895071421075895195767854953342135866190257718871901429577913312636903279285459141445991959982844595406304867557236822074701106042842079831257836180200161519254363803677136178444826040723841121700239644337958680626700258374765370701697384542054472334541464441021884411522343092311291991957554500478442268805989124768062110455187974180219063941149455826437419830691732066409187946472272558769018182153948786137053636838847573664929848700414315254343373185014437280846949521187670865982693101435951375722998350681728841095470332744079525475175188901524504765163580096058019615836395733706982995613016186257733582157384909677404609449154186612071813784311902266874621290760852904572093668888013399595141031939371731858927975816520571889661838577155861786746393804730422085189626097539492784220902605278758178762848823796737613651064675003855845585149320059316609589036693971829796244753777466840518256312609423638234040218654637537481158542764334788341791729650889179820810013440645957248490848618162942572311225510987784230112770927499490365427864518541593188472221716100843798110027934806440536692277923544669007349624877481537941972157273050893617100851546254273638425890659792486399435788243844623681917762632519666545057773270147109020948427505171841392596334988341204430061945325647470853452372219690471381020396192909512497186242321267623922315696017550714835108266076478732581296425269665145105893025419845838912076772399377550506721013708550001065465224503242318105717897002120795195091681565554421456737442967911680852544900637281426324537489661361917481590359304501365880224016495201705059772868319483665715754892878655861496422697100911042071057084404046436558049090478755451485978383784559052936788435596827186941595379229265301211842195620707499441411729734061120458234729453625093640697452325398266477909895506808999566922761219539154534519081550154034531835232653711696935904012020098786541643273754432210844008321338572516904981183435556596474195148325013927858351090288360278995349339727018152178666532142400705450885973008435833226018304610162284107163346303638232573521348893335536269135922484795027841871030116075089249935758571937621950437438933179841550558429780309118744323145048417320817551606649858687469583929736982948845342141467232537287130516043414989936551455644420782830423458479441393882181389520870806963686921863835156417369514345297936965343127092421180820023592402306927900344989876202535209257951622687635817851374536204573876613040819927240794013331073830341463265586744700977658504518741352849410339290653232509812248851913640226233417831493268303759424852973483489557014811483902168505866772321937866941229609594048510399694208995189293493363387978294513071883217977442098119613831341929842584775103522131453550445706180221579984616834458513328158392272611073005285432673863487231842039199034268311847897664063500521245375286570784449045419982664312449598538196002553441599563662452184989626743920102255753245534348296291390253004843054902810842677916956265894814848374947158976698795339694087308099908358258987717598364140065640288865571874222550633718614248966749132861985126440254774818465995685066479691625264503218192422291337873431649180371984629113647744360229733473764955198359633260701507234784029552209355286224700037222086259293968404548801666826317404408711533798923262038080704854612427533687987762720102604848170081075190046172129069554788825492087382540699403974833994413791037216255714164883528983352794151476851595024926495893560038412692259294828629815756774312128941419432710992715056410852689671084119259099287797475741297992558835676126733445878079653555340704292820965426400496903488817607246188370830436659328432254901511699964855168609201391850018908816670991905803999627416182003304577922376325243446043331963969810991690467865903828715952786093470816798123458019606628134286279674263490312742536266869091772072646962564251366086512658596316665558732913438848794988724488964297264408671348322921952457835875242169031345269400737763112170500562379512353248580309167854937154609321629130377942013857863626406945429121778951166752582671771124730754226064940972931953729755208084319030626081938310779955021397534508654719218622122727884153975954750428009197223434266830237248060781763165133508874412526882567810260817291380300598822392466351080859189138481235108389703604658258869769133086104608782027504841615469432589253256832840286667447845934347274181543352102957950781616302703110230054736351899752390394042012077171364702538199436720629686887815186146432001826203968095848793204518598741653445755009799799844296498507981015363496354066596787561426229699068640068254732373979259395280888944004414870048815469306797127000699074407769582808155099943423567159806549683931033079244070957342776757263952027154639497238185389972993683638997466721078832898821758303119621790604106525622364770970974511404450021650165169296274643377308039973967143064093286528688005591028124254826934251201340863180152198399540755246683621613174943549721201930535284879546215329764416325439423712930234463528099778389871744689961537777300992448838762532615455935042985174561860957276033552790937393076120841936977315021140731620869104948986058322823179843147054920039232274459694179137173998835360526560249225635547523897981322026525215449482114098264116151499244111207596680627303499245742076621092705964425716304774250329233171575820411192338087931068821032037871314416559559990751547899187494888765456020454879949995228836133676768325369341516905212041028048163841636647871762163558589180285599543858468714237941431264173017732176468967147801288975635264463702590599173565497765326672767488723348482732941918822151353038539825315317449093946324975050918311693506809289383048793648557274856748864902358399097571983151162238120814850008493843533669008827841472450066533730099136475790315278879955398446787802284484730360295704501016044614972534211235541953714840023982358140909620984888502425214493552098914856029773759774708276100419378376246571786435691987103127911048683166810211098761065197652023900339296246581656508887008252315239450825741851723166273732721076513453828554350537512120559341202288493700681525318361898746984568620516105636437760841907453900485858958278058051576703230305911132448390913561388488121549404746307502594827671808908676320064606531687337029602149313535916684686988241291350151306331089563653850692496887311658922909960399482967366535954152089631646486737960345346939582472803393527276875422919131391059210363012150092131533637336236368342830074169309849273347652213280481905232262331153676252752764960451480401553631272051397104648085885506383193527539840994384926823837083466215045196992455016378284992860918550857793782308385629980480575372197488824540453205616573125729595462978094459040870711147820668974563613498734768976585282788006630815448691982285593208429571998975097892279004801016109232482376419744764920420056139317311845743893832807378791528806725590305592281625876895649443644017554845961130342455240820783124233841034302705280410250342517622815093322772294019825410439625830912470221420425707409678739062447323580848003336203174039731082601403730115449346345739625045059853839710454970162225010549047130738514990989873279430711146541625626873934230420988343612599266836548417132102370847115168233111391465182445173842116802962413838225123458934311512519263877783851708940352227577358925629887178619218476499976578462141758544882732273595996447734100806585965954975946944016521944256399102445228474905837098825710818455401116979808771003848036576238840808369153063514442637484651985522893217361109931398562640713327314234469515322710662064532775681328274509176081468858003937744656006363019580190645096677871690848351745322142343876235412960811174455506269852623438389569607265620070471094309785724828397771514069096346011058229947067718683770193347705539190853916319765774044845953934165779348754370519390194672409597832170029413314318714007899446486166310791921260640194690213030784649126463649145992994303757903318365410782895526590934403774736152849603978351560988499805953158745342213010214846281066017976500286207278682092697575385863036797480394042337788898786241552771591369581900202058780779847576337627481848111703046857628302141133008890233879849013220822051543512156624747840854901799910898776079201052382708511760074937916033648103315723141298664295617285146879525781870699451900924616495261001437785007322875079592144884747212050404890087786098530659654671062342497303684784538035338822461727483509597152706588952074476299980290123463397058748224661314787392189867878437497426439580935858431435973183246866649152473472244666919589594545572648407728397778792484676357369143146773470286803827911346116033648568520943123957715185695556804536621751021519687199863455738121306165699921738957929084145478423319831660603173079213654860014027829775575956169230750073975969589094540406069856002758730473291731268076680166139044686546116460870714577795858346570901654305526878146944164283031141434445069091564102931330012311213644311465981868497671745107466724430303500317772137477842880996954358120898782481092847121227867272357694099705909750999471946615243552187816604596841326449812746952928427142746168068590324734993499865126114620893856945024075466387552104740703362680429648417344650981428301254634526334181977010486564343539115253175464002947985002186262920195190754125018502966509434893493309477271753551498395711325739017601449080997940868122574676955279375395475236712227007241480342066388603143428565896810486493655713282925633528602493210135928552605230382618893802584869913719757465999951609640426499739810038048497492790771430714560848811497539745809445855795448571323223874213785957406748223421056148360972319331047947625644233003495480180958356147524298481274243930512293441159391445107080288577496031666066748395813900426987750290817930592010743434006836467604633468457172880037013588341963362006900583226283536749389242952277354376863077356337908207269242485139080109661255530889535309675690806169211143722880472752928452513145361129247946245659421796225901797505346075111448447391260137476500985774116012535003637584243749814396250566032361708130463491397643006750311254704791412460175606620502502810775968175116494850448994840390940635391305788921274717874864068841025401433944519838989695943707109328499608744330366967309171971155738219642969986303028890511699345139997785169708874203980484905355568798984264377371187428872796611031746853207725473221051783955904222564874925917523177409061830175322790770062051577528888785165288491359579652353557031121129922249243843523396800019337587513366969086860624725471314877814929702052195935792199620630393046316902737973617473840218343194073033957436346968971383299160348110502476548081010102759691590242648233223395590193414295843142897916564333174558026486241216688962956668395438745247709166763341394716094567905653787890208561948144716507539687415444417709770591392526271878436848996144024623271684305663716114847601657411126607226821415885992904536345528771399096438307001527417280884518484669477247312683303366296816080892377286128041533829212685731576323250627667672366190357946782677466235879919698984672806781886449199919467620339656928975816974771413551373002762631657324535656102933551772182331719730828003930038649663478249670492570490349591918943593382555594562691238161249714045875576029858409697454502999862681046842893862110982560341962719993430986079702615920032368989647820586090189931757384106215759867037817318599974985407229714108149057396119927333830843617640939936554658072528581400179622309896457786608244092987168525156493579432735482216655611128848547973298142428842258453846651429959453788079184291990903861105385747327914904505413273264704343713507764648862634069556548089905454100886436947027973422795401381490805315888691760237386517398989428956893711694262946629081353528832152584245652082276781508232797028773654893394198941792415686212485001854903272248703097368717972358453663898521428144103651905784540785854119386306556096622989771327835997178972718507265341883316489347613613655257682986997710001946270002402419255061911054853664668507408758448087976799703168944887817421278801353348913771434287398381662129736791345909056388233484223898126263260005944504365539522164185940557188921455545526304688587691092473320402209940396739662054768763462169647322054089762754492380024007293515065223711755855523581214805865065099672053925287304041604948668763989848819633955333166558161027272078196061897173961350768654951188731078030625209507087667373976753119557006072339421640786136798137603683775659160658854667555355729008154225329802354341489383087139105191220400663366231636504621592058528942131902755623968396682415267564171114645257989354159264525028974971983363954602135765658193311399026167903069877867166186542852054865259025800326938220533397820344436605165373340258668282090375844467384964418791755820569144528925129474827429803298978523278293902784885553521367586043633530681689929382584397822497652711284263147035508074400832919796717308127547747558004280138133762091709381443267815361157588948360240132822506572128339655146799528673599140199662970658270425275324179991737709733106422072659235697122707845347187346904770016754206030057413734990166902812335190159439893965103648000202836936709611430368492832547349436241502881885090323298370160777793637359156354640381802030733374762643454740164753420931295951578844919853012203769852464772077000141336594017823037530997807686084809695076455315055794940478241374601679798810356983376383808785932245126998783642821692361734069558945600902395380080190119085787995700185164746039519206504524903397741052706082128633340720579067717468626995438766685795941773327015844014437433698318243492878817233544066005389350922391139274858922685909414407485470309323192866785330604437034288429174680568747499794381803986538479529703127020093970984123475504159977860476093966624518213729453815800607979944922257199999791370925073256537140179301292094977910096077432288900436530936698900595174193437795565018856480594671292833010251442668565436782401973091356865172714075559327036918494024826001112134772378781221748594136223996941792587873416320647623284307122768254798257471664652920639330669803779774545655210566358003056041319004884761696607017761410017252029644193098570072560263734461827487275156175655964985143912041573040571797138790174942187256411248941965828630584833951114616359729554810477496845681570600950523683646217912904797298116542735721413092622652989276455063587690717942044066438914822956176597136497158136250512794779504861608222920264681888451252602675342555155106710189469567592425852237254762596814221753618681363696767577115894707399450033207186013119870684264403326882129991943105735761764738234441248475006522729364802545317355504311032640901352749037529852820326907796107778225868250976978123075015238640179887701584784887280590811988192088365147449621005490732533298439265580861323352603235331537789201144150196732818867715664414967061017037283410088886416057028879894169442226945948233746155415735753653393588004294808229701796685221944389647094696757502104446849206920361234974283366358500195804421542988542966313839052842138456555945730776634052650991070529233614566414922509102784769145554462220736343750408999668839113586251069523403591609401802353672058587190609067511291601634354150770484790399529294700822572853090246061160476992588599788445684078437670077447781090174737141478772197727719272985480136743738288182812549741973677967823392382309455883456426183828536304571580760763682149957024146650806692344780964357023145028591174965387332629893914059690560814271766494479996648643807030125908735223035596861813441583805707300708593006116361665617366162091544846502117025636653827108370588811884461811608213376437383472348191702569692392832911054980795995363730746416808602137132423688569977338272268084018312352093958821658900974780685611016680554368135255826447600876157697628722300133081034087105933457753408042418595932214088001748267981120276521724569684391971068936439329121246669395358819664975132118747030226213949882526747263789155342871846390563582475337561575703388952392111640487427130069139271161799967970554772994996859585979111666186820927601245254619021591139196533322174474696336787870368046040928554209752158570981390686081218904963325214058235294556764641411069677420100242873207130310399060416713023376070690985449736330028329522673782929827867395965663571053588481156447118605634326705254069204094568807289939860648564520566990695379227128581917566222631199051439781364814521044625988486694112659080827780615137376187749587849618828487069388555797956665426643270088315586836739423693092787764251435577245979959329876169974749088545005370656243011042728512793844446592226704401577834946408681704811173580800556263930841380942078256712784965591612159155157723632385596924593099090995781360569119434849151196241887214441445683287792983691574848726366220756977092963703869726388562722274007892581356487359384156688587694826320378663294183547774364900565190058912555871591967714316603194985928077818714109043323114753160768417543803479443456896816221704269187293468039285141015006436765199443059325832704535337926100815081777591726266321954220646533508258271713872210916838528335893331430810933998119698166899953420252030629589842823896375342506836084418890856213140453302458000043003909206833588953186773247616469386081528870229434353372906553233085276909994213002131879577062600606515842825287447107900080383682415368376117394353285317718052316194229880776630363952062673128477558969062766637544153706528208772022861294961164101102822999072750489723904648813703131385671508805737367140331373531630473657350077306036368362141128540310557218645841180111724224526979004971950132730827819936373788193672711129419753820831933457243767441018971197321070262369337903214748568564873876426650497768980787267546613344912335116431557640110558398808783192258554870935273652024241772352922090717169390274468323930986917696609208057007881089892736527711622633953029131378830144224776019227749588717318028684623935933000210191965401261302749399175588946920053570363139850934865871323379670039047216907465852223805165915747227753981643305384596271076259714530511720985574424559582349946468205911167211107496138446460079927371849196356612334791144577934729219325044960964817520370351008868607992214728745131312066809374951454491214832295385212453665715590426949447238288833749434544672994859518128336145347230642648015374706034136506707707167286817492828003751974267280882013840158384846703000442686078520374343921164401753610114354991290766470979373411607225708851077463243761842579375689439913953063000581908420403644232106696815869714257296698135454424794629325756599983307458264651341708141021563965497389750627908112200597046337937400642751610656035934954751200324614505647728578064420493684624500199638875217397254572371037849471142999292873044433829394224774456864540289763066819560385587348467243626270238320766727178611512547462965474119177870344640163524950513141577369709469637011593669072492855780415146076425588213018300799353227883165386912921062364113509359211939932664719252624901905581514045868993032212345250699936002249988618656097709740928231151958140196039100891122438544200472714752621684271666785864472566140377137997510857744301175318698602657112000568642507713396777016613203939523082786700536595124233007228410665701006957795717273448102337704623252248610814610670274266308666309940148135428426545396784534160299626202839200983724086705640013310096252282619151445314549971374197505810923427349225285757855901313922381494915376767823836122500334434683335261886576396030407638192589937386622123815564203366927036595632475192101304649088370778298328700351005006131581481807520794922810964123501522165064627236691170296645266095560628894010672867197446747680317265747163178289708324368734144047650850716005539234741956299414915328225833485653890315542660231768789306362211225413952439999025675457997166344701516318038221898980530135245500389346299469769306361787225746654986082373153938774454211471120401608426835775233478672701694296538516045695713044796913712791909769352657240459035348654175295662918684438367489391321071888117816846605042055931400500271955415886021800544664789434413943652553375541454979903464338662804111884531832283502662611508962562727766684597596106168688941350323704242995199494145777562504585522023803817109766093034039859837541736119559964294106904369418065195516854595533667279245880730811954092983738192425887788436704935321611658130922108739853211917974790310079324635729593785722025323979178597499705940201926016953233504856378520328560208009375055577680961586389351689707151987078706582803507565865135299440892371926454160244755595663190174364472691101202172205738420800391655490056454165541754690429650294342848324281507936484487682312804467971704641085603881718381663786574969374697167161750023300575038868393458084942590108320014598885240060105055438478718972805763316973938979973606077217916299571091140541019966383317632584992486063178074669707613763070455115374671298672478341259601232368507862015551991778120224464863499491364724496173693961085158375055523871398087230429588227936907845602288782391049819969372268165642074290299142558157644392410965915619139963914659954723424603286392248402344343844856557689031159097390930505388973217306385281262200174378140497397193115705615512389396214701289712192584799888698008881720684669377341441444577923547004940214497181751340717127880378098029229253141205722182588057464940514716388036566149366240331109614009776761162893163748455364788622888725294120115771789215623594016190272026592771396431804336138549374318204911542802575941089956523517019831100491919961535587683035124480451696288929979802536219019009968426426219988495505228114555692933892155882255327932121900017207278667290155290300083833910319304446387276889711200183901157283910131034705153833463981687424680272121472879523662880148189040504788003296331910870167332875534490075804353856567024026441530268174942685805693486571322338492974387490484472538628424016336391035174334781855458430398664861408491901511987616561635811522864958170911509510289378285349286719099821883657309536607525401083328575113618283165688776611573219850911267223786788897528181012462663404727047806620919338440806983139095893380664079239683872279500189878680232528497074765584289508443004384984340503829435431573629613162246931976601882564299290709998819369385460056989664070779172851769997212735162215370029296241749132242449830890586918386089467409955598611766854462255836126212557604286870400656654844014280900291449827284607363068343640542471795541497966662544199201904406164648838511504690440497826082936852590940454473058983357301678540300578503874804978778653834334251353539717286632146752413532381593090452577200518681943632295038914433069069956753694208956875741948888257249283272744654893503936236726463517370505316227896314766495688435908029792833621908081830623069627493218087892997947591882515968046583081932956720126800157509689531368897427885063751319234288950161786724353662164905571244346209428028294967988327092992136233195019300175227441656606283905010784297402055502411076261365840767047508416910530373826153021502142245944250269648225124167364746677099711780528675874914431072007396537579263509137599460384374497597372753183985018139727692218056995572843606629702885825710270906560025710759328678250508676683227845539260619168189924853886566729101816741947410690062181943597620969047497447383632427944682758101634961270818623231545688375731628958890532688530719415609645574600568580455003934824827916581140130054502832413564865451270934561853986392897278734944661815865331319725344516566135962891481989214308422706623838291447410052538919358613794171938465868868012563936139288699964151913366327485219284728410967798417461379311048863669692297607607607152237717002513176144623934709807337095642702825973846626433841704332936749801048755872451955969071124577723586333672884838062259364099754318588332118627381306350961084178624430520773605135375429925257727444834209067050047314575480658273639506430472175251433763452987190793945589229963481212454491671874706761774282346326908595933062270226050950013630763273807591949500115194115524051220812636990034145280593559827643222288092684000994620811993305133116842825685701303493387935709624525041535485088909518229065675049642238917086842025387794921958833762356593235642881724024518435524670649150722213565678599846888290212578589445433799926952358480758443613789451892537715374780266858424614837098318916508592037968111235835123284630292863386451996353823626800808974220642803310684006554523676440688617559651940299209903420350700591658135968950103959535266624113998215470544518585942327881504067458357875450253581137790484902607829017213203488069657101353567782191908380967649362121754745108851366596065946005466838985093625761493106483234612634551055017700208200109113075965582606156733777660599593944870196550953748812394729040605854902209503162533882467685037319330134379493275442650349327712938385971888040337227352368510147305990953499118370309702555444752984903708012483734675138332590942171374001105297049383081122795128941683301479679202025255054838626429095189184608310342499949553434496642384290755145937536086984416210993021834538892852974553020246194714104250679652762411813291737277500341754157723738265718257947223416928924171114430133336822858072544077714278117847754907585612135731694688012013274497104813545310973816373409672469962219715317709743149245898962560246497748011803785849142542280961732699986413055577148992928012237781346398415969933502329153803769497181984540293538239419542457558065665057212954889308680626134575004474401298554494495870108715528122315517622859487181813180593047758390618022490306162608694651571690279081702762992482140498384717717055342545238759270621221422583094704963801634780112766641038214399377029529581523119584351908994892685534674835530700899320560918605762956765411879827959636455395785910634211200182418606823558851752188976194245550028936785160814501929354536171525131160799127713539119807459195787096569800228777653905240366338105731591337492796692723649264908511567573485316039712827024889061020471355414394541113909645091476509027285288291744195862364582509179917723451631095085578242146032288607441213847051298332963697425191442201003017233899952455386699081443407519297462175875277285380166509255708650451199470562305180558177922094147226458079933591176136835493937680296901586342790734051800331709753923191540413366702966034141027334740671132833425323686214570591539417145092383610721501576117623386465185955138606945911394963910068691807938887769525613181748925615958685498857702841550217931166270732175136966396305359869169704288628235684416143238545358222488977554740609083360009512773801583742242090719895073262408767441425390651025468146119275085558717454084512028346835804040819284149014279520513176542282693491604440632906592912119915372399863647141938871297961188242558319835595787154865877932284251642782094024222718446762262488874329618790859054805571018351559061809289961379039283626104823703132690314637066944435483219195490076664643150721049568082173648191665661805357967337984964974107471917144135342411868582040720187545767537862950071946093860478203282346491003495022943236664964048542599108252817145839581403397466201131452131480449751194996420552673562913905089438922782748818889837479845231077982930201997987085219169545738334845778906037434948766126945406501341800874184958348617321160759310262093613029904981318623603633342907835807122656144785147474936747499382529760763979842743918268862800398806019766076135816285051218988063496765317548299410955975847993012507772145612792160004006236948212902861630841973677534087725870871311750994772959198090148817721369364493263920590585252754979145442582137241981887378446091371070557876143798060285437929495901493999850671683239850356253006923991234876947619812202548989636397944284674844324108394773958386394808364857409121233298985398093101725688145417291755441199372953015192068083271084396844920375441166352240364599523676946731430266596051225903562926805767646491900177031710178923731701289456220154182685037413075131459440736253747888321764620117588761790780426597110730780626636182004570789890938322068544367090172712114227512859117928049181817109828557463251753796078606075161910041280335595676801998583582671929331274435190517601061353558070868980588751126339031450492918490426283926385309908259696582309959242571535217586439496884715405323750051134769344434696268336471194099594355365154799561063504540575822297723642901094910297969078229542163328784790477552702804971241747362166558092929066723484864823867373051068363918607104157518623292968835309516276630764001671163624928100268033898582316551056561688502056236910112960984618258001284580215481396945784908699436924079551787803545400818945937067874951571405767410524744940158215222105501449667208195566471142141836352542847130991865879936283204272196358213531096433870101319805541438125033980066825916100550180046839331513243297112164196993528605228209679346874320754053007641083938041552194349115420620561469781030501571712921116589651921180865839626543723677505952661499587040197653685584394063226041626712727121817459843239237710250636241250095795594457928641393386359504612831241547655414165849277811533233261939095021656563217056060770098504843890035193046930687508733856601208492812488883258367103094552495841693235682024955296078046644458547535946295091206936704794443940785007577594105980508344919919619480509453015659588492033430402263688218350469378355319418942503444909643226845843690753696076831742336746771477038468364923749989318983157983092665243642373501170970454305837710493872145169241012672716190372388356507162017404672927445811667240124441029511511504694743413589337944202706068266758014153033391774315914744919403774915821781705822923090068367313714544132810146364262032688445515511960525961675100279636624634018292012623308303271792486532083225751899243904997068647765946163972988586075977894194413696579816542360818516799464237946681991410452958726627289353273813563183725743700805225984234556592829304875822416597186553001895323875345647318313856544290801046433625519492658917337172571919995582932572542834884322158036784428865801970420371577875076934284080556358338841357464913848635473931530897406919675705027588419936221047270754582443587498697325031018878000564918735531037881108500472196936103227316904682466125749245450475380646436373389828775134250674032782923818135288911283803652085624537641742181498752225015818934694111339090952595903681420907804700652136522161742900129528966477841103913932753332241241457685525527842332097990725351263765831147298630680601718135690813516955155840244101429058492933329695028321758176150075391477106808956861448796960929304332570127683654437965506372122597551829381298982448334679584970737820606072632248923895205023412859470463168016314247244937763366608887634299149852327568256475240599957797740586508299656353100484599065799952346106602156842819851293870981487130675754937498287400242360335242261010879853066506997151776114957204593708571811347583925469209329533162543262940064919384935217746404587085226709622232633851420751760003149883056445813184924685647491522891607734214221785353269692510362099337165808756714106415684413039305564199155148697628269682378697907927265104559838520915828229747029800261682230684884136267537897331091246410580823615948737848158862315633215912009440300391147686407452291630748897312200688657853995864946824456254350650609510857302218361423660911143153556664228909727028241198994203426186941247590014758265593286587013449681860264484417840008234227408889250221712068392935011401352702116667020427576182334681806947129193905128655830573660034137040565063283471136859283186202659787351700752336208460182686119757268969944759268394421036194133072158526912186207512348651604309681507767988711357792982212594038053722014677216245660115830039994050640306675124857998667355236577428439920426645708122809783960358597773123043033801611113133010073414904920109330961045454180320495070996542201425483993856698619359066292929955987515943527073924511537245696946597674974394231237600685267717768643650639310086533949536770666321491817654446937681106240514803835271510687859937408922581756301377142127285188751084763285889225259502362058297266181972927137672538114969813487278195221570611004372205129714741732420463422014155215416218294015317422317484848505193703905744006335987374914993537003841477001291306071194213571936618610802052847107502588408013177755898645029681770462980160001297475113977375748738527705330047641251866098359774045962611159349926581731434713945277797475069773007353019724491090884492131715411449456709410835542802000964927101502514102346943295186176209683505799486904455603931963849960537679377869646062087374899701548735828781387540945739548758001970816523835821594946447005655597274078243297496159976287848858344794846311895756155598494214061668311384658100109503542047804026678308778225873825940926714161848827813712831092337829521518714717436452248004394656881058392803716327866378250551282159932385298636744453970235507377822840604559300703490934885641909745908918874999687705222489021884675075217649967450628925613315957725644529052926089752961200180478516333510875277235590519795132257856794705563325142548902979420753072326855040776142991112704215354835789824010164493364105207321479970156354933574994699483038258083750606261664132241635592649167256588429925697962023584283157817726143500224870578199470019703255405533432103679652724890781226990942705233189303237575890763625335292179585951645874175675114849363114766869626780444682570375490263463882741522497170802922914109878170546819412343113349783513384868477665730762275588743108315591612236445410154456783056380452905766882662734441614669540555470498207191578613119361857380827016050468459189132043143151164154004962677738640374567721144770511791514471364277648517111917237665622273090551036160383747967448580452638719201077653783783563158469286318345607735262858212129735524187500035743135989446535740032736780439602782509111196841090395175508849964353640860295697207301843713330055065260652819350047460929630391012145071710401068153715122760658112250306325651107652601305526220761827490496181711154775856404389334467263683642181314430127502081170578656725252774269233373895361957986969498781781894141327488081836230408217259166711466376156664501193996285228959041129974481576454639026852855043121837218206950446617645783169599755280314124755825820177633821936045074984280105458663131512808334244576011248629664409694736837876756183340383379701589080212969835383229109270531583241015917750514933990398218430562011852780652377519447766781756656601855207226684392030181990602156296914825745687896892848751450025512256721455900345440786301914531532135373734197958128314157357825245461454557090195941565485185792577887199827425157460923237171133880240094446241275412, 29, 1, 2, 2, 1, 6, 1, 1, 5, 1, 4, 1, 4, 1, 1, 4, 1, 4, 1, 1, 7, 2, 3, 7, 9, 9, 24, 3, 12, 1, 2, 7, 4, 1, 105, 2, 5, 1, 6, 1, 9, 3, 1, 3, 2, 1, 3, 3, 6, 1, 4, 1, 1, 1, 1, 12, 1, 2, 4, 1, 2, 1, 2, 32, 1, 1, 8, 69, 2, 1, 3, 1, 1, 1, 1, 2, 1, 2, 13, 18, 2, 3, 1, 19, 1, 1, 1, 1, 4, 3, 7, 5, 1, 7, 1, 2, 10, 2, 2, 2, 1, 1, 2, 3, 1, 2, 3, 4, 1, 159, 1, 272626904187168811952122701854453301127415898746017648103416548435477530943095461080692846, 1, 3, 24, 1, 1, 1, 5, 1, 4, 1, 2, 2, 2, 1, 1, 2, 4, 2, 1, 1, 2, 3, 1, 2, 3, 1, 1, 10, 1, 2, 1, 6, 7, 2, 1, 1, 1, 3, 2, 4, 1, 2, 1, 1, 1, 2, 3, 6, 7, 1, 13, 1, 4, 1, 1, 4, 20, 1, 3, 1, 3, 1, 4, 2, 3, 5, 2, 9, 1, 1, 30, 5, 11, 3, 6, 1, 12, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 4, 2, 55, 2, 1, 1, 4, 2, 2, 2, 31, 2, 11, 1, 33, 6, 1, 3, 1, 6, 63, 2, 4, 3, 1, 1, 1, 14, 2, 1, 4, 2, 3, 2, 5, 43, 1, 1, 1, 2, 1, 1, 1, 2, 2, 3, 18, 9, 2, 5, 7, 2, 1, 1, 1, 1, 69, 14, 3, 1, 1, 1, 636, 3, 7, 1, 6, 3, 3, 2, 28, 1, 2, 1, 523, 1, 1, 10, 1, 1, 15, 3, 11, 2, 1, 3, 71, 38, 1, 1, 1, 29, 4, 1, 20155955726915574925119581557811418136686995601158003446790819382047691349510929517956647957773926580094941421861056975710124749852485487832651062225346987268531528148375804007072548191463930416547942367174193059089223739351163611095340524956069760078034029555219689596308138243168507207789215145618438122326506446668995400166822239119580358907403215846564857582849013638619193848328103638569228288984610268059525551901215023110397099040407360920513693742027984000756968131812787507695739974523035938207821218001562268346680668518641318975667762430013926492574854514114901822369950240563611947643699924449022430404720492115249428957643964362833282308832479335758028630457099146544349795031028211947582548384482761990511139916382541172129296578235970203398066979366369754838685802721388912334089467479434538651026297589261372308952708945347389569304953591632761074667043977334374282457435480339759874017730142161992175460509239033597091681593922243828441993328947364908242871363179725797784452201884574580557812138935343779309011851788265780334099442846622994435360785364502588143502986738467591436416473011153310229721357081281690493868127092174909777795985321657664354881129408436756682083833023443468722855697233308718492462294676078338585364655935265736799889822497328827913608228684905694099676164285798463797572624143473264065973799090287506060616623671228086515291429319819537749070434601993793719392633098300767906077123859523556712808065335181394672810153839764966464900892740653669031496454723086221630673395877085470154786654209924895431368554524075840429906234759106031072336071842486425269535929756879941506012303937870476311880415679478921026325587598903077121486304883228826616618508462168847881471499447589001037056996662067648648124056447947922967762909523920430954464750037938673197613188750875724857277486180971291268654644507406083647876873108987530895034301522043135302450525324245543061672574087795129642494274938576720024887593499233903300982127470100448366016744652704784920398333285633569887052752674293217101716729131828049338357192491916707168413174886698387916162198758076427668646717067463901576648715089574886806252503988256345182785689068713776234509289004831661011482246803045237384112711069328701833044233968360937263348221016295743139101721062731414421324139885524715779300242888153956315364042302312216562236814691880227701584439902422073784467075960513468547616028034561063152983915748563, 1, 2, 1, 8, 1, 1, 2, 5, 1, 9, 2, 2, 1, 7, 2, 3, 1, 3, 1, 1, 3, 1, 1, 7, 5, 1, 4, 626, 5, 2, 1, 1, 40, 2, 1, 1, 1, 1, 25, 6, 1, 1, 1, 4, 2, 3, 1, 2, 1, 1, 69, 10, 1, 20, 1, 3, 2, 2, 5, 1, 1, 1, 1, 19, 2, 1, 5, 8, 2, 1, 17, 2, 10, 1, 1, 4, 1, 177, 1, 4, 4, 2, 2, 1, 1, 1, 4, 1, 8, 1, 7, 1, 3, 1, 1, 2, 2, 1, 1, 1, 2, 1, 3, 3, 1, 3, 1, 1, 1, 1, 1, 2, 2, 9, 2, 1, 1, 1, 3, 11, 1, 2, 3, 1, 4, 4, 1, 20, 4, 2, 2, 1, 2, 5, 1, 27, 1, 1, 284, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 23, 11, 1, 1, 2, 2, 1, 3, 3, 2, 1, 5, 1, 5, 1, 1, 2, 13, 2, 4, 15, 1, 11, 2, 3, 1, 4, 1, 1, 2, 11, 1, 59, 1, 6, 11, 7, 2, 48, 2, 1, 22, 3, 2, 2, 2, 11, 3, 1, 1, 1, 1, 3, 1, 1, 2, 2, 3, 1, 3, 1, 1, 9, 2, 3, 9, 1, 6, 1, 1, 1, 3, 1, 7, 2, 1, 1, 4, 647939159282631747681137629259046168168490281777335854734322341, 1, 2, 8, 10, 1, 3, 1, 34, 1, 2, 2, 6, 1, 1, 1, 1, 8, 4, 42, 1, 1, 9, 2, 1, 3, 5, 2, 13, 7, 1, 1, 4, 4, 1, 4, 7, 1, 1, 1, 7, 2, 1, 2, 6, 8, 1, 1, 3, 31, 3, 7, 2, 4, 1, 16, 8, 20, 4, 3, 1, 4, 2, 3, 84, 1, 4, 5, 1, 13, 11, 3, 1, 1, 7, 1, 1, 13, 1, 1, 1, 8, 1, 2, 4, 6, 2, 1, 3, 1, 4, 1, 27, 11, 1, 3, 194, 1, 214, 3, 1, 1, 2, 3, 5, 1, 4, 1, 5, 1, 12, 5, 1, 19, 1, 1, 1, 3, 1, 187, 1, 1, 1, 3, 1, 2, 1, 11, 1, 2, 1, 8, 2, 4, 2, 1, 1, 16, 3, 1, 1, 4, 20, 1, 3, 5, 1, 2, 1, 12, 2, 1, 7, 1, 4, 1, 7, 7, 1, 1, 28, 53, 2, 2, 5, 1, 1, 1, 5, 4, 94511662631588200203737609177580579033712367846288113371149949202469362443969014833929040585172021701685799570880525341356591824653191846030650828539283504632684314412794079042487466914506683700376104572897498346414737479930276543614495554788315678908646375443441189285901218951573937034092356010879929740209520989981137118824093552365488567180532415223551193856089376723162423152510877358255922517517377349312151714885892268839640351511319105174136823902439998174210971159569831917850350697369726816339702285088795472926320807186484100063141829085492849489021370648680520954587643864840100240267259721395097565555856834552797212135989596481267035920987490805281253230540795379035857813706861383812837753661162549750824089084055004475064066639338603005951804449202364673193256455084051767903571832380065581420047243699152413471793589098071587983964307621195642601030915652832243928840923159816821500999815916324325317512733646974401363796889095200522923515763961121681936236987077174683295066597022607576341412665104086230363397265923889158488072555050758967357759661923915014819648713014016623886466274105210351478588952580070946136628921652737315215277789144625089577811581012778567852415764115913724245921758630466542485962883469127887954819609511454001438121077017782072483013705581276100934656522187660252712411264546550835427200734622231290177485428391665575573001354984561445901542782556560187901365263917169939216330809047372154402614900247536682515195011199721170736272401628505994544478141240315746525266623871853239914759286702472718369355513496346698025436198812256252695070064053019204424007228179894147494824177898783481206898377866932188701941303141261614361184866255423026493994259556453130292410922541187499676238744094482073333548029054354541398373066074819459101412062601963576791795000233054224670804667934511747883164955966930427386206793874783666865624293777076561848173448404240916418560591384772706899818463334228750232243855678875984576435693040244565024266507718550591683138982074271481545462170982392373051005958850524724141777176538490666776035032704163436590065765547658880592440403293784149476660246917172381989335359562314826325683240349174936672109356846110164805070217663316310001932115458066242428050879930948505987323978263542401353375311659160204995843034419501977343239727504519003632566707857622452208732100699802910692049599679238284567069923793188496380217632929340975907023741941683222757055054337284554429452073813396596363346790652139430161275590647889444015647309975638954602367435417127069448872988649715448360252854661615348507002676381344180587275151737816058729763216922019657459054639896466178525766467187350716371660627981887784608457540320044316944111809451264497140324520680233922177092460006142477836698214405758411106916978231267099912769665123289738508528589355772486457929012770857208767900862567550268192522930422883141857493994614978885454478060048526298079822963416163526090266514011269761460099042072691423821707327081568160848425896985798291364187214822193927898142427364169576274458244736511091379984408055486468231299743664352108419385785337725190739250167826475292123282499143946808016731950866502402077226660514616247876527015641616033694978091389509423673006626865121513816493744276282502206446487377630748970286058952041921635108369386217628300161640553417294751760727176203287519284306492202795801760469615307938571914278287670294885765236440822265114294637206419967326240698304952204200894699522504480257454112500676510714723045830880811708181086006099462565012686532421101253246347674050213178117075303987840371943506803467089831083276915385335253291341444424717754464985823078238722992738508765465002689094329756596108084117380759383860222930393668398702181038606826038791121443449910787374358947548922125825893440007897934714581831480691753670565336025221814493521141173426663291700948143373392905344184812467932683412715312231552963458745355683653451716155146576209596361664488842053051054977048634383687439316499094840152813393547165863283180608397542107244775310072580724804769712086318828843172669344188650673788557231435909303161341326204124474108970468077761722207946470650424429957199436129953907398425848345079021720388212926955305394710801215994065101124664236144630362719753403638582058667364381390373247320320915983889738428505666225715667859955579486717590394219062780240535334668592052054480303704587291936598196564689377169722539900659155489443454170966892485223966118982424101847171001057556635304564283949123207682226818685477745625151950251005472507601568517993816667527797772559188490657421917360146936811981996879932723730865830383973482361918798917320542905614962526134549816879633068307729742578723685236064027097281197718471863808319609073599203374333279505435337004877133107874237557851741882378970664432666491369260722647725559801192089985859687118634836173649513898267817351686790722981065850490122755658851952161072196115075026496939720468757935074571484468406049174873259349649457470374859079985785802342562419884103210677562556749414096377603870651915299859833765173268851182532590691193232729153575169185476180636079468682749245014004346201812388185284672952932849923077862482376503478301087204807883431187733493641359165858947027376591200895023336635121459037704156968113242523909080739252365682693314095069963488194597461207995881969235031424863858260873654404686948212731043068866575890802064956572510699287792304924926849923819185291983299622190158428902037963838875777946804153086629250923649960276757145238463126314472320791002608532942914703251434152546726698100673379241567178197626139434446220503930671508059982577989541513777868761061523530082556159793813332627312935084767838052268107059976942424293700182328245771650610592990477486197719707771940976923485221710266150242523144022295521208957822083321031109918433379588325735031040218876455110236032950904323947746721076924950030192643784707639014724633776449582642273936352717540027855508308210242276416132352953171141727914082801281445498643141395171641688917573377172162988255731255114238545576437609518463514833616489039797645592199904207559312410958485445472504774904552312879330539462503990528941877957280724744134073490990767048694165640010437252189827149378304172900453670815017223553697123889202291921036658457028399123806995587194453375772334610704137054810749446260594283755831460228542417142234033533276030965153208925326045375310931222863020328701892842488684573178369711460531736526651132644717158621379726983309136068472501760073845558968671046610062820169761272801801508717022286746663870831495318805393919465883252223737779634666698585009154559453930322005429799212896659597379212289933317120456556156709226237619245400692304229318224400348712517217655942081566755145625220682687557327630447264247658562829949256219499118839433964636312339951155274567810973548123831588060458378047270632166105257587384146446553573489440727713341357016780583372455812329518243095352740855675363380171266004960460456702038836593868744590659430151071252736138753646528588668949002785839539609636112917424902771058395474637953888066368123229339782287668401059878054265961594227428114470556781973893654348252067064770044449673740972512123381452436579972564577515192035402459109632829949569192075385424958994118352314603342442655690803055503722699462499532978303782570533239075003482018971245519632338937597800874080122749198092143776930418735543577760454019017044252018262508942210074258352567884182465650757099681612319377765849212172862845999674121971125454785458054905212675542245798438520443019159155338856401969500765507802601839520103377600346131544370271463641931724740489945078833975319634504870616392998429266930942352359100328717498713962604575726446562419237944533478053929034217860036777623370323763366336746729929456624715604605875051965683335450462311716359130072870669795973176608782250772946767589928059444000363131691192210930122851726355201293663051873451162127082972600278049946975431215688922345395592155719363471451359156201625987943560385944151594064708864162362194702917873319581960906499600141061598507726654316805555072062980172065579350315388295788778276999739355911794040813854817926596059455091179975864158314396650119000919195748926157293485395091567361804431962522681015713519750368910138604129610490799504137792460348032714421517743856613235831011953210260445358528604300622241645607139931238483714275573243936791481632066312195850768042257269398744953280748824383859973225709249493611844019016434010787537893594657353217717777832083908932962246937796240860477038939886313647970079326721497692062979899425046245990755917756569548983845133465776444931617438883062358380596207463499952779209594098540877372005033725203081310137942567184090137943641609145767567028726832063777355550770506018048478378922086241121668555078645066366465005914844392131924357410165356411354074942164501729789147317791436311444282469219671590813594206009177834280127423191362801791453442228587977210993933302538400286114190584675289944439322751462018103356678751244756952331651276040540652792867187457053367978979990315927831626604579471937847434582967073780297845445733132963616106589049666736884419424796645528331788079186503588314361572584067389588573543465378650710057448282796493319177553117519295611900149052936408578610996282399072108371824426544420503055683365057895611087432340722699502482542279305739088021568109778198906566056963783286402143486094863734984682323830458789954831572055445932760328274826479622351929709768934900973831820496766827982969395855941055012349813955395063635752015866477514996357693959150688000426221669838429985208649102088708593657701493459521899929747868544196351626511810671042005000002042082480183737379082086294257366420125659946082370464415320652956177907022099749455829137484524334287321785332558248339709512978044606757997540169159314813667165231376463886778420172012160251501661733465690893989714787234168643644422643370020065314961225908719344148000240114602976577502713430844188534232209630112495476138767784844176278714994359890287958764217323064906397691959523492926893370291609224623164985900965205905660326695327302925719547025467818518508181014784253771678315363306441948947751378600854798095664460005325180581412770757449490312597259265144010580144173537808378549582231818370654327518221560573093521637244271291122359746343913851950965278788152898725046065804079456077022780963583853277910417338607412471989406577268588774859579608056003483662462426859211752074322700695142240560030575245165863675669083602044174789109831065876688773427071829930473673954169643381338061250695104501511493005008505806690997132016258674809286895218061337737387196045218823855274692210475235144032333638112115126581768317947962836555507965135129502960099647264054448559492940973515208826835154493539212505161469357463887015650490085638913350388920809451009366225034834889949880138456063394875591188675691123837673746219068536565907613992083434616161828121175847815496827598471714065937872109552905831394372245882311922559369994434131831700573019064638517961792317594995105500962920438415420660502229016468948385153305290214741336826861221314915500210980265028333174346977126905543685178258539734885908108524052014859655556571365803301291067335124382765185378950463254274998668930956498576218033277943851167704943482900823669347720270217158527603386137744597093587906352684697495956957256743977559388987862947830352067860358064908488301149052567207516975644108209996248311159878893471091302738080614480569446635060521612809751860722013954206805500058990307588227465532135471721049104176876999739340544969883578074807783495907065045215693613297445896401254568984117562428999368390078164630349396305779836672698499954905810991029519494674642590543258470641067697127194183349984588913921697821464468597725051859320028991975844501598566321600702742828480948660809412335502219726519466770975830545191619881573870362621363366161959792638881518986892074304189041602809558962420794963798715487826295880865028973850504465928829423283292796549668896734878483091155887270347603268917149516038179102311957395119270373289945925254894987906860399006275932918950508151828621500672523979954386759530220307712632880618944538222599255591097890969026066669516447437924139153870551494118091585187196620092135581229469484699872199126543023162326900026786526980532508159029699997934638664255851790312977045830828717742198450615181082819603864551244325872065833234966882063493174445427689626364394968740204231623298644467210741362129719446801872482763555528361242811089429758185099592413244238951894150694521146899782777708122756053625031737870357808035324221511902450866549625481932568603218866867012680952222363351139818174235899816486147654736010017437258408474919635365293033427065688355546612887358154164625354020286143169409303728547244115497388064801980954775549502417247574532634773611850895930355183731406466004144067144887249792080298381604611653968008193180487722168708629782405835771313114880307492895309753341125502159988095697602455539174402008422268860713010973663712690036015056725682394071571709546441032846694848139511795472246060392129611395105062882040248054690205562379344300465614919697203785241687944657056490599510627047334444969689054791052699768363001031578534543499700880156092344007507883451138001672569566520836700074304843118643311230461394734211573257570047451354296585337131464292122719187654765839446970884941004428338441686181379585082594961323819460536052228184010737872351687506544933943745743877343881970841090907517897058421984708299565208328663477513828799560986584945779552530652671118380119078467456389314821832928979510220247700209169744695756474227175887200034736526492175510355769225524219514229171704295696498149354386287538051552562653834380082370621958283907037974457279330034317148364419754618421234577307593948227337548222282641970579573517619882900427781617535295428394573781339723336624821983952293758172098172891769499568718039377651072830485076768756205302447680475902123104819084976704333632362250704395564508422315213778742866841162878701047856042102574016414870618404539297263894377980259361555463550953573018880228665786196176173868378376940742348254194653640754008638803568642364578170224202731165606489593543206529858481001703698876579378396232175156478822909020031496400781274280870317085120651546218068193460182087677633203902134710677360213990631864530536497868956173385455530274038451867507630950720672983020544005398676058931725133329480161744329959326641078237160207417370447888823598184833687581114986954119089159557665819219074212785804943407770804700115571698402169017569864417102730179265885387832465818797623156352166696853379820232047483203143979887190679157009354710903997011985744989834418618914634994529778695786807921976436219818046685819358891203695458590228162582700953764676321816026854258137831546998299408352893460704572076309733174327803442603178841870955222790443477657927553424483689108882301719247124863544728710122482939143732199656598225802938731936531528541693465035604148944710590311801569119696959930196772685088588797801694966918011682202537144779075510174565937928754409744675389718121741548450027527799208067121734364806495726672296530749159327430839962050298010357338967275767354681679317297640601669896911580892324672322776986870308567799748141803576361425910593019762519799618227594757423940673118623075323043696816191223761096594402979086538008097913372587642062561040737154707538093032038001899794636010243314990415573748624790974821545111572474909704233360762852578489577565746366686478446533133994543195480479009455008904973448616161201489222713195080687194661644154608657595003880727692505028483956975216491877470675484248381738206147982713242387197476512765625733535928528287786588391330570839875767691821379693495907029838659081788918108604406228454275841836732799228178193149945094203458767735798336484799248075771807811733619457112552295689313587166173012304777773183306600386053711904959009745984034929032138503371260166345207774603087639312799248458803715655778445751501552675842880134036886436085056886879363707910751342860200186522623451144050436474139129751305283354337878634513972821857851848657130039163969701363041152727620595505903752103151430143883555052647432130311477416717800867837154565935110697347657939050533444553951367462975239217371258848943706420862294099483822946549696187957307822466664907598228630498561555771501125490318648694084692970541008201218357736611692274494868623010755650321714035802034963603150784572947125392541715951198022856733646231937744626990533222477629939909147329574537584255567715112344635346878409423323705900284369883490006591377215135071811516106542931080840813882879542506827446938728221997561515413997167022294141275043707098910842111007146555887194490470688753665549959812747527438849125724879574842527839113412567005432985430366002930368664066673183905366656102340768115454023033528275645954336824807460627264008687909145547568516007444600103491810516151057512278646893768329415221053364728536295771907073792577337037460773873756561173916401168842693851912771503994331983122333345302725697722577336369926592074778216694713721425538142538353199349917951739839779695289437828692778898973433411375712812085125266939213685728112475224385143028141161175543417422992577037373549595867022978498628844320983517718371330185484246814430666450447285030756078021826699382590039758895170914589201508425566959701193962478699596113572604080673517036871561098771958070456494375907537898844643064724902497700627722531872627162181741853228953439097568168824394490333595356699800709698579480674428249154116870033375908483615595889466728619245415441272642829769704159611237375561460245039100948101436365319018129917816389858857437204097772829922830598764919842982346794587731055639123193633728997598346032625865610393994141060979061970980919663811101359528881100979233211625087764782559532780442643828353755791641750001085739938093542625028487573051031219239242926429444288234586478102572845833994586112306751134904342579743268550324960685286523632451769172312081836309107157543841446249117096390972307615288693149885371291442820331594216776435357822862723396058752488874987426630674695017579372159248160594023459844309458581597641643584989379436293844660896555403067408148926799654291256306683358557063616860468369500545259868102174453907482028075785029018967345213200827379996935654026225704727448432738760344433064608233003915237779424611447433770748354485663204460532072532252023027636318157717692125178757329871931655780115909322060479137268420904636009124100767704069523408657628319582910283527258963588130672636486922202438937053194925937493725193334965817667268847110199563194393690642616052678996309283303744161709477937366473799610713823016992142207069463668861187997745644577033259325600692830726600355020716535244742353017921738350661666825714882639781368653352009376886457735597980712663049935340578398320910268350572798693521095823407568172189899004008424631353053452478372100260141813588850597631080470757488900397701169034675490491223525135329120387334100964407461143734203584703109346930640426237118376810859082355444843670364417702139463465583910813164429117817663021796967608093081788993092223879933997050255097794164786960532028821936238290325968996937641103222285100744198631695125124948091377943453088795936449627359663044257686021665658377264816984890501102179505818889350941491787121301351166414120759554528863303343203622329775796447828220482629260384844624559628091605573393512049978656899396534661963451334313409900245708245625554071392006870847928397822688479892422858053077078009641536826097325088549138623707389851199184953748230218731998597808012650667467921959353933309673491133244983151532672048797368576211680582497983624586504572945351294529063486216509144965538339719780919904545977489453228649882173245996860922438652918606981798638858030205182424952537540024396300910294094836373208299256709527405413176163413304052124726716042605380059297121795361836395169191496099062664080616040490450351406318199368532296901534296636911523103754347558493009065146364937697650907135027428363117264467929201236832057873327075910874258147948497276500327290092273878197806367361510587139226303420362830134829889542256258608608002220241194544581828889437573076843992260676018774719771225714452803392866189723522005027708206782380538962904732936645572292038337950640376498007097492911671274408629821837916083020699883945263492962966232488175617070507514998954619203488532731531562473636602930183386364817923617775429175925374603987606738955017072598375604622521194887325192764329071708901604248090399781878716504272349015329083383098170370268510317419561292219554748747030833065197777276101954882698083708920069593543221685711312918080243536765786213968843127168256587563021165489449795864036339648830416620020135334159807630679097166504650960888341660424243508041379571327499009143340441460819313496782435305781621484812764993985232412442917462598097657868284888579561058991005364254089363842338014690840803746340674000973153991596081845866886279388127792974497334167846454516446389979500395298455049028836056898709744541575756661775118556547840776856913561740028644407188956928207182548308684303675868195386702136570617723468155320659182263530256841201269146688804588093224620540848674475879782340833991950035937425909229332106533593863242786688126457881901832474820719262627717523643572926112026818218724525804736915990085719512167082461438976213483573832111081768639850013711361818300213488040279409995699193223793694015475048782133323447480469931201627097163724320231338344686020555230117386085428061941223045751769479485963495921354315674561041280967942213034641492757202797224294978971779613908520189172053691558801792743699649213302897072554900978200159382339169503080923983629410906242170905192661065421516648577678740400995193347664095097000346805032140809083294463239564563205827281415066596135688396766671504297163375000346555240224169351373640136331096920059541824296127958097903552891941988350606096646114523591402887328693089124053703359018221314212069292262259274188465914601931385711035286564403681327456160863006181546497922190416242057321413479114229272483906841248765739038105609154128997479044959648426202710034898856834357425394477218141302536308236562663186751825974226739733641543756946997616996676585001011559922575473717776940427272175060330345334626670065187018792534941460032856128669745338424303206657141029829201494233337245671854912109015045344232922710726909957442803551227011085958456800754316672037823185598414500779299126160508695740209157701973066330856486611851122301619500804492239857951508539142448896131784641915829846111621886540299976374284554269350013883253468732240210365448715636343329913260929980983538204376183369155321795958441976000928721320878752814160653154985729216017134160657074461769352014169857533332361708771280166730537444225651430023188736636702150153947596304553975632032420998433828814094878143501651309928073890421506471228589513258069625091012088750721724769950411809377340482423520375927360788975611632969339831915922870866503768414143730204327413476604108073717058054515891262852055022389104251042334912800427861818586693510265894738451962476183343767081724382509949488898625691199697207913346002088876756299676766776861966944727261738723026614800192124578324956239503136495997362524099659667180448868207725852849867829477993314998172033271819477655951925836617873540540882558184299853354471151394541044640570970532033476680379664907634496396987149300552994881342986361104883761318647735710212651785199775777197815854654192976329234702262274855216650465377084015984806855580618438943723440896246206886166272756914022576322656845230458417593261508379787651531270578458631962530475514880868565450680396353837428427849975234606845358018238150727418121405506341803044639420525082093935228708207672902505363472720608394849716090739330301227290739097466674216973497168786053390030897756600311874848753645793869854891921527930667703840806030131444326314230063234625134539967910620970429015226963285692267937488518966284282360634585123232767704339634388588289867207119121107063725229387138813477228030653629904558282189581288232329504462782998446751081274394947638914514892248738746935641044527821011199058607583476804634975107735733497892289445655026539283615576126050358275860839172952764729653087197751435959087902086172505094788510157609290879423387667699353999151067626711920681314208937527444249206027377490185871257089715345490951019630261752229524995592223627340481328744661537686755262648155374506430861570173866136920626557654747589520880224095311142470458965847955742684435295499603645079466001727303556841976735440478757811676981393968280978986409809209340391016241096802514025824408347657497356056877393897538838768942666520582497107760699865746886969765676552440434323582027501090404600965637452375588328254017598704929547620944600051287637858464401574137737551964753841404587019713417802638644046965014337247864103998966539009589884395872753565050777400244869408982794805704471486865093727108640629717406035550490538154376596143089601642769856339205378771982645752721531452467082339581635845897573086271956086181183382520560237656501594430922049063352980425549133352242795217658430782609740525052406712893774200980460913082123674381314274649095807467643598239980492464854779967090831791478774479383938353848177658739233370544606088459780324522120289194541092539103045567586129459902869082490511032009531972542743938620357757719439676911836157393302956594503681592606316576352709595230203231187105386190999628810787217205183298578112910577608354691347204690597742806639033400707695369568107295056609385392828733531790814150123335356723560931781204201511945724336788426059101218472676644252860173208587657087928093069123951227782604967994595664444628203411905641708642557235685049680078491454544553316756748120038432523884589317410867739172144511810045077370839467883849684068756016270158801751732477998068708410215072596658092633988755962321152356699490073180309445827054383213979162933688141576509068915448732344064649660354178028182214761820107086741214954195071475891342688092579437182028174313100531733821362138469637494102585992963653765958379858402021996949724721274785493036666841159853552337687949625561025506219549439056961881075128352729963882999457756264705588335245192279933888876323934551072896764782636505897649813300754449998512841097143657000020019746248784074851156653224770851628095378821561758582865765808845651078838730215078367922093704522428627407489876442093755147811922285260094949762368110624523316183545416325564793312667823569670617838947568947507549047919532754006705633135476066930524616363735120257286376424517555396026932974250896767533137262357230820776804568003736627224940228446224246531718928620258433980462550473310432544960116146090823117691665037594653820913209165845575077670546136264091964357493689085959066613456098764884888634423255484306095399470350424908292712334433774211668391883579600645700129355540619803610581224817768700414526470221108970163324210968910971768218863939454888398768850640505922213028665211903756454239145012935116216739998301552759913924241445777345364588955511205270319623032507489180045877432812598750975658564198390221480067283358052586257834206181616679910284229577814360299282385354477367039663350828276792822255923878303309216811123578005745130526955052578766865024674526559112228762346996511470892211502394920782934243803021459570990002005579037060213007084462341070573637445615318576739726616687405600893811031488074911136339721874474189193877121399262554517027482689714717284296688571862897554969554546693838073801778097954496255082066438941347602940528909094116766243299342507721138082348205685964464946435625999328221024020993604607376774610909906017858029609322461426264227739604278761937283146213561098412049397990849362655504301725880667220252603579973118313279017461674304686932520098312912925634641719641218012858189063988966838768004026455299772897411383155251862746525665040321294673931870672978533140757961952794588888289889515837925169809965306205495042314375284632868992073372523425808655233361164017252140644674757424967763837339212101025902626048353732243351282955065890038856215714416657431652027990352791546840629956532161997801354444426485235909477641618823303803088593142916664753795804375407889931012605364286054331301567217400514117662164066368643883533914938264119997438195200228921849104664399706157405735961111969491968898017343458561815072997295103475461933853743707096748780705766916198291455394323329841314771685529673583448207869429961615393368733110971478346072517415937827012264906656037263017544218755196526720817250514950655221466162388474960003865777941212345640125854921507072638251259658128475124506741275629154961645795492892573387438669127813592900837669888942549571337460990962742894807416189524283513419754181063823210556574212316841531320263295959391395178379997367093403023165745767220106548732139396727656658729368157211049356556128065997751534651624812539804200701343363325553017301454079446719555986423305475082917967883633065499958645041000930389521459340626127959506921648526089598460841533963136557344118857604670869460453270587692209910650803582450470227670088003689360831051709857229344792301577228297789617983820667811122689554640246335349179237571603367012836639725507805231760497299749165846089965772532907293069180075755796415685960119182639718448929029997573776534694027709361099748918423696202349457027047963891029036436900296554902793669155957481907417238578529169771023527696777037193093668323872789100603588458902841435281009031148459560606097157638603667341340541068467778368315878658044562311904298255508920917204883372937615159233979261625266471809120632672855542888389743440249944877616690613393572030056026037887234396451702194870273505791909426954310192397302932692057371860185275692162418744251657758692876086659904188967491136955459259145206279745881871055155612493583924758717032671298346246831870148891811208972247735364409947390763874936492040915028541906904925251890787632069907235239538351014462297919868378200942472225662910977075673597809016529819336044792431786244006205362392113492573703766397842123915787154128526949664964663777507810208831489922533843377245417573617806181904049477516612482295021636222695780893040580254073140152766244592865006706141849487736423867273353068459039560847753592831032283900407107858704037658371170495847031228908762813295212871359510520000685600228999144931467837004476674337810621987491167819551925624441032115511883082945705787006848279639251130799623146554170784789563033179038472903895995868137841130405525498280665677813285746151938972128767850124258879980783640250095283999124423650388473328968683297124484626701700990795663157224939672215053834855643042275722960997117314580302866979450840426226074740322647989482579521233422240574957509861332110319186297468181308160043287603353687759214146931651892082291985627865988823800671625261461947187043477561847907918290279417287589129707985460380346561695726994096326656748608100562428849439086370641634704066838148153924430833537214153913518872683340554825876825723447160872797736437291567862526970916696096679988147268100827369949871151859568894572937415332269029778975824613097636619164544305257956653257293382965617017751086579364454674420769962352224022943743186085091835076252321688553094810036345997610429486620554162834883562149703616960499474771423645106159091605012728379696133947607648245574668072629560039912918907854554053031638257366257805361921550954020929555374008276874367933475059539100760067625561002677226355723028688952727591170161418339947624700596734020388871668163670783065460097423816981180811783261302077848433095481974846204892212928391623341266634000653211855086238988422249111799676039262100618445076195444973893251726783277838787328083287639702367444903083775113615781560126332569657759711109771211798498476933230103448407115248240095610681589577434340083185186370437164026681335708659892029134820048081651825135058877360946748517565021478908625460786961390803794172478693434186679318906483068423896347563639646846648051965641387752436925299805349947441651347088369761024004260850424867797457272394284328777085522902870047281882341874608309975154498191240720365349056314846768554163734291269647707123323943159466999963266537073010474737519177673329873340290831670217052679248036923353598750423225314036038759145646177811632212826920028664635708891014670506386696717274091707856256961085857756972223065614571889228165718526295266186548100430912133308426320510795421809426752652313067901104710182057739494843004473074905637538738656465254850648293474189163194829566954076242081351786206939396285673450724581977684570313944718554140346277708285609534703976577843734017619918628623893452735266993301213883685322151760636689506706130394455117706689159259178472631729784479877214891619109852836168507640588471068016256341315428611814150982116520248491897318000939275467093139742510197142499073131276034, 1, 10, 5, 3, 5, 2, 1, 2, 8, 1, 8, 1, 10, 315, 12, 3, 4, 40, 1, 1, 2, 14, 2, 83, 1, 12, 3, 5, 1, 11, 3, 1, 1, 3, 1, 2, 1, 2, 1, 7, 2, 1, 4, 3, 2, 1, 6, 2, 5, 1, 1, 14, 1, 25, 1, 1, 8, 1, 6, 3, 1, 1, 59, 1, 1, 1, 1, 1, 3, 2, 5, 1, 2, 3, 1, 3, 1, 8, 1, 1, 1, 12, 1, 30, 1, 5, 2, 7, 1, 3, 4, 2, 2, 1, 17, 1, 3, 2, 2, 4, 11, 1, 1, 1, 8, 1, 5, 1, 1, 323, 2, 1, 1, 2, 4, 1, 5, 2, 1, 5, 3, 1, 2, 16, 1, 28, 21, 4, 5, 119, 1, 1, 4, 1, 2, 1, 41, 2, 4, 1, 20805548677302989796527137076326816605040574051688552861049212963797638838878510209192692485253, 2, 1, 2, 3, 3, 3, 1, 3, 2, 1, 2, 1, 3, 3, 2, 2, 1, 1, 2, 23, 3, 1, 2, 3, 3, 1, 1, 6, 3, 3, 5, 3, 6, 14, 2, 11, 1, 2, 30, 1, 1, 3, 1, 2, 2, 2, 2, 1, 2, 1, 13, 1, 2, 1, 9, 1, 7, 2, 14, 1, 2, 198, 5, 4, 2, 4, 1, 6, 3, 1, 1, 65, 1, 1, 1, 1, 1, 3, 6, 1, 1, 3, 13, 1, 2, 1, 1, 1, 1, 1, 2, 1, 8, 2, 1, 3, 2, 12, 2, 1, 2, 5, 94, 2, 1, 1, 1, 85, 1, 4, 11, 9, 1, 1, 2, 1, 6, 1, 10, 1, 3, 1, 6, 1, 9, 4, 23, 1, 10, 2, 2, 2, 2, 1, 1, 1, 3, 49, 49, 1, 2, 4, 2, 1, 1, 2, 1, 7, 1, 1, 1, 2, 9475869731718770169299220111162977568647917777169117649535605133162861347190630887156562016925287053640922112473514666150734717734902037028488669552061555272580358792272144474970916848390480123329827740783477207844762550758840551981262879137834394847422775067583477397877378715835311211164800438168277034334526756265629236427697003672944759440515492158581679480974436889013404621699707750469242336126047327830558479432534828722796348431855415782523293455335493153741855223252308832139500355667997763760142889043840252874552293358536076108525145400475095984178095378823860696886041925054753614315497090405572327108923479362419427418120789808455717463501185865862662674313459009392013795065268136041256035546695558362547860047637594576755549208995838842827257215392853799744928184911987923298954806768014767889070555896571462277605468301834001603039722508922519010273467691603367196860027500078852324556440034316540903876111441983310136806557492642944115328485450084301214426364967692798308246311287631767299883431198896045949622367106030222503030638769146136148600828047410672357552503476609291717052828698826542284740877224180473698276298544921195265386512664167021287411016764815506943891338229652618856608148347243383839708706910340497311088855996495865218801332924481402757368721474907515401776773085639395347011959256515570133935622811498037951214271245941056666095517778307197807763957395552891577880950876546678345503438727972553638127752196762741515917687910675183699620889485447756220585213229261987890399915115981349619999378353505328491488345804281283531767901748021010404055416802205614995415605662085832252948948710336475713516581389217113849403092934395687484422334424963066945587814504530788976082401461715732583012100264324545575636380277790556330001835335207593805854352284615464551945303965400708840285003011347831764260408491424677281351100081639350202518118497726070703811050894097297958283702779216726599767290228983963471876653850328839236827625826916374278793031289442385742061630875638584321319590658554976012556966975094096341778338201411145075937373959078029818352609292328725407721507396383846492057998567103308516199189358767763559412053261415887014882994825456641329807937517851133437739181581469823487568004179308078699575150807110675499241232695100398812966213949856149227692241845393796233789191560393358361170127436490884004632601169008158389344910141172654734997340477805417285042592715151556947272213795522091121966413170422, 3, 2, 12, 4, 5, 1, 1, 13, 1, 3, 4, 4, 4, 2, 17, 2, 1, 1, 1, 70, 3, 1, 12, 1, 3, 1, 1, 1, 1, 32, 1, 4, 4, 1, 3, 64, 5, 2, 1, 1, 3, 1, 2, 3, 3, 1, 6, 2, 2, 4, 1, 9, 1, 2, 6, 2, 2, 1, 5, 2, 1, 2, 1, 3, 1, 14, 21, 3, 1, 4, 2, 11, 1, 2, 16, 84, 1, 4, 1, 2, 1, 8, 7, 2, 2, 3, 1, 1, 26, 2, 6, 2, 11, 1, 1, 31, 110, 1, 1, 6, 22, 6, 2, 5, 1, 8, 1, 2, 1, 91, 1, 972682601881685511897804071320989163127962126925367821165370922172756055680199134273731718117250728932736553372871019112, 4, 1, 1, 1, 1, 1, 1, 5, 5, 21, 1, 1, 13, 6, 21, 2, 1, 11, 1, 2, 1, 293, 4, 4, 9, 3, 1, 3, 1, 595, 5, 1, 4, 4, 2, 5, 14, 2, 2, 4, 3, 14, 1, 6, 2, 10, 2, 2, 1, 2, 5, 5, 1, 3, 1, 1, 2, 1, 1, 2, 4, 1, 1, 1, 9, 1, 2, 1, 1, 2, 1, 1, 6, 1, 3, 1, 5, 1, 4, 5,

"W",

1, 22, 3, 5, 12, 1, 1, 1, 1, 3, 1, 1, 1, 1, 36, 16, 1, 6, 1, 10, 1, 6, 1, 2, 5, 4, 12, 1, 1, 3, 3, 3, 1, 2, 1, 1, 4, 1, 6, 149, 1, 1, 1, 8, 22, 1, 3, 1, 1, 1, 1, 3, 2, 1, 3, 5, 2, 1, 2, 1, 19, 1, 5, 4, 5, 1, 18, 3, 1, 1, 2, 2, 2, 6, 1, 7, 2, 2, 13, 6, 1, 3, 1, 3, 3, 6, 20, 1, 3, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 9, 2, 3, 1, 2, 5, 3, 1, 1, 4, 1, 9, 1, 1, 2, 3, 3, 1, 2, 3, 1, 1, 7, 4, 1, 3, 2, 1, 1, 5, 2, 1, 1, 1, 2, 2, 75, 9, 41, 3, 302732905480365528691591296657639466861461592703098473694240370430280, 3, 3, 6, 4, 1, 15, 2, 1, 2, 1, 5, 1, 157, 2, 1, 2, 8, 3, 39, 3, 3, 1, 1, 13, 1, 2, 1, 1, 8, 1, 2, 7, 1, 1, 6, 1, 1, 1, 2, 4, 1, 1, 2, 3, 3, 1, 3, 4, 212, 1, 3, 25, 2, 7, 1, 16, 1, 3, 1, 13, 2, 1, 8, 1, 1, 1, 7, 11, 9, 1, 4, 5, 2, 1, 12, 1, 69, 6, 1, 1, 1, 2, 1, 5, 5, 8, 1, 1, 1, 2, 6, 1, 2, 3, 1, 3, 2, 1, 2, 2, 5, 6, 2, 7, 1, 2, 5, 4, 1, 3, 1, 2, 3, 9, 2, 1, 1, 1, 3, 1, 4, 1, 1, 8, 1, 2, 1, 1, 1, 2, 2, 1, 13, 3, 2, 30, 1, 3, 2, 4, 1, 1, 2, 6, 4, 13, 1, 1, 1, 1, 4, 3, 1, 1, 4, 3, 11, 6, 10, 35, 1, 7, 3, 1, 2, 2, 9, 1, 2, 2, 7, 1, 6, 14, 3, 3, 1, 3, 1, 29, 14, 1, 4, 1, 6, 1, 5, 1, 2, 4, 1, 3, 2, 1, 12, 15, 1, 3, 10, 1, 1, 2, 7, 1, 9, 1, 1, 27, 1, 9, 1, 2, 2, 1, 4, 5, 1, 2, 1, 2, 17, 1, 1, 30579384338796689929174925197330120655501413103782903588873576754772738358090482506936921809022475596554949286547877826368689335300465048682697461393644589445458799625722200638266975179000742145999360098731256395090147841071556586577911106816047167422321381969706066369879029459010969951056555942845333857369704859808090132357719245906901523640758345789177084056109080662724560532348213344718796317138546366704902932874600177897536679914940131691522051825343635171014377100119050367768987599032878788682031497972859960777702059123443940405801660315966252278929990054467708354407804713277899400502393485245471774191844656959414402843097545751911047104749853089329482604057796742791135647804097901202750754196454666880045556916238828054455274034751857450491330109826235707783122652376345405227937635975582968908917737923435930524712989432159652953756643289520021189978054454619052131770845875539106550404371524406387259848920443217913336859795514657400383075928700568277063324343723250490209702470679883605925457696663890191469308647175328188596264501610135577346419164803405382635943062108878835139564550364002209743527066779342000007356441958594020427473539183362818740565972666421657579410973884736220695382121789879327871223056553253604161596946577842512639662090387716932444386139916041242004261003888348522804651269359438569263469861622776937552087747280999281843677653934198529963423076177652829603891421294056797207312205180257599966419924342509307806295502103500438350695099999466470992292014332871367408807365808877591536402498997758968659758430756877473561025363741491780109404537042063309166701337202241682742212373042789441600604442910227967258745813466998610202601823646315020392446884305951268462258092389549881862818454266480374355749126081692030740809071588660442597884236043042582137633237319103724694811396693285463939650277015872126962171433676922494613908615796548138025944151971002272918580657454941612331981966220742290972368721541560241017441543134311972234541716561093693263918832952264503732442181043611121048926520861029923273308127836524540422670008998430836753533331468657226662819595913241864880033636183331184082592604445179539516279670647826328334176498170777596409939090712478559303253256470268236787929301844448450842741843145764133942235563857678417465956451550400773734757130629500127809079457107405168813857525282303943058043823781025667147156915371567044836953927076905126540, 1, 1, 7, 2, 4, 5, 1, 9, 1, 6, 1, 1, 3, 1, 14, 3, 43, 1, 5, 4, 5, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 3, 7, 2, 2, 1, 32, 1, 3, 7, 4, 1, 3, 2, 1, 1, 1, 1, 2, 1, 1, 1, 6, 3, 1, 52, 6, 4, 2, 11, 2, 6, 1, 2, 2, 2, 1, 6, 3, 1, 1, 1, 2, 1, 8, 1, 117, 5, 2, 4, 4, 4, 2, 1, 3, 1, 4, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 4, 2, 15, 2719, 1, 26, 2, 12, 1, 4, 1, 73, 1, 2, 1, 1, 2, 8, 4, 4, 1, 9, 1, 19, 1, 1, 1, 3, 1, 10, 1, 28, 1, 1, 4, 5, 1, 19, 1, 8, 10, 1, 3, 1, 1, 1, 3, 9, 4, 1, 107, 2, 4, 11, 1, 1, 1, 6, 1, 5, 1, 17, 1, 2, 55, 2, 1, 1, 2, 4, 2, 2, 8, 4, 12, 6, 51, 9, 1, 2, 1, 1, 1, 3, 2, 5, 1, 2, 1, 1, 5, 1, 4, 1, 2, 1, 23, 6, 1, 1, 52, 1, 1, 2, 1, 1, 6, 1, 2, 2, 1, 3, 1, 7, 2, 11, 1, 1, 15, 2, 5, 1, 5, 5, 1, 5, 4, 1, 3, 3, 4, 2, 25, 1, 1, 46, 2, 8847123283795380589850256383221038538035330757289910, 1, 3, 1, 1, 2, 4, 1, 4, 1, 6, 2, 40, 2, 6, 10, 1, 1, 1, 4, 3, 2, 1, 2, 17, 3, 4, 5, 1, 1, 1, 1, 1, 8, 1, 5, 2, 1, 2, 2, 43, 2, 3, 14, 2, 1, 2, 11, 7, 2, 3, 1, 102, 1, 4, 2626, 1, 1, 1, 15, 1, 7, 1, 1, 1, 2, 166, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 26, 1, 1, 1, 1, 1, 3, 1, 2, 55, 1, 24, 3, 1, 2, 1, 1, 5, 5, 1, 128, 1, 1, 4, 1, 2, 6, 1, 7, 32, 1, 36, 2, 445, 1, 6, 10, 119, 1, 1, 1, 3, 1, 2, 1, 1, 12, 6, 37, 1, 11, 5, 1, 2, 5, 10, 2, 6, 1, 3, 4, 5, 1, 24, 1, 1, 10, 238, 1, 2, 1, 213, 9, 2, 2, 8, 4, 2, 2, 6, 1, 1, 4, 25, 6, 2, 32, 2, 1, 314, 1, 1, 6, 1, 6, 1, 3, 1, 3, 1, 1, 2, 10, 1, 5, 1, 2, 1, 5, 1, 3, 1, 2, 10, 6, 1, 1, 1, 1, 1, 5, 1, 5, 3, 2, 2, 1, 27, 1, 1, 73, 2, 1, 17, 1, 2, 9, 1, 18, 3, 1, 7, 29415340805819251600775930303851053257153313830366277859951274510319560603998312967803966986363447759897080392642821985771333568526819915409211907588543654968374585031968517782903378369074954262060667068445002945275776949995316053661002460505758778652092735181950380084989946328029173682593576329264024076278315271656425963340804301723412862211925239303548365753603644799996260807770041897236141755696366394846122166313920865112944559867554428667322025737655457094965589131026825908517900980615011927134155519420402394947016969049913291199121539421029845887751849750362552305576241806476310457416854146913890343979215060677560929113395259944834988727831547778378345226834430471918458074250118244168065456008474191640555736246853727566214909018287882440903800239500998542523316601595366313650663074094192089125664817832242811844138533504956478423289268882237937994838934769372704354264516296205903819364136555850995558327849307863072091032191723407317832558670196272347165284865226219267417299707031177365769273206935185763940254300718630217909307218265360608222063674803652625635256505552495227877360999415315571932312903666826431833021690136145750169413165469490140810156248059485711373016423877945440197467799600711057124413649353858756265527047195325628506621861789376216490278193064054057593984168663127454743753370114801921141627223059209382833977042204433810810517382490085987489539262384756942666708894673368855731035490692534945880389326144197325057980312857314420152972966649306555076020012256780321003781359076105459135161035262038400514052094714667987368496958535713286733976553475026791784023711928745800035056346132501002810297112859406195464794322812882014934610146991849334712115754371688590739486130020278508240215265403510087408811526300877561202323092306730821793122184109441062876967890096149201189746195726642541837639457280692785755713195632389933335343725177049787063643931523302723035846661615625068767743286424629138958601616230900907568132283585952831960734132776980462917292908686291838154825278088768840269876015723110934473208682439474805989157270724052634089701376378827490883584379693344338989153991709082894681349112067489432053830489599302113167716410480805350574774904822985250956975741460800444328364026606603478909602691278190120620395905978394358603006903530985672489538979945683579071447579418036291226161803595003203952327844294741990348295191425163718261340591340694140201942024586927636674766005592609884438826133034949973716870614771629961008669661456182469403951542871250381906394645768859495039478147572993185907287249168993492813699760514137926267314584981711705639132945493331953855015587689464584150183912025490038209117005689400665578342601493714723776393198080614915277905840914280470300893696684840797751101959305098726186070217343066992260305263602759007104902974155495400791291424753768742840936016497958161383906761195510346585191052984096920100833486826474214177354188456800577761124854027533775292535032920415651236540496345134737420814592033674699957225359216773655075334561036634735756290513097906986409682254678808802157973091223962493937329919615330813016656711925983409862150060321626695324909894834474205920070017752684600678820588451441430354484509526948591627267591318407228304734659020877840307370758550673643592295808321425596655524425056615629494205608782085550930875174876890431477420560728611192267999973655568046042829190666127007756924551093826742655773265866231913070240140717049144404103295905469615502400960542600847810185608092066298330154730756092154673127734216848648525394099464977311464029018737117371225617960880126524425766127562998305168375761182299953210615265224821160447996966119907507828112780206693191471030751294960392142395600162097342605238501314399072096620991465428231440823248946201546609880071940589769555245582373988245709035494466374413414467476966595666917358498178872151583743689393713987481983576170695030016531177865788004466451907837995269021760655428588432329805038908757401625795202236972597815566245107465402227594704597928724301291667786147105759603313862712399137889439772555345641522327304788141008057782473599201623359276310721057032324671772051344879231007699831071494375340432483463406842291578491024860985698637750679176212852716819178271366854097653658029641685097688707930123746300516194277663737333013751299240348755804467439728493099206778334415689490113917389098344819382680739678622341450122113088520314953486724885474684446913596544770824199954907876556208570651926405812706833441894392112778634436354860567548796897524224873604270817728478462513686409278357801816681901242012822410294477391875175482310759383829374920895147372040949705478966971825629995179847350235092033004502597063745397473572726243109266680721220625298608735308001975309275217355663651324613681222480684480689488629293717287381749880924479646178186915168143230794108661146526249764865415594360066874075162499744901312843784065090939458496863226689155746526850935231393647046086140834831415273104728810213055507493848515123640754911266429410199908549640573529870967594523204686985360430935118659681212060777904377178235668879757652287540569726661459527255837201678464614048685263277650970322254466115155488532817646890758719487733212522644315205327148595189636450386097056909177457219877540014859059082787807226065523349226635184402428594158767522339932965527918500906804672703081006696124973249042786579885218381365987993581140930692617227038368428881602265678997648977366985033312952463048577106226371885813951135693018508580693864356684600636075511530132258114391426801686007536051955317812153796923113018947299156872293666369805008648318642851533502219588979542464477894750630066926305711187369186536027175500985803271697215313970407790844690457709348038248648346076795835297775443706134623474704261805055036010243801797390942856732413866695669641111545775509405961717277601455312562852381457286947661229220002211577646773131245032845926537975085272501482209514138663730015660205447738621030903232814622283636863374942080829515050331371622330919703492763150412484473458572509364953157934015706246956116845526911781018081021325923264541792577819072790680928939971730957777741232890578060340641790544470937072811727546414980664041948431619089917814525329625679359953275434923421268704884689122334514991454114983117418288532242007293162573928591984793399183743012471472654664332169103546793853821978828081195013304350648941188449945951143385338172020737165175774615819553215898325142127412941259561794432978338319930920517398234177281305644809941041403190969937848857079373590877702433235398259078732557531393256738344544098776774327959964687160844883335469594122674304333306003135788990567251926249662867609518976083465834866162260802197059503225490065762913552187494814702788466627585819519464634306490853995965878143607569279666989437328275063239004616491711293713161242506224538771996389988005144989401378239668013565689131619561545217146200358548077975226972806526079025013571497479589747120929820577852462104389364128187599034999897263385209384209974101187594457648408219740735906654032658518767587612713354936953044419879072093116263344850388224312663426080471739856502034369517712761818065607227107307258151436414228626858955754737102774586885604271080800224235384859678635126794889641535805832048283291636736584063869656928158958729856450115605333003344765594109854504342931111548862163403497581159914060963593510355471394510116813785815841658439154565359123997949835373403745313185380322018754405968869195668813491969352286835281945267720146899273867416520824722747898289877739878512517304081120716747855358671422787807074000025778661742847019094331782455730255243481105207509764281945638078196574037744758754874214899032200854221302662133448751106287669806393160743756984711319619148218852625810024624745433899987489716153866733781304770845894848149776747935696779521493659073610845032828033910425975506801901280290588374102187654688348323751298542757388462519970451806225981107792828838291632926442339918067182655176599157317368065511630418468811624884950668343863205098285911899719162380941405617822966359599573779194520914827697864950049302527902822352585634846354909799185801128600147145763346564295513043631953308045499701580602054291149928277886530533556155024529165961290857224996480717429187943248201669233049871143942117692021821572566100790400242169762346786974830250171442416528716674420204413730327931102612928474738176933942358884229293160168445951179913678890520403570481071200270712933414474192839994453156283442392493377342473523966551605658221834415787944575580563731008833505200956360589201360892162547675335929488336310294163207012308265421529107055349382014312288140293969794929384059747080096854749911044455493932024239061799437847423610470729338207856810035293722606788743436111252916913630793484083276829571956435604836363712019771053253847325237152134257134225703967909229209585088647880118667795479226135261399497083924658837028913963082189597146705934514280361849054192723922146901232017465148535053759082233446971564653773315265410231874305862031152216727699945213518807778036515338607040223162424855120986253923130191666612883132195933252868963517618904532701977964792803371673191902714256749840101143800093577977628292134045786711333052030852569659103118592970178679491934408348431203249170223166013663192764181470592387791291495082454780276776902714351031060410032502424135748234918141092558452336834697883349590821499281312139213411289552146505289740208308627597745524030290936600194425105739703511981089523811959370941549631198050701994969535340039211571910702956324680821047239892441098855993645041106474711741347036505518069946258516249376555903132555359086380151971457382196057061034806735660895943976976308751580958974477433477050625925131662587806696860357443622855429780814045721751872113166733923381132313802955829575146314564879058971124340615352949195928699565586312233074120441089952277040433919088685769846187778745555725656638488783438911425906274222376044899692680058145439693901093097196328951496103150178803345731158241230466179352503261495320634947529052487154587583596363752694924448490169176425544488507908887366262359384953501244558838892647252683953252902900597652743559000211307030175306919658636821161692992290065118981218547337985854748224603508036181979279181897918569432359664086493910694501426480589553502028389892924638155890941224600770938656158730706384729769304267247291763218793005973151645005470648331744039555049680370442294837918029342489432305870194755851161759883601466517975831785762667400579577077531366093543707754557797190376736129494958315275099364091119627864883280126556310803355169562410933234156487735184616637693291020811875685849429434172059977784985797440667744209029693843771258546626224086840125588844729775536185378533852438487759959147304870305922634799979403202290592979336158015480282127132076871215746947459514110380450468659466752850889114138118842386165679529337936239664874062677708577305872716750188549721901997808603243448620749073700474249116529648483670894150004961191259835458528871106895053550088776949404292375913404154748832681597086527671339808365189054057369173114877848805671320341655568144629539680822497485440129960369240513801573300813359175460059495710786490409365398969661977853425971682170313467250215749416798777779383411329564159204874919282085087679570313586214436833103762683902722976088329065518305915258496602488487041239019717650589819891063166123356052026885891742720336625764176614242025278579507920471069520763245878209889631985517842188699790200580508778655840848384137437003141665784599791028442230300843832552861555756846990461500128393847231887288222779377884678485886766894975933020282724235798903041749817412854032387359639862919128200618616825564378783799235680715304432637605119783194538228339953874179454478467719575671481601568932748419691741741022226416196824866640568091685284314906639096128112335623514150100294174302572205139874208128025282207101145868014594425572565723097702334223291724128090411832919400256320826384604727271011900214421320876696099413285312862457031848503885160044332679837020242791288528685643871647138428906942308337197372797304492417104518280660675742938304766435254488453563729751025397555457528291407945367311605403463956865669697070316040197179798448088948259516915540000263404187880714029925279725062882181174043618895449403624830376629639995900411176160532088623678139573397202814906308289929062051356133429924542210040175600223469243566182372531788628177877428400487234599576956540675532889194782465214346519596120450289453448172457272614478462461986580186131319407597075127422412710835785367117768134964635687379693585871548914757950860300489166218764477413076294430613191055692763263083609192671308009663641956724884125296629613966685223722833749473188882493682483099284252294221978982911870673955116195454799231191890747045435283710659176886302994497499581886045149237914714100810919131929658020199966285715824214812771759868614261886005324369421647777043853170048266953895779547889375443159637477515993013564002279916870397123269306188314618820279812702315615505895274626277518303968860165952112586174466319233083519509746220619689366795902224463930863949771230432941253789369046911426455950787491215151604447870011513885693754700945118409286504936112761905345123342866905977536955572401411682585326754570816946843999463194608350850815681038275954018563538655296195224477342496925465873145583607555768471672287621865018819920938631785440153734835610378095726930639792634961746079077778453925812821910579726694733992010245548010478066416402339307267812550036548177950130586460361825696260548824654512878467749643977995385394955091920497820113132208234152001889185518900359659011057448035535200420177356652680855272523427031858897709504429334095352158481902044312874091373908921790321138288461751369716702738167001901024526798235803111203537042609618404716071405611148632722734496642260031401628205006423759868197349092337065732638050363543243946575109356761283993651741714915608952667423840330488679752380017242138604142560022595484035904330863376376082169229758155649710436541606601656859016187096715895212902742759315981132078950992141030756705600234715161572745248973843942502901983098680082586230410777163303979656930751172411963081217183252680061368210608496987355196686455387691208806887248200279546129146441967823421478916430881002223495446168421672423444515725339868720394985412056519663740778577685944812157845816996878202971924782936961299976978094488189713794498629767577608452859421619177276854882883163355501712859661530011897158592882764441683609045013816983059373875106923117407479948845746816941918814145814401475232748524238219200468622086088504988223639172447967612911785628017054277063208545982573081725734042091572115640667162391543110883812917014402566010107170109830960980372550809803153865723860323001877056065858669835301499546747862870306869172532747233962335606289141160291052154017564933861709103808187497624969928919242934392311928965196182143608166170596466452347819656929082839438039269703150741582616446747455306751179917581213632750339216445074567953938497243492315553666567033131040695443925064219921195996587073899675007508440986882571014240323464196242014953100414726351876687068313110561254166300013806479855785634004976479368053642008434896529505849342150125063239276860057236881979881471406503908466592475753674041741347099876868400482954773964492731626670820791767924043014973307265146220890912685026238211258407327279287010793883614845216684922622616709188033288364044252519472817953124347868882864398926099899927339933147872045108103887696072662086639265665412304566010936776643013061988914528164355134392878238320945539651169473037554710822627970285914339295245433891127933531241611469859312831442439268718763941810212932912919704030271654747651267607198918380315370091254770753485388903218483490004332377035162608396288011216423037415529730697959391697258330483345713046798978508578403949473575179421540043207386021525733040126063027807315060890999740265626940489305455497831421016574629022476613591585713894667962031739318172197882742284985088469284755280775532107036933503407656801528414024376337759460734962742746811821930501196034289116696396054942084482200187163124620666108038320818933692169610101095236135840083144767957499859316896484955153610662065609005959671130320955048031672272968105410960018960367532180456027781145225936537797916686573046362009246638891314207525741705438206281382732392498443087382470258054705908178919841669639567125198346515588537239328177377464395927496301407781735907291917457631306036042041196925994331301723949061413875596941180735523396000284115116722925358244348392390164638981526866636896714753515122668470216706308400394141040895218312572930133737867361475586777848221167868869937920003565685588552470080134259440416869345143132556870821641911826583221039628725399199963469771407962793550607181276607968552822629315211679726593265428395393694032933174836712982121461397102329362300826537926835085274847725885783741910051548457621054192004531609084051465480457637203525099616485919245323048214603462291220069684408734443213313020488244656320277318651470750520581463005136974487856068787131912393759331387441581008354110893541169435283858560983648501932970234132615191767031412072313553221801421076713514107245867819212891432868496704761172682830078108271150644144959399442998084927279736707305912880566843921222456177602954978077842817191791786742266413303268910458646873770189579229569681629867547862924492391802576696042789791303875467049454644113399887006638611865426556942874828695368995947534996928734333241668113510912301261738041976915657240861520593097073068049432099853675311821230472663629739985253164480049119494380678403188525255054792553837483378115915234936415677388299311833532755940807886682860975743351939209586273033942009648918384130923878346670594139213223142569187109719252676095538588396822556576438648010883935046903190938545923178255919547366774495659694218834114813945145103752073635814407861333185751291490542958236692649267517869305414818479470011298448378700351956525586325780798245101948744665853720656997832950871723775699448665452725120808306438576607965885957994762919033003684355688670620769044820340744553253262331018348454615675737926214521509960771119403405837333232743695055779781069715503714513374442035273931456427849844030146576073650015569605035757102725885511170124168745931055327387600390450504097174715220307106073140354233928232484166339839542153780957144051799051086880265526409666104926434207721999730282240636328918139857428227519169073489061641516557177616571425674410490383441771248524711713187079992332672774317937889209920516115860189450916132258432609006028655587916077916320832528175924506576282042450100716113147106615089162490117126788830278620026205867325371625666288904426011209218764840458424585408719579906718160084184729902683170130306498580166769803603279280986780853121980599473169038119023451648415796112889531188641461697086419967108062231390078745037497154493233148655119233009171982593657872371645467418701396339646464834937796602256034802578777275458584767191245637202551802412209975109660438916016905316673688984785807357929159385425353336111211592241222634542368431608503803030175790425689385531534544542983517327740416663958969529384706025727146108926838008849268863566851411662644192406237999069457296230123337503521647554474197330429333970424149161169304279923709875471483764856721631005361148057259034019586822584553124257588247065656085045504921123547857478549174969073440453910603610425868506192664939896624664424712305168095291315680930237641662671843283789557654967603395271087253776263280941199222049744052617363816973504140649096890520320544656627229237694846117972865248468052906522566890581081596122493671716992851866626028318536225071437541870395138266682418379253361100780132868970131781336346110468327187024547436818686644062190332863732027536892455264079761717337454084445296653713567381721499706728705031674724664268712830259864968587344561907864863730793630418385388899038758173933243079724177896329003854552120778723725416354638976481292816449383781053446018199291379903447699259945281299403911778729550168408690474994093643890075173145694911664662331751622139873288042392376467301607447717849298414437960879716409800286910547585373309890988106311567904296034989317260702183238655690787061137449229575771424027638066656852709821819892721254452171910304935899699641716757867798358150735831987854980721777913611941953700481074442236655162031095172780760719436697513958917422490068226364192863741601721690008213531204375391008538392887852897082994067855979428980363383618662086039813021407311873833940218191136825388708322762302109659072666195107387484539020744445474610716827656438526961815988711044705793881959971057249673433542734688975563318881605646146030137713433147159664816578848296867156443241659446054253415630865601858187049786369213029191646398665466293057515381594383815281402832075896597836517979060755233663005712478064896872941804685586626872430079726380061923091971695493147817819739407838340092887266487382566618730763759356303303240834709251620255927559171800851620907559773099265229062414187375233387134216923982189708741810839637374807878965284753342354328676011742935256608261466539697525342532009790722604114892798635282477727155962221029976709538400863648637406952735042592400444858822633131427130688127035079388015512194415516666788825087050947874158637904769585669212674898838211312791564944878257178089118786891348071874629025819542170177205907032834312546255157607595056604374324856853923540480476798387052251772542958555175369056382352658730827133278492955612499342303912080457326174901886401861822942947438465301170959557523875611010926657606581527740931326591004366804658586379899299201313137182534053124643248690225935943708362791782187729767475953923030385702494557614306213914895188351146477369936550750263457105693227467214586517525455821968083101348006878125917462768912019903592949292036042536814209326599393776983925137362449656737406616856541462686738776290593021972488992741397141430395766974650634717233607695739429466271653834292481332320269122995668507084876940309819763252233156731131351175944575004326830363992016860054888130031345372688689248744343495085575498571169207303690532643132044388127758013178557082270034484587509690110375419849612781547959764682148858744650728181708208185482972789066018145295474316477144409738060798737382060237743329460306066475118356498632650471953433713579684422724513694996323358311411110151931897474880232611781741192004341692097832828338090443102624314406708679883399648784826974983219228597072138402899017113450761817429546814096839001508340488998785289069407883026806176401234009076204334560471412535324771379028234080078426339296145387463743320183142779321158195248258282028005896085497376121456834276897476497940273542592869190060805512411768969806543943203170093695673009271007689880204903993324092411235758623978585930638961881697996587478437237498464860505419026713355567456110832456554949264504773405085589362046912927261911328129784918938624351724436307375717046440122803450806700300947683567260905705109038312919031090251766134554882786331535787969928345513633533360865402665394037576158802621528934877704748934526746422373284081432970039006371010933266015801025035290753033703284055255649753192849049657968610760248769543117295584372733107609492140170684915632583224491482859078452235699238676120117021185721358563462355180768027058656738079925162667485285194171224830159912911078153068223991172024294538174175036809793355947084838377900315801796001213110795797213126730366493590284828430419523744120005451630301554035716251068099186060713986926795283197214249073406553622075081428775489431767521966527118958449770314591340310647408475905240535896892106949842233167257577184544975895408288011096498265102998231480821730306501110663279796265274286693810261098112331527727690914660660954676288791626172109757277007376903097025507516174001169787255768328494179748684872649461718084493744450757030456887750245295808019159291400298761447376874835818329703833498452327835127102869204134934815812100214254336181063488071226273575334455598897717310845262595110288373168171335200928268095255432721029802587642047712826317693177673530273999685352467729139463097501658829496148236674182492012287483443303759244912766821873959827732840695951111124885873759278873381981571801685890425015367983796084011788150443423606077079442001813603164890296028995342091532990954152907190523797524412848443264677462558060977861214806067290317169248961916067436712006885441958045799745144962969688305406537141242100425196837246352276477478902871424313616859859979258294202858850000429787080333882497593642768301693152314362274292100220013657622579512047643441533472200883682541953299738978611502118163857665746134431104340602533368998093981758024569521135661642221184363809542520056854594249011200627006679575319332454603911918859025412421521672086182511683760609438429878646436885620549618312206540952915000214104679521812792777157665948192458826862825664374007171037717923318394930818747536749935493806729322082004539279457281872578678340701553004157706381399478867467795107249185829854655251969212259625201006203063779235021162900808114923409025707749267020811178578494653893329323663897454452752694693102894897286679243626027432530671528572604140640010951249753017592380648108043494794675777887121811749752808722750277976345158682885200249877692874308781766066430831812940969599128922162712606510207197457991465339718959004362780440106747445907837657614703961405352813529014285292136590460278974283682688051179955359665503586908711492821313601534545748930058403378465634647039303371265798044630639451045310724421898455012254625367772184071517301248388735252190866947419757272257735771941384206939537068715954436542041716605381071757883061571069168875217813024719852369593352504877408684235959000181066104734269551401031706332044483025774355785652504600401216804158044243692630847594761450186290832888670073632518018139448451778217798455381254542069593602226235538041541704888630147578523774382000481744415070631254833772406609421982234007539449646124575478025059987476492566603124221231327761398503979763271790209414112564083949853198735336041297428797153458639780566041090885379551489870486686910244865674077707268539869164435413218258400930464058750339580953065290206897042073024008937545618226302459663658114582276853434983978161399346707558339123407162303562986712183910772474625160235607421073260916942145067437030390158673411914727119618671430549554068356919850087114285249209003964115671511035179094588068260713795524451709073110052675887899614411761946616597584573243341223296442304165724976395868675863272650466142622061273395606480843776210265406162964410440182860754140701782322496105682701349957818523446934849929108740495069441976177856137882071028197482967399955991230534083979203873295729265181297361189410091295211574833959628744218607782295387270650136253468149933350718445811786862376981011795477384951173371118406448239770929236736058883269571009139325327344364383552387568791377716630272267553084477555617089625874370556969259422511743268791463515829311120238499751836791357259508609286337410154622662160158270997222750739091041391294318427549337778262360304914769658563249566849783630282054224859840073201703108911663030534716112386283994721603962777419939311962548002616797024548050493734972180158591690756390311194857203820709143831943435723102995610817252687181803946798532302811063620852080432694464361155244633451871785564097627618767767312443518970946891597012848330320932782152496091411681029960264902211224838840419601259069907379152121959381836813448587402774376396742071620383846749808404729541545959666915417444255456971039258631091052625082999017110980828132935388406364839388151916035719591377618131861057645509744391998090798344713610666860932495481499386256974636645227051389424015906839518372074413607542171815039392773113359842882257465954930264046081892990509895418024141173219270645856395921507737578266934365483353905906618784818504315455551251367373248312160837229815794264246464265088982177364116905919296013785050222658017486197214775417403997020975694108710755911811950193724101820115981623109063977826159527069960772899575910248040903728212633311853083115850020965121615660878821655934031064604171229588276974641000376125573760069756412245095342189060090232694169647930863718969244809678851340135198277133436413847274830403810426655040626775342636971275792783097344376001625885815387857849121654200167657763010582201024708631518932745949607884528473673090140546286217748884722452404361364269037223003077394087406092600837658317119313846157050458502290506207215619522464021958468733698299217185641452657525882701378176296517627535307034033623002351398765576096149972540406257363698186236138770471904702227954057066971994780840090760643400690687873827737707871036279523979372095153223012748853675506456618430282996644254109340421994292920802992776074411393313154141254863962052793523375698538980060680720550894733386610199003453220833514411320277075930559366713649538614398462385603306963107364454287666802046951022730060105401888358505844126246774003493074154004512474461056401462692115863377432167030754203270005584045871964982267014418556705777265739718987333171780157316671592819406837274876123460710714407022714838265814343516617743683764648435270346485255890617383149883002021672760788275735843825750102579249738947155077394536913514328136737822055141358439262837728114346137427121061509243207400891566793283984066534417393346618008546027549915693244261259168318688687908108824148028675245616859057174128494170394719998910229101539826195119227176669867014178792942295551731776365127409394054022886940645872707349840232298883616164026289080758728671981657467743606625807077451682024242370382320535559031804970649006009526786944464569219384228673635583066348230029599116466016720027996936030066818588784491816721522906194211560758637214683189921531261672236695129422363340924225324012741713901447549621806129451888866366780210908471281489864894911038643598962752531294408513171332309882630104374745597539777417981133571248943323592680825476588786431281041161749259303984307099312661029576933248640829552240744254692320554273955460005331015209790311263992477514991998258465147105142304139862109175297796156229116530763941040158844031468248940429667081264025144084291641027628228194906369987082116678302787585680204742797791452736139306710660757098763273927019056193838924064270854805528533518752841458943766594987501201362997867048376504374200781048073082343206770769532635741758216853321577986427216576149901991771439498646893382241347083153375927625164931282340394918304627320112318615002445419310574023251273947501910969623673165565409066068058491526817117064568813651724420317032465574527689823927536243258101975937202412986653104349927334176605454281777237028594255531162776210103037632815422739275760091495344808956978650665724731599499117426912393888197609578647624044173150867126401291957057603552483021854810681974489604401679166962998881012141732721477699595602794222819603221386642732638022061565493361360008893961341721773247878485230235532992731360471424647449948323968257989175092617168687640347077561070586462459449110565189868116958303682175871764471312881727570182971574163272501575620909426963157836105929293803880255972646269500056721896169956599802812225979435766126431105135170472150065221045272330255783658365647286138096730113459060770301976085415296386140618895639984824841936602975221212778372246509317027813643329437841834092890915409219655087075729559252417671772298216195987534858393081652552488519880447969575877747415871587443588730670698518325464206959551976228708039581585409995389951109121333047284311897706357291714688211515290004631574871379898470310418988730927603587236279908302482614370141886193289095581085051701190370998350390902131891031271873977540190010879958529478414825521068036945073341721712916720083733544033224426928067405997236139531725047713493162742949860290480807986442498677887804150137457250889316476409071675830907760393195457596840607320558316216666764539612414146447318958070762751767210651508736994060958489473633574343746872389909795430795894688001797567035751940448031908643432694453801530316800730207877870448765691679348922943391951060030428581089958021411873580831030519256919382110734409644960411364127004928780867522456321000762854302762208069132383974337821420294764204326884759745036741956764100419750833941240915360192519032666071900128272778100864106484451813848478743790263137068940301521834675507556036776901702747012314651637656231428347531061612262353112232915441763118796212258434891129941761889552355598384813644226522135221961933357152979869486388325203176223408431179821552377981409235733392790285154098268392147982972391010736047777971926162944463552353247599757466892953116622575, 1, 1, 2, 10, 1, 1, 9, 1, 4, 2, 37, 1, 5, 16, 22, 2, 2, 1, 1, 30, 1, 2, 1, 18, 1, 95, 1, 3, 1, 66, 1, 5, 1, 5, 3, 1, 1, 5, 3, 1, 12, 13, 1, 7, 8, 1, 1, 2, 1, 29, 5, 2, 1, 5, 2, 1, 7, 1, 1, 1, 1, 1, 11, 2, 2, 7, 4, 1, 2, 1, 164, 1, 4, 8, 21, 2, 4, 3, 3, 120, 15, 33, 1, 1, 1, 1, 2, 64, 1, 2, 1, 4, 1, 9, 2, 1, 103, 1, 20, 1, 1, 1, 3, 2, 4, 1, 1, 2, 157, 4, 51, 17, 1, 2, 2, 2, 1, 14, 1, 6, 1, 6, 12, 1, 73, 1, 6, 2, 3, 2, 2, 86, 72, 1, 3, 1, 1, 2, 1, 2, 1, 2, 12, 3, 1, 6, 1, 2, 5, 6, 1, 3, 1, 1, 2, 1, 6, 2, 3, 5, 1, 1, 1, 2, 2, 2, 1, 4, 2, 3, 3, 104, 1, 30, 2, 3, 1, 1, 1, 1, 1, 6, 49, 1, 27, 2, 1, 1, 2, 2, 2, 1, 5, 4, 3, 1, 1, 1, 1, 1, 3, 12, 64, 7, 3, 5, 1, 7, 1, 35, 9, 1, 6, 1, 1, 8, 1, 2, 1, 4, 1, 2, 1, 4, 69, 1, 1, 1, 1, 1, 3, 1, 1, 11, 1, 2, 1, 14, 1, 1, 6, 1, 1, 2, 1, 1, 16, 2, 1, 2, 1, 15, 1, 1, 2, 12, 2, 4, 1, 1, 1, 1, 2, 1, 2, 20, 2, 4, 2, 201661368142, 3, 16, 1, 1, 1, 15, 3, 3, 2, 1, 4, 4, 2, 12, 2, 7, 1, 1, 1, 5, 1, 4, 17, 1, 6, 1, 1, 5, 3, 61, 224, 2, 1, 12, 2, 1, 1, 2, 2, 14, 3, 1, 2, 1, 3, 4, 1, 1, 2, 2, 3, 3, 1, 3, 1, 4, 4, 2, 1, 4, 2, 4, 8, 1, 25, 68, 10, 1, 5, 1, 53, 10, 2, 1, 3, 1, 1, 5, 6, 1, 3, 2, 8, 1, 3, 1, 3, 3, 1, 6, 1, 22, 3, 2, 2, 315, 2, 1, 83, 1, 3, 1, 3, 1, 17, 1, 18, 13, 4, 1, 7, 3, 1, 1, 6, 2, 1, 2, 4, 1, 2, 4, 1, 25, 10, 8, 4, 7, 1, 1, 2, 4, 1, 1, 3, 1, 1, 15, 4, 20, 6, 5, 1, 1, 68, 1, 3, 5, 2, 5, 1, 25, 1, 4, 1, 1, 2, 2, 1, 984, 25, 1, 37, 7, 7, 4, 1, 9, 2, 1, 2, 4, 3, 1, 2, 3, 1, 1, 5, 1, 63, 1, 1, 1, 2, 1, 2, 2, 3, 1, 3, 3, 1, 3, 4, 1, 4, 1, 9, 1, 1, 3, 1, 5, 1, 5, 1, 4, 17, 2, 2, 10, 1, 1, 1, 11, 8, 30, 1, 3, 4, 3, 1, 6, 1, 1, 75, 89, 1, 4, 1, 4, 1, 706, 14, 1, 1, 1, 1, 1, 63, 43, 5, 20, 1, 2, 2, 4, 1, 16, 3, 1, 1, 10, 2, 16, 4, 10, 1, 249, 1, 1, 4, 9, 1, 2, 757, 1, 122, 2, 14, 2, 1060177496498247889374512329621921201393145644616471654594786143831675347064019585173006570105040440588132156527893538587925618442825830837346693554820396516613701991107018385123628134846103306183244728944509179656440597672303097893777683066945832963767936783861395268249020582813967176075537999527656338758929604080695252448260551986220813660541693678220932711533356844469059574730534427761016714950789654205764717085290734348301206203346845218899620935615890144213406509433972561616272564073669583318343845132730745208829024512289257643500230333450251597208528068292960662617922145800258642045138944257456278584057452839745597349780946899800116556112760972747080236243962616155358046156653045844194608809693185514008348047054456397244808080318462670337225287001746174734618805661440908140837303778544413019361124654206630068072734023742648238966050095338847500503765658590371699409673970714920331329172051298974935150642756819978947837833182915346775081130648209951247254665693409183575142081349888529008332055580298671559907116256263175454021967520747267136863898447780975988761908504303722092959987442895496581958964029852056102641822238868707038523033045234232484426347595501819498170645613052368932805772648184831263856634698133867793102138383419984470073067380459119006045650443313470318318674122001325743870659702550415951853512480144387523854218418033456122787367504392414694402028147771130057435545514716203669478499227435392518610184017647630566757748665460505281966325464102557158587064288194000813821031589193535755183479297715639173065959403559915273048909725830355569890555448246357978454651903325149834572159723573522067043013753194937571600639465442695907034589814656658338927188905393999037666234572959140511920470066055487532142761896736091144273122781799527222087027975282360223058520415291046773194758028592341465019791765287532361208073373361604683839775029429012751108835033470418988154136675750522307675026027491628891438736665393392757929813023852464131649686691155363014468894365858604950186050030267590892833167157217743240654789048962881994612403473203608288661690444743678167551328778829848909066579507739914180415112864794562139549595899521843003603873440294417920084146451571264557683755101255484479122818279906176450021814648481381322372510204675977955938487668743029933754595885803239399519241477542278114546452055055339191315514211366319463, 27, 4, 1, 6, 58, 4, 1, 1, 2, 2, 1, 2, 1, 51, 2, 1, 10, 1, 1718, 2, 1, 1, 1, 14, 8, 1, 11, 1, 2, 1, 1, 18, 1, 1, 2, 9, 24, 8, 1, 1, 1, 5, 13, 2, 1, 1, 4, 2, 1, 1, 7, 1, 2, 4, 3, 54, 11, 1, 34, 147, 1, 3, 2, 3, 1, 10, 2, 4, 65, 7, 6, 5, 1, 1, 5, 2, 2, 6, 1, 1, 2, 3, 3, 14, 4, 2, 21, 9, 1961, 6, 3, 1, 1, 1, 1, 16, 1, 2, 1, 1, 1, 1, 2, 2, 1, 13, 7, 1, 164, 1, 2, 4, 3, 1, 15, 1, 4, 3, 3, 2, 1, 1, 2, 1, 1, 11, 5, 3, 3, 1, 3, 15, 1, 3, 8, 16, 1, 3, 1, 2, 4, 17, 1, 1, 2, 2, 1, 14, 7, 1, 2, 1, 1, 1, 2, 1, 1, 1, 5, 1, 1, 1, 1, 4, 1, 1, 3, 2, 3, 1, 9, 5, 1, 7, 41, 3, 1, 4, 6, 3, 1, 1, 5, 4, 10, 2, 33, 4, 7, 2, 11, 2, 2, 5, 10, 1, 1, 46, 4, 2, 1, 2, 2, 2, 1, 3, 8, 206, 2, 11, 1, 1, 1, 1, 2, 1, 159, 1, 5, 2, 2, 1, 2, 1, 1, 11, 3, 2, 1, 2, 4, 10, 5, 1, 1, 1, 2, 1, 1, 1, 3, 1, 8, 1, 2, 3, 1, 1, 6, 1, 157, 3, 1, 2, 1, 3, 22, 1, 37, 1, 4, 1, 1, 1, 1, 1, 1, 84851044582308621407601189414738950328, 1, 1, 1, 1, 4, 3, 1, 131, 7, 2, 1, 1, 3, 1, 3, 1, 2, 1, 6, 2, 1, 1, 2, 1, 1, 41, 2, 1, 6, 2, 1, 4, 1, 2, 46, 1, 2, 2, 1, 1, 7, 1, 3, 1, 2, 1, 4, 4, 81, 1, 2, 6, 1, 1, 9, 3, 1, 1, 1, 1, 19, 29, 1, 26, 1, 1, 1, 1, 4, 1, 4, 1, 7, 2, 1, 2, 1, 14, 1, 1, 1, 6, 9, 1, 107, 1, 1, 1, 1, 4, 3, 1, 1, 38, 1, 2, 5, 2, 1, 1, 23, 12, 1, 3, 1, 3, 3, 1, 9, 11, 2, 4, 8, 3, 1, 1, 1, 4, 3, 1, 2, 1, 12, 1, 1, 1, 5, 2, 3, 1, 1, 2, 7, 1, 1, 1, 7, 3, 1, 4, 1, 6, 2, 4, 4, 3, 1, 1, 2, 50, 2, 1, 3, 2, 43, 1, 2, 8, 1, 1, 7, 2, 1, 4, 12, 1, 1, 11, 5, 6, 1, 2, 2, 2, 2, 16, 1, 11, 2, 1, 6, 1, 1, 3, 1, 3, 1, 2, 1, 2, 2, 5, 1, 2, 9, 1, 2, 3, 9, 18, 1, 1, 2, 10, 2, 1, 6, 1, 2, 1, 11, 6, 2, 24, 1, 6, 1, 7, 3, 3, 1, 4, 1, 2, 13, 4, 1, 1, 1, 94481725702020502525976829298719016353277068049074346608425612492895909466140230360596306281540115890504684722285467844259842247581451243440364450539461238932889718732712501500494737895248836491850777459897790393557103005538942016085173938326661763528799758287276382025570458443658663850749451562097906407057396162599972596397665401291200604955717818085956767697039484401890325599291174358083120787681828942109120656720514052481531272355331702675126558070142848371104055576252698175897834953855360018321761022891825218983172657455643064093398771105503356361628578422424191059572190939127396308594231456652942582832830483008126667481619958902962029764013327977223935030990994480565161849504294441971326398748036062843047915587724842757502918258652193802408001441826608404247509456799998378850785289394177206148369225922105320976714889503419632510954884320186062206387921728865912030261940653431091302890450921461802197510549059586115958967916276305749786618377808291847531294500508066731831628341197043577469050984359358834122118032005756686388751931703734042477616040865109869912789609006878671490167033522399002424510632819748912549266593656384130927641627758648042181185339235406372838351864301547294198024155149408702030773874022624833273732321886032213682758750364429157379077842335832730343254667810755486751614845665734708558937843102687684865877986765208249401206451971289319113946517778369489652656516042143750679754941647539378842544596250098379936226093414000469578504255755870470670494659516778686791356226956339887913194768309144600277639459926477321136206141960700856905126980695605112601869926676171892812183178362171043231116824404589321477567279801068518407508091592275009980631335730001382359384549302278880915609189072876096479939527457371131394917353143517528489998747643871892586567935108445427106022493491488885900449148153145687585280913979916870132185945476884588971883706998930744036705802662525087071719454726880316354109519542134524045136443953500830300111457177513792166625360962229398440798180981119265447361115944777954230502500600630170508874778943784032980262178615007299640276065876745586978192690588799104583691344500621019448574201273647365316717481732156137612656433262304140750852840887635493430815344385417476979354031679975821421087135885848255983768433946351559127420369087033448219629005455041643742399598868657209895649801927256227324213838454539875853585335751030081120975947202894876488935456834692832932612267335960371708279957818448956174753599293370178615423995391222869929782918786076384169441561531977831608301481381658689265265596603716950465597009124111010594710205702586119889140930668722206428418852748102880995894575568750970622335338388663055241394914372920992532828963915069605262517026752457679272024903247279161365462419224178993264628312970610575130969835810774665393593910921958782377776261753666246121190973723686272818394345553583572337628611379847968535382215862111948476447943029965209796294451305051989064667137510367708345020000572039669578065679483868224144323944425457694662220999395161089371537376281253298683620192281077664832052025874169431625832727953924792950465186743843796803684241981614057021861020581857288284593815485293778293532488919362579144487087032937805827617999783434775908028650590628225414612914426320708421983034148367725302928775273012874292658295540496867390043100970964038104145479694029355413445026480382643707896458487503389430645805159592635363949073463591999757851874484329614389490864341779512927151509657953175170038354040530082207966575030957640619301772013094690464681963643924292167864380061378525914672863172894224044413703690347035036404498853010124205706252555016537970924522481912034417549860222153386034196884207673631110644076954073547141231175777294736593548811661167609235721775885607814007577117780169740604599551109069678210531767906689892205946725965261429582426789543007338903877530787454216027153082389679180254159036220217286729462165402964843433773860415337785325424555176855095096717663374580690297401261688409569100589965700561988618480761230250645181335546169268040993984449775052799665465145415103651455880587765118424383000562227928845087657443187143277672384799498053718875658552442997101867368804535409813551993963742672523449863889730287160272903368124435267422552736778333363124679737991631343744034092410236525697479158781146978084093740878590234396151427660396667056311482871244067468993979452390066924373618777799127970542717059734946715704815375183943312365470017539209070235394499622245007551925513791299047371045992965836149751242426221726250429658783310739879209338627195224830371364812813398086745670205351373257062371123030540905097190270177209744515184029248348913091877646713913878239837749515684623211903455831706268379701458162409823725525132353624424441494725440573330472533580514790027721678404459338866421809513017900286346464434958339136763865399035173018131545559318670644953725441347588381352297845216865817835418509596973697804430341116341151890495162820249435012906987063279200315493571691180662994082528986618199202921689824944160582456575658553161170946372934678262410281777855923741963146008159771512279331541555964269419981581197580685497519321007464839599873028089917266008543400579075915741288053387196039370737825994956728237891377552504774059635507490972437021731129189866627309766992301267543065094182950422952363326515489648247060599194050372549812620207844450884301419840460892774756448050439434793630772830567422098142610070416684841881064414140384651093851993807324455654634609072189615995272109103592744890099342817821400780883420649071391854987732188669980415247968994846417267434081931225855884055815206089362339454652812431587828644183606839581860021859697897949702527326270835613077614041090254354058020542864945215964431765392073531981951173347976132336924578188112316094977976018179269060808279733918628782162331782753379441532603395032156070207991159949987128689470382925915858547885889172109588348501664351670172502566330218279131556894277415157868659860536970082852945886612320830366028477765657072026032812318143701270837919337810735432076272658578646621631371240425063744141537505455683990580339169632349367167171811773240593677786864968570238276436726657952125090673564501339770980742956760444857569486145162075756093044589620364644668252462830794895565499172392507099546419897313240800041175189254197174970487177816451066488820983354999083533946439072655574714626491284645432756172969565993428811983553841550285089436677048119957839253968895686551333408995006003229318381719154952120894972607615936133224610250327022141370116198846023987704492176341861457726019715340942168088345850101559021790197573820384003102551407220494809226573966491777220741395163464939067108610764104708458129526590667886636882034909812798218208210130688108367391224488436168338589165942604889851673730564002803995407900212656973808458484529263037275760948670864670438491885171562854787994494976211046588123964420277313761606993453572688434801732141453046465894011787329311020002334226209918615574892551282273836908508012905121949047450636732532873528952999887835076229638947510172420155659716659821780886455879319499718843668330513793407565788302192876088095360423275795441151110433122804686105342356930017748811284692018845794057215720895173550551258990921127249850926696885967379411811810460820634412337376093156403032850685554839955419195096738469049792813279543525030441284308610127007048922603411913711269289557104624752973801752267749345353027051780481208681100098615218791481645591192767739056115188425207294173261337341973675241490549683010645173222831360566939594409313177761132658041095993340633787919071616686185741099532954329873208093761453259740432036776856874358918515103408803144305250415350194236765226642147129842693516020644177801244319747225757321734610219173382085671475739054875885862775354549200681966880321520658902111655971967393984453593060453733535136337869220028660408844580503136466928385280745075016642850007903981780107516429883073332024449773809510989105586414188789211274637233695105597374892039204193406317553733329784735959890445100202460698657419086230372696989441547177345133266062503608190720819647842243450111329605055780077399221154907792440427421795625390774671845680182558421824280954854306875418847365917548080523009859784381149781875936967093839761714842426300637072778486699107538134654935838399362427859385378808091903121533110412928363681276642717041987899804823980661159063471128224393756970747801795495460005059855761402246992260228198580933692457438155899615847621799733869664714787274833332667136463232103349745163862599816539156175486967377185728139171870089437031249977102449787356200445876328952849762797734977700591905448918208736408399212284623103040888428828532031197587618146793446609905196886669165898977002436412460518046426804978528999794558018988963284591941259351530159896790439747737558551178014480324574954029963735955804969064872458071678453238489736229526037617144754247313198424331397123767059731718465118577520068642798402911570655264225556081023854102044546672691284780415222371751988733266748979440534765489847834855270040283792529035147165844186766787195843701094433228079694860872902576633127207780720229853802319150087131807049281470987916327505970926609133779685433613385100401015963910694395281685128669728338270559564772346023114015176116892965420682813384475621219042070621001231298218672955734352726763659863009665871064255087462409399243945568132956687146153838812095933414070141428011094970009088694837905682953677413956830732561029927459043445607613035733723441038610418515390113228396366005834702954114908923546600597975033717814217853088695093210504764840070947137876178801405441735426820132468497197913272383907691230835997616290226055504978490436285922475612475188677196914047677532563562434974608079265073734141433096686823617001899077129974675591658106310744760302399613166385708286806029201719833139304979304582539668352484324640249641877935211212865395496292684900136667400198271019527103360779790632272239486002930638388879577530934011730570404670962001032873507965447938463676745072435317208681833877980130176015116371015922136304888178037512139402532930060393177452548632152055376152961578912038976546427552374831764171172312258908848201467916474387157463914853664601487173351225476967795403438553521824208561123854952996620063430684789843226329697516008471668835341735536203911300289710167960106698340282210742447496170112010404951226566527638441348206202232477512658012624875790886227826903217617455221992568692652004249126480920011072329718595704093132671548112534860643470832681802898323391108066372475573378774171764517686477365965552677976551074761181856095553472121386637630014596511899866909617901170024761682133883027295732514931059941828059403817356733878685464370934174504044955184530425194205111244495843184027874885116935829447278753584653766791958708636427236039302418269015192408988358883506678837551673239574779410025572213694235958964984587916334873014989886306127545660568707036811886121871314453220300152103373445258539794382908922274629210475510378615447970555477462451334439898374093346319403391368713823602084462368323179058649509686477386063818653646772336495626602908393300355910790127038163318636364441263561433275023267716147774553912831687446060952883884759871012411813509273251034942611187063731369032986229023348664239605703429214236802104776848029570997870635730306576033533734381140578316852662182377373771084630962740595534717853477449302388729135469343239835987939377901909308560527108012056313382530758523676330767861309773144750907948789844346119495907248165729959761524564556207303378116999406112953753722922923553103085465337064405583650905682246506411125588549725611439324167471874348680721511996862091722602132184575894741034899249380973789101743589511391938589309255917730066431262212496657789990797428661583942455254134495270762917714829373364021365654978479529875611051744033295233821894342494103427626372684238067383615918691274637271242444079271172405302308954338911839531337749300569025764441778327013477167218931734683140776033266338028131289524589708313597320583043972263656355427822124064104317513853578719637838577544093061963508302593123278980088312801216058258068648531269279421073742378901259254661318904087145292493073459790198497575408604281642070912165022728440867721278619717429633335372176933365577985343514629785617544183999526295955357737262820727512574716427963047933370399368354668144076597359699338098705621966847299617825787140323666470554522172787855050601698100683648273535033431027205720149319367511883476298560210769065523580938367877780153256474795483802786759952261807960775978401200893951272146972736639906321858453716394844980802707099320433284270825484987127623566513708361246895079783456228716325510775173208892531432985983735420467930397099336955081324634128070817926514934632231584245887665688544787170510998167697021353471654461482089547018520714499289491203272519182706077345179572262055133066175646386662082851511865144581349017049245334590516571623806707181979569724997274637335525771819390707499716211871627889861574557039131347740164532486899077526484002031656923890775491473554806568381105579814891356901413285557575587833344918784159280616888190540708670134612616780839597473720438474064312396494864185913988489130429484001270968091139697345716532047629469319186504158650568675129455763706433703108307857248300835543415334534271744375783322312504067718183772091922375722007386950551111043857864875465784500894315296176656268935866242375227047445001507371154150864630859670407635962377009548345409328880742380037891580321509640326565830123994421594982037846015002102099829889907591726113811576965860430417071794389635205478361378730159040515999925141293403697751474322130100792642169897798850063607931634029134749159345883652979770687521745369884867143299073356987423458752140398061643618259060583361814526501790498604629739069788477465027131950823439476219628348580563539908992343982189748577771805229953539279463520822568452353458861473397192680784405426645685639981224504034458977102114568746063388672418209692670232156954865999659006894550199878407142581735663777793214997662449417822183729637136379537231395191463875990364213606915989489828532219870120506554634831241554667721141121029939693930914668443006787285248847859189741452740367893355883022474933254057877871764234171363845475109119779539584695240562536852649574660557240540637546844262904976167396776610660731142032256857425669900994710198239218301296323537640259956983469223166609434915264740378799927650712648080777718145074450574804138907597876771708929628710850222474336062082176428484216121075932809540220445217258360488476386599074738802769199628482105726247999587881952526253426616054237752001666763895584689846206390156781705622513065676906703025248799065408860364218085096119283947314645218845097696877649611249183447247548573482215970074863735470327435467465266252227654132925397019137380612500885003824546826068579044625566432395158884366880669978133187328159258902416964410081385768166668404951510882602370666525560979936766423090150654672839310719273259751597542097210945290927130111687128781704711683951452755699563552152181581456879991799585067076654585502676627650297966359779430077461009835668846479332240994426860961847394710828212746681436647501639529845821259718022643528071178205970331351077631689780699593693103163783082266162091060362567270983948090045901688471962203023975431613948760109458135949991403059192408801786958171062995067330630029473508686970298195238667111019118823313529113750811770497231888586987110779036884373225308639630941241321464107326427505171575755676978992234471776533891077689554614668386307645408655283660756202234929149277368404478003616856381312352866504814784585265766168584238644211024212612322403680704752163290051776003759208689089796142065614904368123869959234790058952563301940459818631576719897078511321974939480129280393817013214848633794467914701585313007710793928632963031555881204087987778806430321808118631557197515410357537025627873649261631122370282963956839671807434300744669002290057838114486537050393838581842203439366144694253670175644870914454366320662950514460035778542477892606155334302195257220415454891595422263902271517716655569322875136051023951251336259251789589104193246044236097545685432020626791938565181382976044336894754604103997253174804464952982196711015899476257125583696199475699821296746662109656107073141484979902353123089966354113371130189551716633846891659210932181665503761791364726356618744057658259301218496602874325679333531086999617348039880168773085026172846283326573367029672261065576010572576014623226476632984279172303644605117910295062604150924125969201797134981858896562418003197915931668317232161206420366097712736891359549808714295728916717874096459386523129187233937452856412620840483805336904895178596228352811732905238703500018961423438942757307820736348771356643637652205900361723415668472445685170034167817842400640278723566871209406252725637261672400285657347404396506345210307685052474115227272637420282433750309534362578695725748344613796312550543268839621628605300698122483334098509598234574937295024199252435381856437394706307249454293127753603376622969579503347865636720014158882488479219810622491408196971173301619806394498685285339994319610236560032610921804536268487117686847642583364392679438517287821426295234415202773946381916661655822085455804428054720605753807778947041272385842117191134157843236398236478422241898675434882475558482105351774374121039970424853526244294747515830238630003289277033257690973288437969356072944331616183595289929455865608023571987615157366750755060677875505388770040432723389423422728872538451794342148884914626749004436579278423026701879810573246988962680693203829685450461414128204278261085813570484121433578973704765811337068918840292678607720244256930187345238411361922972181545671052385326016497995713723864400453580534878452095738376751001031732927216482647924848145120578398647474309826242782527370638790802107756816046159385782111322677550656623789933267547820186447397639896696978202834870712111620123957157660732947111521052499100178348746574561629731285371888808833289485686847532874805804983393425669399312612701250574175862219824503821110004150377190325497049106573211680181762483236954088397904092112466652312656698515586002212819118993477464063010596874346965694151791060813978931927612964646337353673786309167528963442871459791047199683136022140821499011242623391577726263337813733913032456691273877479788517143030801282014138886351972342392565126176711853107699249952519569043298462978312010631775625797179361261672753798232003241637777657012928672435863373215040255997783530371788470435165037949554349973832199933497659846060863852770345676452849507175672235037707550815701038436693225406416816593298222416161809404954430964079000688988111444206265239521900318851960039342582332290715913521016369543409301433524574928134973752379240443210413797384522993327218457810363196721068812841521759947305644165621878835938164563430869466892378086836881160307855462621724946331203594537654965369379251705688228144650907749487686481645385228391077838245723821636052785151599673716629698954888081339984555192694044467601359418682250947780194556096064480846181828970865182227141396966182960569138447916365610086622223855460934163413772217237912675003777827778398684229041340439203659218834749322092946921624350223929587958133836752395268858007159642449801774209601288340312549702957672847884059512472383342440845263906077276538466629024134978999339299748337677338734946308541417670543258312473954914058314709097724497347791552453007997559676166076649409208517304209879298241754533004913705269108603844393090272605066287925522716881207490940699857307121408243776770145879447132219148796576321849589461159112912545149603416778786239192795432856628643789404252400392174266654311537906683933285221398218041655684733401827385686654199456046812309586836952992853065213797675236489623824019025720888259234626911053338271192378853857638906428037641316782502889317101978553688003142062336392171007314422208894635477103172900922543604152921702967875907802383882478879203898583041491688630200438455211874746306939041463182717496517427187963018444275066122333289908323028819573315889042558158842551993455489416690873538076603085814363530553447382813399612212803674175082505508626096789689856113456968601624180647951542486404028508761325258070840596713088358831587959715527661207084282155232551882898763985317816896373932332657896957341755370266948063004510327724442126221520751114556569463794707367963089130709830767081916851517622094893968897792798077049013744760748037219300266203605602644001296765686512849677925278421645914909876443014332605297146587582772166542939525164865856873928478974738962029481767065103866061970321245655027246136934434739432040625956908674436541284856050058348614827952649219598447039100812800025913642880370881303761661603485571977611964369524366121887400271994269629749623532333985365331065525381616052102939055795482220611406547364099770913678757366048142251643726033366206096855874372062341376203401708942806359079243190896566615804611730912015180013947360186781933394666441561337445998087402688444533238707481038640833588190227394356030294283288374586404363452320409434619316830140924884680094971227369973760574913657970153541341861754829873061786997908796149662799308678730157590777342036689634974797884515028558893054376292486746600636429127354322858615820939141309879753340319582307579478418176046909652903396378868200910860696905405265866825186614532759419729663889946150512282705514795772412896445834504806417229251824968924741483938033896696138828967809230629960290906893057714578731190496210371344067401597427636882828826000681761487127466240639382443027548074298866767003442649377592296735030243964311345226145592439375103566893295500211955004780008796312820087302572637789557231338091497068929553238182421609869216644952517770766764552899678737031679582376319874272939619274412254579309865461555271334559597339075976453187663032642568792943490908925821161464200966819962132860029866340815911673429034737344560368347912470220290988770124644189520750855152442495683745917398164202201725848866241336622307246678259363104090238981546243967711244365040235511156744204959124717394889417507928779108589260910415705174236253528631492555958564281535404912343486711105980610906542092013140551055175566612127449036219292638619285538524023093869237655966321056689451367552758292674959585504521355086092212049157653993073256541454236262599918146899782975362053937554654532520117521739073520911260201846519398920110334390369786851531970847185966948215451462962057560317676483711414785181902683128663922378483670674778698488339190789837302068914391625444130773203358624933853859737334651515158517121247234276152780696977845823254852730283049248022978386135052955670474784683785149944062325094571629121844993258626626985146071018316821123871529621808076169232357717274894770399680078436632292776389997104775043159008697105921191167118039290756996487636851070485122838801575201464058552786909640496941449537547057685419702457817775708928541218386789446104541488604065870546366086743206571647428839339390813630853257066000253651739506571318728924941853605616651470358165793166705805121340245134971516802477771007903832262664340527728778462611688554605621615749341560724594289298852232490189134493448555271841677616448545359724913080934683338347408983835152038541131891829949967099131281503965861568479974587957120045802803208352118748787600592667229348360216054854886731268646023063485536140089630082710803326717325536719245218079776895454392823330895715988892129581225849590991745122524765143363437973772028043810478867084783178769970213792989042613485740870710192742224894853684118143558726790379007122972036309268608370951431388516297612807092275618220868415103425154561484022466532963493251400517931787406821810563700850853012825195114211235382761344767757021879628515009032115159549911907865455193289007781761321669362249873438178524366050115276865385693304656977154436007820586906227372191514539556236557284261510597647160753919597167302571810174706234912512832403095012392768286582905893071428950105412005737305862394690220059467185446172340030283820389454545486990796679580014817662625333662204811839023938655680167477318134111389664625219838926896059956970541673205672454217219234145683582240386669695091771031542081877320648837984358302768436589595786554725035929911975530139132259333150278006315686365951624208773978790015813547150423578646666891167919856305070942606610120665634435486201483764299948469256589115430464376228559306160456872959843509724992021990486708208395357579931376350679520613788021982097406877554445359124734143535026564297870120474083207111232678302719252122852807336928423039236517383276504139480369062732191031375341101132423158175819507621604112839449906296813294549984771384700389702960337836181724398800549954630881474322523368675986846250452325073588045669236173043247625441741034443905653892085126494545088453289120156500243551504092267830037072772693932544813129670640988565846376473425474492366745569876786569789858467314527441235588196271271037664942279536643712066475983206995679686446958013753407103204323361357305649251509125254251170487934104616651781620876026515717786658194343701432182770396902343076826357907002271614618253210680157731431732669243790316689546645422530341398188647991423750655444676263371639793727146300713140294928204466609889477049924884224983328532225711774730061104070016328158186705855864646893717121597068630130358036374998663196092043912501245710245884011597315969062899181139417751388083215240948945414664236873089604638192324263272162610529513179780556265222634882192951100544614521887201418525026976725054984125615589128524810571367539440708673299399887459636248117905699500266889400585157287968511836085039010318557027236155185709042278743862271831395398120244720486132892216929550925584874552503174865025536669361805926399212142401457853453318175964957087431640384139422205776241227996267785831715561909744808110958820162201468701471328366320944694974479688914389014172796901332271434575513023515518525625725906482415087463346790224029112820696335387536020223704230460315174309687423120585543780029865680722263880973182493833545591935017481600865985471115001288596068267436537868764573204179094664774676995371992026922046187589987000068203141954545238346134983083510467366500412554371003846086701799418249889652082545793125650446443882018709418590181214582561390778504306979238460156854941428552525519192466120682058483175583237740858857008225216749679046990220337117308925870583858946557624323311922410713279954386922490941684728928550257870699610680429877589818117744140030156603233769074363959885654407067848702379943076818354753189446648582247501213524074796802968359730194835492128606797519663662370203694745928584300552393492415249040898336574186363899986869527179247109994296716380446869372674438231052513358895306809369910677291252628173479453377089718492094277839951125062553677667751223026315267788870763073091316896514430117341071616687221680880416176405268221044175947688654829962908838728459839787760417120570951661709912959515158678352012494822963225510201116328438615174573294948232942791985076156995043537054319016458261812204735024495510763696778569341816633511977594831174200411883435539687020948300813322800156477249864269094570483220718245826095663532606759371856608770497285450236273863077497502434843662347179737103759671113156594582948706427902561388800712257041119988699864598162527467938814357009197635274375900643876949806571758245147872172353621369183158990640520175482710471282394495614388905958539314914390648943620294535822256382803394002352736818331733613130992433657038206501763656931611785787131314005916840016560369493143826751415971400467844383100512118130186474680726170726296239153865228208654482304818518101473537765311285662362521033584304032990412240011067485927147284225580295195810333944779051029464988609640538278694957551273684029388378152563096887010790480601080744271979341251801704812538456284958752239788158262238203642374806956040937547130619959834935893601326630412493768651532210458487647697616798950043174653070862113481431573149477203389428017279541546454657425344846237215346113603124675920194233716277332705570555176835397029469899293061145837788055818247743259759016025475538845604068030453562730878055415712528251994664691331957649631669188795055937304464769981578244889875335998288243312975458109068205925727535211717140901180638363609519554083736512439040393875325323839098103280951365841257881245049025754236797446034841524721597727499436040409180931503743682455058714329188527313466863385673132480181344696773844408811722809638553573871601538837585060330568865675645669588646897134004462355543026622906424982866903164552004796525502628433247334187665084752507269414394594390422640578272948647681620070855468707562188180300840269283353248239564283879593470077238147527423651913862291924471307551689949803450358017775384317328061686637250295603856210372000798482817122450005753887231206761033791593006667225782673393037910047835806004232593576551992730561631814106951379950158043253087817760877387628892166531103514009500484727648341027716443152487261663409175214699302168509467009224234356029737067364184051957360463807427457326913579093592533119084123527482438248153221060289088013905391235823637418560828924265928563024560812875505968057988996527415628691703102424630026080816563511150996914047193539172463583749916231023287554303556381053655138555677076116172436882594635314683797605608729613391506875073703847246119749686185352261903958594814933554425238615344407095177627766242244319158088794915202498784082791735781995159656188439948963022771976021096082028207851114475081752526842756021826551179108639685641386196442314093508818382310385540421375594962163938896728798802039108444589874658306773529827677728687885243974979956616111727656589392631159839994888529605762614829991900806535391054969941170779755462089070853003109713231847369290725002448649144015575025965914780419335344238138511134507278940195554687122645993611066812059731406664056039578528743104699991288912786959424055191179707489973962762528183071508272676337374786301117962547034186886171362392420291266011788048104016584509580312113072847613520258518684715460760044459411833748445459828805942366090093652997837586017882819499549119503946959886377162645361189367820865035207838118815267900687693107681782517400060171073394790271335820372937122127880214457044636158402852388576410222595570078307737116596171782812881580998190801360244518772583833800879409956668530722175438462559091811886745388106739985706993497825413067804345922182713221228244104804460126904996476393833247833961533590762159601513448213080482309569593840384765673169906128663035225107857858552086129397088989777022681732441256859221784522299728031000711467994378988597924922913951873425544817642581189191053875153369438366675894152010999195744315922210839173376430278849179322760792308324060258802592638400513436970442229785207430924158071447843517516386917045103042170071797132424166683037445153857513184803246165041301895531623341212061264611984032239484168694861832331190803867298947380926933353969670744859429257997531061638589337583896614600272816545189051943171462204070249066949293518943001933870146553084120092490781485405176528297284316494579574869016274802854687700880057498601430513206074664432465047931266020178654375057681567743880722418316131164209141902655023601765108882128520066861305140374654138763265596845350979602030551943280633012700436416303812060711483544992423928092523244198284629092954721655959975015471039737560753715926397586880750090964333853222881515742510927561981743703804397633117100743188024052951805865765989450636297508744709704870266190925220357941800365399624790411526709262114251432755336402571563069460192831410998756129864353123899290551517855648274848202571343883539118794764678838937855581327092280647835882101784122498130712748872477447253187014167831104622177599701344515023447655777911219469829760657935045305968372740288080549822097100116719384558257679649059104755443704191535719923594493273712288636242102998019670731721161404183555206008964923951709088510018662382956558749705410953045856158042007756702669282529406591398798402023653886988123346760604633113036052355737426220660076968042525700664303532315122453496276648908517676053595589207319315032855886105247714564521089441129126883378290769815741527842165061971725482594484474017709797634934323291712415199695465958421686083965841708446366916598682478656900912566659231254697442707831722232095277091763751468888469276075506512481297052733373557760623908489372235971782281117126436942340578760920044841412637150474526234419045682734436657822384295537745911782727793711949119018605529145514830439461304371639496483047994283917095686123816846604506063236472437089054916191558999937366224947905203133113569971346541618056334760860124405834704836738491975688627288923887143756713136841645831487334331959650335165429792309745140238082075972223297840580269287340929185391766839571316428828853556945157829453106988046544480618770854032872515520041341843651809868434903098548103748055003544822471290124915227060064995992288216488161900502513290770182482495108373014195863226696537672681719772671200843599866505685084995392899040741249944199179869914629173833774989438260159757854958230478283760722725148585763623277082285782846153513991358989499558327768744057726059595941903626247557712213971836782479183322660045203668309471967154643410961133670640708871663689794754849279822582516839850552181573488257046160360633267348132597073924333492710842744615005184344298294173428885851819350363680557907612789789835478785100534566466000892924089344651802183443867228235231210373744379315181919019664366539046880346433953584489610580608811391690468514701701667759167232845489267678382195387412042600530747510768999171126573853785084590123107105402120351444690160293347835621054641735453198586307741066036544964947703932883613587282586998561405937530499747232392861839078255297134382326857581861440379571188610326847725724943359823649192334742362133824709007027394363814018378858659511704187077260438779182204579169928201500295823142282647078474036223972919431523178970611999729952055349049674167925569964073588736332686121786741308456736022611498232927167391529083064139778261252806675512822832589078141936193979467073035817739726129253783802135275692460200481245696590683745523880461179619553040202238920904397340628328953538251356359129257123443757329753747261116723400203508776899160311111182671753288743316169332052493525846312294472716485737212786575570012384771972905092952855725779867143942235892227041726760397128992131996417416864426712956847521210838867999971847638835838531780874961632299896237781583883597719311573166201521414943695286634729416869257763180418770841179190352425488043834001919991959482065140209406876520427733392450746821211400138607344326852748523731549703728639193918243658373783756659805964611696249867621221896586661575753791972401472917041607505871003710199757657684754406082918514705551025509263692305711787073507355019288959729145452361208770845202310227366836987003409605660198137868210015264699150075476370963789710748871840972446792790536644622240866593184129435323135584430492376310295565630440470488775057885875653809735690629100271134755979963781856518336691101267702728417998128083152695187423846673142802934969911898734551088364328885528751710244207327213865250225592014391028001308530223864894424755681582401304935167156511464913107822492264970390425325859576504260312923678120935578489793156577335787558914026913145230630388842671321679782933176205712608466630829104680286368862444137369508324123967844674591732842849674388008379562614199657889480655253276581160163535946244943417081254426939659677034075060957308183572726859338849844285853226557323549063614450136334829544096967706619870306396386700959993965391475520811159285233252907348551338359234239290575973735794427171680784337744565368698189093873306973721732911705171713107570074781324515356223162421329063366484833762968064563346421928078877755116204084364826102157216891569369995014921076802963682370260720585414105804211024063469567480710643061105303703192084491109430417010023977420361287573619293036489520425957313899400470040470751425417225552004534290316857427068234903701846861927624595838731023362748385258025597405308636192174711906785458608549407662210952363193333772205375822066707958488167647185149741407947285586007687870099396527255276494488539170183434850657163112651808413853398915217150044074619914108542430808577464176880246214003472768453003061399815628811632123825957880626439807714207730943384981780705459746871718876621125318107341851323877469766461080767974521896396266951029821537542885267286582993145363288567490623346541988179106952792255713370634635564479886208362781753764720456186239588618106444193950348141393253352709016147922313018130801741201094535300625273910232493913940987361925491029633410316475059529081483637343863398770484969545449218993051150048586849481986067185129099882960962130705762279057122446340939144589496784806585109701873820054845519021010145061497288877247102663065108826771864716818188152611498152113682998733508911459120857435503515431303849459901230449835548040540067759054748963320860103171347591223555918232661841100583464112134911801372850350040729495666929529946676615882944615118924333723390369580242951627006086510166183053000737460949578577180414886950224939068307452690302002042046171495468261655716596928400167054111794039129823906140242536516364186291594225968783799154289810017452549310065371171102966646551326678907981259745403666377705051974937711153653045269590727155249037792796937650393814432200524026861775883843964540347979885772050597873143401701234845505858978812527893057011468327230234780590160964380635822236373830611290934414674748330775419272012720536269885432323842616254998372849564282571920426186400239221334899765032495555699850197362160973125603520493896428829957146401510115433616079164867426953957943132139189420876618113156569547958146214776587515378808047658247850887944051042285416783368078919384371755166290071827549516342556712404668723506105000828800150720693558187345872893245609319685541110402624644658383003100897928820059518980769071266540630060301011845600756836314936180347388025015698983524245452944750067573746463117074229061124071062895981885364164319739126319017892289068671646619025652193463333115240532699442473980395276692970118382450289134098573329842750162729238853280738126359567838184381386795725369957800727875113676405849540250877492895042878102279203903135616315299180518322782565613106330983642526785409702932636834869384149087562164627158745941662075468547241641231258818684736597994275719481793337960025224622076022898481933801835727195416341727388026546955370611621568356148347297870569060686045057374325209623911251955744771924057433083153024150309916962691322057690926512362031130600488145144271386354661973947244376647227911381936610091120341206998936425224247775182399489319654250623518755464671722171926528200143615790032769476083812762195527369199514448542397058136634722274463044923203656963710355800810052895347509188817448991523906025846144528709496305045286869668128666887037002844241456622269121299709896458494787379441922638620841777951098353672400556497421912319534019661785578914996683700190123558282546165926481687031852639124792372827177280711275881623115600963065470806012490003234797583411018968848305953657554428146907266564013453510429728164636083605667907195954757660956489051975864547151384109297622336551576236135937102528233630366546744620749718153827408563782243212671191228391650470381084319677114641355229781270966290134946218361907985635800355365239754157765357413493753847991631565680623257048077621293799114615207980287250117952158466202130304054786135842397197110293635966422218890610688401743822922208828093008661809616242730492566942193190612094184033398654065845689986261914365663997476385486870382435832252283649698122683643522084806346614454136383043840546208257334449451501972725145530897701385302302401881426289644761752515004848969732733225754037451738506253499890058192844348753785312986971489781362175568226337692840250608180714919692703458330404774774452741484819794989941861105254244498228564705630329710600052833205983303306008669955207459359521231176577728722023813846989868290950063586058271934980478552671381143457322730814712882893684780274649438343661041936325191136015666208461220431782034027470656519047060822755216817125334703818003308174443518750078061312929795699643847059456772116110746364191334709448951617276848594368937671288482055334095056525902778735298482263761480605356119740781417984036080954101299834401138552241648442673332600748703258071707534246203992767065244495543853369001631643933154892281669526336239776644940091409966648688666007855349746819076386091422527769473139565907828274476459324751224224926109456468511896050901782781783137420382707646905397513694681550039823468561555681550482632450847362837091364842337538800726477573160101082240521925870519382532225907666040826921084419238837870066046230236853742995017618234045116557901687845989317214610789310296981887202830955598885693835812993296888640738714499277554067215108430262665597236147418352991195843728571406311401578370820187247027084667506263820512288848558803662060184593668223963515406538082960723625670116120754540762090474741674214914412714197138581261395592703015004515491494325539011490006250669348879682145874540836272608527287073681636207851944029752704133499373476372592373002064326744681615593349232624380400903865195515625459841628090829723994808515387255338062909706998740600579828943496281862428891809619254971559134505851439671591551687907069975179650893677280084394034809798916125817750503432583607224565076170493885386879571777604985675205990285746834201705268310172528359754612419303319192255328810165457842107538468929793146719756646506780921452563088502926091385273529050980003504908279867126923958424678815190511495859694320401277969898176990515733448481678660319698121071919149135650390425816597777150562291793125614275490139160234372840057949396045427742715586997572917250199970301503629878287807464460905588321513927020348412437301131359572283672554223094032377425032572034979615700169444136804614056890197042274928914374662612469075956429598685903932109443565523012300543624304374840493535926747400210372820753572559937221064750865951720390832592554412034712224441733942513419465602458363683644378084918499216656799549923502589234538308306030907180441516197831230606058936153858188703683965430866209988512019334678758723226933651245992300950966368826230006278863469890704317731066094021599568315117540308166683648878976097695766425956027813970953747180177565860851602115995624325106297128352025598205872200291202820976272841906993538170986144599313172965002876428957725548932037278207139812807450739425341765318433684493978293052777124014823876527045533771466473518750918128600387096388987027400035445666048668916920855210507071482194012463647669427537305757587970075106759834934380380021923663094928005357688625479859313841974480194847981569041410708215092188186575244383341925683124262184454395261766630462733994402058937339657898009518548996225067674521110349140953209919437734248813549525226462365270410197737179314268382448663396518040511426221063940229897299938395748768673751738858874569653055378192334224799034974515098340493957414115429021689951775848266593709413228554144553586276870413796563429369534119460816748579533814111855922834904517849942774879693145380634997287892576559651948907822885574648130838080658458633304942508310979707164753137119853656620440531866645917898039271815875271145552082118339006290506539021252352570831813993393551314933098995237847472542547578266772105922217480396948127501660941025016414706433005217058935799616021800266156361091739750045741873028700966848677963356915649120989969282628190715669155186366971956505952192169877951561441815243080471787628015995346383154553289155232047246410503616128853368717047485422037243542617798674318013086205533888323046412158700807221045353188045684441489613969706513333356992300249714530513842047409913902138651338344240714204662853267824136553927681376002002741016854989818379154655630413696363702749059189629593592623055264898502206956352867313968488870557792852866540073630276008747377824716466027512928646051998404038580673177555978220510914268648724732912507781579064268261019447775744054277404818111487952249233164338409762821141014442819245938729979951690927216050100456237525852898806763102846384574633073872826745504338665619332907795120310993558045919156061305325242181435335809736930817558026790305716939766871267235970584467040497074634670812683429477828043221911599405674977490944370879577757631340356624879431715258299082007569148626273799411524352308683076704642468129278876797352473087316579480924048565362507602034153529257445592941818420552363441980791688295212986953214000063209712623533857270666761732300714440000676352195413920432445381543117928550785502157755322780098161036369452668356932466946853530815770641439020844764452252866095284707597211318094343630024197939751310350053605412680145138183791741588643147106769272416416407752649215252220431664942162888063709836046708359119628364472430325590890624806365254791114425337331754748435792346181179555256880427902750594578339676762845059891088426744873816136573487544201114899173788988878339696463233136841554072201428193564373237880307951520069991556505140256319420618643632077465661410951929197345714373124989546341704648081854788795574741502346538867273609726835776887801187634255927751919072039974705256534465804798668860397781694447402792743831721443778397795295567912764201240704403910652689061670602280425938845996176990518816546606488967353784156515517937233400791139787882051882493272072559810402575673773012046008092464412328678750933075846142712631910994693255155065564797318712866526893076142442258768572613138222448269544881726423791762528828834464486779650082560041681210919908022852290271063508439958478520037653982849243420775837091045104432093650713573456341115349763110339957355131396233689295449597710888742303032055645842224707917304557390980070483231993172847076203386846833838436590527888899370793902114722603006281932379738171336201524361661362822606830433668134411054487288038220499848229705748477594067805224573901751889509184709039631157155465013936241393864311271660098733988099454789446872602067879536874769010437414201980926086718447815087268882367364804554771348274986288692414243665717002127823246175266619779332222058406171732767796836976131851811447508687791171836314944222898914104848689852594598158923565393078720982374828236382129118003317744928379894828626647988496630323587922804020618144490868091093211956969753556636872812466157365800065380369223782664602555661532809372858012694792401852366463130204188265012891736564133482445638250538766694126142713666815069305851557363755098226565258445941998675145913838876167226952921794890540541031942080253621036225506301094407961777494006599181417096568248176429401096806923966595291711091995732511546772283662038241598670350021150082746627307557043415326013629516745155447223079242837907617426929499630965806089355468598301612941009077352239655317354978830800934088287490130365965053806128281575483937768438869887847984372266407874392292823742760323325471769298916509603740989251743983265974915039900203051105528222309035888511072382682504651173059611981805960891835259033919594794969878463583176083849965341089021728759104818868389459955583849853152398330754781076903033910952814780737696181733198197208604856366093332724432268608533578914761151972784088419302359962904251342947514679757431704935965899061003987059302036548465072044960381178956920004502111326815735918112944319176372732677862297840368542062187409973666018833666241290265677331689850478155982881200005249198303516249760774826099241876107766381300588471401014686374836614349089510840393584160590075685647260446713721047199392946097185286878886074974913412478539572448882754311957200792674852606146069046529252636962513850472426058511216018760723051647207854712392929871663637552504079206042501468374589823059455992583206603301919018043933345811715996777649702033567519679141541869122255222228904975294683195383778596832186476024284974264282775025218538531994011092351409429568703794279238288503637671046605935852188628259764362084442315082812538557322628767869949801517616647354804820517039804559178337305133086540678332371643505914705982051991778739499998480451364010231327587423636797641221601258480393167349294667069221541755633494306160527254187166210725181264655388827959386303743812645785613572519168622731707667589494921737294504246888460657752274570436895439715700353872207129065668234001896097960357597212637172756639456766773232943541097430615240384672997312640387205472187461945009221632126340711064277178694681538039097667869665133572275510278524652446596518259505141602374780920277196071482228239168614018386175823543151466825926226273041629617527735534789675601294893102788182337007964519504202676413921524181096636999622696922154045190825317667215901714039906910768239085330578758886441347395539110899627505094750714424142311999065507059642658758562433269573198433910470928643057972548760916934548638440520916739268908305204067279339140884630259115380749619764671024816842021031545133568755697091148399210408177062245439508682073872391764163604186932015001357397383629684787063882806640986186850694795356974174868268931065205179758925290533110352183643068560136309070416488937400986820061526327601999444244374101292990640480748666593352902884450032320987513286172214609078258886196980759882046616389742344867724170054306098358951465889031465245134864827223965267262031874460735734246756106519925980798827895336715229632221135949293200821400415812600363050337024319605659309825855709788482986179301843270740950979133812564863915977155494445002982738950926732072280206651755836061331207016865112804103612039320347579026171204874632474764606200317836110750656637927814861691962941107770124130702741758948042097655737237746706591369214264655090870561485282990866916568089842054095429601114577235745115732466243548043029260169236994785148635121501894069464260935780379364774202016704247579704951046540417654820837191695369127507341110091504584857280295245027158007241995925298418604320291748648459247490520411715007866003504240484710333185862456428008594316572317908801456128600364596468655306384450173837993562593836613786394751221993422877395655598459831218274386661070438872222070287198464670259888088167610883307657706643631551027019205356752754410581967086453255602740552261501563838214661819442207433146284703453677543696977202175831288008178302835540697654614443683447882029642063764813557065252800912213751283353651490834207659436386496671739570444779472982680485928812855889910561185521110967658612442276779597871228983659968447937408092765713285822743529856605224867936607464878378848718371178315883345140962658561256234723027806145934712944839666407680043001093362906866081105915029382436377581458042298422757279281152299109626037305526923554531544602792357426554389933751946752225830997111408777640834641512667813615770677720246675305751739640725201800874880506442551626959485952642673177197960036639612190892791518495199321789647830790681016442348915309535466981051443766538306421651082791045589136111381274784778770132666198877639403421430707479583782107039762220611190165030641047823339665117730532280606037752159511212645068714759229094205018928432664575411251660993875623809902007982033357562266639377821690610769886638609464500317622029316831422606528336784482242900198722136938086033101626813957499510441124598289011323419174943593956115314060000201591657151428256458511493547121960910402133501329757671509710231523817527717636556696960869947093776446017873946139833593063454849937212985290996593591603057210384366995143102024574732271181705087615771960148302231633467819930539594434377164057540583938240158894981086694474209641621036625415925762875801118277061878840274008687091914022245588934315849889494248250578099842089889235977364175055820400703600666479136295268406376100191156523090255745961064669883325416791034640551541557098118165352729618938328680211125253112079773232303490576344368108872578001621842088391664687248078323492190718303316350507605187404971730256275380018494387239197334219244130603420630146847448002412398934275155294002740990939124559824350031561397805654307398645623696477791418659091390432379526613847349732508433624940971262469352447085160487743107278868986312661699320276859871973696031385723300941859549184477935792171719084827020358770908209608406452227025375613429412270894014578724910074122503274586489491954979460264159090428027220903266615987457289892627377212515362343117790642100125546634045765659487247121182136033811156229020874081111195853833782522262164398163936150934230437918510398263476145421937484953446145352288171865059950598636900902096621849551106876725557990015264816773887975304923030379157804159727427559071452556567211439120472283707688035562875674419767548453841540290294094583712419660249669400872006594146442373735076693601784432410530963222765997189462382221912463240991517111070528554139803245320245368669763330743219139752684613562063664814612373412571748489297450128435852384026875680778539265285724058579101689203130351795768101169301754463546382073379044879806935715674997854443244697646314098472630099863751616791015555871562985104166080929107790577515812745990431595725619294436004449348086415432930163558612690868935321963439454612412459504454861069192633934329215887315108562107709771062933569219407297076432088544902337702200289941697641417445914443988702791423950803423800416468728748549629600803225012798332571120893946738540149776673361679703310922886848333507230557135024326688639741123227085539147861540902212389135938683680305467721753839308698823002075182243026159280127508753228863121155190971899924746710594946773508127948903875538294311651944590669878374286600212040479703814908665157612234332400205428066857223556216746744015631459276051239250981862659470996616149019281170903266102567736523530639596333540511318132570826750278646529172004081918801305271420225295778206176837851738221353263467905659440277156302172134583978152720630413056258600502424863831069882710889878364529576681164678472091786390257703997929467349541138576999775927157609870438809569397359403244089532235792063131155578267626885207009080627869438157492027157882551853817083861982490416692962300814397533746876077208010888714729419671623340454006279750777470176101562032158036396500280670747649001348162130098195339224926044992945221815439422671648997964896819487653798946960569968147507738812924667668081544834279849078115250798595536253457741625854429148932341082316520442659986122807758878980207347518105399866726546842085277741853342493228821863818257865263307957891150517190337804032941253687752632016934096280551989197969756925962622875724530087280252870829707465830537098139352706025904652542828481748585774871701327423139019290806456645239855307764030157135535207952943333788928419081583588178483640534660285833906135622985369015419870961842097022547462331081501397250022465252806627982766750287016493133618487066553867800612040460466963692098395128948296743599804438322632248169991682369838622511128092841667692387188124762796565158861284637861194620268450209814243407866878454770623191573665442798293645613746367682791769899014206360433808059782486689744969044772128082418921813940850987725818507322008576356993410612691762575792072374675906337567615339486146294128303075806577008913651787029926140211490954315908343835310830661721560083592609030012631513740377019487060632882158048717359664744653388649532124108095479787738160654568695168485051840139040032389416827213669347107108696064437154714645664020350601504618981355819770437507248648336500033730194684114766694586144798595510152492135826457861290320782122164401913276516775742112441759889883611586694440103760186517442096985750046278788618800268185662184586453674621858964975222092677395238479067107145025287706383107943851691038344676928586823047386373277752236302899094481145733522684962840988890861360414419505713638321793246162660114645628360429697318637287289007503411131229722538746188005809849248396694034346958027154854863687762473062077224168179801505237805201751602996695225637645091092066894441203436680126424996173806085869870853678771610092989922678163090992183421513471858574885864402372359208429240231222012812851039797476812853176764008630777943701584912711495314329900554394892100172600744530099786956030193749360495419937763553272509347422181916197821800489323747391300748448915893909624874081070250685898710227209503959238594624163569740823847764519262707297620501934620905522127316516852494211105407115112794732582225169170640073174662376077104197597457782697857121823781758133120852397679964710225200598048666720353121226771993071511343734512450379970825288345687407519702582671515069239686861659946635677642693867136475401979051065771052430097252027045243495670215415822023192593640695516081745221525407293101834069078461006793553295595094380249094481463411744180152239757199653829422297609895318089665668928787303765954609124142355356638202357705558560391655738211316523333024748574689493856725917319512222588778090892788848859755125344772872005486262758408081708484118373598235537290901301361817014191820564382822486372501488347148593008729844947878101486940347379743778184428450576597424013581033217347469737497949838521252354034692606329831908200956456913437680160524602938571566235763413182476116504459007886431856106612942773439303327330881361592911326212669957096422136286198435678466784609228760318928233536053680016809215900222936710513913733955673860804983536691943685638593936549581951750398466781420116078006437875532106544890561922265687491548437697537668245301933771110805346636901540101399390039556755405388197085158713599413845963470176434314333223390227323776693513624633715026343931125421518186558338971430761872996342499263190684374799614311695833237205049278474919871495576281272471713278973899382832981982727098340562668117912706880739124996108370413331288982706316387779878623472990174836875158091263754110193406063481208970659197712077859019546264236198741231071161387139803178827618075044771683851925775701942859853997833217441884910905311609848975610578696438692256011261928414016701656700955222912085128698748588699807081271484386110124449977929002807074181924938039410093590649381052608452753254677022201643516273908022428255431756849117379853907316453258378394989218204919849144420802351379588866768193529330378686093585489445755235622729060936436329911963762352971091651953179142860978697449000879454131262110536568838902334561237255486337583969323664396132388112658202524558721989460178377154434778020363734107744899457579772673999479274244028894212144722741657876849371935244218493506262104791123473120279474213400564362555506708593637331541920971827692515637034255639912399722699867517647768179788544105577822721744070945033036829691983066794246759620978371070886799224685946489456867239226648814784096483439084969137019121599034267438773743718777451777138069777679942316169551884821713747399798072376864648194771350676745170824803540046813179617180221935733498115944604792486359650855830252149206973823309533138575795750653573389655017149931379260192467270356147920970423381021407742711016801415864902224124720219114862236453353707528016813073827725306717344325870909120543325861773539596568854881823627278778407776848774121749911678254097046784572541916390397339133095995258967550882252229966306353806104075692923894645477443320158650085369682625902815370570144870134172655577659036062284208409217118895780415325387371288782384570525214742680686139066977552998703270113335673607878028259063557467529876389524141683666633954813548856710304062664481036677328962357717873733043548374370489251436974257903338510866353582155447853098644608569965596774231767903268661283732559848831919029498099899797178355347714427368096425963658311510062428856802099569663507113852176809236525048151436065772557998603740780697618604975077411215231925932693508537137130077541391849766701782008940205600454286190521239074691887949024554430755489406850148915586427008472478114343822117282251653835035130897027518148961861233677978954987438446401279977868064773312167291537408253203061190357647217661000503272921110246982168785311592175693774047652642297398127736544027902966655996681595876272295489172502778478370749589696384355501407935268621202747989504907667208134038621124681481496631904981763982691637180568335375841055258653921612816245015640513087322826500114896036272898512734853416655053942062738493354564640220222008155109653098947253765864276000891580705794948975000407342449777672286687421365461054721708941615297298538139084668744070815501082657786187322150783538063023928761273403584629286210454823838294670922200686706148538844136468179151345761729690487913233372985419172500572176236467248955018847189113430643903389564489012033021596339521659270848155000753755766258271866353425379109490853490402447281123805952191353869217125140429271902351001173681400221412973183256237528067933339616764348405448251503127285075272066182768942187221060418290060958677549235600480835569692174617028496984759092672263835324915952860760677923883840226134874608723501361513015467259367013621537203636753217345326782921981802704108039979115703733427192269918337872106481316718361241324132090458973400519643321531726812538246634606805514017208932915900005219034231482628026811442896889089820968810383767817369247775135037869144798185211024478748137823545211181635518508125195275977109346533855630100772135089028457622655931803202646950749809124939054382968999921097539679950032145885986647443292345638644089236094576282142529117945337470264596084688600630986157367577436420654062784738993066395194371030473388061895305729604331315863908417461401225854504682783445559505255571183953261097586667140933644550911411108911909676810342561443499559427602103407265019562807917454446867005139298375610975979432094536458154372322084036026059004948112819954088835001937365171023301707634163404522193444189038503622244895814171513712428800264120540887186622649086456971130879225049340557245977258219831554213116113488891790786535545600743081038189992141636413887804286303627716851963084252953067896888659572121138467731844632871811323123683543786463523364004808780602056767618739101673813444494317532678040154065186661086618085687524671958923615565911065549856085286752127215100769114096918800082624814749979959122776216552722130001425143230656454956740382724216320384983946387796052798645451337303237788813359602629974698232298917011030816430381241105015269231819555346402931413791541619717007537270254832206285703345604469865781827827876643029454544454334038307716425635323080113812678214389642046381077209645660837717422554953750580050156727169925888918089945413195854933910752719836599733517959221817707495013894129116280126923659159989084474940093961279450939488232656649355629175238332669774644756867243346161288995563259445602354208049774726854219065824954337065825960094682001000811781115089620298345225235884359756517681838943102419194494305250211149663155958283343587814962730076424238370552428202738006906135087513485613505511500138864525824513702654214676115869623320525724941888351420793392514123152110082395377959460425641341517654520006825690831551531273544176996738631341983750278075041736279994231512522515594670198383768614683861749200039134787117749281597262186217114002551608689288606340838615818919911500521524507362927820509428545213472825398792562263435257871412803381891011845263699339454754179368680922213700852495026861539973845410552104205826362903510709692011172692739949381231708181710589745378683049053886936385802510984984467804841027587464398534004203480919207427951110090968489809833621389601086360846622776624314536065219383360008051055815701683998332115235907199951759433252820916229480076019902537644467235427915566523430820137559696927104575083863628668624764030526113948439119405845454024471157445566286398324644280079114802370406722113084278142409370717666721518045785962051303301643708511665480254239231231515260615451219815599769927758841282523305266263473629461657359128675116176851946812598722680684093220725482993732093856015467341106555967236184232620626395180798266184690184056087422304223859501785524476966466045988422192308869342504601784075130353415838795377082234597679063993276808089113840393299252937135629461350534317908442679669697117859242101638790496168280461585336355460437547444052889132627236251766166418429716086844794634033941370871290721742158042732642995145009910279958809045908137486054739631471135628684760423914606280074320318644421998800488429931870635013332060457723001165837097716801988900664569912820021208268207357877249064039058758262338244959675292429280371360681628944361242053004834131855052278210208406293142741767402411154328363148119820309423378222108200204705578278067309640782791750910528247823051419625373567739564139989020192365636335963040713551078779152170241927964719368842986036385729602339474835031398066358572370974793979211876161640859790199968382475263369135129470109391028244792129851437683072478658356138575132718566714105701275005238082070243338927857150007687006984568258828425882179733896963916407980982016060457969650981615179823135996452160302721795531736361551698438155645621830586176143861598545614932167217299339802538878966329845211517132356136707095245400052581679931170106702075138385190896814131227504058685667515747855645789258334805471266455088615437270460471550661319222701805098004566933193595685872449838699919675782334823857274950609875760406864479050044856983656350251386822882751274758288615483060695330354039204457978683069854106311230687785071143245333014426002523900806638774236314321316492079140148730504928568377387007843296694195789852587232174778581001882163975875841416772276445381080745577209559837632721453204811830782897092827932665624936310915783960431296924663722985390399073861998582590329282406684333882706175086781649855291024598750431677066077541461783326540397590982025018289211610379235378001349025788334576547154096994180474673423483423810984822922024764198281625985775845320122046783349757540081084513602865047450994788174392479058069228488098478263170187944436283151026728766848291360793991831325031955575262607096224793165589740218813249100285849898118474263920328702456387482862978888046896419150338479976693403816119894732767904154199669381232082510645038552424073582260803551872269520810553199447658226757376925800795798680840383721592481010173109156325547101590107138776413395545955523591505785369695949141858289741103019965190548021666063599004522957580711486578223336134385384515378830476284121300811984365156143171900869911173793611547468509129770393523334843714179421734258212338696028465590425218999581976714581413512797475124001686245419835578873857755380141882759549909078587668820942393295648435290073765511983643885735077115581555747490665832437552551435789674697104794674538693692181334698382041188551468694233895896497214430145455058842760996429541202743151900371792319138768215865715290787504789444362817832492857895966265186781094618109609309057181643970311707290566999249175889231849613588536948344606549799772032220405567721076398634234629325815000313678231999809074124822132999598079378894477235310634579147438281036807848678630814439642411208197275420078523203298116795297045229223275191685381358992226702437645078037429749302063911412089236014430886528526399700966298653392885820306778513084362408926869284486685020120150041187726584899012857343309837310928122097470120625088155160453380798510958043153169045729223602427000408558032088610833897816423344119773557639682010331714826113048987842997619644925602594435523519533402965061875485086968599037441404402221477794182770228512022423627665160206378596121236647629915859395259209055600545309246922309178137668805259733567730395382761935377476251941199690726872173596822137171006154449665663396772073726472517550726879706362024874169300869630983889382832164256841717634621309101816863694406413547408024653098804014536566224881479346556815617611203939714410030442970208816767646371937127207241174677428242634895860902970220893512680207159711066206731985489948831646296696644688525267715885582653524998721851954855069881383581831486437303487710162747047428538976795542761005174133729834628645194451581945232784364569541965621918306477546916238420991877580671610459597075283700631885039261503381896179871502481143883701637838873702092091006585976223421062965916461943452349910043106404888666144367684085202832070586583944605168938761148129028588682939016857138186494828697876556002916051347464643628425379670402286679203204400411316506388678738796863376261704564153827893617003075716747944025866466361304098566693500256100842710886985770723622354813522169892442601027615926491065871983851885193354189026195558768250849924191172203971200922400769327181899494650493978833432219899593402964329791134552848354219179680494717161874025068681908615875627365541576939312128718893507515966386046050501875934643895561124754534969502281648215868613030948776123648317233584417707483641973131925698243368059772805800140147276962533960391353190378099530790482405595629027627620995066586101128183311776130747729171416630451213110889678926785523313541430087289865632598460362263316377189707383306996162086320402947790527540818629812488702443900403282766328023543220153155218257255575224854844967908947132458480059017799819536117282036127236025826015671770119716878914013868907688506938445509095293446249442177251793931765711149050007829198652972517237676142861416656900569385192888898661626252396838714648743991085952658297980418266062360180089339185303266032642761407837170556031290287684612371080730139666731449693772724099489428689336963535009069755748274553102844282528363176957430689550782511577993281636110431665698742294698801132650316214783474163884829699688329008173074986398709365688641978588257866778392189848112708096219284069912387122296971003395209973335643320365578604266757208021598967252513268742194256255969700343439005952604322680383560868911057687287418715085899050864820205692465832650480897440013731927062674852874293702903037007497350201270953471375693936958723660531666392522764423313112409152067798309743726276212925721414853704276880302935728011054593358707537488894352645541778567843791630861140608310173305430686555001962866638787921725217123428999727246456768320194930789040512413493132287920305351844653507124834408574980833122869475291221485703745657907755635534744437579505300335292922861818288715934738670058219816921822413103907912284662138358527860431448790055774416969757851716894873420508154833187031629655966768190096620648259287211810161740497342349711711649646260676194169642714226643296267490710286028707997834042678246057456390244141153924053973358509885878263059872197707735534004510338268725391590893767485649933294035987182571409577052476184077473777857462594162616365943038067459957907979876985681298894073317533854742145267626071497884693404216327951698271808165237449034937317420119362122468871151591421031771048335106689391517796544389211839525390427565397767083257181264471041882481060716862499612317118564679364947144231577804989626562517082670449617536537418699123597811857780521747205768204281471115115536050083394257811542099273477025051395923077513570727375832984196232031497003311253094395695811764390213700256677721056471985818942004205528604246655595888544265826976569390981212628328678349581297387030069977600054176410375828248705348814651106323557805877243838675753158884793581586157183915941742569700237866773350889528377271635724280944342614066697267569477566585694288073082337740556802159094020270789964534319012851902260271918118214829956947162349876601218403570856132665657877236772201343357107548543098868946214707240768611392131632366319006042731945671389269378612598083752782146536928433646904705249527004487939586638014703387927606177534414044807353776461882685845981421239765144769289277983037330802973409250615906936184977803549734331302450927026153013941704062070406092844016190417649296615534407323800295797336078596464228295797424982436830166209835922561308718860374942799804694960764716982303744147782902403816042492790451289286157641832765474913443703132008166960781332156067454850367085339300239535305825936455186330905860040865994335969897714611427659917526806535088630945981016628981345056002096872700918727320819489426867720296564202181221635762664366023760641361781695653026766667269598399176874617092461301849233417411487254292069132886772810731747289785111828598956792292607737578363583377507250232698201028330303492135704896084133522961596129333397863160916592828469851735090803791176764292182111215569334079780900222640120277158868344342154582581619927078161624970339633174073619460277070659846060198432697116855475598781204151623966620917806423597269871527152094075295739373847873551654499284622007920243874530866872135191484052711930198152607549940899825878749141467845252789980017750294202537520936777613828039246383531505809675423106775064086338796779911524721170890043368395632118503940860963942870535243785220197128843069249622533171615871397900587011975157144567798181964746732445573070992790679319789382970569183452385857012565775042757949155837993201447256156284690625987100322292474929848973553006754278203482834065971423606260594730194591913923228242321844125454022842003068263135309050965673763691484865066947199967277580482290402616511868427566829843426961006237580099578080006554471066495143142634638438496671074349373972409505741541392962349583950576194891496843487591119150241749566892840986788262825488428993135814280168311586313385159287971962749921620591635803834067378777770844399374103106464207904609768745333079347887577684170054470306677108990276866355497584764131166570498707366637823661663559623068480913140376263151842529467031154020997118659397543709814277335370299155552793287342069354537012889285604154831114501660262135443423323067588083930839423613551530481000322233573983239836295472029993565570247432760291892349916283976766108665026916624551713394215572745574189187610876500405168984343016758604857300128329774822583890573340169596900851747979166967930703462625883979596447582888032573636991243637776112407904987943981614673656782469863764882929539348134977722833931230729801158653842586069175267892028168987204514104265575893903970256855343596607231564352422233913293995732823945240711161501915968987195446075994352925742861284033766020451309197202963809514721669000564653000142359222677911607414924465952316905506746160696106769736777583698145764331373425470659831301363798729512112061654773633522819936127988326512455165785639863766964261972833948053378845765090579603424305404876261308786365032319588509801990106381092464075969479246934485477044406454828604696201357011950768467470247080324043917277020102807639849877001479497557182897910517186440520878375043328084430495368567034220626916687064437051406239522112992880674946851232042712532739326324168436682027508109634739020392114893599439907705820999415034947944629824251263184752549214065440755362041573767263767861020109436095359771770534580131909056388660656500222520435078609238684781329078085729019003157639482417509159629155925705252264826605963813019366380662604517599165891683497109356136760210714626423124880121445943271873173853852944917969343210375373580089200003061496425633243699519887904516895716876752667802662000304625748275391837169949910123209101403096518161103384125507574054275882043938452432375456327664279616052251096536402767267430442755851258799830728328439486860226526696159564823488242290133370780682929818169911588533992430638920928868882986974114999001775434892904664191682225968439339157447424419474220513195178903830850666312777371564330138389519563657581095248874839789353560474400825639112940573354422926862388639687627901637363775632813135890283775788542660961960007387440656610106781912757391803470234861267335033248455591414033297635249182711415427321873370729989241009576460812821054392435532574552494753647289989834796643160414662020009955933782288407269889667119401514392015351696085481123990500751565553017310861244811181134059563102268566190896859442926194634330040082085597563652054081895336932407267418494526530229571506759844112329859188621817844655505955283880418237129972530528486041625730988139790259130290660186732002145423642062143982293249710515969357366693300534346326938679055378914377543241815321494742244353968714833504800514013231243588588591386709544713909700452406095764420746122767311972844517489428237652951313708482370269553458528562931490693574248224713030669097373434655556753463680417820887230167637658201705416507163665230459039730050278091954086177699982017605504841675852422772408131995717834395897917509075965408330103462787931138177275726476041247301848023005895755515923089168908511785008438999569592039517294243973766552040187136804190261510901843598001899487081608632803383193515421480748375355324965788373526696539762480986808763975284764120314028827666993609531729807442364554931927512668174326954918187211441976493499929448721740397912528586859067407539373626192261293886958519329963685343491458363863665670712429554622027060077864693579136363211896454870576851296840291379943239178589969349540446508649846516253335891799704473660647216911399229327371017781810054988235951679822472080327097098559796569967476160001284566686713427094179242581312126596011830457013995474358449000634079084410434309584129439893442956591307726078266144683666424622695727575417187512374943996634480004553034684032153567944243336597975611261229887546386899976755636583593111323973016606707509897418596132960469604910955479924818897075702813396099601950487643044587210404295632295704586644779464906323014203927184730185207341615521485396192851787290939594595521983549518665284795211416546352658816447648310224957449178318936097507307683038401538860585128308150115182026775080368817800004272457553477359157674799112844650970387893071231254617710743405794598804574068921913267013371706558231422607419386210052238633048215522646979759527571569251671999801730296287081991587701760987663488157525892953105296358002121493955934505599657246953682852298870208020237879230918490655430329004292740433765117142163260336045299545281312077216393238592350639327424072008040992474965843133406729926530576484062365208892701308002718917563719985386100853020800791238434441095598072781242712970259153563534155996141997150402824036075061625177135418764915387291754008865184290493951233488699111148568408899716870307064559241841046978187140394423262873390032583049179336507013009012891271740791376907449021377747098358857031390193896800828505396136607929609765227414801798853483891130571071627929052604359298511657968624138929411553202062869016036695435087521551588123730758259528709414412291445918911631192686797413692125693874783184813640370069009877840522606240102003535765615117276504705776040457866000493726948804129679132670628624926716953695035019159037599806710111912389719528501898925115305113769112910498081939911521866236115604842514071197146959661936597378199369244641404130204002203740248247293312882369921783332283811653249831094405972361864863785367302442651311504756062459234217994457368413423363125002083993249298986515469588886150860331967119070660798475005543071886812276696136401369099229280461543413066612998833082967376653094802568699664200272435075176731294877960572573874529757160613811756251931424591634175937296012919130728926405389397000366463794195137634261764667831020005288618747551831051260307203429873344515649525262203610608532440955039869068266950691641966823627001547087206988874920269118711928340414752715781143450853328134746053228556431318117697105915310487714087841534922860366778312926208853882818231642540984339554890155461974463856793957332404895365794974136854613149566260358805245792922832422257255257019092214326114090387607129926727130576824592243638430886254902644726588579654244927166731987986046522108414190804804169361783859278597896218999290108710510995266129307367250009696571620845564020881855705183362394206488853036258780259840339029214522239760987431596721566272734411245006001707552246949681595402861802480166795123222855797438393854778483055171198845758411526471256260213810573403596900608612841167832066569814609201911749165997205114712620356667563279969152237320891534341837445822529273774706729004441058156086979883105951400923969443819896167041083884541625718675710106097203752878485813567172494850170614853123455059737546209850447872988626353917902304922498597799301221147987505782969906651038334129063431023458773661826588713952743448821089642007060436366565868559303189376505045298010355907759643514450837227104654636343615161439879264748099864670765491513447801402614024847489129843398234982401581828808770269685266028894304598214157931581558691295116071513682187235895538537072116142845144515769946150319875732703401612347749890754622421436387475406697982926639030883347870388970906829623020847461808625550271142574069707306302678756148065652843282765934027129976858428811785057255286942293412494170083606021141267551861108229903584562644307460156727634762936525346267278174949118295942158899523192621473135527752162429839365137815436134734426588305003934749032881681527461025273654434116806516959182356902248176232520574504966851279438352614283031092446731943939768520127704676641819893371098566877987567798403620200124587891872731771073880678326779755370023438688384301292076027448814850858208260105855304927833756330728870891938010824036842677363345987899192287948829564890941211934251683749082404334110202355438596518388980402954083911172351806854188464552412541700515177468410694672986078356188840020406352158924506299022423254581579214410124453140470060106709428460800405344057368288651296333885178755968209495428408299423547674493903322892039707001763303931230383604203060052391879159043773776015203021497664699450312297250214827276366802158567904962659048584541550895518621497383881732150930767399242165281389801110470240805968756359501425819254362429089762212989160630565916489063544153433306891116254898965296515852184289850782814519282681909189440793501789449941388079215494241378077175618883237045518943772935868102611508206684563871002993449394266337475793653195287572382253861177378189003387180046765158436800849457032901469543210845450743517437564881102952486760496445036330522220306980900860082727638687976984117262534381774875567429397335065062840592387220749868542737935783879256359694829751324496111327409904425607636511400687211344766973576292366732873086147986546947100555475111894466354735928814203139944406947220979713407031720634787828134035825979461340994136073723348463906671503378359480292107548298778250620284522150934981795192307850857122479484091551671694640468477693950599696339004281663713029454683585504916132578370161260465737647956678842925955008944887341729550975753866354431630643095613250948893628020500660214525224783180698062934842009356786533841205274294474526875435546422329982697066293472841318513894713127558555669267179777093179889926541349032007113081743805938983639530211239113003417141067475888610207878547967673186315745308898388267986500492024434211172003752212760238814530403985910370173286887163921402112878018150308825583335905800042924175705784399666751965565109049702120355446235840450746503800141286478634928410988787180889454464062418213433541318376045193132856548718587832030936222612616046637609124063006084198641881627829812179815271399144898569995567968588063720579302092083731731516339955113606006538402711742485776344704308956186907474867772197854408402385543811086450713354536830584839355858661566779898584337278709460216957249660843826155470189672019158626144195350776406627595156536306585611223716277706665669538641544222020017141320472099681244251262749562823475040272256581275067396991020239647332468480773542888788899295803159516008174054742934115003376063197481314831542675528140826960986184145711396068323108431121172925233905819306941156225419331843974849589217052790161144451761814112723285774777669401611299989101910832984455965415756444670949418564147729966986576235011258034383271846905536104240355943068445340968541269062880704516211625277273101648412796159638271589974947953358045901496290597923068668747616441315426317363654137031796903270121082076656670120665136726788671667979523165843857066393628028271918728255539767334545425288273227164544349299568068082770986570463257752479487520257203501557829634698214966244198151285526073963746927464369229350622789243036169161254850463238015623825731248839820692942724133025824130607763494864917339566133813422636791640816131744093186358020718064353232039544186808169758331400173173204806404201931612448739732717302487022520714357994330318901261175403484573373378266446791199032384642578096314856468119741746063858480620889928338298318337661759041705899223406220915561584044555159397685441877050812251412078568501487909911626643691635222449144768272197869577959855549264468039238644870111220052688344839047508651430239225641708192405067270049603237828345402673262728218891835254857688034130026720165289000054348039278463627431855382452609163505198353246859539451083674319972157246277279567920775791023868617938426899359368237666003236435417859898537209783972785875834508142464038380067758346057395511413473845108095363187251209641352311371130160103430702984084436292241733270219750747055658321112894750036930803879898539706601344590558962327640636347818957911239644002739195381878548746083567920801485361576670693890730296265972221746988081764578360119633556758417339264903551122203713139796882140014255035001583438579363166859113595262024115424351420570501347512040599659888532720762496784194496184153612050797375582604676486543617774824132954095703863364262239217097992769824497793763643071456448808732538023582685031227696061556393291558949337655064557810918272988042127041366656419454187636078019906868350377676197130237982570324221557729126901882870745107499823105132208111141083083197507520145291826862881222109200155621634224834830413976036994238535284752278102103808278794934615131909399854821278877300341796084034266125359159122007416365693016868343468496212363450888733307954655083127254599639384856337411312267247186965170935962698692503028657714982267448136718140211123821935594949083954557037222995815828226700095452209234782075163852347307189446795193160219363469155762717152228661560695071771232974148454896651212243904002720409664475352330508508179639169154524897978908247863891952457142391940634898892757359184991898636527083189347515062718832025399527158801543481635296842027043132236843327716296587738682393773970665671542540780621913285510765147160713832254405983439213491140440938250818633255059011331939189902878424795147458796132640088742725923504576476992648725333362367960873825106954412692267140045499298499662076368309460152864960868209020682748829061752710419937415337725469464036444958935618715600307677264725412465658485258239655648858384578381619319587999671496578822412871297650267641121830580214809885584511711426733442645118327131241207361926720286377323514947249772953227236873615012033372597234892526018120633138002205333629993139464184865073264000596472578587470369731653773605852090329544181952774661114568698888323316835957041969127831552766222947135494447119128780324066003871103942424946828322580152740227263903301540492452991813526806337185630795629335299897801246620535120987929156603035165707259097110097701923430228429524914564733589859300923713561978445627452271605356597783381440745965733413936726131782293051132536311083834996397987640252627930761763632944664487231409896835175610285203184305770134438896038326499197883930196613059736955231474299259706924449137053692565934629185848043766268786250936405672134024497362928978676603336322107428832815991667459544428181965755442974775282774495449842635725725060845725014607460714777474432610801870408064401568539166309686756191341831147087681664318345106930290909709358925902322701036225959968643317532405161913065461728310787308583794650485114052396088337272013967321671371599779388795108839899174443534377922449082398331600051952263782436102560487501326247870460671251451928130959288906907937472562889224640716589379309597223127604955914019176946159559248147654681014829834960597385498135319543974369958650797685737625926710040088485229703525872032573835342010519438103190729674882127069479161902684529440500784795473564362423551185268768358988690609025802457445741507797993647488094965399155294267224303176290411517773559827815766839152186690119469494449983354580973046462592053768272971741657618151340430056699537645878688508421561538093385761869504422769515549755497698255115423511290499318336612894881057495727746757646113670106053553018956251424206846559347860329988699209351602879168758822332989479075671899749529576657368780780219383941486930367282189138906957634296697147311846633967106845757800982114208296413776405747508559029073372316986680968364669954060363267806738012473727673249138045075412313698826998517968258935492592583885885685256293349162646074502551951870684761924917259841768056683742414149018047411766977758459584325131853871380567834175655794258836595963817232189653277326718144984603674801968819163954461846370405354342102135712011576521050383316937217949040301255971281172797251953579062162686986975797186462252660204375051309869407116889830266062055747158501815937983025544191300015356469688638606255984456588664053637884163905538702077793787428432560905458297568613521862743774481191482321186829090309742691052555644641733943112958773796786783670649453923635121527999563572783491263482280151593850825212689434969914562055043593281405322126561717340188534844035369513531168509593317995523439765029743529927990488917203365879167506880689280973626650100519260701883340355840828214269564471564842421958672630625731500495408375208154847464754565160144710309059608718661385557703395428799950917496012833714312848164511793592064817920726495895398965286921507125334616987626333674361507401821329078684161371078420202600773254683894756828550406473549568111456597429757663987277201086421171012862062910837230956687009742623365809740595790698500146767007633073692344010090990793739912835857599218344352542850479169121270516360455340541288229485159631612771293233895034094128322630628316837506740311996607829804194317198089987835153777893668310375557182884918877106371288666445774348564843504719046262436600860072361788988008284969463857146159538056518038969101400539306996840435946640533571295669590068483606677787780610205770743839423830738464276478086112768046854199104351613528500485461905559311988746976421570947299975815583749222953263399532635918279398693744665236551227761382137731713502992842726800323698659920675450641770281266406604172639337326251755242683354737970287414910419997939051582358742456020404987242288701401327659893796091356556601020662893246637089008969814578496110714949217892546716070281086708061626319234166292754270628055734243016024923837044039975993465204997056445667578079258723202352586438984637714999083512603834479603312064659196751845409556150921899077507802934810315003395462075679291182259027902313763026918861201512542942193616760237837088444100562290616434552257359717730590240147352157448694095140640564028811161754131803765103980551495376923317448745682707155046971028558688952600396693536832467714235964767778701914539040282865741259556474329512212838996625121539729571718084225179041904773723188644046340465325965330904794268999595209288239317739535534756824303132401597941032836295033063136935890487456856327614823888316843663443926696265266085615768312566310110440683711505301477093652872525746963163382200456866433398250103281947209634053579337464212395655248803433796953740114094235374935987147997545261951572051527618930732854812123199703470431555864245223970768472397467649916132604254799906641237067930918708131780924115027376057051970422290253766872122523914052315842628044743869706785663180123151861661159394774499663611346011944997550371896257475937861316755155273891526873933833669168810204297410440529024565219451986685996037268183961822697196648998208952605217180182579026432114332675579674076378674334739146531794377769475841959067297689504252432607749392166752271265890089707622505037809096797866417998140696708988580306289623348866126104080821345681921582773104805783006619576324037281234417639627165138157873846895763641925164818774302309034479776416767504684560491955657807708381504493357285084401017795600889692012941399012399328545919092886932048381168243373901926104337257158706443356245165033459555941103551040964446200259670158537994955670441845743990093839147104094466840201491436675908602454516849890398081238531371002093870813271135620319582169028044753360166043125468862516592855035094292467393787317146729246440283637976225108669148305492372988439997230367568979800655243417779342643061466297144595679813569776952074019716705028951259883644560254574051801498303626032565544064180274174840581848228199084742649983095135917311464800234252993896126750911689606748142188897973692952001310696487603651847911927102939154341083560518827350197074509544515670374991281614844851349087406168798001438533251437371108391684776467474312631168650884174454175354880799128630500326657350500578779304420405173760788563548335123689925944624950648858900049484862565446923815499549742616712547996090067910756304776598912338386584901321797503229185185004216005433771146155397820823020459678016116612494933715863142832961898519693595183550340984979221091462174784332118407031916473139106583072235366155571910289658866297418812276253459281822571587701842030600317323892406982828337067523072847812560063725105239139521169122477934295938445184052035726205751837053172008657395988332917102152999023377123150727485630176825872521811430916530383229828431095184365811424234759349584447847981823327370788532965885422239704518721123940488745062574274570064731202112585231916416103256744353744669219696824128650891021298014172719995355293135701059951209967695735310450078339597382193666564502426849915738707285878554001671716106431782915596005154433536631624350308158614083853638037935836479339496651350524436630957710266772031603549319877507224658519967024447748090416659240799411784828355027892189476268473910461794449741792973788625652229032748574351423820228655224348549057211564017545437898698401693481242868726402057697812811427475416547698175157918857222206624721973533577115045618087025946444653175500602036034827658390224736765069884171473504658939561156280130818425691594713299124991046901117542275298287011395287281944228015334307574442673532452486198285945869050766522500358336475012794584734860793026004002408127546885582407341890154213846565718966012096781653971675589149101533512086493401065753599595907103073488300491244800846010961536132124505823041024098502116010303425300336742464899569329763700862750650946393835472687802292043964274572142497315975877670285271512384570643028230108459227834429884801102309535497402102703433869186133395493221146702585531024539587294935894983959031010306787228897333328353894846719140575587838737463352001182160182254678985375319635529631957295545768643508269840572377535776089139616465810427944698058595417722033659611170973495955798315543509598647978424735031279333912925410402953383945494396666305332337562024500504163433093406986833219948523589572476163513564900815800859048636146306746283009959467614015194857990691165445085982728891759131395589585749558090388731963076287715233442192522411671690952295487928911568083840902944370510207534350019808575421794054925904905815998136348878108491010943203094789701656495935116421683645536927952765686320408944317734511797227044357267375404802768631540899656432435854095408017131628618444474725333515620165436969663395859693504080124643527912750986129184788097473385023374984762993304607276807993590386327319389547231043526616717770993893834223146924816323231793831602972863088808849184704805026168827913701069598017846819121848427774512490899422244031215958754897282717457005119292648837501878138695965949908305896708666938445186434598342237905624858488561943463021566131242776261323341429649913699637334012063155924337897045367030247235786400774025939607244681357327798818017699721879996825498240043850279635913806880891240235950732908751843314776731521175925166892710095983108331935716626763269392469247491040604185628250706941952529374344587087970154446980659939017056503108519155762618969032945046710631884329925640548778948091335091274092171261833672957208311176808631566557291187111750242920094477474021022088566398696739601572036747913209653597473058112620488996903258407387007084023599786765046238859427584388687257305871545068747263340030823934473342266883843716267639220352341506938985278247055252345252439856465141615154162695046445302294090696410642195511638641054111805236661585884532772319013922655314030717302278222133956242624705519969411545873981037028691213127880216396845077716836093921644273353270891123291732949685838524097292337046769825916313474934164238118964656429901658340357799859907482662569643862279722708846874305101524217647596815921155626912665733951959471983467024817649030531811387279473042824545335626399809601797136712934613533579326874628183202684345998932621489296997233749325875815884341799185707220691966956868236093714479888225071773171602889784319933904928777092593411628440116020376959172252064289560933707325464752467903467323027700591248580819529563307485781150110620743257421026126072672512655870189458129585067403025524566484686084978141050118067055934190354449767772185315350621021129465698864402501204438505241487891831600642725794442181728343347546980719658901313096155226424583413799254507312133088159260194029526803921832566545502192536527284905216894794161366699006585049611418310209432089994513966476004997172067333031166336889264057148227683115899519603746051296650848499146243332519329686825503119039932116911100794530242279522399466334179456984138586544054366991383416301154595066245324155900075557788487575072404717644589471498769368959875282127421602254963719905545097986821765452624826781448546520576776291294758195723569964125786953197127740691507561649161254567624658653461071087317506073378560413973719350135702670100377097982750739914584115096482965004398331988437266719959712701442276808578553916254744346963814101309522701507290210165083574532106714674486452886640462526317684164097488044382570122281108213657075906779833044150847382703447505039644346726912294259405958085393658637041766017905959312125836715862272578790613997915367967456175068597890542063788339337282907369597632371549133812487249564074095139190520173250727098888516078714859769173676527022620080881015708070477548595639528307259156446225440584841738090546959566373762315586896248628219771470078461049904428883840155295394668125665712176106031903972428617895362746703719065106395126657233825263718419353689213344592068717618284902247416842019843753469053830402869994666031861704162357343560356056152935240422744779180145649977138606523578580665813764419668457899064487810864373019263361635619323242874935234680444839531311128445498536567919987471258050070879913367198315808172692854106217704761770355986496932241367348289479737549861416334385092883876451228712247434607881866199088324033758078294302804437189069995168792369240613814407540974287443704395577524869664229897366620750685971843881494083256814947242422121061895912098450557890040951778420731971487109676256910114480227344139092493477466610286723526155653924283858724040525542733807044542936949255897536439625574862753649262702996434429519964185972923993033251626247515045281359034733857203249039962813626251242094359554380902324569466218006408995581201280409460995661598473397175410029827068280085106011308805174701385117649161787202533379008430474130843772937143170917766707417171127074762103849010966236943345287151829741271222981325008434701506635686241524389534048459476966668880625456484027853886359348306336613415373593253476634767136385079004099640185649289740743989370095012283007033509381283470746180956940307006927516337152808572099984433347792709939691863807161226351123780802735461197430863491364473484111343876722433754772017804488599849506621269892224027624377609398085582453207787878526148358030303158042842762738098762352330796512782920519726088368833466173648626346586898436157750067542913894056984689805467266253110414134694017781968304855635630023400515344741792546054571381017009246759267121087384092571719139025678988788496309080522550962647460096791505186361067026614805313924605956577723520354279293036378837443733077315536976443797435747086302860645305642175534283229652150711231832093476685015460730446805619874884205258285736050658107500480245949288093008474493704461156585915969417979059393705222390241684839185042908627616804744943164900046516208981394602638067037239637203484981142015108040718792934384637154396482093154595262545611837210071823883812856384623914967703424935846351991167223784531059349843526226451687688138142207440868565659281975040778607837229320255673131740527281056262174241963061499340799760240179658839830864573932085079522942914822329155941077793842149597913106424038844239065487926148329381788562775351834105896759623464092512889845744126045330395726300201091490404868654869863236765998202740858676528121544489124566475689596694009498136789389022398059941568134774924251703580581718874958449441248618004892678535819278742750270630703295135341966701971975289206357925668030842853409936148874521756271859403312260514511423410520559808240962166500223101421900215061720951977922296312567730530916256324613533174558117392823263978606036269727195589763583690935752859761794242274128691114151954879374101651523131809492786508241314749979757642832199800555853494825710335870488310248515457582829135654406681996827442745310164952318177466300643438878283047232638841449302416712632691958344555862270890995153290190882585722111688785047720599748114327330845801078397780439274369542608336635620521260875196192948605017721513133319131653571141445588698772707934267352616810068991634510271467008620146867213788111551413384915038992403809296692188070013280363922129846568084782533381650026445378999660820862793954058537429284106613902133325490056873690987104079364289504109838767983164131615874622123360336035024472677610124124482107499075297015366644080561339666902288923218792581913661797965492024739130717993694291934558308790916377645396567894501479154984366154205290823331236886419858060616910348713233844816961799360344696394377733769930893613800794614388506182828347161838557736463399651638436965169644199434236133677989875874277934653870554859634225303107924293638797372258739976263057279955452092167935037982862623021030220693114987198179442876510256312521873390851322855418888538265361030643203303803469506535479649221853840834456402582491003949263051075371908651102665994284846801824352029199842979532725041667353970638007922426109650701653932512155417267504021974957346236331343407431802216970837440843139337546180744455171811954530322512983215670873778666930955424542722496258591965616895174941929446147619145578015590629951694606250092339209869401512017657087214551741638175436767935637899064675519422769262627102341892909240951122208697454640291480515688817191033330859006051342740481431659818388267514770424382077525125377939403858557940180149566069173090991345759237435078606211539341896435704947269414195761800047256606960084605111204998026430886053772171026510230716465698687867149652730419376848613923401881918877444120718099619106888099423808644994937720754435757314797065396751829856288269512256759033374815239682927929630781923486357772474212896739905391576973769835161859660314662864827747232353802899405704270499923625088666522510186658819134872564762947037595962825810293719095375110028009233107734701241180148044698560878912743965264841621942635092140773891085514341805060069094154098153041108989192833536737415265235437768797727166412958394371580615924758091450471653721647088948429027159737426007987684403351573707123399814077955717134726610066853047191002701775706998753751190436320335768260295600569822593128334314737870305453046336410993788492013641552096892769798882095754684639539245291952542146032909838863123364761212350703247053129097273273829359041910089570969469050190758598046555935421362030646929092652611396378356461400190809099309725654384294085839172004101664874240718417318667880547196136040383577813061604362760428409087786170445521693206733401015315499495995552534454416124446342172481464254347501344131957888994189527946642131102246712440810588100216551024359045298014042774214596578959544728432758717279551987321480766294273736668624782834534905722798179600905319204563408033365042572951066216889205581352179307972658590871145903581130506221478293605896151256514408164262219512325111317613175449025382261151525243739537164220926944029770255861586154714573016493660904674906609747694025278225821133611126098134697429451847632127561257870048124088395698807673625855612599111809320379405234607316095910243756295712102448948202359942126217483712533132700452481572340818938461652406733591594780760388238089293606985744318033959756474781102076790544849622451382819147855135557351621812139065126356700240353997256067251587047024055316126112159734701833994575892223024566002702615220147453820731377724140827005427286949145026214406325213004705660414380477813732317990383928690147083728771548838693421351649314521050633117406223420680129219343530984035917609491263915770884877803446852220699127562360076975373332893930553950775782659586697168003784579403947880860491554265006391530626273438137808800104516607162906536692815339510317874166729339150974824762127924597277276656151129932444760338219586185785090961007006449337215698143611481160954690264464959914779126140456347798960492714984791220004327861105693922435869381897571385987358710867403295352989896856407348988680189926700646681812135112698991520022443253597164177850890539871819186112358418802782352946218934912179208132589384697780145622174347446456704328608792269690156831434445287838203108537876683433353762958226991780451602122570428316513066435487076952033213884124357410146513856131505691802631740520293901280178485119577444223770930530335452367647989792418552008548466571110941716064074852391438279865309330892777060497156324313583818437845497472537110587632022243247219756049479094776014451246922882449256024395519809310154040725331467191310330893137430220812802554105347604096780118087102332658621181145309680187986781596716354184335797101353304565576162046162702879592251234675564133704443855283699414319394260766326233137777904851246779248882589937197894526852002659260951958209681465785662893490184979437981775009580483354683097648671699128662105549087500347754258374134053264966084464093752666088324877802015256111899473512877311414851806855478349924993486120250989778037677871554872780485758342605310929725308056473392181535693140913842831523270900916718304645972445907004772562054579634526126293284584044461905527413606158741059363369095567591657856505075354003450795704315040766733945459382952066920825335648349667790752377932578676380699474536453017613313525182777605304054403741924313898161058377314372885054063376150041304268982305328102001229380284500104965251516911389900600694186295116942581310430277278711214009008990928824086856094499603851150146072968625686868220212673979734670389850562412720042352310391810909696733031584689461840316301683935475809476438738972300546295815241373347384376294942543981922041622912761909225630458659847998321234845043834654146453380008731681587858587906207640307223449393935951304013500921791613535771647777386455459681817467281794227433928250651248877618618332255223492999283822474029544127205723932077384616288342313810357867557688828135744499374201617348993559489676510237739812068877743427114989120299715763508748159353129992029265718497679101208300083688890186310811225429663315445769158176359974696229880152423651332584067765495879880535798184190388560635280883980836721582502183640154867783201811817465825561064870800411130658723252160602058056663070644135843018128917120993542347450941618034004260361667232801101266441612714542509631840944374740162260550625369710119728520504514083692380641995002827179814402423739982293557320637825797056627634895739695926352368195155250593600058929347569795396664023917234033253317379491787724084451475201428055938390349199982168452064096005061937971974093037400884780959919467799739514011476848320863046195636783592404118620399148358263438981143005617639224433201349906511536806553391154568264605828189738182040210012837257862659072938105991706921731447266617247472513721743453698139714943171776907690938976724081317790908475545904531317861169740939540198443727572214646348429057921605717648676542620637184763335389026727200707698416296140245852836258581035224128522078471252538100856221538728981103907160818636081835074438453766405162124852620404430166565720706056100800894730531099117798936648833923899418617044260458423130064889022588518269588033710641595874482222542768168238924515906613570571207563773629244616806455232970003863168417180261129726639545445976039520235215058850631943072879127430337685264656409304630896253658892185622668186248209973293090209129982475026004727969722907721123114211713381143390107735783537641092633809253845757539403659418558086955965397576121284400869790720653820138382748517047295680518639979668320214399413704488758361032952990515725678429571209495153325332699379728681471698837291051241784965261926497524182915398124170622293669084125770765345894496696300924652515633569661749893458507477850449448117135980965948001304533237596972901950356736634120037591292642903017076060566448011672529009231569102702289062669136890984328340299988897066614834734065792316190270462906194069505431141111236451966503554024156052591236868361572163838208944738597628335942310568354115592439712322083651493100530875006249579347907356367129254675936873511768723500344171997638250477241252812195795401611532487287907670880705135480552261088457888402472364415035924995368255789943784182237957056324908645305009418435098547228341004392922606858469237206111331859549130284680075459629808345814199503295020405781325798728734173612569694617085058694091118728357999776189708790837813722586439595038238897786719721297227796093746186192225787970134860876518415444392375750358073247153060846992562499019652669941367413675007016400504617264065640211683406206229107001464602946985427729231445493043694840942715668698674342053354696113942637184857451975717444132090771878456645480032051898219832440604415488850965614306750200151960139563846168107603525773455483048901602796874885748308686912734778696389014540835431614406073977854619875688226420830567198929911040093890105790292723242309775385313072491881069674115555244817989885694303033951112053457322135545187623911288685129794132474217259484071703642747430555719604694582848633396823719286153732591976469859841736661526944334303048727292230476738533330612313965878599891442139019361966969907422364350202048338406219180328010418521951332182750818462455114000921742255109994717419625110567080130380065352927434663801808697503382169404631730438236863789506658071192606381510939936781858728607723410536388827183528018443984662735110073679067903990442173291400816985704926579514317626719848513217871430610862522701187971515753983155496024418013414909793543682767583496034178776335063228077255908308698393784606347869662933522474703326594142688635684480940246523942479925434752996080616890260362450200837192316656858982968102124516725765189664180704047213135839926476668984752973712760295300247092731973886862080000628413034612961846459092412286081181162815595968271669143518769984954915234198037701302827267487561755000099006216122867676840060919578537371804980836989956910579116082158681352160340616573328538794048328998410574326521635398313122873578138747180936661204692351744912361294360017114191043979958894818239076465629493326622594960818842491491096336052450414098063535631887238208751574473786261217154972805310957286104632942984973078238884786285188676821509829390593268851510953691715263124181812862596557974160876928380932267208205372123380060333480053093959902166306554672153848443774098053640136276527114963357874662076748738353710949528370849091659731878381310129072332697694565338169820935066863981016104925865951575849841399408151124655857836152311478471516063794419454365546747514000156762287278385917968028622803548967461342372578627142949564645734396682094440567342495715321287240639628525610104398024440467388428547474319571903049748404268765812028485744804056205947580310208040303013160303023308316107804841308273428537652494622300677917880325390367242710067981196777553344858931617100408448052696266956898808325583968048378146342807407652527967235532635528178239544173376833057051662960641167661804057131950452630449437573073657358714481593721620808074212189899900583564833728205462104942782156427482336604826987993738568829020668639477427488420536485332720597427635200132020034323161739783990298786896530058817878792227032345959854777680678598843732717722172645047799844527063948688462421676966142200308568185027883199366976515438376235406374054025285550167997668910904911836583653995393012326583009097306996057314028791703249007613753316710898232694775008847419989426607960760852469703391421349883246872995155582010466213952753451208241409315826812687653418610641711144455455737400529885715743533273580859524757630780810094372985658536992992368828200913646465699840930206262076216382615945604037080694198092801471392649409740314316185593812248334218841900460043984529382448417666297869472516372516072984964256608476401804391786203296192004638080319342950363304210013643334725432331474108635537665525864335346245344140391707649247519212282332656854684850445253145313495836372220310862813223714161841473058004583941184985588501147389118604296197486838172408942328677131554267201064563558546938166513092269289082579980153751283745941363351880566797336455064828711557016911676768232804221277966461621527399103243308952968557809756379116537686126532030713903493528303577361544935264937013111073762975319207642424630064950201556613761575441990065797789252047117264770521984551345931871866023084403784873320119927019613398320125716949544978696483515077185006340557582340916737898136917016057139526410826710734875813094142192482285447928800918529298064064841140560430180860371377692457473327346735091946862418105105829262795958580413719244960468657592856137863385683350386340611365871700022134009560341288560476394672691463071081870885047100518582339623062471814892526209141456521489830356802727563640280126733275766661700118848777946951984062236972229512454569569851931389985467732204144845751339119143458752143042466590358374163656306995255310069177506722958178592820634040552316624879331618296008853200848633826301425977451806413761379769700055628533558855619982600973733974167163225270248812207500022951305805265345675799968429477338871087983776466523509094479330182505389012209550130159340888820205264340801889242262706610031547547761409471139150983921522519475595591154618949008391462899884706016581830781448328215948742502431043310810714843714360126217948792272419608769806621637000790369756267908024719603236896517124828890606326360153080312588995773477735471684013888185534914655024113252289104518287294340683250319343126268653576461519868181630024480858296610703111634083172924289495255451517192068314190084683688369007466248643733971383750192412387499667313632833887606461007942267059643055531126252178421798771689338907926399016095034083901741613490224526595380218543279088091475346995225147845858737933290669797684712783270744587632803086215795783453602086503771822371062382377884669202053259214481773823040202257276387311119640985895191935259404250697491480851003248075023623710796159108529737817406314310487125003195855049172611800338752390327216782520041506817526559322639916001950150514321740178900111028969635916358214817521981403895291140335624299161019832886417754937056397600657081193067681228668711714305019761724935760067980016559620740339651693014043498019748476308203520492853325986850711395472647900012852933736019386910163576839580992693587119619135338872026268832206732288515186475466586770771311686586510376907658381121858756192608153860067507292920176253778304878738338782010723482694014361429531261228653077652047741156421564711388678515644506746655299044658162652150239234215819557039671230511641140319727142657721140535265082211868573544536832688100029285594955252161298514734825234081177281168994740179375563563890862983629029488273447609733687607954786033816854295284946815847823443338721499661639764400319793866168298323651198810648698199495848372083365433483828129538574077936949691121549668012198103726571250250774754916519590900521931826024725867995086185899694079758978657408164306737711168064654922487423335544166240555373946149301869427308628950032380767894796080754552408327321503118000520734738486681197894110853362023688844444320032579464199320923268826092414540969548860653826153449117209287501824564628239812797285078098204008636375417706512697335786757742464003082318700069992446421246988556331354084883261839126965491527786568475430180713377117807041472294996028193623107805675077006282806625095089119977297111724285033022709782534872520945758528198547279003433947583924136100723424831021258380484202612149707253048746162305811887002773126336085732803612204093049710618227105478995351450273330086395106954775457370111640151867638496918490887037115908540518822642728668904468589484564952122917221391637241218182542222654603576527328838733500360257602170099841805787992990706325539575162013275013222042766873587383831350368004146678107663060499530237127974377359974167317363076326014999493795653671237473673549796144142805966177973958880519399080654969818801206223584840845370634949847842688403811254815982513137646670321614541074633874758656071307365367447043126409304682190621699059497485071374085597736203982390653550312663436603269532870236291761456367679220000959568285061960622739359674584504873570045659420800446250731745634988797433730872083805691353948149552883040527139120914359056557963190956224869625440250173124131044718266687426949981792602973790029905008976410962838065406888472522209542424994329453305304517552610807696603249044489869394715390167575926551499993401276373157145086697662267761424226526696445449535985748301935971345879620371883680531933132136855396712334009590625029011952532240467581199254138196865972772763259266700256778964050624915446493000531611412129814174214965214363130415048928713413059495986238918164841254786637496362055309900309087912571573171828276806639177449066951214343131206952100353901058444957536657261000107618879362497055115960596054693887691507349869272144326588536070405980866317026627827744933042364744825195867238866534629475158164499484647600619619421991817982294581783320763531621482299548806959938825469869968899900518312756769746017386847706431596590416452670660804249051906445987098822062407943842971284638401660164739509438134459562229948643397454237449234714862471065527264470680597951236530131912787409424287437129349997025715444988890650648860099335653230574921548595614360700870791685748001583126228487374514773165444038686437511599065974333689014359057476177022298990148730406208780157838948967827671727421148983570050546364261968151062413266497662052873260632781402578754645304956310036220601059364954399533365404828459809349564814335487840114588580065030112665338030232152110739678653350092080189819082465044622080455140636145265323691030536848501998588231587027746939563041342730252092215362548182721527131878529935264902145105738569169863743108426749431148028856904444567239551501008268331205204353460800667813546729221052957933988879162337346066522240979237820613084220398616786241917912456615503156028622293759167850271317802604217128989254150726835195795370320033009563816166452462259434684125167163104512206854593165729924590419094786728944530415647866814500246191800420230345063286381584342691023058648624456940961048685734652007509490940974894092554953223307335368033230681027650503230114602826605205718330685903233307771920150443965195574007738005069576006745718350427558573903801679227399047146003930865730802638533247565872738783938259927999609442446663413259613581844491221540265497162815375353495903304918495558472584574705288427971236139707155743458035131304770943780784020355215387381454197671646832305756502542163415988107100668265955665182749119564451046210148919820863478584492323696848011131592631025151735636016877022338158676924308038697802703490104542584471576995133079577232103061890960419224728767746219193415548291619518878410592670120456064215713349242520664983189067245466112283713826972335706789253974818042083036307649039948623113533328596292023876869633121399395662156727272382174785746465286688950234810539391117694530568866692045677637095205554755149292038553652008893882955110622435968464930100357932826643072647233135619066074864371155974954231116668763488315743567606526716504346802264727948282776962441272010211114954130317607147457531784695977205539639672202670818019902128617929543363964953036942683124108569027388572047052999267071221595669193516041653434558894920845612696017254259413446269550470395235664597135014270615045446086799600767617083997633259842179469332277521583106405908688951718924769037157596853005548622342071935596150837105980250939177128059561928123465543142210651212374742259220327526146038420341847744878173257027016415083007574487733044817772907746111003045465125458966885934748597680066847141626072851365832706848199680642630939419671476075373358559853257515191033347300549518767690918626136043493526967054516200851755930153587351089966610651381399062229620294773023403894883076367665779267847689934403736337078471710303594326671560290754666244229191316360886953180568045170072066094950152080734169397816087692879601197906500427371658110605757900428847730402564983099203828773704807901819306437397895833120990517590718404242623119942764478516237512186355044684230216153398631831125724815718837098115514501971264203753824822886249369103622904025809195718220638809695661106634094842036673179198061036640936787364588549868918123149257188996506719360369190531862088209245326711627083750264394497758611291386579502570687478178811945326912498662877627668740233107191400384856869414664251109783297713387154398377734975000758173646121337887675013107402848684871107963813987453159379397834313241326389461173606738216625983941048309521094170167205856175237575379912218875524356945668229599068885146059009206895412475194618836237108645857576832755308558834791386693566305881975753847464162479017619843359818736935649269880558591983248482030857125688699179114176688347622540622071778933741345580652129665404209947990388383095725223352940644580362750144732764328655696679556194746277210617893698822597101889051536347096748862145231711534037957693474185640714210193255489104925951171677635286693819183640072094267871311309878372841291143816955384246159719560636456568256047989141793323165840195714410033170930917570374956755195072662427192305901571282407592460291531383772708436054829628665625564960852652537861113460337248016492028331522743537322008270907581918157899734600688625157339590152106644214428945655684707486780822805174324068394365765170962947903772742196063094991430566443057368632907210060231871004625740222398365370660644442257139024071024133252536012709568813910161173567971751931284354013062299744884322506958258224096619882297456661605036548028389426107207792299379588023291239330134107629427581126783433365386916066377873616908319308706414092163891832270386909382076478610141523573258594469722518123347939991381600029975008037838357197139821918803742966042523328609665096030845694610015998473438638509014017962903034977098509819541920067582763389043391719465836195195372733085548150514502786323059270857039422660459232208330182202453918241695904755527974003561624402337144842697332739689072484960921008872167197620669969814557496011679964892707243787119685267723652044489254113605216040089506786881266883609384686633977250856603019787017556853854994709744936848865575840995952229591815526024709048271370644523342368412570668160496203183527391535284463033825465836018660493460949251969931050448580045551570908324520390927110965912911669448317200807750372623560205788402800420342740117064485041821916159296159736971199052899714932372175227123402524621201746340797236785858829282540901437586151768525080290066296771781313219331097690228615066619402630127696636898598566818972945231327746692227723333727834969220820351361319378015633627847758222612842148847287516074647462527058122614716162899430907787744010270289575131695071016575592931779538521903313158499423178725667465378501029949620199379766096895806348198344079003262881341768336815843966721163222092928819036661872125497076967110806118734521846884105451593518091094863326759506634936832578466325162749039244735695531348357123331088749459958709048915405268025986745133901894534485820984920067658783989840198629599191887175791259102539263292377253879561831332841634456022174903820913296626411399275863897171664199333138295016691237065510600558268366079621931971076233714973571782052522859065861558561825365098215407067477567455133456003056990260211725969988746846198381303760927084870384724498478630969004332565597622557958304579853120275155312675096072623919489907662518506558105176826252524803191480846965177584700946180955783133272454836115841076617094760847178577648562546876405714755718034389285284562913110424846423446528365631124437109050790812770601856312374804379168819736254793710838411338351918947313287918254460586832053378162608447267868225966080073936404351244056079618690216614125100445651038363866523144067786298914221091511860567495754507790906010114300370597072878008763960013191257392404670915441702137827310067340481208668465858200027471927426821650778713038997357107433264092358404557001462368265188097288952749630703147880712388727008230765747466423023014825361123430784351017488920367700399154636358930295427011477261874489436388496793678150142315764075345130614906513416600363843374163604046087782482836226035617829333995912933888437428696634423633902411689908289636252410105992768315502982697992348182144649098411697659745506402901580996723888672511908886976650840711686813588336969683423034287644481005652916404086982844080883266342737475592962402032142780037895108425779384411081404661234792498166888777594343564644786065564524434977441756120853819903671834572613092553000912886108958039085209390971162134790046825023866205878055624153128762836135284298051847143237307756568429757549770052835510338382223297816586337466116795631937814427461433185341001499597796346444409453910158785961714706501280644840057380128597712206571196828024274565651798541325187959295440964193122299027657993390084011487596672567693494453562519967790596473164261357732525203278262294675523458540082281567202248893335041078729771261995715693610960922552987562033353126889225934887738114765430852057230191049572383666153569323676611783613883261307651841409508404638193973073071271647051779001025476480001574630324047144555153642378228395991234534867694115273916417101811742360102366440724214101693228607457451485152832011210889133333346417953485250816645580167588954832162766884306915746191540769514041499850503370346555721970230671031626275830130684037644750595537180997570487195404025602259051044598200577681111356479190655245822518241506034443253817510179038558647552937305359757519011931526430888109900774044676462911399843798920055280218455271905910065767631619094660822644708615954239723926028144416609318597903237079049009930324415714306814472158906760541065278386861364363531764323989723211726505711414031777847801582462452453842013460103370730842538147936172586870250554813964090744013482290663249371252544726044453426187637173822017446675934472677743460383731053288313874827058928633528071131987708680969491774551466614645129134444544418379279903307115059541300559702998636612876877279041387125623725623416095972206165088854418839552503389562656498118237678384900997883065264382411815991761751509594233631154273486974530364818785202918736283254177555970587438101576098803872081931277350022123941460782974550108080046020665375509151191702577651647787596972293250402685154464815699809234091598851166822607756314638576853410084600082539147532862848093627507045729614670406110825679350906018646979318630206593132841913279021107819670015023740837978762531317287523323562456389899590139790127760054557895567817071710863799612243800158806449095185110660687035085178745443523661101189162736272446956915314956221608769167217383289507504565409369596178485383586520966254060230487376410475060604399322297329563593937936421882587461874894750773891443549687105836386080104824706646999595210308961208890715855088354651211161780570290833063940970864346146078964942911676939390872867738061593420821213883830544655954510906884112768952234156671953941229916542189121313054314185722926413606172898862138426711273864752155132812185111755154582645468614225375280572835794287947158377655524767520332947890616740886927361422535445132161519624393219019907220216168760908504093117663965439568726715059727434973367993510242525075353544792875425757565763888448387600288880441229990386689649922305500334446838167809504097131440964825501420172084520475130213658688244237963787129948740245951990434422594174984893722147240298712350985104362815391928717360585564334040251725477102177060004363556284022968632963132363047608617384387576630626444181477400968497998763073457546576329962158391818942292529872900486885290186885946688114660259887299997218905839422404958490664984522682857331181246298275530463980675383193296977222091205744644907837771966542378571974249407793831600850600857073378174831061829689203197127808525853366171584335633465121406965813628410179123331502743124156709911307664576901754948988101432291552579015156888724451767366478249789931242893636738408756227822105499609441582121259379424393802515245137407925017503134043847103737558805160315138350059494552177990012473210740287948493773876965440516019007731304642801250498565118239407949605360383514613191503126394085864529174677116308939983198147947794348333937432510192440810595397742484677293477325221601942690737572610923029614404127936760315245422265226554469640627538194767134550046147809826647778245297776833429965053694148577596171556378298078101585492213039315481970920003564613992604846516411195559352459855994519072670327860862203952957317289221572698696992469774771538258217826963684457799077293610937761857057551510587900505418866251395182709449086574439264715896662191697045676632360305420974487141223356374283904141430162335628120403792225721106982599285929978418552090868507273625629800175730220888713325591836475088026622176100613755815081522753956636021979701255111967624999202062289852940827224183980692080410667607179761089286203575632147929853927503678217515209336210134474419602588682205938380117528990753450716848494376777995863686643090570564298727755331901984732713809899935228755209303753802873186314765866494604646689337719539251592104026453163732567944535340273758374664273158168596284182513382429245812425463857517596706630764099272455510420695979429077510763653215316019828967192614103614663100237559635865101788120036932316330937088609710238827487413908289645527623320674920612498238938249190613226862606266763981289924670072549370352332104653789673190334848660367180178224935124993991094449916562670482986588906500467736681507698908596811227263230803094273061527700677421596714959685370122089226388601142945595367289207841358286331740467338374036360256969372505362990986793019504636399739454821905289678014586684598468192480078169829981102728665720447038744175527025934932083972710086278274782702255011990486802626796497105857422670932118512517574807247671976530862772066631184199645156702829654395724807154887066206328205294022926200790080884531091180795760207280344335697448826097029240551486787384562425033170655578772140331533657591156992730012960285358682538269817767346496926394282764723433694789723344361452507618538764525300436800571178223129744984835443663857407322861023769092945607938956358484770561676975983401974310749260062271758933552034322536385538698663495938318966955738397397364092667073001280827133619369862990261348076250159039002086781320770972482306219082888958731838042690390336824262340117429259072628071629421512219135585585529745297548691381700694262147594640875910552680709873125422894073450866505359439618915602864513931279888940866575031040745055516528052638656501714688490851454139040309075745778610567610017117797542605054897974169446850475996172861277973441447695183404638603612555551610876134936119123079662411427374056703518246317833704190398267008521482452176562447868982155967955321427195795672350864057297946203320239860821980847574945834182139944852548189180022841162637763101725603440987981744380106182690069325098142409509394207884618132491277828578694922006071899754682801729304228568971085978874954577782649401431072953296138100466111219168307464840468745705227102161561872352930902958267341981060156375856810556186005355733489848457057647580936296117569038981570973613732963076207270182268231392220000332028081806067311579985585881599255398992692876667185603260728089918540416770548946958724477717197789998323337341421788188888992038813070953605898120647849471776076248776529831030560529975098351201243451352812498676697173128538251099198234027992250326502295655548846970404502982820582201363537746469069760518123760274621711525592875088452163656187671538177539889208494221998064775091826137538208585196532942204243997017098372619328472580484095818283367062482996996308546443516913462061441608875958388212611146152079044528162556353445814668300905877424051468864810729861844232400037022891127006803594493998663470956131151255821292366408802137128580259627267834014630487103444504384620287843891778026981222955718369028971122263412025967890417437711750878285665335087867080970428158773707848457918029600208259702695564582102187098684540863162466749375690787760971257795064385171624662561658455680641489928989068273646870116111927738471346812495420057347084171703852456299005052122543098764525918722982821738982065176589281725031142620507031726753774128271173534867078244775567062077612078333152035224184224408886501117436160750152573953532297644310042882993753662838447337101533669693428926154808813896919113933929020746659422514253608675599601630453978563766927322724125281218492394410627038913347365766761235013772661602352326963685513864594401304744266478196205427770889180969317607518291326746923383267665205566979263686643864393995901394633520576507936682015440634840829585201129590829070332265139855562199881962661939049383474311733095798946739002753708763339475309188202678941061904420492659045719439564464692249946260890856522180181738131830387189550027407125754031577010876208171247404223915755375965047070553049640213786382539271584134129568608270409246838171184214966807251940598028065315382361499020762275476516574518766224259329479592531269045972828987010261224827439784520736216524931191908656892751202425305296053496347769784091978247635841156960310089787552514584760866036656820596481897394786991307995693043072542785507679049937384587203611480806088962954242468687560132493907073744296520823187977542143490913155342182480369463629393205801787122014224025663557724342183491718915013876004648523193920257783374212156905318283160986879154170039778256461033666607447325263082861169841252534569964304794452528033950352475543906595328209506303424388757019942774948588463118366572949354203199206311041759899359041912638331959555403083158482075397623784225011975377678536981418902071284960965633268973956298813396215480515066812669183510544913550442209075107695331089796341313590850030979711930192577513738287659015401531498654760470390612486493743007170232584823174236626497479280830057122990133042962973076654993647590762280108932022803684010422520791643289531841548094765784245700487403884372481660184296385418532136181838643999299049537617022380029467818700131860589679039308961654491383787227871021894916232506597371180125763482791099689103839275738220846971001636800661296887948501608450679834412903051389134203781589281230188471378527030287687167576209620450433213406666675157233080633730968863713351547644347788777223902071166593285821620386517827782488531657336644914892322202954685968526884111697321771497987661056429271809239039471960438426783203444507607801202779886322574394240754072460339687645411238320106879853249752215008184703932666389849690512986683459195030551684259274216792358640608316113544744850098258052608645969342389550749849651651916453587283199207808942281482156025265769071524245677538502801017140779502808797883592899361319905734796839605597196845673472848415462098161460737785389381884662926100826433172127159221553104491481455646282587244591490846452564971432169011669427948395304823298352581342029228744238293450095908236662712585352883668872407998839559754330063639583439776835107960786544022974111498425462837164180089655162918921299206741646413262130965072128764729750147005731127693087936681026986989597303128481654749897341261017213865200877650374437155806819747921532855664593906808247317310400231681706669208350441065513754868023704254810064482979615568154288835146401353863036900574472493892388692819042669700041581056410426741854043192017304539036901149528349564055590514162510781269665596666164974698180641323571346822582005193012482332015595726096897822470235551815598773986296587290934271360268334475458453828483222968881891730336142523756447985631241351978876678953692081062977566258403085204728124004593989198274593141307086867297294389294765020420755631493387438693421301656944830003664701127189648544484865548777544980048514214019223996470718840697807128275924151487811341462132876784420229285254423234618866274211934661163948324772725065500533694878752623745406538722725298498648132663679533475022778563802818886799944718130302760701156947089272196314575155743623366329337313911038510340741545498308834074704060171300841319251152538663312696618528617513441699673466126469693179591597715282604817401072081859366896460445797452247260548505119659842961131256609427121959647041150394601809779042300617730689928847898175020840894184385834398512086783132454885553545770812882089386179580355908939268100009056287173801666566106673007063589679516794067235874311283536718609426513772935833754534717325287803975815170910057690944483822396269931019553532889294633151167218642326172509256134601034774471184536444479103234981197062006153668591173277537418747347420806352826357071444682938980861938947311733168009862480833349364372183752706580858968790411244792783893569549934872818323401602263601067411386382478976025654259663230805524326819267453812687523316176399744719674874626454040244407422793069972877656774961291730283312111106722654475078451069223018495829131963704548632367193234381615269742413028355507846792137084507965735907595238811649295424854921710248444708382283239660619050817069039846532342934920957996194733967190523208370512471931010326683423496515003771760181872381086499090868290070333719924855754441990836258107180310020195325275093100492209854149946305542349971138469545760860767860524506878199033655759244565114733207541392065065734557514847150432185260265103565033112208674693837356214573182457669399535482387947203433111669176441588144777661498621308519856159366725505758482714211928779565369202102251718150331819226945925570171298928614042542161734445545294075821265759833406255041769328851073294564540876901253955380092585503559646081534491355160804481046116659461065512816051023876668228519002470474224352319855222843567631725826944456634706844413917846563485779703113661229111576524724134025329550128002472554900698124035827093026193021340950772775769994047645702316850834541808229393169043000091028552582117142897371528901978345533130700388328579891188665896713584836068615827972010060832088309856993040501362085053107494522171756556716338682612314984421078646850464645700853363469444132845686099416117393155476337873405621573958291210822698399827090945644971343308533542369186640112798100628553383823422945923679056933219405386521289272174435789882753239866804376567286851858182814698296715312511427988798102268907949986341115128123627207605925673877930342364086114802934560264617230242388586888863681796739706556921448520465409043794739816667372270598319168192440382313989145145799771252293604212509319586432085678954832743948656103029139373149423102876473081744963897015369533471016493545454237962115509360912600061998947335828611108009532397370518486811872494090630329931788973676869701782239303874704570971208409848025167964110237741005941517424083278900711992348929333522778253314441708343641194715182862208973226467186165725388047707363421005340127906359545154254670421586389864663240527022041625301542026748238753260385058425316473189855942623668362558060904060681409847401558096554828466182935464237627491037043583919313470433437220531867894887514104612817524390065473271141729302013574114436781896644539120094247178754152386799951837738744417890840611252486067631550566973353627049854266918611595507357013016352299075128724148599018369697378004511278703214070001104240997720021994413731176496744969145203386736575479819860562922062608578309922115998882347975984753125133990330193423547368435126480551902028729576892446299368550521279116498900120999182775368802147161677955000694394681889415634471886322768512322511476440247379903625005005849032779532472681993989041939827139760218878263806915612223486705123257788729545753833965592066412560407174000854848112327224585420494767968173223741153202157839641474868413485513489891258279841096375285749666226250155500701177352657842392415983549087094325890041080209709285826513162254329384402618914478788359792451895735182803251656421153102676505605294425758427843983232965743667720629411067389836515899505366046435279454527822720873889519738865723595868522127533746728931808457114682829680673491268436006324832852850563140890268208632804053154985958200626386659487075043844148046066198301219878782430639978987194063749018403432517914364079947990902324455551377888612771609196100581992821844973489536930449408103228507889586654902580584492589487695532892345081766151595081201968441346063514793231443607753632684687389501986825977010125053751770824457015983686938958723252505319752330066354556020912444262348559504169054070666536334403975551164186766132824369625990401443391867080138521684544772689304922857104500638702296082932791699170178866710717570893087462442226955732556632783798950771657165876519422395346869511560421009808605571370750703565103409933628076538937261709756680229642298866267702915324239617003047687732970635125096987698611724196386857321074614153650558067198163889616137372596622353828623965699938483459841489879093400763280436725526199110395231782103008387973936512493845509684413507892302630484534072675163867719869710047512704545383533584446367849370359175100468940327394608203915744508842278080096049085994176526989459746928806321202153433901490395960048558680959532163403739224383536369157321795710721406069690600247086622091385085287916743786218996124961121350826557161767588570080851752071024784260969820757694194116155784907331407035608947641399366734703786160472235302300646422388372570660853494091109705524883595666032695603703464291464961614323919182360045914762746814092740823773216051555405999059875424564464091623107752683818493987526054963771399519661319685624210530092229160537337556986061856374092173149054082510613785930302596852655087925021098052179181664583574929712096678370777093476506979933383820141408864814829007210228347086218454086154355283795108793350018351991291614710906065937765676552012930180926669544872170182736405983223631730815595163938757909648018279960877534544057235727037053393465711086238072708335429575003845957773290824643800042413829961328467123102875852819450667036005047248984024823866169114088700334598000394469801942797673340941691976045669021375396457532951496589757170601817436128204546698537503001571889769874139298524572485414988794256427102057462871638378391198848584780091982305975895887413731577446864230246626361710372465111606797155375801966118443742902648889417552106725221078145876440165150576186636869442706943170593970969038508755682925219687214496164138775521811172005206506908160024741773357790858244750573868570235388048965385213195616277678639518360252637559264976997293020609730089070269859296142565908967178885947801412516462002474674539281805289853390881906732062776169392501501410535530294289117563171684448457493537642424679284162514387090866290046729547194964499584108864417939709706220514472735141942814815598106272319451957412931582762059752839093751829105294160598834215924043089540972631928983040335066846766225095051753869361906447624025615701098762928648332183158058164291291671312297584396474719785043623354593895446600717538669421385258173334548681063984634914005288784273811273260159711086801757898046201865488536228238963342519902226865361215311158624570683671262116089341922912049370286859475741041225914727375288941795737998915118692778325214626397841238767980485365887739877133907261055381805288616587192726227065011475902423370126751348998631754590720010713250769943616614876597050037493439005045531893832478040213235086709359926312978381850620897955036861620459529275698273900133256859413776773005823792516980112306227624302015990164744890603251959139641547272566914198996271930271524948862548600324664903757707807460805298236831630618827245542266734175375133284467758879891195864432765066822311776743341094069775327174832149762201507001614878240101873349502663556754857620626872558940681397030645934988637408820567223980565133051481392397636632867155062215472524406119753306322634492232267851914336910546159573818830939227683395818369210666211863393347380891794186742573375716290900699834322213113131628412091895093315153483756155062705187915571175449379069114856441784986150740940744922742896029153781017209002011471395007807516811289409382193352234666540291486730847940914995590267008335603707710697034572245535318511431865240239875043285966932814896006801329747999876076727826889042878325570445790534924076733442479886653136336474489089746367741143999512071454180074034241978856201745442337844860392153827476010209493573780769507424456422495439642173265246593552326071161376717359349624680709627000835744018528199690924661204238343799752048892126609102394833044570097645243637500249440462102537143158228877052541107858772455538774046354820523379572646451960416975863895881081613579377679093507307848581872854079207286396544740384252870239084838790558756726450841502692006207666440219524378470310037898922652150898132659043805484484889896216788620019981447848671792951833291722050916572218432775929592752878631667618032837387307266980924590404133731258592803878766172880858204951884854653461970994477892490207837682167618632079567165732709603598063155208341009005465180281957000663620431466504912579841711152347976211372804533248366618746091842865473421407878156718617054400192525884870354524811747270679074713196403085733818270988759370837376313659235024928698511378321974321266589742817371825481310578895703528243940090350556881658120827257123198920277051518765588230700461750202912946980148548135582158144447680255559032354543819742751587035225972196176803118907227987591236069060144024597528644755266791276911420079006800641074217180043475370006949079846635784100971379200865960091836774924219414423693988011403473672288803131327759785582494933756684025340531366296158658804489920974663044228485813977181217173466544573686568542930295924746684219805538557516762388561841932883767166751206577739171719861363937278250949956169759683131558563890694304621090194844210977428781034396155756227575093338992354393927654542942912397791448917431271399509409399066463188392306037069544471854858510440779138055572419047521162683994313078418060996521944209611176870846529482464579901178566200531846097173362875364378092777888393022525561652693238303892071617205246150796024342435866929951278206654009412137125168470122704109687359312698728761823839571787649548970638201960731766233191007095077586213884396625851971464315976028542626946683399787783936880896570682851625536310584023978939589647369343718467006053467249974134549416522499102566629837878335115938315925531051777529179473068699289004093232034350919926357798901384453699007657091135699701288997228816766105758154088013515335367533530865163586490058344779132285379626764294266155591021861529434861174886995738898532549027402368437596468984532297628941455772568372243890654773748982981155867036589270930420363088253296036495469492776563390736784066692716494653123253147128177985289244210046373619163776701027327222830384525204733993723082130684891864873031002683565427199920467045485610231121469399580603942458196592986482137024877157303774719281916508007683309089605811128204243365950957304567537033716651307266209247903764959802120415577939558088764446733089652197274837744852470569264831316653743172471399580923947222918131622941988999072405040770474876735230506751251282656703850681762702488216899173841431182051358776679073241438199761756433729040726716676200621368100976583994329012422763689994369774443670948800380207848222216337704957483122399811906962039096766959673395500865922235302123304883399183059525882174575838733095907433739328129406324247715529206909251600631678580967110378827425951888358502793102033658854591192804137376907187527607489479149334545849787541588017506643661212109595342978192340773862274538022243901900288766024737014740892706942110584834666383640653324501431107528176127169383890232090273498972320758557483228789119512213403755342787193285867566756706644003186123965899208538482411562296598118404041217965099927920552279434191022954882733358471403788889531904630400574946272346708339181537412067581219324855910350980266989194142580347540476566229772051449127465112166229818292988791904300082001012860223141408077275714446047089726696524828808738590695344808853826924030894967962631859377506577524163021204508649999221837259022907635348363770315544235822190633982998872352745826691380244729633232798623343058489852228776442211903895197044985896147302412485668290091945667041869751731479675636442121415469050899195927107220275099469269438245007066407228248514048546703231446253361017674259228448336469193854638172953131668013356297789177817500206644993042139704110474519722324864818336676145066389007912973750792596964275904321295199258016595007053017072309327324447759599931371584337066319937122003146546485835582409334013975392061241354632469767121034154925511196411485410383813742244172943212788604139268264119602664093101432388533008320957416442959679512727330122668856222509951484057920759793428496487810683879535545542653158794152561586298488966137760811402777944113508933502398543543434579939197430418118157710976752673283614928672875449938009968064670295427124729683527300597489703728736114974727928251089939949922966384927218177388520826335009730127918380757015704444984031075756821033038477701001730243860338582485882698655660477241119821062924944318983693631104257019146308290369229888238228445056196393357916642928731111584058784944343837798819858138627213167551055274179817801046316847188582022992414631296645880022922850556620168516832722226805030597446664782239002856460369423521632003614643214341537399746477576481373869275709439519668184392477169511059260295848032140727734863090766246298680095180001735885427672386793498646830159031653134652461635726677638340133383918100858300501406903558885313799895877510647742250533961925428642450762927255053132731710899280212478588404971410737085744325843671193916019759815557372659167635664661544024927000050878042719451063732153318314348121391891715414272274690863129479244283259786030086323035953868060520339198001855956558018297901323793463573472976623558669002554980694539341347025929477611837516233122910040225677335044008496411490424938421232138640966061298272352219672834487315579400996045395479116501663805612794497565890361219902762993352719924491576614514154238681237959045632911522743934912117937980912073483443073070399631012449853399937147477801022409460430593136326288645034401604364630748936792243427413878624060058827019813765239322835632543458722400739461952376456777387545077291947498622967087175450997552169667972663377349422381059704100765121670026847064492947078586261873217408683638427967682096451778206629309070221683915589745172039890852193061770356190702453788245806555456679292588681009119061847995034460702389006108296219747447103815888438093796984719936037925068741159593754031802932677314440112748119362509079733928256029976182547512506310661406058338696968428744351062911889317774929226175991433488587738361908443766765428200600686240834131301615423247394061072004730505211855011553330558622035751603418753882154413155595441154931814382527094225126184688989483089787846671922563146614879632141577402904277042097641448251370609224110348908867375124265454313037981113944620501243019720025607610922500364546552182379280023592758075007574700438309032878552063711097434446110013469268646132858621949866014456847123391380188730250645557444605847504213139849374677411675559253865807340299270854181727523786720142083838645894673440875832065374796916564712432139966087924293367415829452602845935263477824318896603314037001184527833249742975367002430806923995864367235864769688350495102768000812166125319002973307753330540859348838822251765442045789117772796767196967659173746646343722957800902811568305310162947285845466839182131873777181673112716165154588376078743888817066752135154227538954235415282841587653984622508659071637164949342512923319116483116537754952460796294632740015967027239299930616076963711737937394686366496732365664764941610485617287024548600861145623068071768561362242097720790976422309202454269549073223575940802910608546595533075003573395328236983619335502494632802459575098368551669242537980829772527888154060993130557334825007728420639978246958506968549335683778417034994866950996877987568650746641461388737446632031348574994284714631582453545424843419528427091658746978733005097431975396029021948469376174795631235727302429503951192572214879457471068245549760589146051825815488550308781646082666524958485178034619060875515949108943384849279611005400745879994362789501585900214363491342476595945537925338436678231242206223449863583001730135634710706802967779194936593171915779163489357617753338458966165019115278623462026259814511806017486495512685181959196467720982977189686527498127656082373673228295816428259212651239451819682777542282015850605082725706174889744871076382167078532124166792311635772823898750431231019332361978381485887180061755425872739519564530555317295140253899327591253348571630404144873999530835731221557290128677792247737091962922851863835356687412032492483976693259034519778988732261366856870233704318510769479234477628248452207704380521074816815297113600205364090819404103332054274433833402365328398830901778668954338721875920639516152835588764517857451504897224051723096149723758890522954491121110918487170618494252049252313379901879035343884753713906552766552039022057322310134719751701873887690215088673573690834736804728790175674607260644838052524112360633469616550938718801766693523561660911974155124723989343531960161096402951665239723422128549346472879136565842083221675306045402314277092884372092493914556721457564383953431742517232620374066305278997202565141149362514110389060000129888370375677498865558571027648195921832415188655559299309802994972351327386680330883788837372828094098803892137346141800860276079551818500300695286793033010587246391451803289485471692575651345598793961438317645662437415247954627455605010787119135952805612587026810961298585539012342664751228456563477105566270617088879772620103636338393340374420354031360281147426960618546425663229921418779416105353809081290609629442068637163483762518015142340251647233259942982947725437477036212150726498137494653062948615936863562294239539345106052443722719409758565933803762698781887443366449282130157815991082125773854318990109210342314298392371823308787890095534181224415633495656015385364730038896061795857186417615053272206288510135158535520071887210587192294125248762637433451422059620778237886449593979996519740308217590468181804463997611040366439760368768993458537787044326528091920228115765905827528140756367528310386986942134267572229616818109461122894200820863306532826555290704733172924396392166306618872040627106975764034795528845469960340084412685961297996971622000840785878871160881112696888860646784105144584097788156306756316987744653683415510491729109862098499977347123392580694433269354144028491992641655821789102235098346464694076426757186332910879499617521065097139877533042072897651468760314161565054968057384295344587992614664753125297491278199635767453228436881737157830890097306605614142355993709368315575631008918325281197749242878605397817217143067007534571627357889426002294635257394300103914246954793415643990118157056964637389270230311436103819535718717396494011208511566041616028515647124733829123691471419001074672189345489035312135527974623593360498046339883516094568403204782895483571442983687681558627329025483259097130573467272569259776394717237133498198667276944976731563202250284938813680887793851890399276322392222034596035494445586518377402869271065625371448284584314393749547210047375246001967489980833159949399650635460544055678151357419584422525806303972824929795525615051325641391222460432483687554973558605381027011136069782725724438434458138326833819083275888184978339845797006957036355113420106591160492118986053137462778642278025181974436141108748158868385392859821224161140212668869981626361165302596905846477534140109858579920809822567920783384341369275944929381862068916327487489638016611677882044737510809829637899703927173008333159328434804671429038874462927761238263016531281752094133273116678768723896458595539156422033595505047666156608466488106279029879631771817541728359856714862286713489328643272910638604489281024890885563358523390553954280144625231289373108221458535732085496186864212852297243398782358961577504564390540990274559883370656241945035748009688930458262096232373463895686259839604876630433955715063564692102751741917489236909159593316668911284261803739418096719413753688123785742590699090371560205904173921964741902567571400463257157979228560009122630788572717152329224071363256117731167587285242076220570168831886174080475782637832984569734143087793194017444275875962479193075078526555371429331344768005065864701102128407748187823542042636533884162131183594994172429194420802406386548819675632295546668735758314153424890275917906170067259144741360814585263807228261086653839087110597392804226743664297034024502102778055640730919800394350649203653120992623168673267842974980901328377595306947260407997067828469481721212663829576378091590386258721609844825766676313453579218491445220604281477881283173016585019747552789746131615937022463143657808499223689265013088596811358755844103701339493471950716811679927477849864015449291564878882485360405842039684828667181864534214770253528056709695194166574740016574961653971815471599954871696015227356651705045282749523199689649148112731312587064073952376147992933508933190870969353452865287578096447917186670222399779586858070372130786482701591503446681496053425242588084836092784198885582976787673057208386650484031299766204235392371033997304654903785705098830655798202473335366795765310512927926875766527609074971985451315428678111629224246652886435690563154687434889864081082157615948380375884754339464078629153191984293037476664554026257339495475071715949675674656671691727574729938896243978862087232674286127449073765717336658502570384897304243905729519746363618547414492827660693949747252794271813038866954644650139463413754061959127383809208111207732967333718773513486959585570132184723552403402103910404128544615353031111059087929559903667305337618953266057949455500715892698632914695525505908464814032071026868708839041450139011718622923614555169115410588543168815533507266809029024811405665241272989798420872529175212387745111093888025202453577849875728549558188640204208502239751928860824517643749165393733905596808829765298670173174704434968605655946525893549486699298034638460395642053301199201263337304956890770629022400079575334469907376353113127584605954181472032859203111241949186788906170442195209108352545471985838990420934088036372529770911617594859422372451163935456828252082443852106738379370083730466575809780199481854329727201717704342558739487374614883318713303149167959450538103153415837865279231855110865182574929107996787073579629347727491502690208435350572849606306065488188976586546443545446541945947637256567016454167644725737648011526623056955174974878230083819628581172347099894503501349408582337064420556801084994169303866657426979502933205580981259793374949230859876599131147588365110299928420298894549022876031459525680819616010388010328769053186875745766558104652846986155569007666034994855081282462702317177952913538643562739573244606546478699835497128103881487017909667398974542950700937710084398022501292301202437488004809604509035468040350835624407686700877052402240776481755207729387926122066910619779656938044462649552303314673432010920493521191438449384220174427378424713417449413093582833880702136815608220288834623284395593410789659308198766572161441419754597925734622819376291794271218555649615629783059665744021208778623340963064731477165256104578381210968138518665989898663000812750170055572851384030389885676732630879911252715294103398516605640263804795566983395877376173655918031478008979534939219981775513287086242328025909794579250902388385606449594362627015276156380566244777778901616958993954708965081568500528089851717840488751228813437572132956497174117063365290628921961991171313711614979835761496199911762797147778379629579492858722738796587486054312304102117827807742671906389615242404793714035252442656270523415118854443530527046715218867933403428136341110795722631993589569511991449883372762759882050608679281625156119391314337423553369120465087285068344618699338933808325622731741627880272125872456448279228114225436157912506369024691213023994478010294839360273944964225387781277572036971538170824768062455592676628438265183961358693721693332528363017398120363181377858866564465214485697100673802897444411092308601599376403649799138272486209044977926444975315184429346388759403763572238424238939618183753409915528525503946762564310275651864297719059157422685288207720153559604671568713472838906963394284746512863548640541382348053841318563454600365290252961434926614736089932925645789643220196226137179165687851002623257908193681704790127477096233383828421094514176833348563377889324492723177714529333879805006891813222146181864408406812584404314769280501329517774548543808020898621229395791695591446401008406296902707584777202039827480601256834086439000935612756738257669988163723175022320178813768200486011987584317198683592772215275534937768221436428758720222821918777860545361015525935692415950442572917042299577867720575872390260114648530849957874444649775706173250644465648872202994355138671017763392786747942364923983613024175378467942995953837550931458074572691408145696188907586252488285296396395722208756853857828791920949339273909991793142586558296160985167988491782545225471484083938817915633966363751480705674197656179720662719908092332560994155712582133066561538936449996571925520922646711165469963676370401086519357133419078367754809182624744887111396931812092034588634168005982079497842623688817050500035198358226173437241255265644214686939685303457649017833450180982346568585148851843152680794924451652808729293496394441833449017184537369100819659750881390226199014812655536581522919119842231147773239592956535495753166081289573842687278657478814136865973714073616369531148029366946348388286173993782519444636511648663598706935763235970974784060537656987588756698108686988080359281097101501496489931377210960023457792821274344961285588642296141292549069131575428212542777707628091813795528813506240900926856061279786324856943671675842878448057551001520391961627847062212057997694183017021957518446989715539876715563807897406560231193854569390649349414920960585020528915689012358126990380558217444581618721143181090502568704829613029185238151069928666359885237518886364837917907550167214653482428741841637789320790972525733316741602210053289486651032672629587215028650808515484017293553141883284661644621248945223122504909944902251894467514824741762756586675380990880639696917844155027592213040864373832411507447998491042819518446892184954348825490239430360258435513814538602398142269094924478213054968205882430740137894947893923856131052054542167150227031676815928375036701279187617512938048969743954515556103936485590963344461628554396351007243743942136965788994498731340401412052162395218474076553355088381768252556472784220620369459857202620104932530931712717313113948676845755520117673071873177393408324881156398860987197244306472350796580817244418647515230891356150614610728785812619200767789320459919261488708423665325658401944525078202875816514035190780835125286084137556940551805343457647223337045051959753369217908644934509486360964571479410349145696053108860598243469358009273246023839754008211492922815719704958313602086317840486930226323175501439122756243746380695650294560064838162888122154172015053462224579391440935353266276368269623057237728381892721680155193279146252424988694941040407924710104613716461764645910172754389513106269631637569062247045587549432933883076053348140608346549463106746022310113117252949666564626356719575970832650597039075891856591465017452820113357800104612935486106107222499335909922936669102740541246674892955582399309840267550940145174610474632687487535806543663085661547392402513821965630458155360235788884855042361468032055904306468803040440525733892991716866030947931329718808749822332247595227908822482130179091929440208900963113175217969755225139319923228675516816826498053432087647154302316908462968394763432529752331665518109136947997259143198736256157110031932603737560143772435850609423458851320424218529263126239568829104475362880792249112787503781343656191550635217785536797838305920897207578661404742627721935237474441004833156537694868515326063372222868657592100245736685463793755161651777844873347409383411041206225772268333150954036843134492414805395220592455285280586075128490190940939120924724580942591305236338897072125800940523621796866422916820201218702691254804573750570302657304467438266100195891058379131902792364926837467213963134309285703676402063361024528683404993065383959542621800853605809958037633190075221722204755774012312115043492083496833487568654355201137357511065684564338191021921574787439935432923735153583781097956098750785743320937519513033828736733958823497569452139035430181720924547815100479108712664680904934537977162394223116863272494092773315025322811641617399505190489702686653408180458202841533656464289457994873739600029555585808882031658142867413457232170300790386464266278910223073279003205024648659010767139105704943810229250233161102621530733797237139173084136138925436882774270137439776185043864437401848575142249098950556142296917935825376013514270308404406307649403086232666246366128704555584214006887862996038543443699195227263719922356459271202479441376834970542875987802869313009260787762149714844874589892341237706101917910923074062856744670935252416342073866566900184946956410830043125631513077281225680786782585160809794833174213797667971571217985238774275464595902768344819341180125180602015545943941447999635687183505941137411110934792505887884889797627111139409336209002123742133074794768061919731762196459203542019259889526354441513064680129204318258980195305970786142000295853198342551043401727673594791777164831054949942216188451835694862925647207463227961711958340032865796971186394646297615870704022685728942982856967241447904944721765923941390251692763933007701680852216891646021900262566066983371747803715209786655823779099938732258407982844625334388884469153028010829547726715134544618770735009391181046037851425042055674405789954663632952978594115647856282514693385336438519002991331532284959831038528517990553685474248906980074273592654593896644597082258824826690765653414979070137290832054630755349115195579047783990272682776439775915827672535406678721227527926380752988583767930931866811790478341901085452701378024976933824186897111869432471621397024475283500502594900025904917992320220706788872890877591387404148649690906310021879231234464471051651592825096520554522830284988105437454296308810070698509796157720749303913874641818547062610217971768223017139326186082962791295627954717552216371081273842636428696342169884286658961630317747073586967228066015744895898023794575836877637864416482438387460247045887720512241991619866235190691403935202981659112558354719972196568722497663611716076770784356342675917039613530764975456883884656696806791333188754550386629886441542626365195342832081461485301143274988265968191945648817151647480327367219797899171493318836235327095190248062110789280891369546438489128173423882259630869175080587145204412495435205826172512152836082613057362546192030073750652242892550725219803149565484288633784632952476756742273446183160872965863044665325036492942038217538971056346992549196441875740800526755969747182434634020015687089182440791981420121979833058309222470830845193287598497280089865486277074036949408426052145927863353446241367943232823008044114363482862087731389845297804078691277875341293961877283973609244113411350973369029104258633801065807347578948634937486327625122979861847176063392028390100943435386378688476216587393405125827418347045184101387945630818958207696008139661454217064403862679467400321686500492954848285524069482687239741311766309495340770431957041676599904480453173668901975916694436944989450366862042760341469961360105399985723100853146347431110277830050923292563821754415661293186597113638478399296932197488510099683578620432983917886038961171882393159371204196223078415565454575188309255137696906633748173307164682095907049811519283571033198260200516888938036710682361494828816208902060689022232873369135293657652133481616894052760902603353489763045392572289678503989123464912297631863454217056217595868370337270093996702238930080802623400715117418606355136717347068043760478557165781623317581333595331775682811106520977295085461189690169420899309879676926492501385796663024061477813034144708454924811213834095401389941524842837194145754957028731575997108115806007321947815871146097859516592925525899807397873081105724503420416530678637549552979045502111383520385542483445190783102863350012124584045975361356620508680426910723941941363875085598551683446763200483409015290644921977909914848647612793333281761913833888283699045579015056948858968723436154539397019794353338646278492434796024369358813139989515767651724039352614118273659605347161423222761531588459900673313920009055883920769061107631189887754765972231200109205636335076310017538040525513349044769398105732206690185687099388140845922041387245980749769874487245215496175383242612835547860626422960759391458187874614463634827889952218220477871348812304395093326178967995885670999971878888811888420901386777685859673928126744113526102754353524353864756426154825191648638016209875951673209877333570567538912828959282888949770517397578332269130991464992943511419756413492397812995092630042075984746742504034785281418420939229262318066005620561473996525929669753575091906079481814604742725255411164831532205427015332064353350892207178311916833191512887552145855370538122767480131757236376648054718173586819303670687943662591283314978595044525819086602650305113903287528335376793054902256429907816977210054182047021484993576345592435542414743201369107619362042293383653120947117839319994050768407369866496357911774943219829049426323587341498273896508182374014437530352367826439721048879956929159847845064978285209240878765945612583418460882727086871928066503129913694390317868835408658585367661021018468948477526596074574250999670915696206101902218893316825532789015003959571012022302307128404657317112031745160264972401231293603844185426857369769266546871335736758263927299176230069847290148023635362620342721885709866580192168187995426809199078000212607290224852218210374936737012864099930120341201983361561756959304632377213901819513794619115940886074580021731373842543260352017174437965672387482846287337558632562766977948449439874729640815374210806497372626571326332865515750482365065020517847567806123404868429995915033671864665015955839399239744937774220911184334677518567500095921120515099266567330798175130351213882589337002611195364120777161006264992000382054446901317655172082327349230480530121140922594186656337885583792131522243783910101772265455100262487786668336043974222815945314702154074898547235342427017068352646697457139709061946821152439452237905879126268278209081739785726973292970025221593898747611103377821150814949006710513996508493381358893644129396275593401286756898958936928875838211430296723693337173734351568687385818710522065729934536057393267560889966378246175244018874504947592634812036534350767711436750845603578986043726962708214571356689487328073967123818516036210524954990562066644377570240683867194462740494037048657641345506996017136327455797502915162242111006019475748172433166940703033081280789224311036896476868490971432124976803510486438353064494983037714652924148637729698458936611830496734331388683351013754588239936728587954846123650581077795743270864912924240509175207496932466056732476953178378498512932180171879908180550447498720446883212568114179386260752384090661195112015408905366113794734080851872306977246473287771891989241126549979277870656390844873762490638336197902845903495447734520189053295224788916275485471553049114080215143400626394066104072519974833326838112252319769758766295388155471563815629745906843107957623151506448360176267715728199327021006360973979836050190580576503436329962121947955570979830397969548160677829917965761638636969389586760276612937431238739571223019967534504567217337047554438098742925615333888544011484570698145405842705153964572381586717246081173714699998322900534463868231273930893573752735456621750171347062008015442779722251716275094773004073650068142535775458258335342975546398647179987867198185741666486666790859192590081613159647793182490139962184827874269226688792714666256772123691324157335276883739619124923785418581921941624045737798133746670078480705176919183526561017953515809341597034398380381383949661997416643793510291897449909653209136337156967992729654530518981503656940489156847801459467258645391069900396082891060198780012990525776003588756070744672921871967340239491293757096630139884668561210970123298002613174896533622974720087303319177781930884130939081487637890185691722238965283980513138871977886218666941203219501643318924085726986819867092053635028578785178155089372273771228651078717373975112537222409438391382512623257614344590697224108878212482650405919311021289515592624583915042740383291819796113040168529820305506425601888848729830340243472863509036283931106020516895890061647683061621320402936158749788155811767518725156135960077959440635523253949648353600078152504058987179837572618439649163371046220833978507981264697902534794197105078560684105014489283959687493377823354696397924514760515004070029715978434045129207657402583896864503120661702160490263352553362735815191937358793817862964811498067910513269642066680859503127972513522257056059361753329851538318616257614387841173465503004285868214140627049246719220720402334637136021190567333648901821168514499207706424587435982446795951627346162609102480800617985483088381926225992838180709622159232282250876241369390902598823213210129833484762714341605392809364595049730199857319500762933011433606791782149580707218366000003682332323533522292900073650716100339016066553020867133903494805639900598476074787933246426953251690059001893219721209685206835960962185170186051086429994192067674722814389038382333728209089855032241309974245725069845033179953235350078113352183702126247455807731364129994308660974369261435737840582223225641082667399025580413756436521105768330985614037380649955907581651291152808755973810075284346080948922773175413443592099239870851272915831110366867730700751398215465826898505388218817541494352640133969867868035613900718728455982016183063931457163254753837263879237743987583816713780173978834384854494900270727835167220244423300892858600121069883443332830116750953044073982815289482037424981475898743783518937434860658683849524591045830998174219985381351070716364968047721870914645250691832901769207197302019831116563304857835068791932515057157847800937331031539235735828563709953643591192599243705476180600546023428965365542184297566310616710625350378512325741100681427983741990457462266153978001929684273857497945501583348477754180457826975599266211656395795103956123335254258275857311595481640540357835543062928722498927373256786568625359694187639380701925590397681197049768061911067090957152601856239102459566823971717226884267047704677726641391056933413235204730910895607879883160010101473636049072543398732487451703205944424027746044711819472945047710541962177096329083832881558655206241513383691507990706606627540064495644525394430869820567205589631510842781689047319320600201677215298770561099647509612828101953689647004386006549611927775124951156359844808798265583284552450506589336935824057849528373811315983391946578238437525652922550857943446462514525137613912288854305420604904893455571700109141228942522562775056747869497408708322558662872376049885859871741521546479564260393708970662468348115533193811266583892899256169183861665186397794070671089675891827405276094248227281823546709993976987449142161557962288998202508317884621933803320957286002075258705849593051506065002533036495566040377597349066228610873086941148799864553733643130654084116716992321093262490422442293391724565802985724259641536333955561021924609479529692190470400639185680281502830657013411397242281317682860812080489936877417421370922493247368969022216278193652102179756948363689845202913955308394483029032700805167315182780132259946766385902058798960730073274564642857031291634513340739263296248385724153188992531643762319676834484560699122828082169989646252074424926711287532183161314195888299842689117707193461761559151602967749454181348655149688427569632120149870866805025181746590817263798794610323564860426368643870008864731655331994768083302590882095104953437925999043719545832902536915049325841564948664056491178027040762036952366968056881792098499091089641631944367743034993432131719962113719764943242149804452716990635326067062484693579661868292988722888750266331939004500282263286309376218923315906040173530891678809161824232309128689310176187513183409049174551846372344414969186103628693026402508138415786505139612190182384929237034684724101211423761907424059714403167646160629061712871973743902227250940873013895188675796404178395532388895771156248292752558974576446573537433018671930039912802009481505044887342332017340904216959338767076363874304575502514081180360491123123725967903007940705156966883067245011372266974253140742094745600826508247327876793275458458187227203280862427423905686404825720842760041176177252429041670855946845349721534089474966058792052120834204178844211801794660583769806169726605953165388652220068129278056799907415718455692266298080048894467550837966508958643636387508120308039415609142666984038641431696258237753147170923955744055723761828396448331341577290188132992282839793091740681535622202624374326665936718528557699948779177554562750883332485366831168811855861368468417541483224929335516953438924152703419761056189403224921223106718414015504125167337809063008973117222795772304103543688700116050891701977299548217578979254174169065715245251183554792559578534987110764545770975201994902881407158190501658325782410778194494695046162963497024527965089421054780443292878537318331418199455789168482602053286327332806916895508958844680008838953304775401715753662408777568343995537724491861685325846951009960633844617223374596815360024628066687866943812404077481351163422268738616691246733548836328760479127264499151766573163552480143407839363575086655882092708853658645221286151292547589361697031274188942075931522942660021417012840281736349935607391373195170450310681188484986007516559139698106653946449412217232799913544536002675379452694735250294518038999316208390474045970454650319686713613065729275427150665634268323889162344173954709517182869179692259424844500811581066475357227315728033268331061102757421279507008714571978948506614745402011801169847372172613126442188676491644118538668442882397927001146286669766065108247226501048870444026700777121289039360367662607551175836960903609691549976827466188564892656311906503114867171589943514657327753451207120828312370370992066950347818859981901770694148664139963254556450594460210133239625065516826806384553507797961533366630396342276298085495501802884323145811930512076922358152182804974774626729851847344192683795256236643354231354667621128567995950613466875772330254561207985849842574231444381149353277464735863325549962094742836997321274273377909219984538985820920424370861770347494006302241897443044550932721921105040911001415079391208067325044078639150778249485030427460065793505720646202577704895976119033761780774939190980362235927677898203084267464703686802084035782047933290968830014725323680343014086165708412132684911654111458474828133045383243473341426791462169219961758189033802160055204432689562877364887860747328705887669219867892980518513693660027046137624886704811167587407233363450736932337014293440754575150721526893083788632496422090631417423719391695966864624470729870459221108337490990096221662410267461637175530117107608893132690000409580830358271530843995971789213161207782079471049297427443799592473665532560185923700491637111451118052971803648541049482004847714674661706087809727473951184898985837814703754722254686315897587765165385810034848025356481233510740109416362571835449322123661982237115927635091644953756896114494168428692966529019679874223155249118666067212115445489839044452971548510992073466526237603406618658630466800213477700867871574386728888691280854992634751548079802603455539726912944820960685985797329763544413832463940671173258134484271003447371207241829596208227629262079827960909362056628086556211598202804282782598652682469158228617998177329327400665332173338372822755355616894406312504686155355460234049556632982582041697304273737268091232216066059965691600734967458848044287746778366078531218403367356915859386190837545198266273535288951854371272024568799479716811524411727279174133085136466557665682086039618758815434717673563374367081907552245234007283514567262509484275123075527939758065794341534641697750989306496310329998147596395442560647659734717977559565680020121506943663211347770959128372835404815735477739612819828357758901003197162257848314958942140992649428783159772099194881504518643155637225903798424112340455666591786114061405607722645195875911880885577552001369045697869175019218436755636625554071493299691822286385769219960894638639537631310260335825995429468526359589234867540557352861245804617457092390131935268462257033589501645058309400136737923450341481855806827405279412633695352592062747886083431323728968771659042232252256368502056431077621703981855488159411124851701554989589935063676626586001433305511340552505563497731938639336971484979825391538341071361357670910532928933484070618627846227984907012010624948113439387210413576516171233655200638603524948000796836974511939237789922674330266923528244676471269851935537992904023824924445602981761781451691550108820033735798170176833001910263218693261064419158757072833325571727577022295300406240492199017575333089318179089342169038191570516974243341526081034177032096848180694526333886259894334743639584966664862729656222219833953358618131301515476561009018644114046778422669673201638634201357884546538155523000545646134867578404606954405268519347441265040662998007226198414355715741369251865808713553720375015690171695065416795679849147126531409823486981096642749369743484921504843951213040738533986694715429876331933763200226655343865507385154442311406276310006958094626278317458806521705621186540298008788207593011095950031703735842097410157581670029077097668995469017457734872845897479028232104087559300839051311199098379109335365558911901643765116007241782373093463306051143139478511351216527601533248485299594537936821799857055690592572868965446128113323491849987554930422985375246752771085231866180857647922240613190308100850184256771673408474583413636672661311218445760033964082860013100950818748257036345029369076242009914539150405131377457252796712109264267883783538730379191716367609427934591637135760198481422923326019503926516205308462653519119733086376780132550227737497389396829511555681987248289541996145648072841636793005999912670397392450408698010400311197549641299882319838540493827952117000899701060691389804519575095803103842603539890472533083466766591421676839220072281602574239600744204692460976650343415004386498325972174670076113349947381947854780797760726054545018624537788455592037300312755374142214135187611050673449272304445501838583906476011842627058488952942867347744986398147219392333364211288550900135294323265511712681668211916538828192463653771690260635423880669563957812113261318481392590925889202759621509664050801836564387520687846595728889774080409561426368656613217030526954786035864639654308048440765968771557634721255638928077973867297298883249285928133455734544933854821094194193222278623355879648264791899548490567872492537164202347667582302240959749654049385070913760233782233514295014265530343692547593942240870789261778892588085704303899453623281063723320185689710074857887031548385326112256384115215974166647605613330325932925390429528379235332588896657538806134865770176313385308911015162169288773789254703363430592470126995304602181274855115488072534833477524388952163950129781185181105232981001271878834060179657387562790655599867990237568705452116268507717103502451062861647039068803665946625484772933967347952731300804242857511789746451586768772900156431863036719192513224200544302013186324342185704792553375878192746734426350966626714551014860809196794309050496914072292290225930013350050323095886047870209728432581343046621353866322656793336890512053026938843706967886398877897812043025912454387108819539587566035406267113212882682775892874476767830873842192902472581757436055895825232473246904934776212465048263018582267862270901596430726345797555880203227597814458406592041849364431141095950561496598311514097838556364007952914976872773849571178915896146357764476197301093228590325767088998312562415764517397725780641400813071891400532339866921368598140433501327223602015739309073940090108341933447264859283372627019926946611890547173011832502997009344349273558459768501489625537515385630811837664709680781531958111244061189381529745287729660880634171468101308508362375056927223920344721199368296777670738184035760851348204182930737629607318553780766615438631147535555783852192772573650080578686772792229402044044373900571116019093551356160644146888154582023259434337071258789262857123478797314462093266619301214314437914585910174972791172009313116662756771328615657038918718553712121243719304448257336203459977778320892317284641453297619640998889560558052886511632943247434746821664607235193597245891425350254362060152562073750235326928637782033964050226443596931350364578169601766418465337340695148003933150110369503708407183820163626178123477302067268244815241109562713082602545435620278087384536956673845442092636765207247507904180021298338264706140297754158636890325377616800625418474931818635859583779116711553258162210800602642014332383562257927659344458228244640849550558548506033648105902209315733176534515918586989362782785862927948620906461288498420717948788615738475178356502639405110094185350771001671147504539532885281325084520699334423170437583053744015536563557994236959924904473403549855932702595841205755818787632875746305489074898578383462962631546335042635772905800779167676397287394427568828728586647885934573021303060705612082690532322636052485208078675141403994939705770940463730866619878855961511870529301056968429828684654901456345506364279591098608520890420302322184980779362823164105373022496381012932959215845076741597086725414388057496615513241151705285664352895265909913750526619898820928617027020028339727941563866941506694100426901462426180611903427866210222518292747957518719199343832808919192423058923095814768824976407340992112270651167968832795262866529575184661723019191327315827526258418671058780169498789723404066300742820835251088393107124569999982835673569219319764668294575395145782483624825240925519556789028022059295052712706816711270385728488225563105408603972053188080369093715555796677853670161910055377013301932613804435192131487505595510638038777087590816636281271765116439029028507370437978163401236599305833538827983668892713595825883779790282748897119983221269976057580190269507610591433688594731217111369035987324845104305306040947568999138315895000985188723164367655455567043520423968087184669048628712059046310213007410355445024009220591919891745045183916167393001957971443573914935683337768110162674786816161869720189838075310816478174233104349119707952683458528123061946917205927166047512848115506344432514136724411139131966362180778538896641653441780464968858929746974701113624781228886607109749738135430211242018357111505971334062579606706016224147652346590295536574050529823779083168525678616320510341776111379195582621236473323670982193198996883225117623998593567222683832769095914492934398073953699342226046540079410239896679800404187622565706359043254188586257442239126284114484102618334933518088221135398662821573508707623957345525744422886822675243476104431452115084102551206133262120741993250425024552132099295715388753225858453986585148375596012120990389839829564799684938124750828510850396918998563316074418811590262980161014955820930564536913985180195571254192487851148151170971550366028569417726694933538513269577828427766785691409318693237846169709525672970780338906145584125537370803843101261948668145212435165794335588877275188314131872950439759419524946210565797610314633412121280563352621248012830952919004582796430018527666704827727911999362680421555041321781050615151915607534091363356162307871595402381827340706380201694723690764341241033631549044879336320132829872262686681874633790342826803063290280902239200881179353379942443873332028999611459277678922764184775388947180987375855681705511281051364060475415285771708436500205504372189034345356594842677613720801136039373116376054987173231109173443224934074497702597033834988493107677041012191630191289630461820139931881557002832572723965687318649356367986079315442422664281518875273193167045501517373930964140786737267117565445690931361410195288994974762867415737551817671583163930092548599676904244014758756445710086278628832407676407721131305841479293733935885946837197222996320386377970144877577726542785016359130307856785947068569497888324285180419160717809511772333677604622161733062894404086011185261234396950233634029827443235347950718057792493350002622193955658723014807184733731085825437359271966513345986915445010246989994861381831041582911449758258514657940788864259333492363568647469820531834514865297347231758066639595463741165032471001682441815109309027183151278105296810935358755564037734165676681699651382454807356587501355553508230553604058323546074162040346990472105853547305214552856570457449251820299664251661502591773612201493106359781421991678543164298235066587328233317897555365204059743845447589475120695846459700778759041642243085856822455787974354997916089904162236175134366220144296043791330306457041219490636912368303765709849192446373664967232684693843438510732809927315067750214982784488134124290545896286069784682644653846946605223022868932293692708473972152314216829198127786355525676067015269881297614078769034896157584055719896404957562415613638647602908145833730248155230421014553975857710538276877356487284964883045656501647425269951088201506118647153861134964775914908000619032700725266978398497142704511507248910118838011299929917083436370170827148099240382351254919455264334377074615846018270935452656632053280983218546135596199891990430809690535936744286958183163403552992671527445373867540651900104298534107913417340193967589851762390064895151938186069280814575487507128544749099795594789284934528106533256018895361404781341861686763237201288442408819219404758027542491916254498686742107688885701336122742638438697203501071106032778978518069185853594547666235571555986204099308068385118352590025876729862362235460125160331761536347985487806436942131648028692540156509030183166282069456057327838154414545817901803718177914921521861357930762247128472814729334772130512987066424970166930182784226162784465122174882280588350324227068067426836056604689965664815868044039525172241304502516132456997029029669937479249265281479968849194762787273104808566829743410424999166198250898356227497479794171523422556783964936207443360460012202156839071241729086331640221010146414354519465826419817402291076228509248696672444185787856136658270474673041781984690699215497364261568721786484057893407744047604336630775821822005005352625207709808329148313472784926479859289401724714309587355089348174294547365315736190512140739949811000682189750003593675732194264270744921008823663915279826181665817523938290430627786254274878845670907207308616076358966306156762872080416235919520297320296538900828260652517130200402408954399505407794035154118039191886128335074568256897269477986189423697604680500513214148990843249717012574946997662136540092205863113723350819642578512577338397692124090447167853842493506381504224691002316965979211037479563096239278861836329997821229349296706725361122451429571578892210039799124564518692245161806588588047831996755754397125970029665661790863765284879341334574022934003252651876057378265219423663182763462259673495150640176980037854395120735178084913229245671071104731990937528302453246002649499654404527522443357097966414442967126952462462744434778131926819397448429615338089184730293302558122932488029019096654124826364970955651741948263492766522554828805672539771828555752349637491364430069184371277777860283825518462375041983687606214024733505252041666343070316687818120078309602765544419357291736100280319526413246977131827430107553636924280951829253059546377135416494873991274871715310990684038868383357079346519643967595516990607297006036099947677556248087511098221789517906570094146739407541668078258509482055863931826904332429516813086671612146361274990220908626788740576744742373935295451311417591795006046126228116703785144229503653461087834911964800183922260950631439626176568098637504873638832023649555840288979859418600509184171357240907611471098610488465280174150909544396260723522794623038400934482802228974635734846698221586080867596788242615539618641561494162279875447844272811350075155922969619064498815094975388878641676451810527677572940051813954367754722956503463737183849876516360306825458847227049011850833463300294534528324219736014799794110458262196784559774442587541698061000063279573448177813169796504203438064995872392030619479141026429776480795962826876672908229734745976579444018615227859809487627709114676369504873921326615880066653192786156871901522493527917936275628759004999920321185446723091392343340065468409579797311362913573013916874136706257154800417679761742458118826212871118028516775741656008790237383224912637083875479127676603295125760841877985071871214817778322933964470921819248527702500965975989851760911604679456164205708669600052082372746234373597992524533814801660231414566030300824559494301862986067524862593872255012789167048147519487913856405901390368790166750808062746811488827626661779330139892504931054911064333251916511317674683986487031485247346395489986901566068433867649456477797138809966566671742067921947122420937754215333552207737033694002807413315908116257349013843130182511223714239345287044774532703118972705871171374996459071163222989454912423285372545562303890150336105296155415064716342013259217583390927511440164378633509682030282997576480827204234612833422050707894657686139846183010490140137991190564651400090081867718309013837762238580885049209347877349558107563538643042398693151696168014645749775567776024236520698322449064615944275048346425018242297869713719264056260241088869369263103077130213685226075818171162181493408842476083081330319275948234703999108506074387166859053944043095026609297716811578444455722998348367333249352662045580004309937745737623673173500904742239787691605296754888619209247382957287790644173161592813100170147160263729133622318945508290044796482199580379693465246801739750859481083941777801041837370434490992183767859824367953451953367782042465894434089309676679354987054984595648409824865150471233435640141842696123868035172533737348142801497544773488533332373873472769310534920327753993975385990202838239736330220015469914077942011748054824775222643488898322216093544690848165572545447318041156622386378134193533963789817928796342680989562694448191910886775264059661386869473277193068033747266436780308596411234355135094219314188209798562110538407981942251667327371869974929555140296769494408911427207046180706688911323743498878781385287382174467825941520053477553762329509119678890100659715891058318317082249321563822900635785957062015509101680484858022229602150609164994560986526856524839779977002374262179842932682269381377640892035106857346235670817854265329112242038664607164749841594350052630775121577893700324809377116144477585150691827509150166069212720981698095811223095021916936121936256786914663982802333199812723603562284043332609513295060026655620788744138198363441232972053049051376572917229545936291822864235917689727859459294861892884969871717566958038285522201175407203773057813096829878915959956911319216506191474212105204241185322514338935986242934370047138686813155834416326614238551151585111464993747434128098865002442371739363111504830271434483703923700792597684633474094461187294064817943493366481294041025387305170475737080512694585734264662454644253812273946427838476254120034117234330243575444322901239799126472856758579219991140471487794990088347112790973629137749914143073683501454642996824736380562816218201648681373763723029548989295586730344180370259821821758511674656940325626679908276524263065226594606367415937252011095958171479019322501833399876663305434319465499381159481599421437914568501130548466364474040376448360451582868162222121986337972526684679838240818349112640078273494965865554411337845101432201896771688732514364979273105497858004819481747346639567555552248813662352746124210955309384305004835988636500121092069403150841886161405031509737474265793707485471664394111573840048124789248999803014720202075583863431785493975423866074831750171509917008246524226591730238093715634537809687142085731497656009594792537861747055716455376144402412740818160367023608881598627157285892229417336393388312571448872456581640215886392416794120678219413537166905812694872379868456533619098998479225731692773421509787100068273356548550235415722746507343754265749553272535050575509411765930680731603058737572838127185793332504311412534165434213602046823343390711905569061975298213706051635360050989272264607884199204844411761677674469003939115750583816491684556733456900936491435265202416161370074337764993189428798934575945307208493243934979484782659729143042263945317807290249190765310005770652174346120240394912805254539422954911697829829538333602052876949287929358440297428723318876680093837893212520811565653707568494995256554451285923691968866876882814716850121172764006949592146071161276251931119774169712719084076901265575112638973903495512028323026518513020803770605792170071857211607680066258826998151147804741570264190039163811735615296298770174023493286709155948088925075321212369760425874308174668962572855805746256353513818966462199900526974560273294956456226717065023358657922659006989829258878268187286630759858682809809205002167139698958315206160939479853196697612430178043434906634709406615161990206289545648528051974166253947014495947025529712441179565154948926298667047527497336502406518984474638517352725663046087581739609791029603194214505967737710848742007231924106011991887740592810571773711507259761915297266396173162313863449650558552893511578673014005815075515772566261983824080751249118453118004037039462740932961270726956605113036471679879153770990038910311160768687271900340824085761321085532883110617054202355085009853443967901269207695351145891852924972050837583831443669311840988074964811259269584260292587382403394097598737937345774402289555381440063099277340577413816768258534020687471505099576495384468912013457470974204634802443927629830571356854322421133197017400352089832933669941576607958142516096342728299790975723073693070449965080579582067753273093092450333130716967928615965159381340719900899920450255826565159374314896006957409046629125937842091721418956008741684396019243702029313837030659218886731087703968948876127307922056895259761262286922315151470809474769287087774947456727375192171650149699068146634435126062002714588713337516175063264341655484661537872289945862551278359564232305619455380296774111142419334726694420173079364373939295128470527401638359068611661792694320528792654405504030773900640936625481758947789640432630364970775450838924100469699164824458867513966452912676928904818338911428058637086037912307905972771876614820339545778593709948869583704265621722740792177501727235168841492683784387806329601431447011682444381226596627382509864794553615169346950020519042762183245569233646180324021231037926800407065340595264333793177842278947868466999005324841338160816420722799015419186861892241682021995372724931362807437230150125540272909868821115799564542697950559810017295421823866909858783730278263198432378000269429156594123336259755058528990257960900614919196410561916395943007992196597046952519518179707635919788185868940855706164090262072187047197925606950713650666029348744946264595150707016321164186893414635192646393517940349376874319654808927641247500861559612319780640047651817762385535960305392994392687871191820825922080816883346254886335166832251181483229674723511315262103112783100358386468841259224055194398275000358564205315345478533844243476891114794817948641880567530976143570230631138347780976282600896638821307244931729791867912935079497103095074986174164962724728651989245472662697808836086511862009685886327623497883283523976294969462427501353139090547953013475611339952426510814195572744899243264626346060329084398501978855537789769025803596880090924167838586177326149899534949499832909989088103937322046696130930960980562469567270614816500508616292115930732736774859813267430827403958741422570282939333879231212229736588835444445169757556695392589627255358819523440067065815191354782994861704042819637746153467214942882596492807991373730173566685165284807426061002039858722054650993613161123475939423565556520759467184822033340671684091214584448214362671226928366714465915073467142576621774582759159134350779208416368452673094467907789171481363065643056555910485007747791540624544744870873995275184861623145995055593360876386302653454490775827710228005099780085233204888397518152949962584912244884633985664813084253137153912760273522960221081645328467885194455764143464385467656729931699277009911490790203371745437328831035253719705040138533053510515359594724622011817744370179742952208556134426771518677492036236101951517711484109072999103247912116400200661585791341415872036456205752508315410639995935004323677432273109038172236729135210768838152157253256670211148971242111696095469583574024016820350494426930922688398021013126889252565344264089274085230656911377770281422364550307432072118528110071398269975924501611215765988968614828845987624545365618104173021957122527739305550095131152272453092646653393737372657436624955791354367526800040836676784461979035815820817060557626464125112329473734688601260922128513086799924260822780091410699175355056087679257009212420132801351088815634147276967648100425582510004631747128021749933964775286236806045240239032856434424210443100037674520632603152973011053410287706809082603869752533262165227828927659791823682179595061090929858731846965868288074581928312375940800788515918894926596796512949500153227138740921982435903560757818860549632524345398790038515081099030723316382810651654923426584318665328159818702240474047169922238014203428869349492708737678405725505908553825014239485739994206278392310167855195442683266019955167515570545055591097472559858352315266007676626585854857494043914036503102592922203617703929632073376116658454308701512490247362716514501987292802053702096586828533553627443220037392667756091227020716504178595957884573557570654882266749732056623069423228678977728168297177879959664522938389022453186432954711594305447792471133358679660212781480008203361054458992248590531276771299515505244155596784418436563554730139496509253122081378894570047253818081175679218818730780672484747963374097382332590568007599674839890164254925981619426520673462834747881405215557299030699442964109397689697839049501289832094649625560510131735844161259713593736561044105722223059644327779918333261208698953280949929662554879191845561306641097154729256012174237779065273567226245217652934526900184670914455815729477624782873743618715044013781287933008275929380172057734417745979640302514281364936028363800310997658008405204842764083154638688659782668658904819966343956483286412362009030091242766070318880941393581880808997270089074137897497004903502799325153005769147754447811527195055082078412568076266490960807084873945907862544463675525728507633591930322259881968746005116271651715559650969498258957650375098886133856456468263288495402384954802877040081264870326620441562569915313377647393851329566345098509543119418225634924141826067684838094357186352887075761266161374829753919309259407206234237382780958890574492536939259169202341898108897858001284755860415810578513813420423777650685668912028875792201460493651886641748623851194539135688704974710694516678435077841408003040439557936780386017576974645135370432064209290033923152103778127761940968011648174676414765072951049611296084190135861723973329331283387733171148790812517249696108007754530094257737562053698238339884717782286599494510659546374166966120219031492037211643648042894903941692446634225504555975659094227580204059323976788584380036483970813293659626405364309132003681504071301862712311195066026009523107093114262131039708276027334746090995700692935204979776178860520776640773998868149416169705356497649215442336765018364216339228854495028013993899875066071384227768893422988252764661993502833604480956239164431629060557870668913611540202702488654057347098550241886848883787796674892246348878198393479911512843632211644199848506490792510916910194065338529150816713008804577330099465171782707910609782978104574106838932108436789025341243206905183421298946731451959868783634656603528236129482228093509262569720454504822680357606352499758537606315454201199559163841352710778959968608869922605602710909521647205202778234089196415908233284861280539888962740377609727260130119016600522263650975068756720650124024505328992098975765943941395702242812748717120327388110262665516196257709019117244117947780810884601293477883566970472153531574834564046267480766375481431883024471940497901877480492434254367093414451580927380851809473906829403918733912097069114276763023524095201210943878843954544728544268961424941380314336997331575411675265168354946612669647096796839753018268543656700857929202491554604746258717421514282629648224752467583527523857722444939679724076587128386933083113829534659864595527097708932106719856323841292474721744278275870267451881904516467597200120044876824779036659867671598139269108551602600664227304618680152271124851177681119921577552280900226451922454529317495393053252606532432447137809039960841838692730757110849186800575668735742342405136238605979884352009609013395348017295158208232639773374058393682684848003934937199270185434815489964547155001055960700736144181200132114024734816720168839073625721771245932264850324489217309487581285132512127391131098578683276545781236483158008937884249764556102099457537954936541435072895836499240977382649766855531052736351278873860103502726400522614839388375947593020622944028888544076805306260132913709566941109560706160703968979353662159848082263399988450520906853907912461399501281338907691695737471063042771904644541747058624304258356324074110497199463173164275447424120695821094959670835699112252559711288990973603526925808298743254301673840449188279910071559163120781181207235551015226282258447217894117670954119749480224835795953767255410056838928402319315711651682560541807202096153780074332367863250443344232034475638182203079524490423650542762200182500469184434774437719954316594501881710472507683744778826022147509094793595241726335078719448637195080438464663100871453759000733569252002063998455307050911052189805090016900756693353108930826285447046745595388934745233657971438307134551115564422658595140684809631431104261661969027062189099138905972913393737947370848984805605036514657340586970444074930488869815917451454805865011404179162590507123280521745301448966243591736961284881120204507870355034444425694142739564351332661337187683426475232508769004536337829671955568084529156004864947144777752760571563681535080675855458734143957342301368897963367316867842478035146107361506327214151069917006585878162370385300861831151484746074149885877293437987197877378405572245983323179057336507287973485093925573333589767835684354164444888299632989007353129546371288536444983166203958472539776198298932180194482766510256826327534248327511194444651640857646313799587648209366399960278239595670980874774861633088395073627234197531604847442000676417022937656895605191665168926624514058813986267455102524305573297215806237585187719690366634481804810619858505813109445910611493524840694225087020912095292747346643873438801518895734302741855846163475206578136494585773747625519515100204217378481518256786243316475577428390257304659729348746797780969584482361190577569734274043942226026198297713192615547250176293845108049484864409199300838361056634042483929943667999150857289577292390383314194573702849079637608172959403410242761965974409885124920509656599997084652973684738789584369476994718292445941072070010555098862695623069109585223976394681101591419040171997760710327071449262050671142821597574789687311278825319554453104118692297485223454881183022151988744846894239504835410437844691227606611715023267003778244757000925781684024963792578271020022576179595048408176856684889579464840130219536291272120784379501899453707029597884739115104356755278691011530620384074715480027414794316983517564761352185359953810867386225850948224912311437410298039319751891254356777935970755269015831113848451423055726616997731572701880544740828119728110257467311579383015004480070855784555810375395876326313835449507974590362572441369559515993683995460573988557949771009571421038130191906287569854294219751614643228004530117693771884236426899607400409989126252664214405262772454232304939095738208112401257699262401433027357672488347382383292959889698728551054145076582508182786008596032552965192378637286914549380976290349869412696411445991311066306426759210005540445675595353819872427814550521156029754051066231592074613619673256867437008618674635823796261682374967134486731539064106957055359237024683139171512928464375137445724787111771662657657976950768548933845297948777435203653846610147376460050857389753831119873134232367168695554121961511144933868799727379504451295588681460506894575691214633508338367246158349383620671402018396395824468853118426636582456382108587624492667118268741846519284064045765304756644445656012068362562628387226829718141920633666304836751803614707528903420506268886801495344658239199076360671763564773756461501851751672536984897005593378017896460726873336923288976867302810912975088470625414531215895140922665612411606935580666609718042908364281131007656799520333330470761351394665133288366047980419665192649042685143557132723256568925529643233644405026288641599044720744387241641722968921861483349476681947859222014478712635697885114454301370654260690341858613606873118567577350846679510428463355507671668671256489164912462791177211463752148126909065347979810199143962525062251315254830078655794230897893742787288396009409937773391905115470559623391293665563442804792597769964128949061213039831467518064898215829514849474233086646832239688312781247495902024180123668764170228088237987516482603257391300204895806446305310423571650477849489985021337175531535969361904198290207960110682295488023011536090347847688283373566446871048769154246248926480338228478625864181242959693367928485180012919218286932184681248292070262449647682319102486507104115074038845739632246260554488540704887292773934744448225835414080533133070193496706742568472850861011504114772140018534987615111763351806731569113590757866898686761620001981711578448795236537586953505760630474848113775535021335638365053438288666254876953523807641282311474320858894068769605154217055922849252485545496125794852011334090939499610944715378006050213983539020832346499161076458628512835541515811006525608002745643321022431845776628956060387578258238873425508125571237391668892889324926060184976995563010972120998868824691495828376874191560947367249581295976224065464786839287318685131795358711772767149886881468968380664749281602237523853014498448722666372117260350361265674410351704052740016531934051980145261599610843484661771904955369679651407395377943275333086849475699229784142761974790822768460623482330023309843644805797520195592132865677069634442833703064836226763357097175737890754572381016347130648216524819124073947729295861333039799664734933785237377366872591288142145656208802998502109226630173144325550314724575221224234594728681555128352765868737477228908647047226411917212550727981587706230689162805586795512992434546393556555771890577375067045118071319015640618222663098271092533889815144887161632708518752107939210011275949954425500785565084103669796444727058316613482103067491527917776255579793528802192982195512970183586289557567539106435248101258226905497589180196691412468174728414966746569341590705560893037493946840163613344233165298646547450328705291147264650693668443956017858067584062129287287732748026423396026423009052575221879816306323054468453544150387489384892638890431266948336398712193424728367418143528150029242860721696815293695744141387348262680506630361132645414068650546830092778721088139547613595414002450911687035422829985509654963478020337252005709958277035151438590681789649829563703518149098492964897493891749919666694151877336828416105145438914938371473571188000164861927160764908994858823750996176752519215947183086135888670319055421391824764274936906678794334214957083254970675895799816121230219093944026049496011997610649828475257110374205745306635153811814337498602450169792879071261620757094657997646879288883582638131278047813929071112127463807807052807657371728051568470599178123234094465713642365574709986763578817000828717549672305153998920065028779312521417868004430727515820807199864886410178680104471149041524683372761407931235990816625990313878475955699546991450036128246537864687186528377041421248929597324254190967198848555608171015265507500463048493258074122488183587329034996233484312426431405228481931788021627544095062977790944388352991527483981770457315259466757774434277956604928866865039443847163796170295078029560660057113057232195985892049263032201101291243269952920133553878878136155171302632231205472595192183836254880688203527091056382425324435740440707277259604528871141950971255232524774687221081964496314830732005623388800664036679512110563923518088796056622125881268432753002294923473244142994503238622534007360592013480513833473712112949219518109542565359824714971711200290129948998050481473491169251302300578975354978804409699302737120930179138981195097724287934756767390181967997049879458902196126590674933056276801136021936940780453229116482213520211225300566935434167526589473059253747897278239126438044104802805102922867029221821790704582816867880727570750504172895674678373448081081506710683118862470434595390911829460883062199866906227124467549685056627983913322718721020833984313279519575293007569149038768262643039448727534864103670028931010167822040069481380984597118809541600330510399728913349106879950077691360369997367814359176090826476495044398164434059264689976334113060373052524990895929688809537377483150948118155166753797657794763964036777272887545062396693558118457578774419396048436265989365342243563040369735891429465513351148031418238359358835716002043526918337197042879456812913492770058054118617283947929142097107884487988669987030671828872248174857804100592882240159584637382415025782935497734171620183974501946190202690906446628127449611413238605856584960514017922213018742668339905064562501996205132435822895123332715346085418196131444869535648273040013250156206982531936212023575267495684311732370328227933466336645126725965159424016015687253751121237903233124699957227934691373995955832539745554439735200602636942521006199273707184010216772475407245938287380965939590795998192018448690185587080105481342674895518890894041161054174035831457950794148260026533289174304647911470939330471429621999826778539498340438813325073416422280644676907796771922435939220011688929460957186391275989545545563951575759007064023334214576883058303904676389759069668714912206801775026277989247459375784536265274067577585486229811872045004588740581471751197413568377240586568068026068262064308100976954200501508344157695038654104980322569461835493507531107537766170183206437954522634364652896459290811539389457704462295292609859801237823157591790368840258005113365172370480863572114138710984829518857641473907163653883279198446741221335602029816085723154694476020786532160804313517452153168207765503185943370142375862413536595003033939491357328481988300233726316253438484802822788570226425436639557893754836281410444279899352528454248278240513008268252635486089442120905543403584314213415997484706452116891925696146468366305098016299396981200774907279219493705370279562182164485794008049699068401045611641467904763940656419006081323260566942169626919298852220986372601951293186210642555605268147478583416498008220118200972992796835530247503192151241468697196976881490254481224554710098109379159538114775678815541051341577338995387742217579383295422548888629707513922069965529667028899784183946977671230622169191774311956186819850659717785893348454292363494235925557955297740912044246543856840400034809873980355583959343499126031860196032492722795685361616880051123051245130443684364710302770870856675478999442952894571130342466319138666291109116276632996211151459163058976710107412255344796915559540775270734595507492480380163229140360128250740511515949697836624364147163300386814720859450840198051516154702757884257893226861401626653822272493320600459126974937758353330273754153348992596414705972861262016238899025617478748817155732633932844630939259449395924415327889754680640880587449904961068091087986019515226331537026851570018731805507456798771397354074559511994163219150254989395614672721630847162171686382391730874511438103690564140333261846643511183730450543635094908998036157970092487086141298490608053666524067343154705112923298193606061307275492195843529001451716508683851444208705578477887084835865309353515913434465717805291954901667191174529584187698751206533388120818994392103714598098924035987305207160896571520334809483504595061755768479697871123005901188381630040281364059729008990546023187384142676450747164020719478226171587660254952575814293091120738118836058126454847254328253656577605686455846187528500055956535879717119812759064128625573876452770432421474960145847597281836942004686958256287774683814997387651855875205986622713538323908432108610264508000101404113606129437493092712846568969920610388372149850017744413766104339192000611627482330354061570622891151519014676895127188020585911749165960397936760259459273130318604982744323245802669765631359735790526807094516406538383646844458216815769313132824736778999632624998196319720269012286755715871765251765735446361275902539583616376223123312541412311749059374185072497779102644676217194288152331217788737419572043708473901513263991692428836607829363954831100851524756235349599302746881094190799720863633247767464367166275594269139925870701577325117399624594279988535692579688886828049342934851215679406074880847725077434388072583173618492766287458063332066347900058109079393676973256574228218767994857878315311239085598024600245733287390954160678553415098662915668212813754784977052400012456986835380913084105264075015154135005377160223435249850994515738650620332369268105801701631333313988094079585966893757655745908947883566158216021082872261262620978605913519767398356622583943562031735792611421725027125158706116329651456515831057232621429659435119706388227807910707762240622921239416099283703309722766942403875293937587840734107277358266221839205049600596869349624734420130819256985698306893888135279820402367983913405064961253395083340800176551161304331610526983822661011960049268047357713044133561913300111196230966324362854902300395541323532020751503407011468487964516476695832408646954579042487114072071732088722568289112125281422037092738553518568073292339811375127122798947610842614496043032531198336769129378626492360653302319460908005081719171287953064367847199864870702979093261586115966818850200872830637008436513084661381279845684761290282061931919268193059940931899673501734313593387487307830267245514042425634635306217330919496314932198229899075433008460339270679481408300807586780753118607782954340637641083568296948066606257617256968431097703397155116076793457712954559964574071448736835813715184575062702611658455454144521452611074456770872028967550627601790002557996738265582594476735327450126853509317366581106957080616737966307439163320124427248962358465025789563368817811268447967944066238954496790376824953180447790232178330189245139896415452500784417179519100346070071713278644968604441512277627902232845708847931884670141594173326954237734592145391372406345359569251950443584276036000858600570432862868182515874517059750869646564822038751321684467930393198570936523924828460107722487848111357826660675821806325965560193094972901604311980777834872122809689571242677722351230100173747243761434500044688948601118963720212494532627309966726651721846533432675381027481592071664330632945916721556236644455655257148387562158032096818201669022481333650488165267039782271961287885669677596329527240991980638510996602359143075205643430783111312840701623796708101996086152953484315901084456500721664738642191717532551680921750748259399104913987994882650524141503837135009053429566930391319612467141203471494821896766774463602959821504978366160398730237258952039640623019050547354259331570888785172789047691389228680628426478763940477042571791066516497928470021144519976487409763826258178116315439455367863328530951150136510625705499999679931755274698426575558751612652095902885984381087345907858575640000378739443413741126703175194042558541062260119119783633613093591918161909148925992540660493885952286632497631648880406159512132711629407848593083389406181907797667530414480670908064881780188529894310700207927798434540385317160169901595608957757339387266318337076719694553942989626935951613716655037239768071172560207429865427558061653405055730204687950277159635948381060388223561349770145059092174931974347726956093096804113846234517858235062977386537585428818223230934430290096191646695472582621262006198538111147186401598037613210766982272880026347594336689887530497708152202093368543752654255720932626044699845772967823941172569363701307977029179929694437521744186073003500835128440876479673509656961328925933887527416448801408085682751994168026750588654403473803227280116868588407557281915732482308639717609750384437059679759831258010055524742285841596176642302910327272690997717241399625359791063883213484121795047518001712504281404560614550438354392636245982097468773202095875465243139464791259524438985823848093048672970641151464693381929221532586998371776823491374660794420240562068167115418302544260632736776375482957056056397761513577007101579933512115145905806674992965360334379737203597251123013489486269040914573350710359562492671276263468718184307035118730716543106197379584187924910488590721119695634437101675525290026636616813729379049292069988712253713460490585287470287246230507761432260673150112002016014498190779256396955520786428411124467776885045739479793472531111793645590088424852539185393029218146887585889753127756360413392066672260102461040872691830436618290134500725908866180698805984609610685011563783983129534843651205568210656888140074248436492474023336791010492937743521128318985032811086574190558311296490713652726500874750441479576344073082799743741456581603350265853688855973967764339685540992006433682980567746938093737220021266151558766345806827455047460449612233025835595979494926908926355785873247953767779586565331734293169441469459478528828507635846032561747989958902740556673809077564017900377514816334368595637629460313793032278725370580565210494112844327770974636634725315215221194199984342741399765662145279938283596213796720469824588291335971993419937039704261919519304777427560103664571251737318691347962576823983981558310972133358706116481925666617797986213586612032348967182022000912552102738307467571376770069997463167867799962368269964427970004214595656371850003584504164963374362473759635874850069908564419918615065530913477410454524278681554901942645652140553976115157758820725440711540036318701005901356966020649945160489403760749060398760585047823045363260601605797702945426559915396950970616308287752132232366183569436714774185626823341073237105959670298799589161571013084364775472763374643986135179597559851558847605946280919536805398387392245260969468353255615192632696798780459168950797859255068458784542638223535943267896329301108517541758737925428121351817679889585686520415692263625658390238097822896529827704409073904055197042957528629571035528784972639538848982528317731238726055202762747901839762201336984744293852194761579970137110963363350274068437526886747063832784205583026199528687397946175803443619922838030784901399342160870077253085069653906503176487420032431006235854494798394875621239623560028296502261164596665629589026084530305433447062520716763887554297555183292683630022180437521165158226397884837233434132262554366548046994391880566168498631783417997013205385003854006882213228735902979615662316360520217057251339782244780188489814978547805004471895760046008363532951965393572453798359903833112092170149339023175067641365178437015792623465273944076827414224857097579139283387446784086784930527074982842629028407846487453547310974879515326210388063402367842535617599912651681355777587686973009904560823345255199737031011113762823282091120536044072968546480378981494789071914624031716279220498040413214803126110637081402865423576259491458534999457161348469109393669342754064058921025044075621169198899040810761401336551092507094660345177768483005577657881569785065392484128316033487554360232397971864639015277060910654799429346807575393910586054475216283045344992014595621850151283090758817388459255241475816485939317040243100115284576438186775210918412294745551858202065583176243467496769104285679068115055423282844438760018958808201245240097920256404003386741089406737911377110707908001518660640729853130547237679166888242466063201566603822860475946658513178674240617700894174622244640273230257823378549469692091476222996510117661337293085077687536785183484921716876410792207544221452834321221754819805038812751274729542920714181717610734041235199937932785067773113727435130378700105761490677851205984924761926907712013837542414255183833594087953661618339565763729852978264444205064487219940725701432087569011129793095100467986770701954896504944704652135631802942909315629919638866610738293347354639262600056992077687976367592647406126669007609982705381535452799959288216136753132592365177794211517216547579532695443314837631375198626492260727030792491130333067338409656721400862299435098696159526105654482146492525451954926609452586568453951259569383775823117556332603607708509100995166140518638717391264716888810566295903078346335933229737940688097806164946165544144100152012049833060513475721104404060351100903738493643160596885801316569355644734507930303149427240661295742816875230097521243844977801403776547428606217457001243023445533402367635833945999303063285239988396594184038346901233200469772285778420387559304974848752850486809038190484938818073264186444206612105745114274311074885075997228764399366871999276840008529102762061876638466545903256988113481478379789739355558314229602853934959745508695375027626044958172192279430882133017072870932526828308424580702606798786135842701249095547698379002012175318763425768878693792539060800846465036847747903623150888439265274722143302221695594676579961766632874362748658864043108754536538854623094925707005512198655487285845610630835523406134889591613648285962239195354083851056722724816504263877771256204244735575758148424662804312479417347577511337357006289370796575817704607064365988674268512575033348040777197428877768782286562170490045326909235543552145895058069614079679617737605033897312322537955363890350692889485123082439638939871632894541619091246120252649261750283582015965724805843511890623046432200307311288492388608006143073238757592038421315665080292562600898783467250393413513907577525137539600070537128806645459488400165910579632310541566239028400386961262004912034178925377605435702484515553677532576949719304718569190789406709293626406517587267276445552963878428181895566934007178792424923408795295394660662585925480298468583421338583976705627550286260341725746226562985268993356583411799338330569011121494506821621903949275252022469549678700604375483455563021698614292695633233683838754895270305681520943241727538342816926620114878073867932429906518655724936165814582409527445905817754899646141092961184330927645444190054599459443578597451519023572240012726547389955195636030801953785098251077138201820581369244321071059402518962577587791575563797241571410637841254990088450113880497049812877720166562290902760019709277484055720128128671222195560377075660754573779928657384883856646906626338263771181764022149120091618380164336990090801137095790870976255553650297958181513597812838377045677599256025825358785931787635542418356492965686600409055690375910000361563325281723241236775929500954054442122038406385374379690420729050824906874712888683633772387863015822228535332960727684765005370404773395482558346472875244116777649629938753279742415852386378570208175627924258445460517314947674455962658795192607890413015263841743151690619682003906533618240294965919111647835024498965859273698144541529656963160975001277612578876612784864385591971260511772770436139821181363395261166357385207591002534503215322175073412543816342188925214097480485467392383642709202123364349738830397344427680673344856451474860863828963670097752360131490041785206986157283259647636911193953859376881636388906699722193011608824808925335377097005157145304963561643134864242881670090600268269278712082731658108062837120407654387034368601380146173574427896781406723115147728806590403013914311659401423692673169500966160935119403953184209385100853704420575423726079668466784794062745331189300711436597621661833556220744762691721745120194108091052470784839489887948368990337231608506611304421400910339093837637951200916783230875265033045467816930030867524651899990139661186394284373576659658177699229704278677777012801776180945151511872022038787274214795926428054863199709574201971625829577503282522751712889218055442329402392809855163940513046395701010674426475875425636488457010656739516214124879514225266675334230192924971492445973477268464630751607871009224853318860243853833095072481760894094214484796965395637358669875862150722392304739404783752604492878656256131932414343669066088930666363687527922303605090870075538420944043143767769399950098279043175784839512985083876876313562595774226120697930047101853214050115702252077383957938972655631596031575516763438820881632996270189061034815898244030115487305645553104609912921743157528674943427593550476077577473476846481559688066970471661589296849207667994869745463236933488507040037308912351606254949413044834444860165958293762280710557688719382407597765226630999531493743920962419483048349638827167262244128841965357903079500040753389514044177606070872488454340007425682080094597557357896393088776803635081031745251350397853282710565569199533503519343534494007735038217397171447594539813092593926607483578649660399401137943466905259122311616601165593722144048822625668769505716662242431121380420555774802040002272414309732862319562727452319486311290271825478864914062407405605700856956507395013639863047616192989026957510417949814658419208212716777340173160185155141198570322269852088872286835544150946208554832321719594362486576149487353499239196156875528188245200945033863880469220534232525330952929584182973948419505045327584887308110320064279234781589486946442247642228391458307218608829499925639139719721550836226894463511747949420749758470478932710910618860282733593429243014795148466543080494687492075160564651981991140109932562033538482871740263135415496198205788720931869315155677319950624703036749438137093257690773198626909871734188379478134833280266994068928695219932659425706480058607743184106880664447945023203299944524207324804605942022408162619023162037709306072056019764259552579934780909928299790007481626881739776158116469021453875128014844145035167654873674333028830537198953016982186136596618460408553864949541285818819342099981266082552646160311073655606745034996067234419592872631229751050678619562609379566758594848367964615391014003205138463094424662466725433089283274257839908359509240911193136004819344752890266047878935568339877394131842744112166289702187256419830724449832552082502423347289213642526037350786233658122757335485185529436349533133883288814814272319355551333489281568486563846484100521806031337442655058196954660249563514751859689611952645702399319672452903729287879216685272924066868214639631181975965618491384353910491323934221328429978118747459241833866427356335532041595595804900048723883208970807968285650799040376474909280152886948529615852107854999935523107150271716076154782314557099084550839003363076307048229363817911937254525003709191002640990447249109288827821839179081186815480309877306737310137078384056445748448771724502142405143177198216644583465465883171273984606451062297423013905394867245900394011615154710457640210938169747646613859284680908432893162928251751884811739520898097765958738516958475642406887084162575669983790803094845321002975583307834495712929956470406811001425986668601188462719414158985595907828018861575368079364002408885402586946671387844344797546367327447638430541945842923632355590184310700302254212396219265579840993883440841190324220211229343661367471362058989356214513176170385267558157252611828507195485141219662560387746978287009859695455114214614158109110527357040283290991799743770674937330940916258738595700071777756045062371069769710834560958731157740402459711811601913939944662369404914727981575190356640163836251817764291351049562071188033616681960164315760071470788103842222491816891683875076460427463260218103970021218257285678680455557738151162118689893453672932476840687276545630139366439853889267549939862826861157309959257235980672477392261578841840314927284007754927483194021290544020447820590270854709314603849609713931199043714219607653509011606040050587738481989001041758114283118077354421695498962532951385137163104388026635022550065197339106721324714537537827303499110708360678272722003242727095543798944101375998328944241715047529427580424770780745592744685372196822243746432629751638218727686221329847364801179435133457770508403803696377818415838106067032260741716147332732012596976048571127588029879123779677969390308571726103855542868594010353412960916294961154650558599162180334243990589974984365898650497457463739044116483216634472172805038535655986267371372292493184320734973131114735024388365074122996901717794464135048799185078480504335850976429738357237141909114955634030265761153920096580768944196626216962145112784175634536065467801270276275716495113689452500227118148885876562062012583740293395048164340904310289883391551433881670552061706859932349640694583183277414396372403380030610632301711929449807594710799463354097741556095727294597124443859304483387724364525438434186745476764041331110274171063413468403728556982391842241002394962152392304644800834657605409668003819649725075499172381852416451081285514538627211890677477850816093478439526718026196346139067914609374352182600871676672712274865221976105694182487308249424198168640363754315363344478350944335962719747671993133485138021649130807608679675038460137802410006533870821634833075547678836227740236783435251057283545876305854714281040359152187863401507140507707391278411752419754691818272197051746233353202387452298713443269895155653627249601910052739459412993185129537577935449573639040569551051633528960760506998182686554715127292911799895099357321597954674710487511012782555117008357711170442701499468970412196643961462999034411189276442157646018202817197242892802220445655599027278721054068995403417976956701960081972823613623691261713793844459523380277868487247040715990606089904064114211855701607008543206490165624446891907235193998712902602960005834525342472609692182982680567713266543437020389837410154693845993380839210459209112199853701540473804642284028018338246612790902946069261599761653512504958692320996572451750432253270838918376265357378491415536082818954313917972110952154749261688299987705278686133507918563056464801174360496494947681609438185549078294116105637709045513153702572142753509248486685714202487321935819485055869434998138260492284150345163156176972263819175132795717081172908075385491351662579160200686721239915749735714522384264255946927465325332331648356880555417737790530138070645938319332688536745751787972329143415266309273307046013861365095436866983719292026062845536575337002641486697524440497367699367489437164972121929315699092369625795495094200248362427502878796191917065876847423878246545495737644397764906845547543380586882820695293617025648343372350880182413931417476794448233537505907042261628914316075859352850922408504284676050848029136989566084908392980018031905288758180479349662095446034627474978338677800593127248908017825011455637622486765888448763346154871818567935058787581683105048055783297742552510212319921900865606113090003288406937730151796211050941886258500698810318980738951577622646733126613220540027444970185456484464525269895687846620011189551676799243814324271864101757963049634739948787155220505109134204928320632652850971041985863619483572064453667557516978676513744602199856221550233570025571191570169926000684112194547225280463780283491927504639428538861523719646068925710891039628160718123519474883161016810929708837387632899834015276444505975265870719902287624314960069333725940475050172193836369953840086684368588175886792961290877355594963650148372162137220210016460579795646389237374476324144472223712789985927125956704027353577507372062645598395005617379424092540934545302463616432404802341681194249268266808676009885183803755633699192405443667053876544571958918252544944043592375883134960632256806185100015725211499100873617568246580784006228857244924181740985365392637571805042607322414510490549142638448403225887710733524038503614963656797077923990476894228739083112136942163921248850915614524043341434021563650395102473752550266257798003865875903088373338034358923598831094992361724129732958633264907685852076915754318270027506921078190789994640646401838251166782960506987345618916343477815972967177291801524841371844209462760016010325463100229741623379180566253383801717678161991716251886078704054749675943314702211313359334871818072457995528107370071254937935517933650815902806445593740662458891881301738074115465512945383736460213393915100117178743335596527659470233858241929442930057241939759087844768449521983169722880172460937031280426100912053114543278887947601412950278069409811941667634976394057983611728844246560576597792819337932073269353862945709285105380886327974825341210089183032064060229218916622198792354826625155836745102539404437706313467821979721221019049047587637473986104197603246596294334135501022828510132141617685332197376981695543144461456179818497174738839139082091658155743208822620267770552839320260927874544915771021089199608370184920662949578512842097816315244863594509500131042561354401950289176412601112322523495138354504484690107542542832993652048913193641271422552362106635708688798957726589661653718489715696516298841143774125884712785055253648729926214045273469495334974665861294058056157864298002112779122276086029522160735144872812186611848589718917347672438906077943558631221810471034062589608648261569483269810066840193259917454132549769968213744703017166915146359995748654931552495079543973092977131491830491013660718385568873455042180944997935130115121327240563525119193818366746237416370602182524401677408112609274607280909725153305593516856040615960433968038670723931074067618847630776865544213382844184899578258232445320412882555777530833234073397333407690948087745147191048625443080567290196583286161490233858379349135128254236656196548556176174137811710110414666396797932521722514594509723806716338032051515846203833558540994423232812902009303462234822075668542306285238013888390734147053663486000940535379253157098201081160096230546483295992325935463873995219366911897237321892598358159267916844034540722266796008996036444199307838405183701424278857517361190611650068726509718964940082811449529987543650033346875085045780469394542759277338725695641618390808860662215682769164480837112116078224642480919172043547531661963687266630500429107349991813029871724567595733750709055652932381704800847998245872426849833349246124560447592747278238755210292516401688133287604624297193084680115191451254474992191706906195800657582216559810722356653513830432258191081764372950775762255600413719173114990145160943787292871528390039881086814236681003298506317224004862904326744959621847633019812017203843874564038649329518971334257305779096616749996621928180422861536185494802621893840777897329884652995351106601872012157875014336029423749090945348023933163873844213758228165463711381810812560784978218247784376512969371389876235258069125233166048633160678328043674146089558330091140262160514880586417098191256275009534901093018032204696241696791712387072288810780054917344689117917191146819067214585723411508223166213103582986972139742698813142981745162259744946576389074000166757962838710382454299219985435443322558266940539024710042438105516344702161750486803464780803953708130098353678272973563632207829032808587801764645600907991036110714375173594430341708929445573167552859258369189083906134820900880040807083093535216320436581621392498100157128035458826297872572661903729216695818687271856186083862469106188953034578759830653661205011589670928045329979585997369021327410467191475083016178087683498137859280308814771400917210233391521167024407692250440473708172153723479517544142735967318356078761099617399033064426808229236239004764577908403648527892476266294756693500872709756458974170523259089563444809252794410828030335790052347589171088140967886837501225607078646665495101923910402404453824933002650477574472449817741071828977655819411349981432600484653204893564720359995289643796351494891562887446803857633712455030608590889920054931620341552360593663505681661620106457271937526806262430293243915390852730024651900407307123554404598000971518886666333210864202299052061037256658089521869964173443681924943142142400031286081812050514289823123764277368445364344303041848714926540905973500942657858044559161655737794868671871217302100879724635326322638808601202616711928513630601843290556587354711876061702003085442476407411834016891564480719801441759789723767770673622170611250177010424466583445890874128602597648177017062761894142589702082711094768312045950348854647636904453875446487286470498890633504947546603009802085511035611692179052276774541786293420286549504311924743774802159040213934463194126004587297159698734260176292062570733619654156947972699039067221078131011317960206946691964224396724682101599219312589901779380452647670359011815569698618957238587640163524591283160527125463820802802460222613314471468552874467922942441355982232136110968294018181004386789392577823029867796517226977415790812594903706258633707056026653534595565429991019373168690074378266894194379774215420994470433254768688102654392570999454236088404286187514886168659639039552675284459477827781893733227480997537950994326958831828733792711256368856787502722114630739044984687343119074046905760070589002650189560627225201402710699439103927187463354909094592317342063671733705586467317774349917543842494443530116412069356257075599692651735422024255499740912783186086512546907017380641647511921482857561831436741851659851671332186315981996894319174177649093382415141009849739350439696422988992077981766138466244584753195105670618731056895117993771108570311315409596338173867649006284638593124963424764029869655306190315762500003515202316701582535394704503694547324551269177495947725847133039659629744539221920504372723572995355772397271055893717712203051826666300586382717708645400475045782204495316833706548712466638901045483616586708491943569979977975224857781608104315441366904525144895075029409086215909495538738607718189442219046128686883833504186309412090185475301422858386484837626233777996904785045880604267702369517319448488286530698881364071033037268233833284107160327119006916918624945636897553900196348024364928918189184035934125132522509578568431988341998479570818632675813026886738009562746436429169674381037369248297611563431383124876047668111401852746874534452196046072308634622791410629131439688128361150851423745640673671610656481117384019982219644899111197860961164972289503680382208727868436157357726884808911500813380215267351743716522536332675196642080461827560624980293808407064020609159717507389959578754203487391031840555131171990915249301910404165577230620077150096773814798147075365566177642484760316401560065945027861124919014883347842820516084277904244706339146068877744693103205900223084015000007384110256971324439152136531625862379184169705346980709204243193280895254921803673686339920301876414904361219860883135612607426172970048714154552160178546865465593295423802767093098709139841928328274828335612384688613959398540724230584647097063721429223041451056400358388440340893261251881388885876168035876688693779914049656863037748142201160081620510943432308992215463231672189612721075057494104660664590673277394123673704545077438127968024747752227210413988598100106631902096080805468009956067065911825241191458169105049309892257816653378468702121851612995952655269295366306003310462423441195539869167470797875019350029523582393329781129973527300355062179169883098379302230415784698908370608165348356492355466116315528722178497939877699033867093270215559749834212100089647140602269400112519451970940871484244360057311309775377677286633984005548389036181754698159140541048593476320011537326940152137147523883356324521377441848567467641750390466712707112499352965541690602109586009617897673607730211231514698745980294415914032795679116814912383718140790335387075557077250972506241111686721189398165968324626423466815948945917642791360415252659078897760378771641557892834612745585844591938950317712157277042622097337749842637382471367469396983296662706116311181912227272939970002385225543077508820870172261797712404713069040559594306594857416422476133932139103402259365418009506297690949386350777974808567734080638677544847444652056810441829231213494574283695990481302359542692957290303996304943653683556128959210759828411909231339330088059538104263542028499251583104005944633760115201035937607811001822476113472705731363860654353853326151541205065203847480042252164046199952871684957562337627357117874333381428687581627422734740528643961172432221884810919668326652732903202030663578811765701867819078199036612139885429981296160847747454882952685576956823867339543265881343770571459723567739756859694966452055484125071744757243955111573946794489365143841862065537715709100116587057203035657807944635137323791512620546187198483820032717722477819053016312679639488219661410547104506399364116666867506648689254918349298449387174013594399108474450411464450227386218251203446166316508107154887883403218270038642539952755986623620827699518648959057795110526514119108019412827642254508625558713849079424068912424602890925426539696834141435670530238154660701575065913355628103482997639201127924300378376498072951173841937664370320247475612465115680605543531325183105907283257323381042381266602862311640643124969163584759017864366466155944250152975131266828567119271756341505790721430502333095407020113516950984938507467490843674990766038619673057221655281077139888839959165712169003533804627673920586197974473263419532977338179641110069895043859875673708966366433797540610150436539443071384747853764504768097677251291414840847866921690895959882983099488786597895453625383151001101310847239078219644540469985984070946648067616681943657651706328318525959361980800330596527205252879062787996602112783098146927759735787031818131429309639237775833311402117629545367997536258338692446950435780035981859907118013006456387510380059714820337251753086583482215778583569369370479231849782239798644074140322735686112940018906266455357451396582906573481396761176356704046201199633175473975279879857010809773142961320263974448052842581088852842462242072257697081283218244520139716238964689626761097778114919065746720366537392175502900405553764138366500901148757140173732294579690719908589577116663046858712613599302527047442376685312427326745833300404134300166249600561398587009562495491795454596974605493355027759587041771525042510139892294574630164253535769270710953446709936506493685570793240821881461465608124307669702724827114412874848185105346152656631079558868473313447700386699019463958202654813961324890430329835523592597782723070270598993515244948372561212549554338036789640253108065146733930754012430803761058635019575897988587396124809204456782445284932872627861189261431972654544817275553607717250411427376274293257382134550892874363535322140665428363563691921996650896803904159560144826938101151009793600376352924675801774165380858522472718935633447887995820816413254902811553210342017916026717255238552801713830411130078489606275432768747944614756335410499307161088057063769999215524073156954518640654278635486673263440841723376789270612025575089522825848646291491799437082212473432011006648362779434527632580963507285211017954413665032324925284096904066146284219268763002190014929863807578260677132729677517934001194833075218139193691422165779244226923419154281057588686724774302809271281169181021471956603734667271957891879761604645370612172022323833089990951911117107158246319670182675867145327959857378265975542384927339741077798097772546029494752111569740021313234050146533343452568897581693200655196963402573246100698755544726869764186683314686337641868519975050558822252563760819166048565084923421852804967508674706772062828559460430760287739753242979987578430185883273885699401749541651923011457393112961518994107345964889935702050100332515335582850115871360570902672319438850140795603042500781695103922530807435751449934878320977313690105813595195170357129994905191751790404714165671954570529687235612552474022179159321287886948754320895690357169389204562059118442227915262587504687732626061491890525977266420468735808572323582498254902814253184516026324241640290659985421518103485361993207513647288721079645753672974042002148149052955213390632310674042284589715029437933542040543607533011350094764825304496145761043634488286969282386233955405545504277322887418164647670331624551182998881601668581892372779158386054918432934715758386080744382322107086064219566934407404676894279629107737326949802169626452386748504422300621755733784899392866139492373897085675388483981808251652990632443090142513809202921416701734618597418246362415790287300423308440057884131352747354628975449568728246353628199065961526922646477038185559023228223753579195998390010895355835940282070300389310143543167303832658643558149560199941168225022953247222243011781334296337006150668700234934256826207269642810167988513507026003108568847786526686076540768434529517158647579163416161691367703538817841093719864073295496417067914583945099758289303481391875000749382680765568669960529137247915497379565178150984417408094819532909215525851005347062032938441619962521188212268449924222492272264863771010400537292355096405205027507854995303317936445903166545591904915804689423453319499230162907049561751235537332054684034016283198936389199167086737006691764468723315874513435951195189865401536887607939290230148677091621284224032802400022921907668178425002933365035328654638051626474822747923314445348325203393204547089208615798458985796290879234123549497064235595685966686145739231685229126654364746977800281188366258749409510451831995198493921837120189203311583590759951780872733655310645582157262619073455921774418207540440215425635671157628701567675700006572892662566045436177713370645607500753991070925014384058672515069460967321080314810357644082433612166788990078864221712391463016530070910987941487108779393087814047477731158807014659169121531147224232314252834383539149572600742594575232060592323607227231445954083155902048372543718889130495539590500416551817761934257090643821190501199929465278653217720265753444949184875696882297273233729875916999878718645620633460504702616394191976985695413435320732641488472480880292773749550594630613332297446541384638640058289149919169467068211517108168387446067158080833496565373341217995427433993702886138870132759701898993650845441820219681323118961703630850871516250432533704156665143819248144744734516718899325427789487713705484346462841846457286114957190891682465946084607576737973017272928636153175843005065114160223577845722994671400179477779316158006484569816703492367173696995163799749811743798727525559284186015030553807291817923457444162170680924113961411220846397031106595432664624574308462998955357829736563648188473161584227395218949020794358139832140996595718818714218161610436484069697073018699440019251221151111404024174745070004931860982933310966943518300442108024778623994310685446673927274829887456749055620934213318421453149819436435377738956165930279281736001293490943696922522938400555573270317552801113477095469134980708379705129822810028038664165565563022734022958160889085166449574749492759503655161300424760765600596197766773055578760037592259871507259302884994609164528534934615458458333989684869585395062713635622816578116910121038851934833163367905196123104840817913713783333277364109708874999835738730504633122685181701224251458459486027550463644999926893539975812528037581220212493072264095400058956051778065341510981851444681480167271162106972838560973148060337408772809053583567502468477655935696238986365625402619645983686713671763660042062059912392269331795292753984248435776146525461407637174478673780904502487657836303229073253558254435654172026677857703920114991174578372322716839552624681066193888143480594285591555145544538348099914397706037201581371628805134745703390374882515810391865944309141672634240672951766257987739676563210874316715538553649556164359392717682077695910133624102583391354490522822233010511921399855320762152848516473162235462309454548626688734313966800997761435556881009471286930084615156103141870996062966339641836084300537713506476183611303765413964900513480923530645087844101607199624091967446606250085920884663101523925525397649224763645881412108531788300997325205597528581984410450321531159910616526792604644833613007622967350511642063300642701682348217070573644807154569544297762565502292611332648964460786342600139364397981287297852758296569363938259422690930657056719709728734915738642859055558195620146847683195788957047943681569517881966178469702034821105401233509744617250168408297638344786857053363990809489229118552133153946675448104612234866351006839968798187281733132352646284257667264020022377911699254125771948868492608319308459876316000830334337134063882585486530303173338255745662920893610367011800668804688492436145208347725883982941835399391122400858522290279418957427186260846276033393581803276115565688955473400803458515188627451140859927186368398234233185089623173530372575119225960788180584943934399606203462646468282719141973154018660726178648748157439885387708557051321559524261593579179387032281822844668550528631821771561891390521942266637664604547577778818160704529402507996273663657406839811207169329269530056553704159281549584923853082663000151970911463841294052963214444304890401383912945383771329944233376334136041131427063991748154352916723025171160520377010083114410406245065769777528093848186675740099976813599389961939935886351029202924761539041641159805447785068361338024321772341962943284376985804519309516197554593803998428308736059131799789815468915448048146806145053112487790437527858742654935612272014076768142009370779824880795282191438039735053156025284913754293691622259075215042300608935846484707109440598070481092641790547894842422100388080860436543310590584322420696926205448400790560076278193724597941386973064510338583360894920772876654031081913104394426130103090002076036498832588006254592410872454388204047729571748056492731705359584964319229838576293827699780578847602097458297533032131683735663085455498215819118722075598756800906639405361642508929774633533817456916390176115207280746219256787078418235155954288470958095944814079016201757878393367886007963076186604498718167342469014088197301325454537757134197570651505914334503060488700820787962109462802719467203102849498526073665498342143038424042685734179373765611969998344178011909351551437898819436334074259581898683455668748810572811667429683538981842252668027567029699868946438313138863859937145271420120071653119218921592362058180073338331451560490867423180793201242142067978268538250253809013267055951748866450957534850981843118974411648894266090551649236032530325416095411622096359473572460558776047383921313734926636334031606231108677474756468304391048084095637600695138108046900864995290463151138260522367782618545112879893974880220313722850096345478334517620863950941544675144746213724437932723155513933676297864863739871065565405043983002250872119925976292321065694691912882678674504644534374654803967183358625482338363571735015374112663989177418000878980986508330295286958395997461412792192628424906730640845208377935000916139674429277327797146236799954563725629888291176993293833811862970076652811092958833936168312505269258355134321836466551444735473168803576083559007505903973204920673565757853642567213131843525245866675128003745838353945059009674047823317478753093133451730674254132982973385918378779564404830976706057942212584813283740080451258349264322916136164425823564299392080777121063306245165885483342854036579581175570702166301735884751586696295007089704125290107888806121775950511335114390215882315544502973640605451542476578813672641534767689703780417588892429552574924124004801569523076463442321845526610527975513518017745601824803666535072473803768294760483341957228988873198591171387974747215913844960686790724821928721937035981084391516981334477921728933337076095224945353916104126841439727393496914095537996440125994460661239276959060665605531500488028731768838911697149001531723959733263037171393734261035206147968295701779877000749696052012180366060936531210078574020891298538162278220745472233756578762730904379449825969382952132252664959639531816011717289865094415627993043021546767170459336741613481694005935299165051972194122279213124334964440614286853651846352326873427709114194559517031968597794169244537481376363767254639595386484124691886643917755293141508210708253872355251065269878657950811557330022756302344511505987140606112653220276125511923653803230851436102109644215516483880294272544792433303448730542506661173720276774881255054029995000577720977828016293730950905956660710976524590845076095087764907206688568303569473853984210947384937884966204507511180671480011315019962665896474025075125911200154969458556855004416511669956563449696614857075131581268479420173381753345684744753103531612460878454092100319423953503923061243420595145164816000963754103850707501449910927163277829632312057155172273789068110380381327465544560340767602162395565679062316463569037823831225586977727559182933883163920837292910511871124988032381851036320093665804336590541071116397680930787019666995354873303707872967504961597419533608688262088400934349968879748289047548187089165552825067028547799431741481075750748400034404130563278130037394594071591361067536979976575990132888983992630194918035100806277517038927191174549482778544460530669919853669608400798639557452376658657089419389143098107657688899360416213716211171284030061098327483614756373754641949452105462170025026413615971724342882721300777165826027430054276685671845836528845707201348993259144278850099080749208008430742425444157628524744219815229093588572472805420738252038382966993315053916320439558313784250943930686738517682366706530938305582178208810012932466511854715339837342559869721274012434104093685486618495067530471439283519238348953499133016777663234551816927087857017468650208433196772921942284922902368221776603760493151365646991952657637470841464860218993013526485813008949766109965223553733049393385234621381797041968197098821113403711361507869002435773251687773244348829795583760114915527737554198839592093725800336110958358264896843180386337447936840662626887480832762085513341084697294822246025226637486033971973607351913797103937389630283043911230458614035980498132298732827720959802213005587345415069962489494543810148671485956741314446848968228120189723756566280665119744312456105210004490810672043045876881020540043785721096585748045835340588535457209394038613892501448621808747766525461499705797949094304156930884367865688492149089212185028442879984451097953831379185175251160404837670366001022822962882381459013092276416767221983415702244658244241471568494399524531607499967184696827261215182634524980163310676859401675594812738796484113755046510938999057448313644556517506457175280467914196315877372841871462979507794743931486327601744085264305692300416681878250184049607511760627022401226923252490008479314010955648242001184244702506908438283700431913171245661553853987615016821508644691939836159335311397307298061222182487369372799059888102484572916550713226188632519632006769775938892855726253986688135208348560990757453283539919868975869015883952093973505744671001718760589876082870620578792892282689651690199367694169223808635321748011839298752852774989595362313431211344872680598487942528535506842630126200950805904991141048287812587763789221845516087422010152739035891755055465476822416045886537001422507673939329351002266847418521594099511835444583753956019233805688872749091090104449836858229209217331224068416645694261991025165574305703515417333165475094754975967689457462825468709562156879736733513159365938739483324002072917406979552774670644185662662434613550795548598705761943205560221052458370459799417212685089983057273539603225633386162561812396972976399781085780806019660520440987928809234977364211854691868718038948143503795865829975147093910063908089494276096107307677729391410785915678832730443621206549990510155825513270008858608224313960096258631368338480142211466480022340849632225002631963022694858801518865975085740607081078590458256560025101991608021047847698077781655264277385652757476400641310466845479543035452586139131883995092432474699930713893865438418967043501699529518868917590988354445871798869315685486292024103246592403555728583755100835915359833246439271944054637819914140189722199379687246287983768290260296441164130493825613923100140959400662634009395536913603942846487154020918515180747322537254480978865192709890922418303863125216755065310058422014928325969743722424825974360155804220411332366321642326031364257696448078305464971451462221554223364894202774036089174192841490948569866560916856862175225215696910883467165545665034146784009460023723560982436959974842330184335778386181683721528606978159938534222735735637617072174472028909200166923352221727544091209815395963342515943651155905331829823204243022818527123042078972620583537666638651125985461992645330942108022720332553272745382625766666901631710809710382877990529538495237191642365404721995207995388453065966124000119781959014061765632696243675232699846786292498450296289005201052525052213165690568395192663317174396343094184903739562340945341237319064773715439004283612071252915267170318723834751146388113573416033413653356695415108495259191493434225751061540695403071299733536522762086561450073758415106160581269437848473869691583712000119953174297955037786201865917821305770051829040225767993167828066944921506151093240687253185594688413421820221869419274041097770511467098757170974740881283865626724217557133151099371988954276812142875233156127914660387369692356534540647062980646460801177685137628943572347103768312481312854419315963919241421103207051102288652654688430077877805983594797252097585327882024430950290160067700899789386522476737593787014101674979075026129450459755559288936043754676934037957439741097750876065595548733635783302881618905944287698449532806894181368074787442007997437337430180492676552547335429150312910811722261364971332501620525583954332878584596468317497940162614482666867260990338701965615006663756600128057869304985101827779352202476691500325201897563252322136863810376908609594161351298883113790429352077038084576523278167350535709287070413319759738354682993979505075355277096973985360434229352076817043759478519509165311456459044740175671917544931560289875643780375874679115533859424541471815540639018427258636139114058331973300826798137848653756796020727279859976505604043460862431947524497256865563237705170174191526112920524332049613739086932681070894730600018787440072173969712042904992757759827872787071987415768016327820529207566840606745920437804738900502262701350958270562580064224736211510980274123661342153547513843911490334883149165138948640166940910421466014144049459034868934611372422531918479661412228346939249156499516268616503386546066859389115516564294837719495724276982182483488624019425754066401285189776480630041725478001031698939532586785579564106531371212901714412599483126988951037404993859671671579186014415058402917597473995158020208892681820789849852082816468467135008203002420954718942758237368849459281912480107260503873477502245709844944786607093968077842482590031286888057200136026308559384770162983831077153254257292963914723954352362013743270903830353210617353641507777949335467833813924482338878697257348107576470055733281270107209882482781741167580981188664579899240838643977483296699976725736300499519025072072986777747491915474893496265759854600737790042963045423536495338273227921650679338979346703118837772770552008681388908970176712673660270590909969238869912373260014188579212021201448050457633755729574968311515106229555005948947110693228503399574696981091829656867050640018158228675787352654767744882741260921044502764720432849834197612398599917125325685060716901831418210504471335037298552613540613774645999031972950006330036898524491999293347795207185019915694326797529352719560351156288721048253604372092200060689592908846785015508679356262912873406722699625256106756813418276335551296392221029479604748320251508516682061890255698536472384812718479198517202889177805805424983866279612402958995730682227238210384891194004372669153863893357231259856954088874433647873897939152400768262448343640094473292985160755766493018977608776302400225806037052720682303261652124940276329768732294946465885185130527186113979612687055592699002653849662876019799886319472195026547363240213292092454575735016491302229134016724476546098543715221486316186447054832296003826770419222914274455693008076856299644588746442160090918632404916509313756079033071335615568940746163599612919311711984953395091540799703846107917317866604767163655800187736100702565537233872465099230812483533076665536243372711974386218265650974774980009022822153438751370576673624301666242727693652797809800256015248009237581699516363013541782829962513046434055000787479135843087376800251070818363150166935059514032907816195063217213188382059775209099948403547531546542638356238699420056773189486366775283759294362904723789047817822950500136826858420114215355188889032490523684184610084927903261016517505940954268854725731654320809153320097978013150742503505998315286557261570233902015192094861343281679148929519217977936326016292961475665599665333233873349083525361681315160148776026362797732326736456894298785173620354041929895659263809962376175147132482821268912776589114711380303862388424562972102812124858700572181155843753524010591123128203274631576086412114064495147392038824013661322294523882445189989855832929909213549042417945420786148014044896907351062031627843268203998274857058929013339967808646417897713103222237085887951359850848030978961958192701523636633042319224938820859846080390997501952871645819830230739043372128077227016579559261326322774892165541571598465149330162705316069071401332610137902365175789053826892781985109499620503938164491991425521690383458105989114929838974126812356628943167291056554567828410771628007546300512035722828818776008539152317172730637643476054845774406426919846013207541339631689926712924481985543567878362075397158231404345229769977584530241778885664057856631727821889198012517548180969904372428496613252609376673732109928672892624008244606390502899356242573295673356411792433341497968910767751770893666611974864865874607212974677712606359883825516054880505665592751728682168765627762330611254658179554425355927016966367617216470512279717937112010340220756227825256073051932284312243426148064021622087674891422741892783723251483115583029444199686013577653962614595744883535552897799234362571859223821616011687334691022812916639288033595940460003252193487362225989919066399602023025229474571103222169725525229663170146485553102224472347678568527414710511812910212507309386353695299802975462049614209804310214783173504410658638213005411076783731608879944689914483679219787039302699371059703855056359098470687276509833291436601830441272267152000847250094566891189911618288114483168428480657658380966773904983917631264611363900365145957462058316680751839256909325906989427346065470284156318357777306498241257352065340567512312940240467495262791378024345111147235002990777299640168515804522912836442202575211357700502459373773693427432031056514709549492934989192560693361651493750874802273293764685207786527087380840888589828070046054151459602458441473400492690353593188820662178647792938731233474240124559520962936881562141426808893705640331731816715386220336384111579315458068108595459928234794371113075008057907394002757498350889716150077894043740641335626611812283097583179364714027197096867951223368973916877494143185619537585520325452373734630267570527470238483083458123453749049474405478535307758124721963973192488198403361006098753220398625006107672881281173666749920549587160167245204683955546792712575595411293577299598331401126849733440263615559450769420595612913540829075999428233405663363442920909107246605249618100127881207821482955554113229099035755984229485944374104133181374210806304041378678029328668723817031975103590645094439883321879106197033524621058072897317167700978182720023110843894753356261721717157321209684203080173157818657654669828999638666322532544819768300425213750181953055183462447746387650788006297067028025332121606068693943938567386858959328705195205679298054246425447176207290282366019798564045086601705771474397565525843068321194427277481388021883691950282208480078269616534842018162748647503733400724277239828998379100417813414864069114921167748885679467474076340368481455286461763692372893710466019383215130510225848697115248553854182024779937404503288480483430248872197572019344261531422195032030488190911732856890442153038479955072609043962637642905703886749480752087172426287461088445572771079507636781767310359759893661490579945244618536489575235295239724538012974820259722357837540564881311861199969268631793562859514874802013363183391769333557195891600548441780937265535294784386172598942209994138060694521685404413328759174135529373722109766080559807715700421530601768544946738946899374402287660831688088238815032269896670298781785603755811415527903928690117216227476761090499818655044558447004859890647498483548484438270556848487974649773282459921417729266963605016534409188634490672828536016777067930650533284972627824012083784343439667998469463448239858279753309617207224359148892705226600794655536047386558084786570375612806764733511619957764353540998597523223130463582069247803404204503320170743281510793199942105922928413686938829124517797559809355383289621599889240116862284813988503055885996830847975846292097385293472492601042406126392869592769438237089899805810612945342995114565864915326721428961103485682956206605968148849336139025926302899455724218758258726246991017560047939933174801868478651220926473636387310330384005982294549423236983910317095151339777508548750270339874652708674742136286054434852379318534274576135688443933148185820344674299182018064367184606032353907597360571702668268305782808956921233723328334151464503706637875319125301032878773619692410191881525174470215709540121360176052455925465931827651139588337370565013213421554540275055626663791407579255108735301510952270925711364372985631405286628443430955755974081640132442896025481292913233668985596105880107448320161771930753498547419068600707569039952212740341113178274125153475390280628910837455060832354070484755109312228665805522793623721028429098736446482716048738454552709544185705318445562759940273916987439114036217100380367182989193819310997588217060556650788661468960140738062331027843832843679325531283736478615415591459435285052059139435185244636765671000873522613386493814661354212655349782459388286140289700201624467745353905094441452317414057912379356985370550053257749093138850345147682704936379813858342502933917718257727799219323444128183880746281523733533549253231803169119657508447731041803979814460429080185760003987700252801017490217361586541847907199077812923427976982993698772944019039611908164325647832283577759950972458618702070835658966766316505334230221951559384307119942134677669356885470225407847588229166461480303015442879489893783886881378488482851501331624301458508096926253500484486027424341436622639954900552862698345441827101348057758396016383478630516447984685376661872402022082545615560129093558956974498045987819571379864390804590420130850815707658776030425013007482282419926102316499008142325950283336799361215451252689890995215507937841745215938700136639773546072121169525914201988056370934021763859762402736509882731702677956285752509191226711089636439540277936839469293709463551573384394575786466328460917318568707381466346198212964017701798680904445828486082349127058428092108317396158742081873813680809894912205361494332775484068100650738756331554193389041300862213393512842044342791451473899864046811071372491185501102015388482765055505699573572555751529484115257345328685768961463842026070940548426718879445754607447219968122255306099732464383035720890252706361604481667794203979809022647123742981369344302598973050995604998996872060413072469880575745109240256993842415158390377501597986956293658427931073479988272359413581421259442796806735583136841109370325168238943079154492818190850699575033767386402668235241712316716562203865931528926745850128261338409850097772765706968128447937772454349593458106025342643663318681485129592314588494520687874412166765038256737292136834877810698166572949225718713913982896610793515480044133244128290054863274698786488860713313906549415356940305054631492284160182992775985752047234777286681758549667112575780961989101356910382771979060125315706764905420648044649286036386213566974817296459514412673977247983390457168463233497472080506422901771100821283183581162382263510158431322317162952350870764722129238796643163562843076355556441190465342693013703083228250875533339430286903321334128682269944363128908826020140363521516739428398349539720569290620167306492349627506453603352020782557662639849428519131321217432179104632245400604658825856874809404662684749005002024221536329449992635732220366326442397609261793235964762240792225879784759306607278582101395650438896799370619507866559957315940940429219699562523461772791254630356925989304563334414902845108299906719249146794898829614703406572632623040355130314045464599074356403369744677489403330559632677952648435211544917110744134704050463068151524111238821209177954176421226272374470603672870563004112518965348750547668610496982683832801797215397887241372795099382068406066230881588706178692348204484121895343590195394857900863727382871614116621383577740883857489037534652246223394542277534281139729619995127399882545522063836621270923730069464045467214093654641254880469146702466872733027253269869422795809480008280588284862043904761615654604575926299808181945584808802977541258926274061093858471758326099859318868404420454264703153704313232602779237434269418117663095680371957638640382008834393034849484770698639792725991317950096604793196324269991661677741669927170417444331420506518186228265982078970036715946893409150987201631738645091766009222271115966961403509201917958664441603661871237392222188188568758823152089389891523673286126982920959133474965444770791199827924944373129282303098231151855695924585504455821328114092143061045431143145815131691097566079784743329828481978993116397012452889722150274850032454788207078506638658614511617585470466916956251338745057115130731615169538260604122598095556036553838748358874013026754901604886982405315886146963955160809346996700745792842265406827590654397475014259155791945985598189562625469644944154271110108008044484191214123855546256314998751767225555003450460353975306990500746183478933664414094096088335834490254423609523617077769804723003310174381908800112226612725471477450421385606530393540777145172395693167949401830637931349617583019848670679751757549069430265966959739649660725822088087578295217482533369085140991823207973328666473237544432747707402897823468356121304956248476518385324607620825355447194529499084241424243619840707801017398138706429970157563615906104549625600528472262643434887543580214375447813043492355738099917552821694820830792812662969170681220762665135465128133952943634905752769194017998820932109378621994183615028068437351092049830731408714014525923787613263598488167827146245943353085283389449859778625967271090216565358074362218685226501327951004773574151620194176263937161772714191030743874154686281927476203437232245877337955134079932214983959062297251597543360512113458020286927821035551842065379687294916614875825382095095488352211705757688627900457567312762615123713561338840432635294283267264201167972098862336786457603131036433392295705210908986311864782742127421928400263320011479991453938777310325830993237730962037008020631855970171524089674861707709401714744830203981855677276134524237634527231902282849745398272348921794358368931336442029170352344866294277955029878214432673689952248778100601094314450107846423129079944606774685891567328826567360194143805915037349119977238303536451159626025960914788351863293052153945093171095008347669884893382078155271656358985320483438394687179179433651626412135979920121189506586234851583665251184190085265294687908367294400188709852636299864756222833898784285403271010790937155246053470240287153326721431805937490969152722983233964261512458430971335940329288913318080174324938222852312474516964011155074787410462635831348337474434749844831149419264391578777138434793361887452322387876752421167572664750320354673108628684395840822890135573635825116764643465475116142236624604286240582168578308125893251568408736948725465334859409676481259887902174083138030731519508192633330246266560034723471652478181972591341961970930855451246293685702211679965309542038428828528019071477790307861175820599864544063719905324498974511655045220968585818798895752710435013408734805109707866773271075071555234267984789000268982249842678280655826570236637369765483919461680612245153187563272937437482822943122203824715933786296454384413349888482409251721052155880623080791467892198410006252258406072312727555878036386280146676133079331936987784940484040967168025637853306462791096155169951665371282854259720204131800817894575559952497354742614412057702495784055603541288095125805908233536123473486504203533940335565319073234519121141152859139331922830166327839416706942824424079636915802605997764180318440971694243445167927057758559045667002741361303269418472580120039600623536700148844793996123274204232002891825378598508916404594417628098048473128307749314324823295292485362388158668848823486029921519385407055637316179372644101816457530655639461957637277960137454377338732684375990664423420098966244371395954736522846737749373579211690294119738899406620662469261479835989311681577170562257239756602078252400395358042555509930616883115221289279820815835892431658438004441248317790121580845998249545382009779101290042217742814868271157465214525615656910479147786980299488551205304657041708795890557055975008354358790681514631413551561155407706509007249995310346327467774843114525299001223747876409276095114998755632915651172061824757049739400696015902905489250596730614645171233786390029877429007615092320102733557715194342548888556768592481784276442947827175835408996147490425403784440255316797530740160894928955794999592254943048258081110153022600715763258283365564411590620595026116559981800292776421420681184822486077393228004062227799670899519858705247755098201050854854727404303313656410493647588648126825153251203939106283519127936311912923101227832163814656093516463523591292247210838696411666132355922949379370656015254664281472319017234032533724837093866245990094126933540260467304592508770746272738778956508335904828368820233513675926938133923803595374612485375964076599519954296010298009630556812071139494349448121056536060072218141108627398144272747648827621253202550212573254139456337797428612945152455785395751444366095302952609757260120179060257859612989986900224997810690511657404656949847218500057798168034238370332066582774773331703406725434792499843184229606495242311947778846321983645543169315022432514218312615266756774401171235663916340986949067706666380684239675671076613471803329732113983115427566476185285614334513617340106902694632677377051197351007969604377388790160059148941181260221542035447279193610600799934427748625106140254265708286835173227282961619426098581092797575914565588691673167413258403203015291442065155490302601156138489080428209992076715592714898029885135171422105826019808797043126945546126999616103048721013206576737911057394450445642081616423298948817503066784390722400432450129837753668593683677557803199043710810301445144265812763561071103555422467782941445328795991226788405876590107313045168571090728516214070013254596637302552730929319718749496318127412048835799720426456022003522896874219973933416801429863665866416547055224472367750688320168559124794647432572928623894719401210259365783891930493044354689772820293889126100883004723996127686449955863870026456993942040469487707946289714720633108582903148459601433477273333504527019774660725824196851202904654767835532702524208590646051428141932264878573652485174496455912641394967778319758715740588548190839434792684495912091036316826284056545098383786400408313830697301475481536370595212373279032159222389003200301747292029574722414971764490987065701444014670378018746743530898063945512283341700384968953863273835515331574968862842745266390015702106876633316630039410886002051385443981296728528422069067341349307207751614815054215016752885710980202942725804610630701605139471965342961614556524638948398645459384783399189634368311168698884151870002250395219550500177778095815462214413286251096547736947436312107733862040100946996247316462403496764062073961633694070533315410996520466588325713102133920549103311575103651154969426070653369271621820535731086996900568922901753528543820019429284642606216419041145152022436682677129182451134420595363477659511869629384343907829490747826191021743999333962603264482761778651314521120378160918481312577191668785634171014686167015298191624000490630005882543894998396506113522557438221585718657771134836219762741122894321929030852729244935178038403665644909862234214258062590478524480399280913384952082244011027715635737498707933210000829326218925765882094660724024636082596368556997178920219310932670949802128627538046241242822087736665638665801949639156149477794780222329030351690965292184580165152156439051579927606185051283355711665798518549152631145290846098119025699505025767497035304284944040107540928774289046270097658758988211893258538676123405481492068797075595743856925749529509181659975977494472838388654074683769403168411888764902943167614575038029265214038918729324178504138595828407695690032445674227815983010860088331834596445430895326636198915589435409950688297691885096448674338636588261286945302449353454743366867181533246862696264786265496416802001117486090182424530545833122826679337794091043539871847190817983571395976007432436227590119530838991330681588610621421440722920809281079962548318198858666216934317705424545889671051452900792048921746647249359958583532186668219348412481702076899655815679797462479632049578755325312651200315113395632645939633594900771672112592146930251034808344751176347702836374360645800601440493787647557433915931983414454475538690063909709704573214577383431868805500749415338115128182417411451354890392253707336276151079809056928482795574791382848191006524534506635961514424560547974702641047995652539684660579960231991721286192599338899442272824732779658657311700049306164213756661422314885856764103818669695423448427574016625871061912191007487773174802701068190710170323951680090312990395028932453797955375414676865652616393206084513371841154908657539754217907606727169664193284358316155320974686449906674948945501308753191915889320768203628502310366005788883663168150839506479285471463852449938811641269195457740701039276120066431947494549122134767326931614816190772120754684789255750854495587125575963140907082666534477516222281655574442802006435725937157063298191542588995273879944873294369654077314703509718507199886538738420387907117125515833265950274565802271233513712665208657059996132272968350338303876481976465251175816427744566841416527434723516577864745942318917808771488520413074839754621609652550567626183968166264777646955983740419208166143457802582192721666536478029771514379293466948541610073913059628147352823192951327702455634814745226452554889056181288604991191647037220586410162841172552376904704842397092272898683572439767681796720311026907205971805124631702487005135795249968002469527730744017100708104879586792691845795843916846939674653331198795528629684701239081668411049768130902112146322798361179207219971599667699103557293895138124679030393120171889656289057096537882270764586344546741019035849545545532515039342102616155944927599790184876704592624568255872294840150822617963457988710301850045713492356689506006905466728782583163503695887001109732443663518031742180620821060535761026664654267234692898261643312520917299758519496179874318418514623641313924915463394290425810211349221531291027836660212343940738457140014385696094441645446793266616165844333446365348771710210262225796156755126356050329324215838212199271442354579965328007107197979224611004607793870344714486283981716299907328681348493467886805227962663309839872385656123982894085902667101231302372011779369137959036614599882589409962923927736413103505756188586240831064287567911491355844137543661250759461881570066576576018585555593285629083763487844246261948674118694513603377839387799585292634335561093891494640600305733326103412131339225732925730484309339636711734019628104406913473968744864965682061642345083571271504669513084537619025101048186211960746658651179775288197887806156566606377261296760221127417957423026804707738590288526009573199415888705243388999398591268270281701064973700949956678628054926359727952571640437883299318189631117114923606163152659453932186561717667321278469173720426119318122951091027297192620219605805749988354021517647605953916469679465381867213140742033956969016227269148419978187900335796861624823748879558904088702810048601997679240368276635151956358164415075741893768355432030227801673515639223628475033586235543250089223699828860643407295828671006773391919248234209086176425527192212707205203768247439343624631971889915891046107272967883174323514559163004876832889170268531234176067176274472116350630946034593399003060256595714933037279143699460184798050380818248328930568516443172092885437838091332206276760801614051361580799989297410915225282372761974193655420726195750302276437905582028529788529884994885020544150633707827187909975841297243883302061836109761224124176492449274117142607551246093628589363746502620546336146712188275039224715302366981212248337547745749989097026671884445122128911469825002816744374585028372229061480324034107088425061504638013156284549922208723332669522666778721144927476479172437443106570614952121019931234672539707113065310231003483155092931631566261182397644693845868492688132106603155755217019728240259771345220061765350246098034185129441337707743338369822136639858623567884713693083381062870414193029860880443284955695399912098292056642949504278977949838830161242619951710460862553648958549892823643767491108459569618921308890824921459529930419010843382600410416759583573655718933156916991479552450432862660627326687787308490598047137524829149394620441534165317988485025611004879179829907287070329832792651341562661677476529180425753364195504281199784633046853151108785164014396778172291434929909575375099605450162772654234914908454589406204890373084834610939189069065891350574781317173650720502831293056744885527305287532076181895226485334263287556918419752150525256263543888226336725057373126068646498164970139427399245165398891168295262291626600856072774551811640363355864185954777364830799040804427831425525946592230157690599115760518012922006961581456618319324781418691885525886952589040664479815198809677769395576615870924210412046560830259007931133879624169280139298353056888862260740002807832468776179863484951090223513976414594820638899257471376090809940993264947989816761420452129047528486132334320529553554760607816551506961521148715735915492071486151888292966274281398734632814541399882665579783295828619964895676923596334986724128030099138208962315343332896196485543977542809799734778402919630658562869657717114363997992774141234146454859770527193644406932482868156073037705892991220295084793754852667410213597668608459478812179262962688105172139522532600840036175603763751300706957230914971843824909354053407513951088701565495291166723469126734865970321458255426117059910051182059184716346321349119433008932573986358892519768940392882700218062846205322299048036779559612379611438899799714724264980303457519164408283501536387040658728822727483215591949258748091148712832443702955055401725374841674887634021331957956143249906530174654716834091376690049616525851003648086858460383254649303785627068460756907760522593032033509455707402960977176056089409136874263775927051719220327387246377279571374983617311824866883107461313064628131409306908328973338469579973062169196357386725903141672332095607837127579664176104136497765196290793976391686975421482154752448961057185869301338218730888982613924727129187102883197588940329754623942905048637435576181246254479745842676565257949749369392314942344202639377719385022661556364762081057635225349924216553484550582731578427984896460347634286525078176631235894091484564141223640105683254029275239420561570662907905774266025093437332968171647449839643437692740216424541032613561528450987180744732400525997121804883913345193623881070013446445360584399559107108840673187433850083483494936461617578649962538118581861185473056693414631198460880882875773963058842342916003217168663118200157056884929637403044837522051768106488115195619998827387824975906651367138884642842854563427719159927310818290279196327793411136905330948190994742854013811283409355672505509112833556759537465830161019801413870402217122029242396999169195362689691683719545196642251710636597145921300467652419021571963778322667015879988695590281986757632733130496512580657512734241054050065369289333021167828414369584442043774175795752857524420978695884232041997351715919663927459784136083090004242649920624561890502341653445600824908443028171660099305276744442774222627263777229665162585956472439541976998399781366309688228905971840872438300804131804376140845564683463944330445530084667359133971338622554009587829350294739420399896064279561179498459658916612007979902510072975871746035497243802112396674272553980463618561291794263469551555929907919214382798601875773760413538689287054319487183226125272662575399088993244406855608846968287455141915541563437611461250032492217446561899027226171144652031346566357695432649445161901741875213887229850322106883718127798409998054225259561114158436890253930970443057008582325621070689145650247451552727679579063806375831366470575620042832376493077465962376016523275974530182380436190518087385169010475754377357440238802841569952189503526408008070944408269569466375395189705171712905614962440480817824980652220660555741824190848862886421320091613457510072177957747796371848267579196618918969167895080775269021767338856354451061779421784954497313056921753573882647487645541667611068461410375087795632824855663799116611003787390095671810715843522228940025323691993079737517158595516630535763703298888143043133920460995211347289509557184759561579875243595370212475406824196731326866070249816534946107045530238788736597948217248557609875017757962044620499886623763552545448963652326244631617717429961495355118758607947586351186181482756540659606533550835404927792655801097462512180143082174643024986445362732903626928294459618398600594885878326332020064894855279657315531953257167538485920687945155746508814433531929140695791674170172502545640096952081017239981510733008153365099419395170456651460458246524709597807803460969189111533819812837788926203190515658923332946140550072577851702735293804627935591566442077036013937731500522427390905834620132479488610551462536671242199515951110543492533103426829638985696419087173429028941593578965526554747138046370309687712508872245349972823712026117627331428027453797471968881948866509906140528100469843949328914623985788029514652539824654370269958121746113633582321029328337649092705374801471370477749489782186695242408839371278033576393096801073694280817362750556137389357484473226067481751173472835788653764943900275816646299167687731333972112209537678629030600592445933687786216225299274286163099951686690913065482422397287043050949850902408169760659530079988849722881145291437374384932997875251510417699369289230253734679325998394154229983503345337088068291240312068879494438013194235913378051996966343606545047734190223460894185274883778533483898296319909017176585989435928095861508947085649069323587795122813849383423922837536838376642837518577548495960032875065541001270515197356922076783027001980271685765027017605371795422574624746616054972683687827243680040809337138189648672109164302367378372740273054715053163966686174542690634347699327120711600212365967478667952612762445905911580409372617509809872129168911224892730998232535182414737625161779140491600300596306329325285970999088993378216583257520474442696735306827391649044882944045883263548067143742235306821829091616993324159562125404564577592264062540358612650431695931364206607956039375370625975155043856494217716588552725635758875114667478579159953528749157250934939898902406954447044886582061616579340568212058826969596960249745846232812968557276682253233112888240392587809498003952981360211942016453109731661091536581141397339180224154103893307163027724740887960639492947561163039816687645985477180302567753279983759292267494431187816423876541386344290955273810357804932003242266863889146708571329896961736868719096707101585808201050303290720993994042863217562978422487791813778746818040366765379466795038997347621899448308891109588940612309847538187293126461399096182286604960050168012769116725934119952064510879445393855868192611413448572206893794796903259699932291468487426983142824159755992660726961727745353093103693746877546184611948414846404931276739398581102072804442904759672410380033737930006607105880065131443693409584882638054930653215788327092849076791873363053386986685381955256183155491054521437818120624966692196380675595287186138444699093512280015759181820250467802719228622015030095233954235479670216545508420830685718229015915873303967859436937813606360462946916251129021608903730358230059111048698010522206858889312789696933599584543983349432187231331438611154537114598968573695449361830553755245909728077175437366916472761898720943722231419325363288589783724562051833472492265216069019729181402034257844492498750475635830947243602013571140273214844068996859546731341493622837543542091476983328545667915464492973399841217043985772803484647903891100194238062337391137758526417783108029177630441579192643028874624206004470795277758240161490688311743356193047205155345380851178871952186329121699346946837709983227361745077142052810703953394504406043174520992178053554232694903901104860670940657930367136085700316296543430380374777405420734306187929112938874683119534024727374863643402031685686294243965249188006574251252604101748391909643651986367907118442232266639010943427553730751910829371459247423271228387469938063900424396625825287926602708692571315635541235580757768735377615509589229268628627478778996669098520672067384501639908568889224348592271702690302625167491679191171201302744599846700493161437256961835653865467732452043232577361202993017430763975758557348478240229059158174502571701279645695180695334191174798791864855998488453420983746119543468376498502617922577919682657447598709483164100163835967363393774924510886936968306153918344251200330318302127364751198602241610481693717021453783006065002626337018712537685843705277131364459343822473001694490302045073696342842283213350034968340051254643621743467178818694499378103451100456173428353749113864183456210469989369414561740880445220291375005573856779497936860777541980120766224100157754958583934309958907927392471071318638443526919448079325757289881807859664142777516371396420825774168571280204582855285691412806010961388602823077410139579862346467879576020571409686799709031450106879214480937847413761222484361266646713858255102966431138188639988581102539289998535965916708640924069514588048215119329962654214436230323538049821596245647283775454217674647272180158593593050374021537321703244872980588230451888767048823379266592625475691912869377712344645305623774392070109585916056974865950986249054299228664763865749470930505124055359540119853688568233560705342785168579010141555186345377534131926686746239033576216694498099737519414890513040902301679480356122622079329961606300669578707312024313008156182917327766436274419616049992635846164321642876788205150844329421655741783769230786194775492215538188457968433244434476004414249233598281424202260259719411520546517239834806526160440747646959710316113959095525029474669520355906167600810836577868904520259740573736670213105893511250171481283914830400103812203164004899661124308114179386598376662091174446574505236887847624626247487476330798899831360572581933294426037967560857942891909872857595658102262989348488780373416348992237979889096840160427665730804163341051493111629595517465628218897855965410672467233290227732194796571332672475268214935946692727132634465724458684008149946675949422246121471237801102362545689681956492104800857706006706086167851151706136418217013733610456024633045911088247179476032764059072949868144868869420206381910239627010889461614772983791477508085189095491929752409453219077701313293523262435753273426069960331546338476769810317562697140635374676963913047119781354639176999510258167470013036946346358619756640606215969018313172604725106091696204397749517447879661604547069306114592294641778307786214188194951080983064935056375705636916836033767966718340085923392877603817775452088266127934613969208271272008226472019891861201320019769395835395696898033101813444345714043582375000687373088553896395037199400156119177544820456610881731689828437885183570321863000756441966889962531494962240190662589385557055404791550979224961960033278726967463095482153837042654331851779286549963574473066334205791579535668819162376236287352317138156977559837534695946845392543283080543889337256361584734468644561230760540122449668837785927414797306998241170654883170640719860465998886837384524578290796392760541528921831756007060466240619267235005063303523163569381649700140114930862452003771809078679598788198052990845295560661708396738455686907659970118310277316168323676365974764276884059116512995524667019948927599074684283468131241071795184593488435419780914394040445460235258998411200228927312148063761645861695008521622695293349606571062092158921998381810749045483965822938742154710105262673855646752516723978367755321522268052126551924068147039644243455761048460187617131278608155282896213735564025491454551134869938799040431553679866129611703713601924668897114207827193008233359029253125472181597372578883022449838961173392147025081235259078913048663589432453096663901027552137763351584859803093707767599068991517911974285770040386809180159624275672923163514244444626586831596912692389327646853471897113076356080223553779120286784350247177057629424730501041947107975670841461876411826354898575373167812690034855079243771516022126874760741712416987898579729834979650446197323926273354790434322540377201810003168706345141762212439467740868209074118249002240154437656274849297603171075757029723849160773999709828337638027084090074684072500868868752584908671164651917924343222642478078684626911826676395800890545990707414665602725734359714914208330558622901873940223951438312836773835252998530163630318770302978420673017016325506678349536042004668874626457632389005637383430620753307402847590731665490775888395940742656950619238744009549503693838330492738922109870142831829676161922942088904306766019488612477906573028241959366732804950803981162864013109842631975075711208727961574865040490240436942748196640819309322773827128444827214813610281909725821185202600731777276763800144253179575217254590870294486058332706332645844700191828266034938474934859392798735630084500727400273302445438959345414888140119102782748242146951016532942377025272555613195237777540128993402521152017013185550910115293650001895806918882209214750731895452011363185342372364434566734654658547994178685349366701423516795540407929990549342275978168736293873357963065789222204985454907171941364402995993829484496863867902041222186379915251777422978177564911860141778868149344402790089730195725741113286764982066370825827669631074012464523223630715032027029375612377792620585138942881365476428594616185020003608971897613944064477394562766358194608892755370339831507520756067654656355983312153176882447346695413398423764002972605254816729634058872186446558289766517118223056093519467637988749124858931895431783088849318905276986683069483498001837885787324034334811944564614784885478295011111205328487161508315371698858442405633818232988381883799865743218679556052361444339608867984031249026698769807766922204949659140306652240790704299615703341876926654432494320370472143048919502389285787729797372611626532099192755965435698804126462840220880010665400774884213898324479914583254768162775854622331906707738970040611361722348928620563593648019923891440233366958102862753025216005416867736073674787242074367320840014362926853164038044583571465641144958665985598520693615441715444425241532121843466582697304893483269769837805790925034203510734821625715130526064035416412021781693648960915294828845623809048584462911380213681083698287394413006619361532419152286177777065753666696340958399066201585764539927967108624419924281072685408167271227935224956410158296069029876922244797572671332377044820636368142925882225817391175248910131445158285728252813971492430737330727143959429923366706294247961478082241402976305615347264671961925600145163625983330560012367025400357090725672383508437684297088264605652921455819586868527153877443225852000109480789922470685680319047725504218255815831255373076808836870348798091605274715166082373226009248902625041958313733088312467162104723194266546132752318810433118057843957066432697684528669725148797994888620778325771843484568764120111262643011892064473268508412160930589003979077139282089644552734077790090995120719978236116001459834073572456315888861510047059619396628074899315284175999953123498588904426992919648501711868740200015278760310602942818431261174060228817004268263350542277750423213817620634688002091120007005077257340743906633423679390537288460954008631528469346801516305620184929687459467577776573111706600208034497127910611563946801661359169016223785461331091913128954843051900182770901637584214603910525864653845237432975974940828106409220245531386269174039498991269874962703411467940180996645609873149369073041161549264789727814923740239613378840292438867040068062412932666305059662292684409747014133318216774558684943882093084456654983288790371510042054433130361576070690612872457386688326828785534742224867402969190954717531131486173191549906366478154719885341280576560373352429389760925882330467518423816692265542676461180097082579121671432316180267462875580103748764769619687914347800710365394995499650924296013690812067705722075651629121750450612247284157250085630940092475487481224209613454959394293920748062723761956779278637834254564688133000903937254744456020972288136242103588549672071969612919376930265029608499385365571176766347782110991335255191638503091040160229211772266986426126879462005450084960079492189277921075530651113046817376370622059176874548791335280330418609893210845194253356167535480724618034861068171384383208897001571721085492829151758477687910202143103472590101122527159968242513939744869978903068116991789771757958568483677357916838147643027561476615872657106371723603991381702601524327830081050171541070169161524854361911366559528016854514297894791945896381773757821780764622888434980242723100272381797535181042521269301158837597020098127664611410899312318151851450055190690280740126956112350410346661921507194970711762769172090589258633531662767341728339660184507229788053060552709588642933724011120445457778025164934516956018774395523371029523745251923558844290894331006375754013034793417824683871865728230284012239350641719155632139611502927643033914200925829760421900858333886661930172430514120739267046993169556955516065778212687457445867545429834358695442773550219387624343554578075897036718143188664493718409330851452929795641232081794771091145968746622665796409860136251166369035592759317834614296944956645894565416008032579653211663513863678886821545851363618174903328384817232000668785563669562213341199434970532957769503285577029546953853277833577341618114151117725022677785121038459898282378582265447329712857634651665183733307782629612100368328186294983053213516605970654796864596913308172167898703017181267403756938947722391461072628857120965727928104781878510840136245604667157762884652868204587512701653084589753169571377041342048285309489515885230257164939776461509714114499975872758564906429541562048765104019399014811493025160751227110134205872405543403410380785685730342191411620558143250719702932124991898193084106037092729114071658556049266181454524854767233647216435396182763784134009343757351598271479270349875493685565627161610199413021857442111308542243364907214058730282532133558251574564338419077948677422702488312759561922859603395788633568786889150460158106528284964306338800925769904662895082848104663816946100884970334063865391709654860032029382207674792591213888011893686685700406908176819381883517686644860345255490495497483916246426460526098994010172007663641538935524179386497195018777523100253069438068709940059036380391928035906952683713074046493346110501792725413629138215877828264314791815841353744260482819563838809933087445617864497720032984693386950879415436368097240652783652109084574647572413455749578998047956162370282088796092594628798632808159284533809801431012845654157283795955501357190187873287920949505867277713469601795625691389169716310938939256267520638616217882646623506713781442345456418748391028748841234190561571174767788981480971316154664832733317263273739118402790385378739646992691495687802208625381575525287552797857412926755119863876608667069374846009853255781771517584568464898111817909161982952127110516117340166004321825443146875209362350250007125108426071379812372767992607859450810499668084577066114572449555546776877139259468559405222204463237132182356324540104490034109285391503983141044993393119186392970066536791896833553835719382655305771765702024706004193943067076476021239560483915942966392341077116249371967212422819884560155471552525445392008735009007281027012935643061449323169334076224341195617893920069839566484924748188196252658602017445121588973066926879735846071073333451695367986113018509809052960766973630361466620605587199229986388425128610011105603564893290969277351032939903040632452916108272998562011726170748859217137331280078256067661787076843286920598552628055777697074720844506866902339796095716600136894498838374108901923974418585872554982944198784398521229887471727756991945323545630681841867996700153207731790982334714487004761562612187213407288220928845631468230356485297307589217781576163243914458033338092149277720981674678450140476324800847836392897399996161784824768415990077712829019635928010032573429007377803249692409284060728733017937072255806730620331628683126000335725184149604815476545484911584224111022376589468275722982200738459395441235369037717258679767586768824592593996384638666156477375028886527535201399921094770056248933044615712323755741790568563842287589320869613708158866399816302706638919923006119065544012896628929505644310851956070949107086947781827210232784714686237307858092495809017519448378218285271860781388035203524477878648050555034901389846048871883397365336778824698999599381384120724538426062905524205205804971683126570675869083050957641603701762893219741203065971241315476028808574233417232617060247575003570535162571523878248754761041552771026545364052424203421476468029192261575354807416676934648669180194416399305858011943186962288604253358009742087781623770607802861358005284157678409467083455424763294393927926052913528924648490107659002070603721499319990531059386247805520814761396307842025621248188345275819116683880451691342612675636120750536196644736843526353582817843620436137065261412503362277659733459253406628939961872571370858111418028566106921301123667309424052471750035859035554593079360892944278275221721706907539055904326082245398153959128164648456915457455977880108257013254842221285777549071648689263480162730723646925120404527557534906182484659962191001126567728695578338680954712967825121638171779651345206207998346227959625817524791608799189881834662872062759066976516286454098791806352032253408210011751209474363772744308190553241682039217591967062900187661112056716128622205838343784019718174486283043999464792064005131718143647080086604320312613732972431514808039954469414891011398890879909558179235378543509809664753489023952415041103169707600537254295135293643193748619584591609508421281681838219151742916720238639614880014254619286680946443854325930824122793749855461071626802723537582097156725258642660606409731168464220489853110736690137358526166904894749605023762677273836029928273768729558082734729219299031079572448844265892395047287280132119665793521813237439172703180034780198459258355547917064681397286325351125738188052430394951688371201719286610138952577829045576290818174918726091582162803205226738999825604013567823542846394388457295487861475546321355445302243728912430200613165167826391613526556792231238081643378430379515041151402775733438602306657035214337325909485876771725350973694099396976781824295597825519772504307111630518645085694508537979766950341283265112973925566428286908142643635262309631865380868364481609832193361197753539533034152562698134253075596241938600984747413854365452948282005938147602441048034405961300978602588160550296365798078427145669326451548958553270587665723509704700140196899039607016252615185536066138786462692179612503113897838330104238802725771813274689948653322379204915051106261275417597048855627899539698945383117024174996447674891844455559445495992814898884294559239003420826951004298659459540600307757492628399214211835121998532517748084215637358758550018567850113428170172473868118508273772084449809138929807521283832076183884312471583286225992084262002086320480302176522198990647903565765019278177356354274448031589933815255182085439174196886107281909704829534126422474354020195326665542552519866780905245074232297822527800178496095658326519668991789987282635311575084086616485839053233400032909470502845438517422914573432304961928063181547756407547523332193655727562125455312605752630866829966398392733586576490666252368183575465900876179167183977607291353296031917254160378842037428724754065171543074552804497500869987401260207743175103674140149120507211022264116651788261133113181473300216467437736249200890721035345966653443275789823462611016656743896116590078727965433127211148185091210448329957347716876319146129473416067249729073065498938213263779080206352502589672346606073486944979347394149693159755977870928995256514702897724559281455840852294683582047798538073894826021903604126777356029983177786103410183706184745034416932515424280706407206438120875674528688937275992640935299932371951521332865985091029481126502331752000987763309238458529082444437956964083437880274327264392214116751527761740544995821724268009878264879829423856976436894399901559220798098217160349832856021932095438594135281537743869385889959667447321834324263522190127319558551331587053250769636086089503399005903194479205800267622292013868683014101580358611104801373274447967394309567894334888510488437102422345638411042821195164353749205189440978027458479859852869917558410992057423539448660314368434807988406332883984268906082474679587008686796173568667343181340551373812429364086402532934239484964492173861680810726503429765153457662765538944373053004080879982324385381265691128149560411149294387883827911808076434263293973098152663398756761773228286820775067938456118559508888142213040836631264601793904499031107050642773560222571689295154014620806397125506943730428307843701733386554918567616476269230240642840386988419138067261800936217713093393161596260028421755395027348318868777831608737132983089699137501896897625182833194855992870603021782790823546724119031221826833894318804346950170744400089891305930313750380963666325824042890247632645635336481541813991959927883040206932533791215171900933938561073290502441145542283561953275046212811921299768662847772439792995582687014226494259753009339589227652517674924736835646801195121356080449122212206902964100276681417064081036883825273282902032162014194114661705237331488473671110942505917611488698370655171435476913105378064163643086500735012990203566407977806790595297942218503802870173794934598282740262611486388741414400956862404208813472793266424124075429294695011995900188877510061514120721954367788226378107209590246946147324888847311231166950323638340513218804728386754446655842475414398473546623829247849834880365424483734379697049956008489722578218657425685500440050025801583106237822252778362028189910809598311945718801390113456223366618322291538257492663552288247549771734003801506578161767013258065546385570784841708868652309613724779671076069369781795855426846985401653905795549948366209159139242109600967643129844071017521078411379690857101288917938950893629240080651413459218339927672157687323688641923069893115028868590045461893753770464986058891209887491333277024805561712625825638022899135059090995259929255923979680255713938833328277268617963720893623388929872022405386348917716157114496679492338396171308699160042028460201397741660603764799675364196534575128684225178280236637758694462869821091707809695556701103337038602458449478224798242326797443940334963860852378610659127161608233677428683244739578574892438231062991144260697353083035873225080391331017629024238694189610336165614110175438924660384421837541025616544942450917005375550657901252708759560395410040871424084608446397286242927908292746770210091857112987301134474202738252288635730500130604594971879489083763135921084114535847465695495804704420622498781166030228588297278003625817796756772405293426166145358436606120181634507814436438922103468762394623095178912248402588600530361860257090316153749927034243046266200423271938684320169431205645573270732327804695340363409383320242077559069232604574717098314846215565073752538148064751765442719172118463818488069640765053356408725383506678295808906961476461194403673993884110447221473892970192791049004875582884429148918599447005196293087684621847419519246574864467617871512988465312192506417544997123519512106533530415329818184255593777987389677741417793380446112641289913526230794642807933693458603936481854912059857153533091343717675251503583878201526725385247822519130383086982384793188785214766245785608062689101814261191524941540064038734052075946799229116118890099562806543785279788712672030206791910969699713684796563362107012385670921499230796731669886508119331235573156962438901287177747812983793196391517242513490500008709664571392301358488944709815665974925265476835903456408452522811570730059418551198728870025474699803595973122949980178918643944944480918002441324253803631348436151387893228798092075664831059448463612185654161820605871366966645695949795679600532475269940928506242486613475311937022189800486147505954062784587835982937008753612754389268136221982942441471310089383130185533275964832136512836480274450724204354505610129974637943675562841912903976332296306241783898342933306499468991818217272633972745911552429401142771600566856698023126142295210848445218397335788319809234262264434414760139256503585747761764587660918274634619845209073998157271250791239524541586686008666209786238165153296827316843366878590523061673237902127528488697795926434927350226703505762851171651047820507084394321191928060670894229637120695932298349537939601999117162386626453268896906751603185257051490527498847711313966791847224625369560340479761827061000968675869842524022109969441455071750090360137675523093457884441279275948408688346149009633666327612126532055111322412070578366637465691307201416443647440401849040137299517823257320936232337215529522015872565884659263595073505581697389345240184860560123447777230500409880386297191627348812855686137154129728729293819223277051410674200955639355726306537289349782146715603436355936286855917715618147473124599783385805874473788515049685937352916039654464631098469184512968654639950399584172283154479303444402688968420370956480675230325520807938088531730601760306505720956327228668970568522294676641176733800274853172415539138397246654791773551457349293504194081883919591060074969063717490906169834454743460097210588752236678725142073018910578074225596377287958157299708817305463740898558396666371456585114081540660906390682536903447740414371058689112548219851841979418697237234084027633998653974885183975354274095143278878804059203005497895325664623000298806424331822897926431446961190857681252757126946630432996539685055154825622473360740381477017183221653836303175261947465914652831645130774624093981961303090902664074572865528607215025156556691283844818386502093019267650126419151998640306270274944866151617984010980909457127780780328898689478320779050497176674938069990965129975102129907152518162231611428956912289304018948398498668054686841455521419157008823643289313585811682292378400375669872368527037232522389636208831189885832629048534645204000046987300349918557352125822118757800193460107570326357504068701068188575217637661234315967380102445666532441907308829158623040768572575559054322001373105278551714116649319152629332265917815345301817070262932267423117128256201786264087417896131858409599046155617517317375936229918940917493729570867095039900450633383836538424326786245017890116963521001863291178014085349294543828035224330790063421728068176352507511720050436923177527830422172959057709006474165714417476584662997592364740002927901171682674834254248316851982298971365659616628289295962161016914691256375311872417018882209056452925427390823607648957472482307745558476045671403202266968185607187084792782463264093489075930300073017038067272134138370871450478239788145830321273606433473123216292306003420761714327828529659543396272117877828943554529980242395324682581300763904094350920071721544943468303177519552632017076845677330262172630791156132961452767870407683138496425196232224790903665955516013525220757370266837692332800074258595646552547299905330853807027294639277107793318936936789176953291400380197901801800554352150556526960783333451603150816789530294984958944393827058857429465289909578036552086539349595742134994935682870169942226533268956145794395204774008298805322864071202745302308341226200163394751343757553475235627834981475417180026588905476115260465016282197722506432499647354401092084870469107846111908215544708000406486283457098241344809371598946046444684360741278525744067157723036095800267965877897093139947060414709446312921474657583433272597799069260539580756475675380209791281977547530504675802839397795468833000533011441563339731174403604399427535212970581590266174069395468304649958932780620533880971000876164437984990825106472290288971791687482315310864558968272575553742541043262015767275998864679230014848997025845260244010777505391203351935438308937377053855483221164870718190002920004077777955809423604918864480389515625429471976757368382549119249727238071335179897185752409411583472025960507558961076531214766556047060085352705314028802486414542464988137650742713944534474200941885843671601357673039695252387286652422023793795370591509015507916235081956984494422999789620133645190973153487663965256785431442577951138091715434174758640480262017045910354902435087082165971889015179016980889794250076416199623447822231598258852195157118082761027465715763464696510342511250310221994678285079868166085304435732882638901789608725351848542183880042196798713317354860673650472401382872688723178570737393577819176325626542653766265181158959229031700499704783099877233730559888754153363667795132767341201090295860926269064478243550731528858620807458634054563309719656869466970341639841802938074527687678933761139834621261056063571001392125640267982461238820476528469588915820367864481621814197618179588047810810583082024719789335686270890129835021111604675844535605751292063195190855792573546563155826995474971893838841698816727665255781519900944179202484598930444007434477863880457962005695110409890367322909751099252177205157947080010983631612474346783520272199712320204708489816325590200307277080841566093793428252714612100404372140813569333181801031116658510877013618344521982721267754757214618218321317726724070800629558359818123373627314321846774667914340946840872211284900871894655306920489559236951704642741029197958547127040886469695692070202865221129961740822314246624002495042752213972511895261987084202562977621924919438343769009190167614333025131815352816079306366079582373663901091182396032537227255394236451458361381437621316759529547527551919289587788432395305384584658494509959968977448707796369454355260434988984992234927842494323321055278255428064598277060146529310637914463291839221185072340190979312002515718320636915401692985016772576624604176891826077774655116531776666274181697885625023335961276190024243716408713142905742997863449485221775337185851580144873937828129931140628884841009105397187298040508299863418487877831070870062587918215300993302759124951913693139632585831992781814350096709698132211488387568072584986504762110867675075123435752202258556240959155680867596704218585369535929184965058190150635046157923379526131319562674606213523329051991072056194390210409894298491499652772493039996396853729168110244845823580472861633223407452367900535186160365310981315377427238338059208248897947662514713155219883082146896120677341499824571960142295684602603130458924660168817800255597378763109582996582263478538799252960097564560212249274810878272766037219220381392031735021494691152830465752087149960080564692370114498726166913932584319039261254655941524898017516487167702408547974361569015911769522551957079381558975796715043158031683419551983797360401861855438935545960773540915952109945715367608911681226922419486606343469261092704834747186943074833543437701979305239472194788408704595240967296374549682342102014919011869665394575663798182231472652419294692163350614570426976401732226575522668622573710484243912982330373387825520841391325257184470155874124389491397348406673299018821467477855188631109987206046116232507553140213312894528437791528703258390103946182060400627346179503238355282170841374535803158004748141639939444907526716538525052033606628116506558295901248071871971658926535013508165830787825527668978886361287127650442014383599310957814963545581361266394678516703431660951301627551287678070999704461645685926121961128763348255033976134577691793403815041715230881006636749674604990190611020290495679755886908808456703193483542468287773553492946040676340851413711867278915856418058364170941961000972784801419203375133263473043396076520138712123843451464330456437684234879048133482783950539526332884811755105186705365281981269121468077438820908532823060976103049281385387568550602323550733813462511351912103685915091458779345267265032058487425623624014499133695622806954439782702890584396548121225947160634364458153140005564057693358789759295964263050287812665385765015868555378778347934440592956988041749553766688028261372308776470329964610965904291971412167575627659071585004449966449758535908376123341930621873509014011174117079935813549983066169908500906153957923116230666507087106085338388618398230073226889085621145119036934201551391754494244942927412296996091076687330888840351019503758367176379102016338136780844146259753575344269731676254849606225732212314633721362214577303377999929243976344016797726028313557014321996893650275387743558686536848563449359009884903551371157120850525841441813721628176496069108780556178284948495815892078424580973559805338073635754788331096380357519191917484416715835593076875952371298621823407546470038372816202133384783320951949398538202730730426863598027242845901070207453916771573620480321832994589328218260942247620649556026491148884547804687506114255163735132005401397464519665722003134980125984893020051245265008813720415667817068702991661881256938967795060208860712331478469114859319175880602689366723533357349683544386275062027466048673541083459707681181281246674342229530077721248946956718105005284304539370096329883706044190340411082973567617444437266791068772826144498894597100727862904925773746105223378005665299793799221162957025406021459157255596321896535406455008578938551381459603840602197949510782776185613618937157054505836289405776540112575874287025481922169849943259440213226476460324653743197368046144799877360955874685700246754842895556557771871367939621277332768171184086080640403821773952460889273220450672678251428001960571269300373590741932303156958875437895055151048263647587369171353190026886898761196417323480693312119533772866310020035137139148586836687257983783188030559984821764770772102439112271719611417898556376959186950748727503391555378555690748827458434069396072967088839795147112598130866569730738926273823796207232853892339396330778441786542146282763113602359975949435343976681191108765264123408301873129095266316104359343766464960396702058536955542864757535302852394339540273057768927065131131463727512285834755649857515650826414278676285048510242163729582400035480916122162925180605737076522667357993784707254577779936698908811569371722274812728602146597216728951211362552180458860023107295894894228779179500761176037577642713730377269744563253446304615943374986452643963849358868552818827652619725550983169208934048203384117657276208499803483876613160768819759804233746393589063340515173409060713694285261546427230866972167874396758270992584573892618712142483308528495801908558767736653270420150074518180917767486661620395650869230341978572928356398877400506178354929736791355482589158615126712213313079660014029904197812702484550688447417420289753545270190209009701025178135228660947686918580210962330794623704464549639757652770804949579162304413141799761129998926185879898798151234960777113594815533986649833201659740028203090841931956629346208956018202682781895158361407983726357095091751252149967149887795001529228756189160815292984927546370145311223920970574169171970300779508619240258647120605413910397903463170587758382383645809475813550045558990340334743333800255900310389760593577111843562995506165983707276655889717540164110384425927296961535785169547618230053827182006746357157040517774965598654446941071718589537310507848099468593115617033256272550799199848460611738672946458799837456616527396084622420553706917488493068675115426997083015914173625499774099381966664987885561315630427288841407429072521255819696133500532491260637117040200440558756256713892486453839189605040107737748141062298865119850002855831539972076388013812686322321736548081418126791457553780521200917262917254938404696983644722322855024777591577297312087254182206409526102933977778980715571291449922433805971247003203525102996931673293700539221205585054434166355208879474861809153672413782345546479406355953122094478296785666237054633684090848394207278714642249004501763219518848198304649693223798965452332988829550434724498406284007742067848817261240143301649799391575994024163835929363635727376374643590862935509534998122074857315132208625703065076923115162456381593944090574802104777695286883911638845563084775703557972382284587581392506727119665062517818828886937706744781270315704735601455771798799958367891622031225594050903857083384646511214531490114310177474627965887523674262425994338839864791270763557610186540321097248427300836447254669171041673193574089797233848587294428195518203512650821189030397630284120734641841656039320251636429669924385104218624343414908693640413464006655468792475006722767830798516913451254432852251828053315489976484426478434003647163177427006114936605624804772317119602891282069231589079008947806188274421535955186801753588795199328904498747697711725774697799397206141894951186776676151009372898627050202296287293678388490216704556906624406103177489595987395766559457333184755955355050927702234989086809170612471261076794255376873753337671408026804561117975058404977312545879038361455387556068462201508029424975040862822657705312666435491528054674297930020401858304287272169830769773404035385246037675350893529167098727330381101660239037555550660037159870863208197660173578472642416247820239145782709358831142395019946307064003521971234132032882988444847627300709480410369931542321585950754407931941640461066394811117370623531819251059633757800311648973662877643450613078689844063020006438789720396772491471392726259995073368119887731330617643885212137577381962051581714135724299757411529298287316051175490883403885884719440842520614425125285506961056043006583917206619491922159661453679101674036020053143590846589244075898072052570657175642306915058838260872942848056111489537621261729850495874011709646347559975464502025368714659608536020382820329191423473297203215240232918234530015948054575634165053190455078010469382755412865837489632026269684770745782948381033035923588748889118521619703192881244450143303400060694883542642085564172257265325677910142782975217794251482544112997443418935134336564071612804070705430604417460826764945051867260466545275554518284001264984176021397417107550656886618048301503571767100275677950942711977475928857297301957910507421430337028878176948720959819296092522592074231651395215280442612258151169775949911253582695642395741239807420027083201046860462039550327425389180523781090863360592735819205773731859634567454425846259951018842267747038437316449043503625926437191897819074585604633654895637199976869921764416130408286885798537076826468515061256164092247700952706522403505350906905127140130234010271623177761560841000352746377016248528217393307002777148065048299677702005546404639636742874591004471000721362512733595553095301804356399410053427054687896490455523473342830873388827352596923552159689646781091630527107887982011377057453933300989801008381133204183301887567513322466839624679027818320875427640148417121043016577750374544651320469494944623550808241264823043676039106024784360698733577894165256489353632590745508105705076954385728154703455170035506539073659629078865748361490445263443164833625846436311631745221136175246585548084427168763116998257049650893331906380450979808870918524118427673951033011427828249362587188441370379010979267406450147691747651134647998756691869192509923749408565494167577992636240370696854467951945096967378470921258516762964515610779900832821768949444060915182214214636140283361138907692435128356088373483934442239341596025726639844088252804187530836977154176581880648350008606523411916788445400403908405689549602395042506964070309530186438301213903629633486568888895186254862557481962819554880147353123266779180456392317791512491402644910989778715381281818102713501535794627438243094455272579124596889074638409577478005756009126386185410247547365493048353193364370775349664946295813003869990987480609033794840424496461850014130705542381686060953101184981982001938402693139066956490705407645980326999286418250525466110159853830560930842335904841724757847110136880971024801430660900720983214373271358749775699626402541951223514462634284684487566852207605454768878528779327936447169111404119457872427481643835172426654929305623593758508517778117905354453350725972147756228456283407490841899200941565301499256908578137835654907128525908194091448225972744732909267934505370883291219364157007469775531538113958600693789766565080965480701762947544696683827719133552397408252456311683752380555300617504617747840513870135661189554985361412887838125328593930322423943733434030344154769966266619096909307497089610489084674021172262980128876440596267796098476545770971073837233447410775589784867576409879529563627035592911487108817670743546649783926179458375357439539535768597459589595815767098451983921384925133525262662728649609144050561154107078360279318236293782446267830808800751150032855352032348829785208518356776227252060103066991560662610621077741463941471738266116179709248612701012458089947490618613387357983268893090492106167108116447040159571754401086777727182884230146827538085170792209792536697641058286244502335797391224572289320241817552883671746454615505589152952310654956876424264466999423888043222093269602450383109770391261185645995651953797454241654817741693332106414042854586313851574156361714199760051000313059628775804209254908483289958463811408368870536583914035816600952857705907784316922493001114619671102172399307264201421168384950996207286429678515197121801276268042102205201635288655322548592302557755791317842922020707806231233444079293882514342143688417677054902676447260037378753573713718870376394235044827842183644995573860443323934954777151399605267110867199712650946294858634276686342562477234559189170643210028262356851461723049394925982590744003927491524549920516589545700338372220218512942057448187943603673201516449347751141860852571404988172704867935421176107031151409707867350920613163772813012787732589124648842135612634862590613627112975325304591347751897957222481804428179698050600626520795148706011860180919401398702370864954881072917788845047761254494726668364808936347723747595630271110631154256301256333347518094431568626656656149953783282520507599117751890640188563899842793377585026679264287436880530899919432392291924726433236891553535225475801346420943342213517944944217346909447279832368524685025754513676488036302033571952007134373167615410696263468796246468906357222739162511083460249208667614199820857406999856184874510167845140578846424468407320569195513675722730372700464585079080949674283424159724023820337476475674837472872090275146620845706149182047495803583934833425730603955809606073467003136519918870932824215067950713768930155252385063096344606634662642091124207998183605937926018821800902186876739815092606283029716796638517112182557360420734822606449701857612235366730917662501611466266747060055358162064284297417152806412111393518819346901969601293242674246752188973779190328972727523952682107151900348325538529013811283218302179174029413392582115781552846383032553829405102783532362634949261977987115308273967112929054204909959798220446978955337135537310475375272564044537775583179430766526707323106534608501601880554418581148193128803693751119455873827305131555707496316092810762683700238627869071187513664375062838722932806951162773279631892166489830814981710828448426690070581113396927357631273789705887876646565824605364532292593376574227646262623246093201406193579440825611643188367521275293955230775063662483416366297260253825512005917246271525674147548208775973193842630199007243232484221774442134072369917296160681944848276374315111007966706869646218984022947740342632540306996257288480020183126579633119923373847906423902501271200749291376016421876934385080915616324109941463186524797396164779778544094268277425969188385613130686028326005586646199692404959028229940888308467389741464215192965057337170026055574428574377404141523490359845540666813302795236411657212680433343903589302638492383811921341124781411226296569299937614522565956155625365661791991775723133913819656798327452864927082230360758645918344105940540930959044390976858366455430495220718925103707960437380244244432290291916438139864619224611523460430203015211864765791476545911487354973237750984453484941735178210302185188398097322223647375526270386644469722217246176569400809410591561235475146588493322063319935108787652646103145087746702882672000367098811716854258722819500597762100476783314902759617784188458721869801249568771567276194903103111754605033933102390063251661583011338167867493099591134973011223373774314285543616280308930187259768503066721712195615094988765335353790495827635999959963699208260439066174829768268067934843287411594799149544250538073237197731688263772202710022705374972647114379858371058866480075633328057906320673234113859113769452167347819133588975255857665002155764596532272632218839133018352334384812349258995677788935634985696178158506947570552553849645234555262583932100888605708905652384353322553160822084229116665587438102056167983116856534693960590216438600562601724730382269137360760218316214451245388473830256448874923839541736320301574280688283183998355099045769525922894424906247726502771878297335639112154702630246744697298008318295361247689138539963160996946522422831005041429210416341762666690574529179659812763135417392297065088280813287493015085334860392871354176418590556333849201563880108796534872184634384834967932911233652997989477799997317361019406868704750157520535304288579887422970367113679919041278590983354528161658680132550211098165077126045635374776979463119849864599178101224788623587573212669464709253380859943590490510884827801727021692171343029630031697329466597714375035361315946672715551825849293651492308385873061851496058511771235944754857676493510698848718680133264997395715162336847230338904898765519332860073270433258756633513954866362522193866666579184991533604231347902405150615728608752372799514002225339635688166120194911550060459906349657036623133913111065375088985181616009494390311681539438291810186581045427734861344937577973983267430202070132345301241321690734635113695386827474055435361728869230449228359092816068450250250480871706867633269781799436301491501241651146160458156771150739272692837469666748399882526024463452987502919683362869787297732330061319858525252256747015687046339448508686265353828074666126460292429490855279461520408056498161644849299223196939479369222884277525268080364031415465568046956766862965865237642869466127340160214985079082990284509524128533026659384333804612736845269033856334902089913726899948910660434628488236616935791793053957990245508775764324699734848423934250722159206276614722249548490860026751186460461884979487608900635527856211540879462750845673887630464034145280803561556655001282302217601006672114776418839602398382096142354800421932257065136369173966231973288277905368565242998120729135308293576655161959526261996422202917362088180941478304630969438597389454189918588517306725241797637033138369789726513942975822283250356544251797905889512656601857688377770354542704773476336225661137088384335078730590146354234703394502308964732044664904136761521628272964506276674652877288090666788273014609968914369085241830020427772933582858466531486674282446859168625134713565195555261893199609645301980517388093841899332872988708715972601510338571460436315526677450174725461882853702583591558478896474825701556962270710705528241967386998981165781402862092931177863399204253910474555173940720463777525953548594852612025717827703493670842812787691213788791663923249697404627930390112886801005435735751467592477512962619279132298849502148447024515115480164345125775345391900434658712177724407583129722710169360779928006863113834833896608696818438369378988223562588990015674305918560524419414279390303231792223472228370387996421835310406807358497697206127557207433296683518788312688286404796691925204774822189764987824927780869358671106850283228212473358969807953476508782928613480173685462038770301477900098959933353896527586634215847101876670935297357042362811311699235174031574425197213920363175610634161650794331662097949097539251277369124564623127732007676694474879735818219135145364535645070252979570399809224152451326589739514123942338958942836475111105352245624846102404698822111193958821296476734333386748984086034672834623486270378840758051109879223464968827501413737700334329147428489162862541924321281441191637651545169062759224952553776741404175960753600225114182735352452479872200956582122168932774250724614942269326119204000206158017808289231011802658628846826302065329134096415093826400482690721567215265607815907053747546101602309081274187586815002264531584877134692907672634577510119135388240473107978250478372239970466213118235881507319536517019110363688643969551145249758919567397668938242517675123706825659661780428196657790791958975972630223288206101994160871522809259129669244700238744428934968757193108212019259746626451298115082295945021734369323395380952895837823641581366962180902958237699026908155716235870724567753186227388133033716370125927319385805391355708242345085425704054690726009464497531148045842995285528560031434369223269100733853883570769957949196660469902360660193131226384661009278942070822715913811250659299531316014919017080143355328559614160987607067687982547355851974289056518313895001904442701248926021288930297132051589995823799688748768336902139330870491985315096322908480966051561247821539373847058888627921927777796500550515184503064428105815206858894300360034976044051764422240710868724019940928569004829775119065470602987522745725676973232692185417437164615790686733146611153133979669031589787010655095170813611217024469726277560656552489382302497293758838721141652990931948863857513604549589156962342266053700797132617394621041604852829442574963396980349502901303198747112185639134335145735033094569134764885307651911992948787639614823719702116754289650297245286996298107614853012887958111244227064899549370124969784334062669278073267228623483855708586729175751997721529624993852857580025632092267173777709024368412257208726709243068737076840871480542392073438788892956163037017589069179925506791725681348433296007500961036974126740790495481297575436040000360055158337375039255744575988375884766824825940155873366538003018755688573700581299290548570031791165624115875989260332431445813194942730166848459951015325862949995996969068886950987879466756783616711426258942328964241832489870306237195110314800924313480373955527366019475568219749220992364894309907311770597701174716530867859913692003893542608069758033256162205070861115484573280806084800368068460993936768161504197528652023369529720007472833468810492321957463840747627545039917875476409258836675434849840550594714281351490554128501020062839215448395947808820603496064289285956596528552843651760301387024601555655588594401697612232184566933351595638203062293629623197957817192570720465484960598719040400999400963665705060370040915426607142556352484468252148016086410268326376960118819781234364046139316462114956706610634307717896847157716755552109347040859521847060280570197874168220993977903329185184634370292111535274211382536340887143849161424403851750360976447643783669921541377444036061322067334161005747191438575431590839712718992049205909595105831012547187075034001394954527828975629903200325826378760062379449842264464939973598406030092777010451728394281359551794554084226348509840199390326219624393111873803041656303932574278208171431994083864142906393584618797313541981731998948000287109096897372121796921284194989605277757470372967510029804561023995485231482113962441939589591555180260059561344433896500684015758141507469342236503439274020624681590265696777896266990683079712822118490645712029466478625445811443550928922902302533443574529297740726562117808580664094377380629416367482284968237136828133175748555510857250099056577164094468085564390102670602807226503661353978553153442390712827865080102096478799765479421996551056987200413499576205183700239521931461068038944264495994501231436801641816183520178769402293729232812025155264773965479591771383193991296579492054527646351807477067902962178471865951761981739406749655299575157212894027577397090234877630978309866933808047461729322893565078058415937522486500297282225348561651176489832982489317086115411968573154809614859651717051488539283908528237687119355915149614389493522609896251459892691219366868213827002985016921035697714980340169939528848930018790318174022637816159165789895709714883749531016604620444177354566431171902947158903913736589534109708335125648291179401150315655945271025762224913026630064711758868758050639097082890491304124757945052958823687095878649639766174444772984271544065087487776594208863806559312975262065895148664320611951825037354397578010411901804520904899464094584166705550185968129593057206181716338619689453121771417147477528389415427068934434943095892985166584811010599884961889263947431068604606296456204071930075390730187976781262898932527199020216234798436839884412217129283747887803358123590923354543539773818759983165397079329008674510408625410448633029119707081902491815075983032682472213586983844461855810304666972003026192870251362434410844082167020046042402275941719338303713140537000697402304546739874858862532640510158566821798137857074886171273040095577573303054681512581647465477819700093034257269539933862625822319741560899025357189696127055815543626898202484836300638436333786965322070132809222688707438799509774563934194474640913215512851472675790297736234619772887039097232046746312503173332171391141551758361405733259439052571642749227859144567768805234968656067808748473339063339452192643146439125013799630708006787759276224938937382130541153916093086403478836360349504151687328118121047858537343719709314214517292942335016718404779391251428545590914467954914635315076064739586008391264847722538435792914317886095930831185448678312714838921632439746453927227313353474361052596541620111081366794078740029694138513894118087153850608908550835657650551644070473650799351967817791930382184325959004217894785890749838222075771273600563011771860918301841377294557118292700470706661471453986771355222814246288796747271550923582524025341033252848405647495288849999184775579091574695088712380090769366175452630227583670642978715744289402763310515039743178111377182901115295282244034755514150602135990101448838997779871253408915031761273928528792970721948995135753120887777276535217591908972150536593519319735079805984479227752746336437285642589893623918516434030085032329640152770220593509450922936707742414319973741575702143834792983365312918656836139321857706335524298847194888491484133456754031593080077714685499923397836377784083835915664171843664134333783965676804562447739029850275598697518911821262497005013445332820818102738994366586111498002472800773154013686496968489508130601250646230008366131945029578249460394139775626160128279862436949651563341765122118273753493645610388254201915581288436872223003369366732162557573838923855412227433946345900103923526012446686976059273049025551253461038947399154793674417423792477251264488114943335400266106134248216750504021147630449655568292302914848411944431500624205550621907679896213914748048760881325405748804295469109508636332098930475458499439777689027157828120648636499695268131661586897935050646962158794338571765522070090025460581440002310091067999690445977201609866411837968529425533272149806341975195738422384139004265756210819049322982347723205784720642998242307717822254698486702363541323812153187620448751249764856947893471807377920757718067810152729738612785891388887479777559318261190084272315238823516465716815659587591185960712454430289281405335636460772991872990973552385001227233904206656956257378956155984164380644443103957301224349926253694091019604047166670074418537248771667590631336098040291906320971623211054381432726493847405390128424165701383056768908091151693261231432722399344613379304299872646915577845276317402783112795373561864568624861831863795417071030068209351121364084772279120788985090968951421101809925021109851594731117053417690831612822278700280789637472474590963471056552748203793740216258801416176263961525441787151419053896081587673751446891223822379025129166094757002357839127612966827129273467729217552476126213417314100493918608421971132549807729828286328537596151674429403546699281276776459974639591746637616784146112521220909699152284193064032334020516196197190595324651273882626477930155258734289659733223033452718409379861414167260625257691941787491380352038039461919868470918016050511659152636135904414194250261764099019389520441250563683683786824569387772996796129542756994417186634678956922892318190214584160025101343113541142174834692010479159139889905033893679062845263512982752875076062327420561025855519164993621818941518319760282879725306033359134315054070922039431368478603525137068198475102994775205053020889002096500127840936806256844216458597315308761546847997037971668911238879077039516897965741453200071366259158211591664734616319910750646627667363906603501040411893055764891388690364782796565223354403155344410400607633505403636489709807098768257860592118631616672414600041975260823314015342490973965415690662041948756587689786470533946844706157477697910404070715824938082131399492325015994156289438675266796683967643329015387806878074781098930968031278036999775102324036987395181061601516775584992140675844958839445989725518133530336708391852577107770269636111203476388844693374167912677436825029523544645485633940693051779297059411778137277252898566599929647120747405388155616795226224639970111836968421351620268614579105552616786864239282177590278499566458469991643912497764123126994594329649616797433085836042326261613009880987155230475748031508310448667163337424375369712570997280090315316920088861694574238573130937476068710443029289302371264158357247951333875137877809518784726881852463875218176108723078125722120787544455689381636560973970168255091765415519276534059972798167925867173379585542077633697724260426930181111476628945826996517829829744918304727248781552500002863877420953096695781694467902836345335453791434345377861132314973330603159688054787061253840354955824600867940197532015434665705838760334581293296105404756865341847279616620772080274438227093527977916121529864058020718191420740918882979628937150759316680776404214877875869973954123876515804258975690821663557911573128756936798867037847140644010942914684444827943861475990036064900186963725337266062992859603238891723140844969010122603998437902351489281821056238820503282543217918991739689070288132892121606505601950786122400524433338269959978331351821014247927379459027224153726285399128521304841010335031190204219123845669564856672195374058361531807158545383917874932730010148204964153696881937622058009616560348385230982522011202211822206972196614913813476217701452002745196891339179492121925576766824991870141559971471450428206571780686585302272841285912707321408851986817917723987988092304053992040486112230460765131104667999438048369298694543955478902225397990663633198975494511390012650134455333090146316204285360972316528411729408070778492316305392558123370626967568157657567845883312793730018704599489935031638187391401074665539907053188193328791683650111466411045548139995855377944459082741068291531172550901653800791281928787813305654282723919408396586910137767707892439545424383133619261728913134671928722601581345358875608718612184644532899153122601743157600349293592997271268629922764912204391114910559543576761051643677958018198853755482133827465999043657168885269732972653152895025303007806466400937128946623968383158220511153995427186616080975635021567058247425224530918559866962191841367212312922833555732994927729894034996895629638553861776359701358872752220893567044877441758495854747802241851440616279786788831576101390174549517120971680028802839547081061623129847521637473731604240664611885787559714597095333813915985747774112413762627030003539991436220229719557065559043952679746187956267641686877165771706440080498761508820492951665897957815101306684104112216951351048330101886506220418209305105465017568019392296201876062793713029064857976108062663516228909417547513193956192598711153169536100998455050304213385739670469461135119068266113940141117465620252780844332896046062407639742140577713839918777561683202534941024383319284239591046490626947889305444515312433264549708955190673700211969306175816375505817440351833793291312362467250842979562950950174194884735971027815827540436523706755087219044745503242340335471895815156934981474150372707527749453138628728647985223949566368680860561883402414555986616135511378985437078619956998155044474305040982980043712916349958746666362024147762311997702755025811411213186391011764697845521390467356034325503637820352181490814353675533975637876446000963104726286952979516478973547465782300647626705558245673265149012592274289108537482583510880402444461510375181602008201981609305131061917889224506911215071310540015275473563307937219749831609807623505458103113686571298696268899167446770978768165721635281267020731337505185535417384278340126983124983861852474043749683381672767925635828519683090351227491464733504268395053321455695733941187015597250774819486292941887519446629407439079881770801892864939812825454547236189047301692697495390080012220810375838903052463534680466472247234005410386558046030043384488931699475827751718835979657924369101706294882905252243029306444614026677001499021675849291745095328685604342887651526290567339938419893151088698722118209844913384222977791381588666677268038187407773169807488519018825203617873955453614868432188505413853770794088831667016348867332027702076959764566305254353363992982135704538306691546598059556965358763478173222658192268111538234327748094061889581609216213749642172847107452439071503650531494836944555209505314934102499335994877896923417887246600619617896949819555601517120198669464760858622840270418185404912421993707642856314341293932430921970390485591286407110097943202863325093990314399378360223380083470807673610864791668650909284530888840620412871748342225943832987212444574291498175254035261190894676716765489432417174561690057856765529088626677483911986479521939189342733601892766310440895332772163234693566052439480995500833140802951879912556463987567286212046263896722908493569977326740587640047215158957301143780191127825040840834384626629126898624697478490421993579468265342473964675599461011154529594569704888973343686052534292644211532621339599597062476703005206721521904493276101517522101242432779851183443218482998893653112262349787983629841760212904662075625748285396990388226392982209717271237818404402439935463856014860542967251641520505600927958754038765156974554799150493775282146818652090731860430443554856759145401848460797040741697706512548470251069585975651717859176026987007026290997034588735220815622604460439815214771175615489611921588922061329275140681079417900759083388266124859717319048643179199269135730974635180675366693033920520567973182027827176573597732542715699038546660928593796511130273787311654678370388541330971254814186552866404668445673030058503018174308408548813450081881287381534410326319424967009961209119000617653177255921091079739398242250673749451017969784144016371073233141615430891190126579957677719612750791331995736338130416643605607115899462996130315848495380027574723299173685478724400057113226920029321813640398784617563978705857998517733495811440736949521275085551290907705001173036334126146873513790418520476902992162994546520848603881482765813106902254331563285813830295215925794846616911741482860767137796877846165952365672267456787532417157709481068261631824284376662424907263639296983967925459028595905286023611051364439214539002241746254648499947678688741018567703736195415575474848549410945121008563036956013265850797064947950806550814772667382106667817432510919841350144992612269165748768282509340888369167435270510330615104075681808446457689536264376548943810996365059836534794448379885505040565322837539138545516706691431665270684596365351438750106484413958076254937914696450845300551997494287844134115907146520911397996220984617894409773818146713919764813211552469139119409000296197528823730311850982284807667527194466465329907320553471099074319302330987695610975382955993304859079410209711899770095834500816100997338123779531262423743350548777217918331827908385304430288795394645517520346961809954233717058559601067973162225261641657162349158966241916201980736253696480329844263572319494303172605246234225033754732869518181692623429917831983550131523492033896935433158045010871347827326941157330068562830689539153180782921888857419293929087707672619934083110151375824511057997766450547972799365485794913843360853685149065998363253792373673719650092555068465429711907234679600794629305311152623338153278871880952694615879540853687250923889324160523104201290970643632604237565217259121004022339625252706358517435130739323325622897305662850847879830486047582682259778135838366883652945437935505930400772304948377262166292894446614686900611369673889034420431742268987728180882149054982425490386881692219513234509708649996633694969135571113773299782790725439276487036774348491673508766948553902236835599700751487733796507949794237589990909795758530148648561222667316678519415125585249057574601583351546279988250404415679170801334817001777251072936662474664044225257491003481483721898586061806125436007029820862847675347252204077307930157821128520060754801577414545193109800812689916338849781581023510692114728954343870200094568283741957480879582121344088891750733679676154383820249894001147495574737268442538738672197025578304488631347811034125062389473795815369111357697989956116140381375248840532678773530117032817517363498400767059787374690369065831478635626453533610559854954675468941011381118711636951780766158205206908886540455668711531792628149058162015504387477991983618084375172516717689641833290042249978851694578254477970746753499364836466214117464721113449410095075648299702357246192228132724300952341009277087557370665213292414986938385874273619530627679346491872586865983939999518481400461808116531495497283694602116877258542076430242823841712501109071707705813816718883655370911379147572131123114844011659402640193725200066969822864161435157441136927598005727288456398653001608860190304688083804052642117116836096602657715573088930038617054044675596940468516020140550374025607518148336065806070058386917645935056349349117924437523009595798426013822642919295806982608805481515651340872524416886417914877722711347682902673146727894315570290895642349094807773147588414716831018272095472608272392597494644690435710018921934750796427529495803501813428572339307671222440309235391148135288639751659714901839958438342942733500308975391394098478416016021874681152402123226522078140649990629293054120409341812200564398295805750922479514965458536735338680627987978821041766236434985008123006016691665353038660055030815880144677552277422261539027547940118462058123183809083118154840491878013366362649311998756951541898383657686825128598241010408983187267231496988688723479259883945078777149035090070762312829248916794139083211241718987147677142605755091879892908514028958841907926143865052669123896282186510804607455365550539191487613115861198407008387159968764636371400160854230351216326996008254215155295076364061243269750849514157876818381002375697938031388193716139429313768026713546478722788874932942160261857878978772376840178571744413588453037369958558132456920415915095703606966406299939054344487753289592242970478020831491314317514785799505266269878761261106746999519632689959415450908827690713420016626598385227220018310340434541626184124144655626294761905629168091898929288962660716477938713432694196950773281761968846772403161258249122031101246404273571235331555421759879148422950664651135143547588059345132227050840369521118266657845715649010492625333744069502451195661180297989847989481354971328930520607385683461017875329572133691049500371415826935293645480640568019255022504348003392384074884286875077717002392890082547681467552230129687466255554989751158209621102844431795335772532965041551929264800703852000387721300000631595367966943526126091946757761800745695757054254255104141526707705814284713699938459072000407931375146429904149293774872598967240909246701932989606053298493983165487119562918461294922471861073119012938450135541947838428649783285039542253606274818866777150536474595202696345366602391570907151987164321921646115467712485020558042680937468012970618023584191040691963912240468121491724321546412267733546680200122737041404633584030756125332233402559966355406512554850958602546914122185154396893950179960594570634912963390903418587420190628262001021529434479064608790556610637375320655125133185974595768783005237789646474960738405021891256870959266121557249307068651294384115283673172315806751957053486527326659614860195211776748435559191243307021911503877946187688814915386627684430654928804837567745694703345539725064370878850677197131888504913265772261520999332927872550020879878603086399517668073700933685803806761476421676092760659462855194743379523490350660109308251745871537361854324439184873328122509780031659840551341783873674736959817519055509612440924366301796812922909630876943217964587551884608110969819373690795130439343046487746430659987545585063876966175042047540692196701701562740085614593305472900186659887266912946995624139085055045839653636485033568532195669656524237211087466054551840705671433642715938054497981051717825031487640348339527146252064442904689079231237994861218636556089489182422747743633851691968357207641198413365114683004736504270173292752489789747297225366472897329870025541477869592578721718593847313002638984348095666104254561570444662906600820232524065136040683360753570685340429843177882443097004672962404999124550595497436017645958852413308892910846230981427481570905156661098175929740995017113074160948694729239453277119150370475538711553811185342594143014934709170080320456398198962402423091086804924172173962131700300914073077635173605476089100927719642321428858131110227655644272404894535834740511625073307140815938726052290621489467771099111852383357117801579446355442889242751674159494098846166669587792316550003161591458644905345669406276383913513041114012799226443759185171179190483380001702211806431455481835628624943139804020695325380320386943976631175369666817858372513986530419433177066271935779764604517797134579383555309702407375945894626132032721170429162957308279272423605295794277216142050244548398971018648992055071615371472966537644579796205820435080307748939640942517687971561859611873527113262898083103349150334477999249808382281927332367120422699985308954309314520266545843135188845539272819939239331138219431756173217367881396221687599598358095781810929410958595674973032641416162772390967212756781637637981378797203090551285775367407292563750662570811080006758738563090994789794690079791402452404411300473060548439853566440652832954912918207127533225090707314283765146292935193309569651118095457102857203552095935470778937228222140621352238750758424634316883756364270523454425078582808477384369095286780192473164043775927893701762466702937647740392982456554111114115249324141066485390932400361658228795140843572713777473191792618402514992148447329012555532913259325490671342100045439128033563053773304627797873896231281375400511510254640147592235675079237394278267522459709498387956632263597835470664212242198645054309993122031168158581260275842040627596378918410045334253179382228776336980000406122799685337752825159062059820155979147347521946189976068700879163839281909903745725171679291030642997692134875146928572674420298425287420443327585090262481452825608234374516071040669481995185369664746915582203960106478471588602518606598782865469970520207914597904830883739280765270342663308648936632649751793429511525036279256394894871145179651416943017181533052594058926038092662772444894060665652599105800504391394097627844026632186683195218146814949672640442600366410087502642271510206215864977412160161279870544584984993850737234333722090162371455061547260944535263610220335526497392731088123570366269339620339221486349967009532495578584578480175584522875889498846308074120610887959485332399632033336917925143205803105921769565928528156405260590369980590696189550648719073421268214402211647244710597991353246410548941354428672147084404342383678528346053399942951280425999800316932156306278336066887580883564542139422758883811037380158566301446676325490150681193832439431458617738225107768458926400662071774014473210624858605141330407845623616080720670755699539540146523134815057462527454791721015609976958653639841284641075278237211774806509452057709450143289212737613673954558175282586744472308851668350052177677515737073032386899473968625766119872508805958835879838502452798860586975696438718176782513554742734843046728840715229269326530250448718380718539246991250431999282106931668598879256900076616031641112967200791653205000878643856074246278470353458615013148295458406561325093072485798359743529461123330925407755915623014669753205012966145645395581892585821711501739901943741527106948136810144975406392944143433398104486105950670273982094430221568039487498575036456511604646502341946103330682973136077240856851864898815542217243420062104948720911709680980785265716915855825153084100011093284219030951055219254828238632058743722190070734782764350964464313827005130874201706617441026384721217728006872657501691916393234794554141759336951139908854275928581156153357679416115621691982007607949158412482378183451078821127729643608118589466427188958798983341544716104993765384177965926211734422849636682724267170445891096015884602159958901027087419556310597546513923996372945997256608975262793002692051147738295959610312890597499157141385623175343171998724741088974841943487569700296744773983075731302863383036367414193214360783765561143119018160048400265499880566701193665610835944444540110037352902808525514840137176569449354487258122532088998333042100487548951666141298080392071105535200568292334226496008097097025950007921296767139083453585750647261508172329873142090291390508500670531538465765122117988998043723432932353984727282966520192524852340000663121927463723001507127457010819435437624370174422034140791593720420094730049443039656180477030241574144654665452263327181312310117469732584850588387271069286474075379408838845222654019004695234055836058895320673587844024121190228127220800472143086218705668044887302014905481513983838037878172151399923267377545957485062108296545016660711046354861768344835861171029075054921492490293943260457192412297309467689684075212791221957255720448474896409968364443984405863245713612561104031682960291252214645636291863593385581565749704746614563608697976305751297830661102438690396625243222518420290972689680009787432815265006579583329251219112359063841882348270513541713037180512967645548014459515439671912553889978253136128421871478092865778148474974372586509567216681724520336632335075612204764896783388345959965574340827105825060667978191002387715326421074978456780070656261237760871186139971938553929354406155037123847678802523855202896139762482355664675157562541627501348345760518379203531556229585811319082474900293891549572146151249428944838026435054962992868583931859921848784096154255853077447913651914111353252991969782287235269375124942151963271458265907919165310524377440599722890995045993183871297005074538028025012835698523551004511484592973352201008762671356765313164221483103340136725588791754228165811941405668503398193338928565978781824516822697757788196398849280081490896467917550957575290745088441307100938720874574558003572487578764795359525073595521782274523252226682367955722902926233477965165418125117207640592869080662103773558345626021684671409603565287038773604431592837682532397316343275397578678014942736586034218905521117735097446990542074961824057687713292703801512823851291153583403799961046033943263988208928226277981158243350752834349502703733478900897072764606078972643787357493469221001722801059579946842187971625536873494639346157101355763821015009868991288870418759174432940431806871604487970134881726534873787245675180932108284195751302970836948657182526903132347933619394369905955339908778417840592505736507528076381261074327568669191967046299503628095068383899830159085599971031134484470328501954990156658758193923789988572474098863912014289283761859370859320283670179338159388161402427180891653569042529826547294520564845598370519110213271765768774404257468872868140904359586138807402991749002354891054083620386724923676912223325723449931393488679938635295780532269334917160666825455996653912623982862990230050550365188228407252857306904991013990100299386568118038505315710450440973546162820224080466749765889968922776176197881146755608047945119868562343092163336253075915663998774715196222806809230069737070167345247164321417330176535826359051598964560560324911921264430824723744472396785874330681063983365680329881747397110162299140717224118685614897543963396617128673189931015747387812277913333360000144984627450060299307795992812005280550997717722549109092274570534180739752749951725267678544683962175893412538405709696065950113223447178391751787575377860114413545403561989877617997993220515068102601502914932740873238119873904161421729318698717176884821157322639647042803849561123062756014788540048320079592896009517755239294777540414242284064915682511911619419490442441885193901399990963481946126085365461149952764190065762568972721803809058935265431850022068726342707340797902936516352724903991638462314713694630340377547638854747792375451648013745927321086734725389321882946719782147072141966866847769227280398817304658874150708107987015377057234417307134788364899595162621185373078936554689367087381821984965519739290734436056181627907429368042726618037619396239507609434656321596390020944866074735565450040047777507010977267177055089060204478946137163489887611962229191968669493194992521219236388688977378783076935418146843829072012931251353854080497697340646461913805150401542327359828619590273735186894712958562442805261408237545956752361735501301853482967871694715098339363520498423671888273205863701581300893830148505207976866465442981985295226644516924806290065787129182807386528056608510028203979197463133848251567632585878937040919293313471967644979024050908613995268625587115606396106035288220799139790762531716560556353335208636130509057681734399066558813645685776161549961748806209663471435693022982209597554153407107997089389701403016601490578477940403741608542115829987582621782872942738856971783113559934486725545310559133682586591136435116603494062041293829772388296506088610451120992847055465431045602093553422490801681935153693943135304836048660743964222290960589090512721401003362083282130807880671747841304206007336454748341507295191513187191009156611404557881341752529846233892406875631430568072335199471876656042502256239976322597887881991820277277132358408182898633397302665586158082781897089572751391049566260253331711292109270449574054355334134452826250339714563708798983700797665577529877108278004020776085635074746253469892726295518832449186237196848446628063051100316066692080520837199299933945276013468448695884057538195246532772327205228270167539507161960296027940637279640348262655174637342698438767879354490253767417624431336180968298591699036624527543804587740210225649420545263874935313449615290591216200035612145064260417688138814726813337626672442221563619405922913117539718888351014868650270790056233584373656624497657891957762536118779944728262545527277820647070504158895934410457235099141462511875149575640142842790820558287487037463655958979070425683493547289766931648520790680990641403444231198603739442601780958041714394256837000086609206746720554135298386792795475993239965299202370417767699333085536246173707372494758761323562233322285793171904354392197513698721186671182129000837807717581615914071648300205422486064711809059579417885576926181924424620132110608519776186636620716465876797247696565078983462771516517292762868442959200613191121498115342836065954279815838682040210970606702935163836272632227388700765758013696033311412533329742889354553047865445508096767747885196711293466623749518952148604311383734384196334178734149854653547563936135248434343210992995760383426164539642861708093651965671379209293380569056032781362980013560705472748671779961650362467899550632020493877167698409412351577119798163300432711932338333373614466314659897545069641055141595281332897808803627855934843257626938893950131330865528519832730738929160273353949205842944628974551794271399846981161391861610112295539507350512313166798369670541896584091915539696884756091452195753842325306870681415852295262148564564254438893910962551315184467862523008011344498247915752795656910966451114760851618726414859656182936523983565832076497848270496626408556527871054489877341693485706839099998517433268583495134731915764223414560988859428363602583788257237062983401565035200629414312547111875072081226405978917036948763304325961805142090304773161137874797532141716091197527103983279051632802116095849016336716076555215908775947768308108756979800998717674335234898183825887016260872491497478523767192478268041230897960957275739988036795979957357824826347392333734203316333288179643575491237501117558219943841555288289776160102509278923515030416037473679469718288807598611888846156199654089759705387555011313247362433598873462059393805016152822549344138234465137986220343389753743374485932159538533624766331878714680307160443535802839503906658445598839895571901749125352123365917064594933850814954160365210371408036419566361053658805137262840364462862113787053067171992210694604133787437988858911146593783965801533967926100398626649024968329302578489884052573585614544728180387728483832105120482389400692770386457308105393121812305942099616177765310225401139115834071740273264880732379093091162214278461895635215951002533426233159102502911624807294002258205334921276832204203047535770102315822093567661897096301099917128023094691013909325889549021085218309906844049874387302235728954876208989580407092164963000158338351817487357556780383661440860078106221159468084186748359189422876199746660909378355303248446170863423389249433010346237380039328440104834542162016534855543517349579546374414788838111536947795326810542020370664782243661094683880165237353029472778194837924148661899049815948256992816249923484411904753515912908545322621247565088753215158353683085968874419233053231997405844812774592176854105678900395999638153606927445620875762360703503723332314783077397701617065524087122697642189200609698767726550643607278867755063231528984476635874591023984788260909180339511815554614196934597329786969557422432024928242416091213151570657751308489421670146937692487794628493734750631492148603895186734540860870707552955918204389613520075865293767895628962489681215560563713659874337541776232880062174758905015321513079053636512516862971498072932896151248678401784073920910729929290809713559316381639318876176784275930899381215478041975074474029948956962998175441479069758126804727014143999316339995141428813149801692647450207610328182200937146663066749322633050951512869250836494053367407007795235067466820528640573152670131669800356904774527448277256471209531364714977149182179785036649732953234432811447564293149254068580202903150171691868522470897332717134669546435380890158627542614645515540986748492585839879405841570980200282479855686632544941302639590739547182226171666929197119318665809832228237192960357975250642635946108005418575541717329245722389088866647048994745653744208448045994634871104467447055952617026796691496526179737522389411947879824239693939542136987380208168931875197190580063025859371770414351810595276464857722577147091600319971785739155846365615413194844288472496042261385791652200317153417601019423785201867986680523416863655590692203541344559081259347775603064862209779371231806781238861283787738739716213325133016084577762886388865302218020805612506873126869624964846311841666019803588487810454380983672587008305045357820478508514749104839561781084985404035716730318343016912208209358110724320169088422145111229374752938564597496879507881624754875528855740064368787509004048109933511131834008545660994845724899619024383559487246353486605754107115908355749455529037540603200775483066752490366479856693310258970609462404814160572168430642730808280579458665717753425241640013823506982269816239757391375439009260073265301828013848382207136089640337079444097687035181633488351629202400711485798706420268038892794221997822701893607323997926748595484250595877071143199884698528296187421971183912373112244514000508017091045779741473220189971716515385491801026326528643590866495428594398287470365819911673316447088539165915479775706369396706312330592152260029660302489598950289116064099023699755816791453919575516562438755118846748011040825838053002586511266929272508588240361440116722684441696748606876733980018781516857919522632467180912375987084480629893416170037356762422454304015830185321051783113461878670882504239700501479363176206580905906359668663201419684418878046914660854739351525314312770686851858302866254512560839954826841283586035232625043611912263596754821617029458940369060578613195163785031765545701466092587805571580064637478342139485080288322544758383210837731011648990176251366096290141863467291039461762355534547933853335767573459691199302673721750934195772847456625931248565102954259861613347365298487486173621439659048080230231690477359568156423589126132525908125719883059991347245247508539937969415574012883666663964317898008476703235722263430020415150314427417425036554333127792851514189003617763650728401914925317153325730500683596188924357669107063073844061680233419726551267724594899498336988869219000036136799146343863373138418587615609387160698080400382309655887014089451720998447964189449322017452047731189737659878530899319096922189646883059819398536829212579086591165775999960642807177822760359032962221220240900158442593537303640081143858998429440507530243207783560110924639833227906510618634747447851860378613909467392289472018619512998972877548894514019925719010455644604073185008662234125564699311936553442683564026677047934603621558477840584264143356230159741938670955169358883591113326416004572277746063152979719403939801229808200200371546761211844964405218402994982886215169474583841544996181620377283546637693817306363758137277963496556824294073782845623022516342058313119777895288510782145849294705368783028601070323861142548052770024883069515023403136025370556366796230757539103657115676040466429130847093424651828828470625673564552232405069320173974894682558599890546023081686725846382487145244720286182957313364770429879661485369592809087906918900567729661824982338343463152969541774450855846786755454280598295751829659566295268850469626669489786723800503416500399918694198032304401691362503463310629365214903543764445208451118610039138370601794195901281853877362216980289844118390806816746953258550915781540001510496484861459038685927139984201806677126926538280107173393384411776049324633810936452229822992459579204454634378905646450879696358930577293468994546045018918048940272617060577932288625512574098575252505033016646757110937606722394736756509179962291937537254671235610087414965442833382389253462862431173397735718165359618745304087897655248269338967140841053742699598356152384535544449252443909002135202954250520806120263461718549540466840947096978677857889485417512286122433344165749906937066063826699367880142587546860908730181960293390328515298314644125180482046000658724087204428881003834528813804464720594074437332817608123430706937559071680019430578038623770858949642376553771792597729687131304920852873930499639950090548515680519458400646409689070271381737410363620052854902488325719271558086969174610656462602361786255968224034329948439607119511409846811565382037134798181931726594640917790627946234528214610805844264110663904804396959320582369879193830877771552764080307727980422551700038269947178792831968545619307025061752508663941503485443216229898162569527311996780859486153875886328822673968959123491283827163557238418618484200305007972900184300962986453388448822447576179668662342189284669959215157599508738146306359741275112555770343272158669733077285198256529073329441711917083378854981046277623078665517229911535849402748508704184834671898665447800423614092048463857702848333244055436496550932391813537177513506528129069174082070598752162835293174745425113193560637530746342117602757290030959261303315382518080243155704561087285457011948459345006111664846298392626046485157922922667013065655073325812225098062916965291297625646365625006105384275646740510495944120377350603517191895367863412265699048107429108801578036286069895672042043302668176320257741770121650399509641673892129086054663297912665286578379063320565682996760376073735687218889542024120591661933063215670754453430868476312576302167419303814613238318906430425851227380805455711393644923528217299978444678008818687081059544466456822344304861878561602210066872586609948098762255320397627543605337319792539908061076840388936443517344782190980776336248664794810444471079007486971024939247094304651520637941894345173987664832367567458596294239043218869583261209020399324855032104287211231468528728581852253311473883354209313242496426397227810548225591991377643141979951595001464323231758064753012220363469814995124010895899568693971209849154011383971300350180516598564414667340256446338016153577309405586821616664528679293394960318073727556576168341228250311709225256498710256383719079898813594128851052565890025215906545558607769033510867658314993676232878687223508559358200089606201218339548583285429664227977407836325406676148821152942857937456352470602157606975265635436600639576124390828054459839339320423268014520684689732472137001654563085897715270853510004644412734146252289010258472044015163834817763912453469848245331851702652430749037484591038844376243780895124588805211021384094474403056646538692102389826116713011284619668012151344557881600311931152558539253953516742784262150899144724624519206387873719816571881583541606912364792423049085100906067308729147388779776326497598506119868334397073248036893095487505786887377081178009091284744863178098029586397930678049023856703534896908116233609536150286417780291054991489587859666306242818297851090656252448746150787545010247581577744360723615284114772509034983565800796195944130976309412808332413004422857282421142161479506613234790401554579922841369577059517847715138025011970359823898638592413118741452520947006286673737870575315760511395112764778006789782707508726523416890897625002537989019951408371831390893898695953568143735879657912417578411031583907260379452085553820365770158261069080580040897697110404293099101185709364358356072957894269222838143787020843312680113113291824044238060614784508307507790503875011756588995527403336238477778550025656890901494461611669955974031827303747082733707825330327444705206269974300695442482920496384243689106449368621519191949224045872783378033249564203569145153438050580178708037947552514919651945897170714170816007411721421404278425183188267975197890945845399586942681171446090363120218547417871718929668212753435123345650505338400040199201716524635960327484893177334001352196846772675234615999441755922789986814845107677472472672509571713376712415146501849725403540118115745172244143021148568574622710256888564286461900880625878481405176783497104625059105443088873933234508820560478524234859427233332823890616965802544800224175355955597629748510847251676837226303623245952900077499133157657577107516065993181383152643017544596994996396919576022758719073330721589473988688028566641968052937089347271262075781235039508962827078715839709433182727868319053137177063423754228426077254618427420397748591379470561876875518220704411290561920591000178669898686109429741433603433030864314660330276172748472483836127363548924093517253269620056275128030965166901272944652285051981961552459220053538368332638616022671364195581908353370213942718488048475406475019172725435575508860449878712020429617118797562950203273357070008649129201988146183669511830379823816277102235037644293129078765915959342026002978382375889002324029638949289984939237910729024240923196361890563758487930793582180017596190104669310557072306993502525073320486765170641876907999100674376368650764917342528555772109457638880573324330839767581479841691636198004246632262250609619974751304892141978785315524632119786927886482512033103035706065524548364978056749303797939448405784403285576463514450852262113476416489993026097047851503373240379649474828177316315324714888061569983935952651884390527470768682640068817738985319631949291532519728913956871046086451776533523470259636167973465264133623237041538462977027221631296805416128862561628958733243784967132858002107658142422005496778530195760265350390376613562598031783114151831661301999708147140834427849243209663772814862723430177798122242896451783081796485787564064688717089551450341569620397762325818527224989112711267116635787831102293095952508112187236181683058031484791543638700881340902652914172455181977470291863282063962472440700237666896570906486519805449278509266277273830309039742949822291252180894826789436845414154574790705865862978622685756268078090307792617707682656683542694751448203188130528322905221204586756197803363804162422073030083335774745149782294452883406045382194655684061342023887354064572252287589518019807065635902429184560594021614611345693414311118061659041716180409095920597093019413180408169494445395280336382145753259699221944102943177831399476440527474020889122743272957108530807932390832411756994306833715397590324696205494394646175017040106901325101232307775512288543959759043855072820673110836901603838284809120915682214946930139786631867843607062486157464843248390354980709597855791970352353284209541030094876245624994792697424135559603190030538923239113800258736970750648194131235179859622513114869992419741626378876024654617744231494949916777833346293201788797930747978178067608767060824942423106753407211330769018662155589539930666400313934819010434126289369923738239274788692787255506370881457860998112307034818371054151805232451727658093859188920792389592801124448843441340177115614898297158699705170979689951789513943203660326502656199600081337780608574486821313435002069848223822220073754425799742878971125282243557009361609142299453482372972916487205549547261415121003875482424192373344223720056085456578616285005439786842532911770663485797639756351741273754917930159548138838738319698862868476147633013435661150897071578632768123178765538240539383094546049233137501866732821654837654169375215892211134521687164592120845533995381834554449573399745226292612397311224174119974184419027127640051593092763696652320937021580569498380406995754049209500017687821860298800082126817716207486181228533450722787812720035156558481570918626415683790381405390227132588273488194740530902684110772809028721014901389210481971807217757151760418670742657004384829414404815043613633539192074451772169693378984655608433392837281863934966399481797801620854531220355374587792170044364747018601779074868024106019538050891587558466237990059084354765277285321330636075077163474849034465801579468461569305305286428819939782030802955340499973732132907777014832410893667201788094352959478624852757602844862344899308595415010265739876520802297501038591772839216668193382403555096714954672812354025652037185537851613523065789119640116131548239823274569315627964272409520507486735464850799054443653928276968365434575082668262499769745964635793359423476920444851227014272287047572379560608433262154829802965751237738234918483546088774449366789958700306272838517348312387720039989481208651579864022188841826462293226503968327171406559060908878122865502729051149561325453616478061943799589514122291823319833793207667111924832473945951066622455544068315585829633227867781674059043909303525531944508224294745563982378773409303274006875737183107277846401070833443058867847742881185959431919145803158396392729264143006847247756368621350084994994661296210639578746624912623784330917038075573449343800960999910920444566237442182975982010183402723641906104405210430065665222996140997512035249287463448455389874554843442730561193731656911461398450409336046857923107563488470556552995104246262065234359588432447817187007950365099244755324644980601274821756601963111937811432334495231103539789322991909953193789734540996576175072449641026492523057690324795644060503074471806353625366527103803752557062661381335669224619992432005811665565379210337377292405603073947281752883486650868303369755713726081727941796494807525693288776779618719626641606615105139003998076211406000089717025952750366703146525070720695485669128996288624661114364428842864735173242544499015883363222262914493272995852508241356889928358764834801275497132072559947572549517144292546120629477951080324311280793319516288883313278501141832865603999130610356381994317245394990152014659572806242744221034216682217505189027522956805681435708321305806330063331588376850516606432474958882487126611174785282990859346530565753773114972880642700426071503757912993627744494827028373278675263128478456615019091350102740490426953150537019889803797880079958576845642227819616103696918023287841422195635921011661577115229541340157719629572547886448962990467362373401980443491406200409512239570974239924190876530783350272985941729468720838444275924256201149300750121790904817032472798681119177851365900550410550483594504290248839807887982580468170402671091838936252688965067030472149943535707957667365997288284461281765974396715538767545022199556446978104573920061058907729257843525007896498000072159560583100452074272761336320012397307395099508186051344287520468301756932425736521629266000480484617943632239962414733198456444672138848973174367640054726338312025883646745824280797274176972187220764532745881125900908458591486285537563811225743839870197528346365361934072965394132181328354960157601972568628319694721196152944002248656243155606110404953920744300773136218946258333022096687807450551685449356961504633783623105365968380836992040313068346100549276962476159914017055744745838773814813411160168917670222811999203287277834289856094932574519871389948447755989447207358682593783655980694799885121145363350681423739968122765248856267257982562218282467161505331259017362333917611478442991675402383978071742705071030477886330986328968803872318194707541405775309893805795258728611857530396135289758286871114697540991787027955546143922231534084145422675950898292324377589239250037316893333947589463928177675744424847986345663968980991451697252836888231900249771257035012076123448218959826938278345563368707900597241046029909003177011442084832173113048769819457044880461144783935955016753288559157953233383432948441307262482700514633306782659197057879390737238492119278850828806369883242209054540595153194065564768408468040003359241570435236717340398647739973384918856933956939364481955091802916137747630461933528075776869774563809066116370416525792603599458413395065934825043405115136878153443852808341345046386969603102116951464127586114369777824303476098576897524075720423817915706550363551686219343662324389007063387359084436083531635010239918191362283046498087018814434551037309505456388124935756928512166283854526787034296671904415815681592060885456855013593268843578028515233931083017522854708825769276586951234486405975140533826545429489983997109863623092973571702215884993480050945516320248592357207000092726228491544861110937640036604867594606954085489869972604753205642657813926009375321331113248113677929912065350711605684086217231944101162846645116094424829766567922833131246730716643446732829392245633317967575132654203006215010004541330798112583109070551581881538076701995232636676361499349168683210302147798450523571059768708018965754811018815334480224548579295700169861733029071801194851755970337952656000459572820201246760921364099709398050274951523216170210621016815998161585406656119927295097520331098023980129193906107860839123042930761903983646854112286766124805297741349139140728538942774158167484119058346917735889666684246166058610335286035505482531785595549735236785847370833091664840572045449386481563590047475015547217417060187284246808142376312110120722795321590673254154261301803806700252421862429639317630693112863991031905779853986966420418873861851189462588824340888749626409220232026891369021322209716123550390397331787929325686744249878422512485241124754095412835568555924843288878725280184258403073449130036254964048655125315186905945310664190650787477151454820986416313532484659129355546838513897797766171851063678448002878405642560979408140806328441156932448436503663564529281207544538998050811592584794294114126222698454557766182783616946096346498687861597574733394860034402464511648377685043931534569276420478957593522365237857514976459163303361310708419929139437887189749574911880282230020770763472615037330627068923478073230973710931111051891176898481773733621417418243527570140799908732575523170053705012402820451324857303067532941108515851323591105020434859073675864561182862392552923192456954717558086241638065452796502413332176629294423951769200122827489634713273342838134200373280649095903634099074111675022914525718524118803198072709873234167479375844369531349707894604413819566702421378983259466333160300127852646356066900887044251558235726154898481142362492786399059979077617121013635474942739256694959584768936935809993322645071811184468782747654535485286485237199252736338967846150410460804656900528050953192052314653684210668157191997060146226575252532908136039672628292256710499015112049423485247267665336095363672310895299058925984721194164981798475520952882843239169406187461266939654616087864722846019079548518740191073430742351068740288258986060805904169090903026664971627265723181108737627506090796156785935570957677677212963080459792140744830200297362363853421429315391065402681783945720076459349649688743721307736567004375697659701821042812672842194235399116781890962741921828899330018758543108576043839029464427497142526681300187835098319046092036349536389284124939792753292267787591187844754125841002967938902042549725209034165589583445703077979885717515523248923234516265451517655387179374112877407474380309494268667673915502394553980294832796639133968457573698688220832246452783601658323447155485904718926031800047011006721320676021602774013925890158939564248276269897308762528682483608152136168215268679272498407984602439698560887369151768473299034860009202163658794795647984999336136248772396494718360498550928660929220922506676645922459973173546280020457553317063999000830849602331167671792739782919703853453785511129912437436045362396657211063538530930137679192123054119098305697430203948946782753050847741348292015775474917382260195241052387017673653529437971265281906565192795968047580577417558398296500899407459503260288835648258631001247643513019618166107380442557601281179780831633176632254773335992391746942223031482965621217640637898823436302331623153914715717335975865014272291340158581148770587546858499527649001887301641110118968204209809602760218510181086999556720199550461635724384950530167468218770387903976745967377036991695469636876029878287612853983737674345023657725231492324990222464945272745287917297796104683663759646995882918829323486323441162654324837472266914171396720198214346444047778224739860065185182778425749825350828493916931524826313521180096561962551906583151790416589009283511876887244746519330563862947985070070937912100578251306083300158104832781195734386975806982790857539613233873718640815108903642032824398643911804208796270268060311361998039985744500531266749457235601430808300046462208327077192183567838051492776357934768223635636574590400131303849352733787097493852493541384451573805480605458100395437302571828385742062216549743535185821680832638880137073075078791135357458574051264581852799654486960180786401030839157312117420761724826938788036103824683282786534271438696707571031839895210505631377153094021632200892385801292639800034313480312679081435829508094969297787300013418276215679032485312322743679897969147348049258406622656320627103724783076950681049127927917378125961988864653983210985523796705702924204787970834133215970645451405518475513192384680583207657525341015327856188931932979834310932152095004798820113231310845611709624615565754116389283692903720172735952751951969763969665099468836974968782257972986039326475309402624989449648529824615066682727349966957363474251495278206560840494029359497291832907224379141399359540004912375967043191586410894172678361487736715306237632573286899166336986940441833101913005818308699709763819455696452615697783984452649256533961231012097931776915364754324058944330573872112089224569678585618513499859181151051727974324614292594061463472551234180854199062849617962715445863999199251200183948373795216507538609557879599543717310625447722889249561810957583450087679188707224015908574822915002161009933420351999379058209353571515630576066946357099682263886608661110288947656458084881436470015460637306855679724068952979870469750693231934209414095454431160601359348986060320311780213169379558202275669718073389546864693861242397301862142670815953034378616640741787991595322976791919813170468161309427393332201785948384319633186184891009146695844890691466086415939467459796625840621392522773596838310582777182036416215192361898074522942588295638600384477090262707587680438219257400702199552517564696449267556670670142555369355735655570427508471010969712851285725949342439154705540707389976975050440911771886265095732992772406241292962332139079221527205394687010805169166425228015172287927703111193787630351706798777483343626243765591388531154316691688019595363708671380065614213533176816678621619088407259437087179563590468189282268626002156524310825358770217620455639678778802255134292250931515563547383945979130226033258763412586395041452632023918417474685488885581287611865848519511239310541577351090366952677862943966888675735293862795687732197206294863105807218408706874298412319542436108164100991142040876455699123025003870776425907339356189046715003876924936920189873579684726493623034396884909689432194932032340896501313921286947210980289228142615413484295511991938721841356461623697065644663467171852082456012674901382199072550993644134332998035977907617143556510405403667580987658629145197913578233369971655481036050272676994283347832510903752724977195569150626678761103873386113935193379157178472109915239650129362158994670433331127190779229462109667315708262152623706223255274773388840920688151712825225455955042285791662976945655668755770660929673319141377708336769787068057279386730754511672511882057795787858381712180799801752550060096537049140356580305722791085791273374431097407340306271724249502661131814985972628892755435076413642482588067905435296469817866318926750835597021496684139350083842607314022255588613348880985296871401524530114079029286567010878816736737462206757232320709953505610653843982720028426276069238704774361730959702784071996553609405839972324763315621889977404119334055273178354780771943518798619692267958435727132010739187116081106609472464491429054154797066373174052032077955706538670940419755662532532235652431568661450061145094149608362559464381618207946072749556467243175890163878017281895815625523169969416924561460541530342979298112431883168043965412363752741029701583914387898426520225024612643422639168166031064553891170303184970781918740279139315063633130096120565649291762450403676985463980527844073910044197576482723405653515349886336788988860614598782451100685528269134917820087377357180622828272729140874075049261985684565318753405029192857415301430882548761226150590171945873530727840996826488551020833913249611114411743456899226424557540928388750270338732345751210933349322555157305554930272557243680314145245339835847292849668378960037880083432014415742486512547482349007463145520300196791320212469202912133830085830337882923533985325786153405606342699707542447052168128752285908056118539900157589926014685766675173676197669392890555208162506869555827315519982462537228208610342314836126996509171363372583196729071262626670810532568043446340234402474058189042917605130616545814709211904662859877926808081684814853870470994362244097316377804964629339346211765817807436214242711314849388912148249896330352560748971502461256276523225567944604462653717002481614566716270249377435350245534515655385135091348913728457768663251787164514411188513674372476046005314683649367717316078801358591509020493792877992408418826623418285636831458873098193814456486381402545442982431850710507705296136720038682596641089942718328184784553926599156537841788906264947153087748423045809044496910969865195364226448468719488282497580422378042570498046262712260571857624784863809934772823282769611661869591036746544076511626619297626468342108666050811104090616659929141515927016581396212000445268013578194348840251563738297360484696242050803591085095283977021547241054766592428638001907233195448734390057552376880991095933244297222138117554754730868450352837313554219981720793520187166834933947433510300378764516508263971287026499077691884183926638843754940909202489499671129714901027419579082474064533138659873493350491034774482806679153520795782824251230088871830672933830329127948380456029908042610967694916359921931962445638658143610588079346261015674625214083831984643507353405961200176713738333534897427048405988738266249226594842454053023711472202236166790804596821410348712488237813753544130771367116052757613132733925750315149165165725497638853765243280659565591895790332263027570219046060345052264844304608111778288073773159023281594908596712713344804143583346283176091303460845545534997879170117956657728619935376698111777738800316491677174503327640454803715895934951044094396622883861272784684973193485206761178875576442531638735600306657138978954093062252587423455435432494688688280931886931563195662857059716694165882662199541001410120172701890392929583137018421399280279863106465072888146909215635735578565542114386276235653066070756527980671270889406231346505617242793350927693588950800704518971223093224527486634744807833046069316813910638594603751783664091672642106482394114097345708700309479378016353968986419392304248321892247417230360988501789976162286358632943265213120670395706619955105097046577911033911514742258019795645112209992615353084829579370053562606604141532907519539236567713971277426534525993457587857696466662805631817031363465704914705062858758195470792372687507341954829104858522189324940863892840140151846746625408733746597860237455893426669118370821893873149538794085304627546056248466136372813883689578318177442026748666607599182208762198246926724520887566949428987733526727176052893194179433430075849262083494240459464723712339489400733708315573865982292356034140243333084379025523740824797218931806926291934485551244431112460123248814819108212676751488496519507458856776883633647155780360930246267620018612180816039282440148748954418593069212512168050349075993080981496340819274816737194553820690896344915132393763661619889533207058000999722328364929216432229210585095129043904072292592351403330470659635516550491263102929892126200323191835269249581435914228727355083912508186742771077984719054203442545009914822856361865498005364788820695407055952755879856968181951870901452321725014782185151069891095995900921088250620459207265157396061686621888929467733498744284218206283223105498242599393834679730708809634512090457659472141388112894009739984615441837651711580108218963514677343838112806048715586666843077201876533382228142823641136017447000448745360109168986453197065717632447607035607118770674579309962251317314341167737725173463534969853522327667668112166900528350205992335054432961130411055435898632631296504129058588239687487830540546509956327974351953599546514724993092702750925486487685795735550027231345619934080570251183871887317137468611366522460507671226249421394735878073992307979417870939736819984851824715050311525091147792142332292926906186044444313631359752058797769486445035493889195417625106422479863042158354972482023659107911371084709643957049007407755084032669702693776053241900030888334075654647236849553890013516745573165259548486346453189948376277044369146204472863870588420124743482552148317608448170795656250496602699267823013469716337919595721697604099416254750634510976122043414435683317564854840436809268494453148349759818865738465909742736758419632018495681415867667434106580764594022041175847243460695289043274686518149661726861815341288187037150272851012384445366541366846117204187806261227366811738009607556582022388310738090517146601830840315867048855452086556898328324338597861959968411696939334813162198680874140299616188320922216755631734226156201856884076293281510646877931714045636799474631830700824980081634997951638900888637789545580703770392828649697801756256715214847904259760228440864119818489106807617043374063695736480361499841150107471110326462971106309806005609986115595100297603814832862607395489814380204539849832833904892778975872885682726868757003066747586685192354969474903326267567698062678013644655716941891430198847515424697495505727228393806363605522305616404116223306314036450104481105848518117104983246258533698599911853450672233857212524892687678501305167184118134780875282979402558107721263458323371052042932027081802329629908036786725829467292612956011131513302393616312793835014421037069150547365545693419908506996324789081090797103236387839563377203279847016787286749087573905008353824184911900840699291857831256454894663013421086833022613339294334211923057514034095881325189246849863390192293126615446707942490038056178344099968149240771315355618483012995443926300793198482274910985795231416405879783394289322428979289836250880430921353718854761547965549016089800550726086818820195749229891708070924060677999135961317729395271662601072962250429321135060371331898244947991412349109425797406606343431699397704253103379047895523787317142849413152912623481394429903651222419032240581048632041504168052795872109877995800003493071815169847815265664170648843299095648884146668579998832759941893573790583322909314032918913010247372461639925297409145493300068818670300655248251439352224535740832649021104476267918416252928859844883042015139502394033682112061781932628427539678676105164110236841873705446443213211522072593049993258781516581749992901290399749375080410108109431947727311663713676414928398874434634978408882416636419380900415451270514380144543500858578186596467855592294076237100361549548888140560538275636718369433909711421665793611531476364666258057405428030318317467104574561569854731048269688206497133283367588361850609792855938802416742651469627992758359631565014300059327199228597417291470045802962172821051721847497837342367350711071856599348363291495746603882178753663549335211489226094950010092565712285997130962987181468025234261009571797001400234983157706028137585144345845594859044833883742361387855458674048423199911126040666303125661525688652017246762620987909207858141044558157986212255628563560895788510917267971633688552024765173731522187124164496719429360401888781011057060250153145407367020894117466888151599083870152415252657392076887971195825376719653407680629421091683640005581259465493880066267106164253052650937577136673396293386956625304404984279741682988799510335901085517677795236973049103280417499888242843851305149238832380524733183155992895665254626827927384573423822946986694773026829713804205104270677287918796811742759413382579056328091212838677296655843421826291678975227996383592974362847634712996913650839631676827512068064016524219668666887683586106118317179366182086431271164123551307661562781184009359560703399819310901856439363656784069148389623484473676081817883866630057010350223057075893568845731416223194488585695828436082725421519611841940640200234405867339707855511166814978383048841891747980643295285789019982194757858344637926766571797786787865707178972924161494119280922514123155578465807707020437888917747383237499964694344017248010841657708420934521920543332921008162084279405664697854565144123985188581435878357562707630120930420244610812644491792472263574385635717211709368793070665974508374348310241726164802419021057686371639344142672739117193452605698671540302859456550206069481860368250999527418486959320329026316526453686095393208791997902249745559479994860160290867019808430657677015488869934116660360781204989316119935332439669172742802235940149279681645493951066887992692562483026925109278296774524066677653794332369780438611663582947075687535004742670554950696214118616519585782870230150136972414743018748900749378171417193099344589142452419372682083854717817969860315940504646945395869878908912942926096429451827430114254726125583093328088529514255439906067572686631183045056474263403522822127598023656624616101622137114412510024594612731431460248549023788052054106494119263705436615340299907829295061360722, 1, 3, 1, 2, 1, 2, 2, 1, 4, 1, 33, 58, 2, 3, 1, 2, 6, 1, 2, 2, 1, 5, 5, 5, 1, 14, 14, 14, 1, 5, 1, 1, 8, 1, 1, 2, 15, 1, 20, 39, 21, 6, 33, 1, 1, 5, 1, 6, 2, 1, 4, 4, 1, 1, 5, 6, 1, 4, 7, 1, 2, 1, 1, 24, 1, 3, 2, 10, 3, 15, 1, 2, 1, 7, 3, 2, 1, 2, 3, 4, 142, 82, 1, 10674, 2, 1, 1, 3, 2, 2, 1, 1, 6, 1, 1, 1, 3, 1, 2, 39, 2, 32, 1, 2, 1, 1, 2, 15, 2, 1, 4, 2, 2, 2, 2, 1, 1, 1, 1, 279, 1, 1, 1, 1, 3, 1, 8, 1, 5, 1, 21, 4, 5, 1, 3, 3, 2, 1, 1, 4, 1, 2, 1, 138, 4, 2, 1, 1, 1, 6, 39, 5, 26, 1, 9, 1, 399130778269612001866081263656414266505146937106867914124898410449159877318501841236, 3, 4, 1, 5, 1, 16, 2, 3, 1, 1, 9, 4, 1, 3, 2, 1, 3, 7, 3, 10, 1, 1, 1, 2, 5, 1, 1, 1, 1, 33, 4, 1, 85, 1, 3, 18, 2, 1, 3, 4, 1, 4, 1, 2, 5, 3, 1, 1, 2, 2, 30, 1, 1, 4, 7, 4, 3, 1, 7, 2, 5, 1, 14, 13, 1, 1, 1, 1, 1, 6, 1, 15, 1, 2, 1, 1, 2, 2, 1, 1, 11, 1, 2, 23, 1, 11, 3, 31, 3, 1, 4, 29, 1, 3, 1, 12, 7, 1, 5, 159, 1, 1, 3, 1, 3, 4, 1, 1, 2, 11, 3, 1, 1, 8, 1, 2, 1, 4, 2, 5, 544, 1, 52, 17, 3, 2, 244, 1, 2, 3, 1, 1, 7, 3, 4, 1, 7, 3, 14, 4, 1, 1, 1, 11, 2, 4, 1, 4, 1, 10, 3, 1, 15, 2, 2, 2, 1, 39, 1, 69, 1, 3, 1, 1, 39, 1, 2, 2, 1, 13, 2, 1, 2, 1, 1, 9, 3, 1, 20, 1, 1, 1, 2, 2, 2, 3, 1, 2, 1, 4986968296787484417769061522612631238430895168665198699592345796647770377652937607278697789999452180367469664373306794728001547696892378114141061707316004009354722920380112754745308500454130345731042527569971066156434488390029139150216251325852109118636459715341940559194671100679537403180171514287166001466127618726027587074527546430056396767532073328811713256700537169777663846835610837600722444337785592094427975498539505521504415807656776424650683797682032139686375835248755373270578580077813468852622272277296532693987221913920074066254810356589912817077533185573774853918515987919639411496437645824891940494524978665458538452845228276360673600784395376978678225359715721689715912803503062285701138597257490201929736576635772527634510279559379127261280665422423867510914451247820993371009769614963921383073942717821720599264252557627411441869175712616295673255437806432581888944869130480993843230031830518327467138857588966919641660800716301580255706378407634690321946477340425800493308726983276875553639214186071485431013927596082060769844625553180020102018988042828541484941858202369754674554951366350304815034691165000295823267329741538793696675746478765764177125237457086938860463009734510036925013205516299614462479062058206743875908798830616583251862687020127864025142998469691139416946397922498731666818720850639389872278504397657550821356859002370982892174446999617137187319113994057732462310906569912831677533189204631620918829322904117519849658711520335381498831999368285314461982882104678459753623841168548828950278143419006017825353086713671417152211251097729733534092218392018060584921232642457045038445703364300899317200542143953510298702232842245646838500955910333348000456275149237488316877149575441404314656573179398683744477713560930144064554190905951211240588116723169834777225765647943815257530469855605098851629310857306058277316049324724525780423902467197789125016353348466460804253530408561530443118622677967904133734970731494899697807797302406194165217532061206402533223205604868027208461565723940366890769798338575972908880934429263525807614157535915376673279209527088335711293062652043386882050897722661413349054772379736209322910941043093373533203430200064385502728753957155081922043891125479995360491855584024101365747449931503056581788631882278752261469283855345164499864905749607990809621707903659139096201786527401931107139318912688474288714485057611643521910069486915067770956414139, 1, 37, 1, 2, 31, 7, 9, 2, 4, 1, 2, 1, 2, 2, 2, 1, 12, 6, 1, 2, 1, 3, 1, 3, 1, 3, 4, 1, 1, 1, 35, 1, 10, 2, 2, 2, 37, 3, 2, 1, 2, 1, 18, 1, 1, 1, 4, 4, 4, 4, 1, 1, 4, 8, 3, 1, 1, 5, 1, 1, 1, 24, 2, 2, 1, 1, 2, 2, 1, 9, 2, 5, 17, 3, 1, 5, 4, 2, 1, 65, 2, 2, 2, 4, 3, 2, 1, 1, 1, 2, 3, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 6, 1, 4, 367, 1, 12, 3, 1, 1, 4, 1, 30, 1, 5, 27, 1, 1, 4, 1, 1, 3, 19, 4, 2, 8, 4, 1, 1, 1, 70, 1, 2, 1, 20, 1, 7, 1, 38, 1, 13, 9, 1, 1, 1, 4, 5, 1, 13, 15, 1, 1, 2, 1, 1, 1, 9, 1, 1, 1, 2, 1, 3, 1, 1, 2, 10, 4, 1, 8, 2, 3, 71, 1, 2, 1, 34, 1, 7, 2, 1, 1, 1, 3, 2, 2, 5, 1, 6, 8, 7, 4, 4, 8, 1, 6, 3, 1, 4, 1, 18, 4, 1, 4, 7, 5, 9, 3, 1, 1, 1, 1, 5, 2, 2, 37, 1, 3, 8, 1, 1, 1, 4, 2, 948594789963530324577360329686797633594254890510856952896, 1, 9, 1, 1, 3, 3, 7, 2, 2, 1, 2, 5, 3, 6, 17, 3, 1, 1, 53, 1, 2, 1, 21, 3, 1, 3, 1, 8, 1, 3, 1, 6, 1, 3, 8, 1, 1, 1, 1, 10, 38, 1, 1, 1, 2, 9, 23, 387, 14, 1, 21, 1, 1, 1, 4, 16, 44, 210, 1, 3, 2, 26, 1, 1, 2, 2, 1, 5, 1, 2, 1, 1, 1, 1, 122, 1, 1, 1, 2, 4, 1, 1, 1, 1, 1, 7, 2, 3, 1, 1, 44, 2, 1, 5, 2, 10, 2, 1, 23, 22, 3, 2, 50, 1, 2, 1, 2, 2, 1, 4, 11, 1, 3, 4, 2, 7, 6, 3, 2, 1, 2, 6, 3, 146, 1, 3, 122, 1, 3, 105, 1, 6, 33, 1, 1, 1, 2, 1, 12, 1, 1, 1, 1, 67, 1, 3, 1, 1, 98, 3, 1, 47, 3, 1, 4, 3, 3, 1, 35, 1, 2, 1, 1, 1, 20, 1, 45, 1, 14, 138366804164723427059892972672765680638503411734530318581178068678623597318465769853396040122537624791590375801172431313372598676215930803637085502964410177777564763811908888248536096172958635535057120995501257440553490422905477706181840053643107258377325632733450745853221491876372316657537499835381424649022529845186193610586721342983856280226174078175917533914066371128462714252015687146425508510712860526165934494471258131184106505551613939421281776332637980701520138667095220368464281371075736219990491286006102782207281557394256816944289882934424448444805240578086451972616012530877723755507231051002712373181050619923130796739956821641853185430893990716829737388868350572107303290882008290439088963943813343015064445485438887418600192290138872625477162795925468234252739233588706052127520207836419463780060974137095842272216547041918261084802465947701781644954928762787170384778891122942944888712469236339445244521406909653171593060720830624751184762881942502989872822367948384181076349506191178398436446303800648945196371855948351689762550132048040465863435667675247841145249726023277534691147103099050846842516280096267383784918631255171731029862327131115917538531889463418177687314818827306068719391594840699098482144481988271115013935471976925350311522335260844859218275659510862510387443853669195735363057513217544784818512438317092457010783350992600451753221196667250781100235688038799209410017592564095699915198498857749010596730162712764391596025549617747339605172679661478855165954872032315346835425776449078228343808659487309413265553188270606159338238631566314359559040006036958903297123561492628894647100113476008386745878257625084944411966169889117245518868979987795237981238221226350680619365867333236794083991023781458869948682302722416589651292439146504090392393388534942525473028386146943435333973171110034561788497473995267093377855243131795500583990655267218494606356208799689022057953511120511194473717239840092492735186939868762929769508428843326810758086649476422940590038719183894192410008357182059502918292149234830980508506201998222942944430833880494733839924378354072741207876358767865145341135009151065967761490427467853433815545325299610768986009961002578015933408672154174563949671245075996143485880876517092518478250194558807184768048068638353148434630065845193621675259952273596747284559028894932827230667798705352448472020652493674109467813668399876030955626478057106036795934574240956502850016259931508677154235091703108028052448155598260710068763214318061200091267126473257458193717208663378718736157245205282914680657523496227365795753060617701412761868475664894673304731775071342790221146522471773300477388248071403219808772825904013524347915877933773621286014620894108385795426713402024764985038144677581211453713223354457008471675491778151682513225927274870566207013881859488634451761751097885879280922869744886166958852076771385973799602344542925317210954062527080604409805802496880571042153876957022275321222437269825944536079568594617235131381880795862171416956701116222150756666192033688677076491831420414012243946631689384195609982891961576317956513983311557302849118534403109321732703695824401815076904787863946536855189283839274527448901983500746665945812808630112818533408420677228475678419460553714687672389612924614757394161520119573159516637010585763137148379282635390339422904274817941422214895509212814032013442302662793235667995976338127046405424139790720948055874245454338963383463869603038125893058460592630671233419722433431968923985001587726681262612972046773267100756860997733014124484967930833988077517848405217613003528006869458403371929793535442168452074101217280687083757398837524238816692083424538364562201269888513650205077117327428768434455425402342582811170081109279030934594587492321752624889178627444747038059731136263013215576393421763224619900220742972866728001649919034660175345057023670632808121408434971979831598705964874092427725373650013116265316018268486928388560012810846281401798182645881677785944500815457659105328138905371599881821308769203541748855043610935996115976854805670547040669402987323463545032617615815052564486024742357379836290743604887431421879620848201241213845538649975185014469543528439029839884609059077175039616225613376335873180420397313093770817474672927581424056392922834879186581190953978960015673816263855434077954348945158498603306737650537801325958663474477153455911789112698033351051026038478658431446879099216991245357932144526662929332207334804402944449931516292298022879691151275162402090115738920560527420789914855519527507276251209818923506358211066639933051869311435461850137522484252955577788439863218478401671048710293570912765980874681745072612118582876563727910029155764580058032265616282655124090670566563820602262072775111655950129350378033273820554383879876664503087416064171459814091479174234329497089824719935847613432097907837119977307172827561337563828948831882762745674538544180971703669358760177478864066162052742366515418126682030170449450994044917932208081545302589589081861758556517393229131248425259498799416603379431070565675551841521474022288023589672380715210557752326476094262862633848822607065442523746957731102012691254783635284257662786682639026328153012930265909288933091946964295494060470714955364799839652795387301392924286495626059001653458677738629111293486567585855343899003008606014880656008469114151423187072518262112465071523592093646823632719910074875233755894904816894475403500783119469659106932768952191327654711931223687624774706345301142806798632647558568567632502346570264554582642450139430404690674890677293607741139973032043625039417945014034808057863701784396171874906702630735776692334107206920093412608440861296256338061502775317040953260938305773101349144541147540217892619610829599955080290140790575389765531257395196041360128235544755792021536995745630193249823074212323679960760377824120632847747962913051455414258603983993361621557066276263355271995742889236275878024460907449377137922496224117653195498029870390187694563639467664430179664286433494339481198077560241342769397786586199476651376259369981643370428021185694802065245414654788160308275374163660452630637254458444175695615798913508215431995108297052050591036535781163647591076566234810230783003718886046039633478686043261544336205889960818211526554869498617622595140081253534074964970612832273236570259737549367913000552752970895961694987733626345170335573896451232610933236132178950499972243823522148345629567526099757203472390958043457799569402183934546335521208712667177061416630135235295643651688134992776273502009194058919962755763160618373055615125548779109676328861434294948066733648514210942902331187144739817579225130013886178821676152478131666727432010463414997257484308015122335454933136530578566039210021331412425117527264808566900897829706367101780641833191790217113789306105194786047748124694955483933541692442444673388259751898635722780087529863705232120115892820221885438984756580687089958719541430550863603110274400836596788733359945619888667347050146495016717788343096834431531906964826938984673510545472396665644774809616647589765431058951715738042336942170159026448694720634968356667404229398493735068045693274962764374998224427223931062023805405789275877370490582669026843406971844038771820236701052201339944630004904633992509491169807789382514339016776998842899314622605651786157749663098390683525016002064600198550015170714858279526809103980429473368359903918067934552006000894553434511402094814697019611014171594965240659886583894429719887307406155487866896780003294092154672203159151096348214847607800550793279075215146936320485145371602130296627780679189268119116904816523684863369409027424981484467444354792926691151207803758937923303604004755962182124095483214082592011160003170637651735687224965163647477010024215142713132383192193356885816501176994355894516190369034874343550715262474310753026126774972620134936028772512208864723025861486537325872848476060221381998447780177558903389565024261651318443970855519034973816102370566566998842271092806410443864005318239522205259249229075919463859853951600453174794957983286007009273574464314385868980893890441188125325043776081043599580027605962402879167375808941753251695952325135947814180817648677697549404372445005225282491750725749517969771930426433580986462327835461549392247671081386844257156231142327581328097316991714595434314751534680022543547265930762794108281178633644541912853279951904650172603399844316347672284276653930055842196133882729096400490616791034133469927307382820679443948289407183175931952536968110048212891101230193431877204237717223236252061898539884054476423221385486590406946712768687987951569559231007724765098467410893918064518958247875340637403105572537463931299730476982586665434437853310664071308393032006499665326846855882147433629629118836993485952074796925470712692042328623019014950763756138864080744355968057187242087945579985293004386587262666843329004436516892113936267600363450981204782858337818723849430584551512385826581562856126392480871876117545765377914665374595226883898929633437049824344831258090818088585025991263852056213180238653421616102092101511790395924453281117213905510932687658897280973835316091830071675057433695329334941416869402736175784413249013840991295948054178968746912065456104346233297370638807561500958408007923066066161354088256754442958922141795840200288317952778080215965426541663574321342445037793087894074690211678668286124950677793494022939137234949841662009552707043102844494040835013704897366684108827094884435213982430491040741060504247944690441741300155624631844963984735252698366690825283697245808028816662366797354749578953380645096737970375683924951522245938910588650261649808501510266218359750815298655755556710393711652218287731172449531006389322089781553524918467496633993532522826633669609404888816535007114190240893844975473480742571229966314759957272996128314635164269298898264474833172111129626551038017427414217180978364343856454743936631083140426097638415342356495846705653893862323337696279709581490351784861078324218680429476506139832361868423876490942716674604114646620811151452515179062475622411770202111116459025435150952082447837441856067341962550896030995646431414246638456143936057773634176945503286761716144621793611897750312369893997138650096044415749678227751380486530351141236879693538615753824174242880746108119817015248008472964643703563183936187391026117696023321054236267495172674999492112619715867913258894220288493425032893390235248470545762115511962220392295606201537257632602005097258526344176807672462935882912702373272971672102994505345772188820414773738977294084043867789131919830380756190021888440474727754491819760958767553741539259757098899691654336566711516595911883842791593341112734621876163555491481310432997759792464382245970879374725206484808615090461529875162291012684611035079032974401320692888147322204770955381635836028713424608554870715463344148814697607063790698063939468409703849254771118269287844981710318198945947090139799056321977411474101054746393959531154138733248340633352442709307758823899341798381708902724741465676778778835400212309391912047278728019747838037277882886094685747320603042626152464774336330671165369168617871887119137532291333938601120653037781534177896328715218380818280631212084198837788527439948091864734576660854339174411758952029954260929417266382650580255343209860603567548680973842849506654327289641168918119728404755874404966842517914287414159002808778818647673493325581053455437877806364237608701901683858017491503828933246547604512644961117125652702390997332339945329292689837512260334795126895480342384601700307932056240423567105486482369017263331588440648626041143711488200540388647542630535899769008683621681783715243308814237455472280250231203264060426346338304563837187666780031738823652722490470586415542383997281589257746378076483617816755212060885328065528434229078868162786349339977497512259022653011396524501038595060267907635068187145127201682488085052414240742263504219291451076683822124798573095713926147408436296865456750779260402428436047824703139902924895320247860951706765028990876303204445529591722344098809896422765044926764315636467747007576367469870230772866154785598760450302478294723276567729467009692411248027946341491626854707155263005959882567094209831803769608276222642857405291826067547765279282670580597340329655166619402308387062231639366736538172970419748917799729344547989531542301608660045315467362998092406803109828966230670335954886013495736417088680248646626446462092242178377309974482191384986218032591956908428653549761044452377467540694707069021716688317233509014316207129089112214458707332740117651652176642681047118639538967666786078949160125031676374000524666725653982022637084685028476798606831161955607043066916798172110365624332757651235965044912956190555758344105297807453740585226998197460687526920019853734232194936966450456983507432676451211700862268207977649793803209315394068628642788735299357222053737812238508170032589740085874305367332729862116598927479342599528238693355968051329623787220293515722159701043108938388359086359921867462946791345748833314151106403332403473832482193060231691758368998078581589416008785216105946634280578723148182052108498016264570924314572014478338822851134218848065934020473587224766479616448371762860679531943201764286726602646434796144755561251256063243563793362770726959346846372948700241836903129124593598340013261827161002814627561554219728322324417924753005635856802359503770767404942955209293523157167165868028600984680349538683136203653465920119135382563486728877569541389070507222612888033408059712513339999254785742207765113410613210317348295788260966507576325900290793044266893958737281450251933688427738409999541787463467211752560847515172630727243581143852508295469754311029431757424536688456820913061711227542975186119614865266502397072484322546236292521218486504342307202300096950033931610179043782180185262889364313150850462256570302317772987556152667564938906164180526039388564441831362655335083970559117737187718747812671938599851565704060498471097129922484256197792720559505790656606300697441198345708263501851149401315454034449103912641366412583029301601100888663973742495157549036402153860607280543023142807068999547360728043578884854556586763039364977675258045316472171645836121482995749651965426092618484913829966388725836444544608326220061101034383684570022852080178010176521913659332594333310426622003452170343412769058501645629969715646230127246895725234755764526456484712224165214162409780301396755150316490075618599887152870674858305677069248085221534515170496753816298315804025245595816534952228688125259945222429385830314369141114314376459909652642195990617151434488157325473467365157872848216802131513077979238650083078234361639000243637084325671868748060123208986750748670328332634698903055025195860320076256643886114118023998100561642932538798481945826995927619481602939789329387225025007408192266734962480844426735708481024897102330424240003825470072717062340449645537500410172899333740537736355568589280806227647179600726144287027534625241095116390262942587588295334827111776906267746670350475841891696683523998705349803443347356802249778082658727615339209903476694924271047765139683140587970301171113096147733734036697495805831831882705370581270195916307887198572099509234300586748828426342832684525581386936898127328475890849626967861596447412826997999343527445514241806859651990988455996853137598476071181856128535276259311799643840234138292335990833017228178961983305469416328884452394374289472925555652200602242254769798917975505422430753143121596858374069552488266440025069820890695355138151105459665500100948530522817229094894160118439003474242805239740064142150070385082756320822180571174418311861047970042634142004028156050225588179629166309127435309598123741914747036566690286125562515164374343881412782363845772012599812659702387112759775370074987243764647228780539610087712555285488334940613706299329334428603630164462397910120794583146246270716930781574188364254343171360775256441253370922750049656202666772568103521875032400390989312479166397436731718451802270452717863857452988427774877015304014053581477053917589315871101048403247354601023547563227444890069737640452058448626911939275495130576311583663124171350212988202045861991625582774345846133285171138108651348880799552641264866935903814701070994783621568669838256488874923058196638989607122669710582076837500439814787374412153654838154910713809378179232704679769190862901260826184283566658017440746570652997338804148051129625388826461968310115522065629861515501572047409404626602602607999830902017703025076098709582980948623137919711896334281934101315267589000832268824738141782417878001302043057821511801768606149453234934071210530220879612386920091521923360983990269522894530989397588576649860815773017552619523673222901025438183083254161748440124273345732627256463482993893304775098149678243587179026879529479578014038574413643550036813993636687234985004471897011110422391065267812684858848856532556104656194108094659047425595524561942817468227372957329971172602837441542417443903510224270280731878463179088754083827079197691947790225835348628714151071121047589351997110293555156587479420647851082395332845751191612570492921310180513080897659485112052281354271279846418365157595896626759884225415015962037202831703754861375872980272062944595510009602412259906927752170995812436589256897959803444194546358929756788406046291123531908969436324843017766616054341327041789745070598375220665502130284155908357809972015008578502145993568768296500619856334525783939455200999605365530062369891107007036189594313819540261111962854091568193329073597809934110405311855229051120379974751113434184144168804467001228606806053960317382265183557957105248334262317152823541969310338276882784214543003292850009875120592067335522920494836172966583810705948245432170379545526944840405974963799236869274215834821853829674701142978335503089724130497691804643936519080846557024019520963655364677615758534789252910456397513002104325869048621761388470911969868008676941802779883385158403434807825323324395143830396942905253684465238584562337498639321922628800392959672208667006511281521733525350193461360658867577993411414673147989251223868524086796165259712123646199447849801985345898922570147033571010991907483888305697470938299378714460232824059782628338063101466570644683844067753426286676628455298633107004061384629622031669938356971413033826481522122869799795218969641411039783912929917260904167216344727377782199959631267885660970542581329214379273737747590319563768564517423679857803198180477111045112054624654587194878787557372984021117546271803003628909281346147134123703200416246937192888411014648810119706094228269294837496881873674988394291036370690945603147827418234654678304490224287452122339854659197015537310378774119632285567193264519103453170036313214822385618182077632689125282813054832135357759731208649682902126206736973962323035124739545185190337100115027196842589117262422368745548797137336582697204428995255699695318224729049514096484955888533040305349166088503100538104070735615687487070033880450380543875671827629032702002336924344623017572674778198442066896910108581175772798496347014261248190970830084459757641744483603231301003120229775844522949770229984628504644848367833451967476436972464207672501779042114004134264312749403546274398449697705929735851696058848144729197122067900025099807387692397648417435772264855094050821650694206258174011967522300970429715019929071719464747824919549322365809206265415530621438361513866875868373920340350702419607700174385736319225882171413988984085727014504102619827710965138993754390420629277605183445535469833466616391404742572182638378258120807085744344463323231112379593500072989105791942395546506601566105659009337130336709444815341019647772349095069731572698071007252608267499064776070293967943212686916085913944758719612023102695954704050600181556886278440892473453755228023932233624754558582304207424099545252530779199768312812049917943766266392135340757624367232065159556319144961497362683272181914615487778798367127243935737784367848059978095352963472903694027178128853973998317128387771094352829412646280666565120162073657078814896117639885232734193671647021063975490779310869976850952860127522957212135747497433740451046860677512345573437801202796101031892111101581871354976505777067266037764372323896135308640051716009782760290591799519134539547178763595727653842288617922537345500005905021570434090040468943861175592542341374148054834279629645099786251985033930519932464541327666697858004560969778867617193170576214853827037184381866853723897678431863212152837517464997656788074242047016810884903825983964283088964125746314907160542195230977104474653490535412265156501701960297219984357809860997867098038226587742556764069255590170889393312806319147406258830461596796705152931625958637736212534870786869928320309114671448104541423560844749709558783039588389592630534259120152538675948113721663522049828195566369608164169997448204018927940086624781832208502356680635108351192722553006204495325913402227028760520671163766143249661040614817621346905949119214373695423589081919597366659296634811562981359129371366507187601798959856799965013486836281259851373399207014551605824019003592934106683912799295470161606930142624507492733867989566986496199389950041555919724280245993000951662744288815180775500714163626793733245351411819910919018914027984081369753479292996831629197635841908826723176598495263530336354070287887868771666462098098011731253481815595734504108475345152071341811444401897607440776215623781871436899450050933195987808549750161199514228782907646226685717291521774080495265873756960541429226845186717714052532931881110130771999866898029150847080789097389489145441624072757702877488890312985201000423145440977951718834194158277345898036626192580245162040942304177417663900216730259550429201248139029340109672505786293949748093182276007266045427605424987159765103881784500406765119932253531162802696146262084493013209726063323910822167574930231670183725372200621174357334584030847126024457564072614322487211843086407100961488747353545160646476946648795459821738640493149004629600234592265585222435778705377996514612485583370919713565718449490932364473430082210324179366540783860529080845778732168230561661485132475157995746728117043448206564521135209202570657494824537359880863645801452030416363323440064872011965800842206343090135288534314928865706480141935808499028910189436588153459821419474791697220799723004184341438608290870046811422872951344764792791793368975542086885919265922457839514452024742845356515446020872660135607779279313259756791460518709838912699940622879026667560575332286155554337890767272761433290263439560480244550913607411447258327113142724892053603755969786951782114590248235012848319072282850764702506876303865768974962461015469572094697697247825374802451057274900545825950672438700589122314243998249659607562913828007607959443553492213628356446419049122531646854242593461162706226971502092509583717052413930322475644292919688581920422707385514640325918380055570376055846649813468954223275357548441144684868270467676209452425547645913501605803192107775182089094129398856218353784377297357446687278023270327257933898056817754038801889437108721794553958847912779051320375400680181946120373420155653630971565441396647099963060913788183896789072681398153377443466085350939492531469212797264151108688542514660747661453996013765989332450756127118758408950485309126999444103068092710853340951869052473893120360610131388915459050453975362936812470829025942063119247531118354956800012734088097263302864399545926557093033935889802322936877761832960629228118391208245621274444326272958782573300152396813485285403029519484383679924755008642137631898462728915563020092576968711753655037700056913796239335688032776939150837307147104835164336453317756822977629838774746586733314814099901545319071018037880336301195730604898173686377062155391515340745668928044517726258920704548806878811578318585860035992860094962050576789880771855988916035254623847799322545396740105397085260089512428444345607027130374061985906103279864781687757756235519574724225180857707496756562797849958390505676079752570908967210933526892681668256437954334512344696068084269959861315195137930051774371515191219836597777264102352110509262494210121645551363937639803359864857777281601067496440479797351618338742725499290025290600986746268026005247167499214313620648327730446811593247683480949579541269941306338300736514410300683870077290454600736091991792089918210016831114417388212316583976762906799418000634672388372542506343365251111845276811659143189627469835504832698838551339023474281823800644696629636022705840208900354253952514619913891036367255696492572867758965736690978616884015226919531805123549955070413410006497548262264214600426322969100437934967055578302587510897187892296394603941739321042800309220383515451806210490589019293732941439082235790267953937835539600180710694431515236346733435830125855013010449851930858325922221802639867210466138021072321021915807220695489694145413186725094822253807518008012379169867111451820950636422405381954721023552292590040688980955882451094015684903395118293223654398192403847393514786122761391465745227159669583523629580743703173436454217417606906674229429433521628639798115498049775898529161601382433286235334061781502801483084954514526649304363414998359596366280573433920693654592241963568354526721753258613218249461169824242131885465501358707649144803191648811795501226934575869628104048922419111186808357123143896861802449607439293516130402896911770232745468264733998824709191730436384509667456614945796904758789776979263578954123840169486055686733481956031994398071548382675085150283433671877918974319924720995017250523511512928597353576813128947326535312579111090083040032384771479218419930264750487391116788272029606637135233595510318396191092066068402176200394100590743505053700597807124410125151647025702783571512642659884383986046129094563630669484880870440221915579222610037332358443021411329955914885894817094185860154862362873029597057046746605469208476326920934214766487801485351837155969664527243439875105937692911886394205785583572238263882766260492942199820303348015554974056901751565146168138289884014215007325166249069209758794762964981133451243673345195518396779201163935696050573464787136449349542700707520694970495084409097888753781982266052896016007349122278684759579600834335486826191558069531409934503485280172091856162839467290016705467067080721025976031880062433591672486529096597565911650213292949130647650890122466682165731147600954644227996951694789797272047470754278741552094082491606742020713575486991406724943481575786050906351749629458260555053952596256897855424307312145791510578063744235447379774129696849914620903970812501817075935193466356771457169543823130475893570869808972400347804445370102635567968794165263865941083707356788004423677355807180097522783605231389257103937499755651376101968090087487558157690467463469491163935180401810835815013764402440189471589325008350669801672834221796713829851801078521463744281917252032763667176060536683241447833297177028868023474491093234273410949717951705661882915431123257342355140670556398628396261899002816190546940196371765222565509032613111346561570590513314349936052951996569176018596132393985750689693247905511251891143158836588084724050432267865763484675966271652554388781996062592304140053577405317459749145779366017016482471721420845061282369214212909906831849649779669051364537728647151457614320391942865688370067949966586773955552217645609546738655481205251240834961113806046957450176117906023500731129191387481659605252293208521664515685292911082536087841659820085568559017668280977093708654331583069198977567436778847553044228541391063959335527910168342669636434176702081427527601563438221612827197836658672347370159990955814336833325217872333416017553444673179640327106699434593408576242005893912574773394483874179002200064181182221302791530088965132863278430326917959072209735530807068506757613297158021491029765696250525978389968487694721564155721872200351590638977613106009160646469265127351349779514698904994465004639605194172442620542644449698905428019994455875676162191431344382038341973209718425378360476254560712060637666663356277560867080268209993050938077622055347787099077226125510872205115622503085393387052825959934416382480687877277279718114571933898292370708441818450922304748545057498125347799479022447064980771092079174545697009057515546799380722510182180117694536849411465917799386072659273218780676141550324988123072454989413393783496186683987338516433598865255426074043178458234544353040358002551557983286974283255009685632196897320829279172741285266699656289281207091375560002510702889967145447692433249718402027548433821572175960531405062012762215754451490798501410598228269644724060734506133494268348005592379588488933421819846166424579462020224434768048969118415547687210730732368703634862379477050993066556289052489680396886388014511716231087064442331038128907567931991253750911439880713758673012865778905970797363457448717617747349427692858495467217651894698546478900711635586330954227857605695531842259380609124589000688920328270023810540516706703869724362382084964996373738063158682445805850792784784097720359360825625915961630928011131979765288031019532804869730610917894518509605459241865658446872850793470665818205276628035830333681204609382837588116470270876387795023846814232672514350829906354598500005468060878574122231992567599363968611207734403962185565577321663996621612018522657399170006990039913693123403353269638994706072933073766991412962711640352218611601178215954323601483729292544590475688337977324873747249757717620851331536370707923107220369293258091051623336826613242825845455555971709004745672446967139386488464055811517188302411193526045205734102850139981000767253690025103966593888315340443433740977140611152968658504637067070837957889530579896886290270983277643615011815874267327249941044376140468468904118952612023449004556947019172312305812528707647020769584566851386916795536276210251738237172379902077955350563064910153293939644271839330983450173464679602370431707540712277730717881418087594079466742144649346614713067419715796103497531169526413393887532696003559235042986385082917844052119131474434697612958015666321416074280406372719324753677554135071325087210786603885015539076797527672396310761762852282234157827768375940404642265177426410761916868329000351907796585957336330224126685684857062542057188446776265106605608354681654788745602250196241223826472652420598549078355562738287270882902633214380162255354062938837395862524901903448002715273174550342028696709982088973225199202909758464319628998222759643289215692322333617821404584294236447443838059535988988642703579023177259778974755674465602888537613439893683804364723223457581492637443683687732350604922894728528947815970044189774788760902904014395151977444828512965384407479602982937939141565672467575502558513548724879289109591526768580831934849093781494300230214167084812285212054492647309643578424254627557292701872184795475159232422951996807829811019485914527723165028719876704956718241293527459898228477197852583502590144609823570669524438340571639538011872469000200619556317747504461032287517128055771941475809820916427501188422175985742149928511200626646351368569110131377148651975678488604083019369940706892506904650718246314657356956070953146746456676948594081170473888136103872463189543906763025870438533734408925662366553254675158751933793462154490306279855910395842896537701137579196534525344964419443431556209485970736344512167147721857769569949150486349239063931076010968216561116215151166494516773215277228663343715058149091333767242354644023337935839152227938532830148282528328710777860761489346123090067177645148616309428074933788615414698780060428995927914773088956831444181243124039429247591654850958088163449726330476662324450841015148802111985466290350144501163267617726881356464480006709450452708698199581485592070535156450601759861512561377324940307842484164948728996771963129470175279157182899317539327740968559068823365075160343955064628063384826743756692218063657652259572907777050219994762506215352941791995633436060467014454551099635083351492050905910727474884378812926379388876656922080085310477923329300137871702391247013131037212784228812601869508601380678668421738709627857637995284763150577205223626212627514389257130356777226874440312813739049420073271163862909700530780933961801965417630401650148381201985702402320826822108718781630530880325075317281411067131162504054964283718259333095750602820913075907882787179249711165736837730984246436649201181785048760763930578968177543763775933024099645241111609089328453090037084951267824554139136367157020864195720553542046452738955647766052816996890701039184550696508053940063004441877943125635842291512778946729292726660205631424511788742306975533435338339301806403036121277567526925552762960993383878886991373323891143028362525800839054876512004514457598018451337085316387896933019735208785975157087955214576075588016879693487270648040896164285113429045665522491355275167059361212693497320, 1, 1, 3, 4, 3, 87, 2, 2, 1, 5, 2, 4, 1, 5, 1, 1, 1, 64, 1, 4, 3, 11, 2, 605, 2, 7, 19, 2, 1, 4, 3, 17, 1, 4, 1, 8, 1, 2, 1, 1, 1, 2, 1, 1, 1, 4, 2, 4, 3, 5, 1, 9, 19, 1, 7, 2, 5, 8, 1, 1, 4, 1, 2, 4, 2, 1, 2, 1, 2, 1, 1, 31, 2, 1, 7, 5, 27, 2, 1, 1, 1, 7, 1, 1, 7, 1, 13, 1, 1, 10, 2, 4, 1, 2, 3, 3, 1, 2, 1, 1, 1, 4, 1, 53, 5, 2, 19, 6, 2, 2, 4, 1, 6, 1, 7, 16, 1, 1, 2, 1, 1, 1, 3, 1, 5, 1, 1, 18, 1, 12, 2, 1, 20, 7, 2, 1, 1, 1, 5, 1, 3, 1, 5, 1, 8, 1, 4, 1, 25, 1, 1, 10, 4623997551750300089500320024737592866121515429558501807843214206362335490200086951111161315404063, 1, 15, 2, 1, 2, 2, 1, 3, 1, 1, 1, 1, 5, 1, 3, 22, 2, 50, 3, 2, 1, 6, 5, 10, 31, 1, 79, 1, 3, 8, 1, 1, 1, 1, 1, 17, 1, 4, 2, 5, 1, 2, 1, 142, 1, 5, 1, 10, 1, 1, 2, 10, 1, 2, 3, 2, 3, 8, 1, 2, 3, 1, 1, 4, 2, 3, 2, 3, 1, 1, 7, 1, 1, 2, 2, 44, 1, 1, 1, 3, 3, 2, 2, 3, 1, 1, 1, 1, 8, 1, 9, 1, 3, 14, 2, 1, 12, 1, 1, 16, 2, 5, 1, 1, 8, 7, 1, 2, 3, 20, 6, 1, 2, 111, 1, 3, 2, 2, 3, 1, 1, 1, 3, 4, 3, 1, 21, 3, 5, 3, 1, 1, 1, 7, 1, 1, 24, 2, 1, 1, 1, 1, 5, 1, 7, 9, 1, 8, 1, 3, 143842347848882898680138725620585034972614228800881992829141361309623245987918269531725550939241352105240167963019560732059612028540113381138826507590896427926114955601544258829175508032342921864214658876506894463104780205504590217453802024478742470925451980976310587198340306197265787321376663593267998915178405802443855265865019630054197383494299322299097610695885562615155073150115409782996848672160158068105978401293906847398663089992037877724987892493914058006135815490939595070004389024819309148629398358518597576827694052852672177133598500362197016556119015554633041338629388721148569127648786766633898854488408481002274329499000009995383247883800108814865366382913988789679909103142417483100644146764982921312788455467491987820218176605908914522125100330542357807521144801914669917405105210724553574330200909542544131863870387901122043102372869452621381452208748970558102411581991779216626548522404232116560167322325358844648137079157410570389413278682639883992606407908918944319360866224417970498956740163478768852128973106843917866576395401091248492025069063519156095122027440120342487183024324683948003897397501685741315214190113171701081966791227373912674051167039592804365223135515652127099821069638994958414977432918823405125914265496195855477154149093398126718552383723438555394227745751986376831341670026433653680783919772845096177880521201400556825002042089013598491728930388945226151326715462885055352343184749795713119235160388727053192608354684711452517739370037247005031191979408710396009051604782178387036734809377178529052906983930538069840329690073767203391637323386664286743216243534014739447481200628631289280888787714072711912138842392655763452107103629826130741005109355806016490921746661591271024893705336157851981308124449088361357031094220042039253238023537116947235149695431753313900577670083454468617867235595992754427523245599346888415333616122277169851039933223334096106022712191415453303806369748175927075770506296702700814886933270041300346836604765316669665431801426118264168862270279566144500398865312420807954325045781208845363988726035378176840016685954415692847203114885894238902996414558757913634168373809925221704047224177643863141027809880308146489265557042457774009328454980386322508665588996264388410754476199261877569969049172012663753201192269759282304151943327976519962888349017586689237114936581335059848147522441618840401117038195092370962066147081576499014941010397581403041713097429566752133500182492412, 17, 3, 1, 2, 3, 2, 1, 1, 314, 5, 1, 3, 1, 1, 4, 1, 2, 4, 1, 2, 1, 1, 2, 1, 5, 7, 2, 1, 4, 4, 8, 1, 3, 1, 13, 1, 1, 4, 2, 32, 1, 2, 1, 55, 2, 3, 11, 3, 1, 2, 2, 2, 2, 11, 1, 1, 1, 2, 12, 17, 3, 1, 2, 1, 25, 1, 1, 31, 1, 1, 1, 34, 4, 1, 1, 1, 4, 5, 12, 3, 1, 1, 1, 1, 46, 1, 2, 8, 5, 3, 1, 4, 1, 1, 1, 5, 2, 1, 1, 1, 19, 1, 11, 1, 1, 79, 3, 1, 2, 22, 3, 5, 1, 1, 2, 9, 2, 1, 10, 1, 9, 1, 2, 1, 1, 2, 4, 8, 1, 1424025134481280736613967830509788961233617309508643002939711224002614099719178147215858094894737416973065746914519, 1, 3, 3, 8, 4, 1, 1, 1, 2, 1, 1, 34, 2, 1, 6, 1, 3, 1, 1, 1, 1, 2, 1, 3, 1, 5, 5, 1, 9, 4, 1, 8, 16, 2, 1, 1, 1, 1, 1, 3, 11, 2, 19, 1, 1, 1, 1, 1, 6, 3, 1, 12, 1, 7, 7, 1, 3, 4, 3, 1, 1, 2, 1, 1, 1, 5, 1, 5, 8, 1, 2, 4, 3, 3, 1, 40, 6, 1, 2, 9, 4, 1, 2, 1, 2, 1, 7, 239, 7, 3, 19, 7,

"X",

1, 5, 2, 2, 7, 1, 21, 1, 2, 2, 27, 2, 7, 3, 1, 13, 1, 4, 1, 8, 1, 2, 1, 6, 2, 1, 1, 2, 1, 1, 3, 1, 7, 1, 1, 30, 9, 1, 1, 1, 8, 1, 1, 1, 1, 1, 2, 2, 10, 2, 20, 1, 2, 6, 3, 1, 4, 1, 5, 5, 2, 1, 1, 1, 4, 2, 1, 1, 15, 167, 25, 1, 14, 2, 1, 1, 6, 2, 2, 3, 1, 1, 34, 1, 3, 1, 3, 1, 2, 1, 1, 8, 1, 71, 6, 36, 1, 2, 1, 1, 5, 5, 1, 1, 2, 1, 4, 19, 3, 2, 10, 1, 2, 3, 1, 1, 5, 13, 1, 2, 1, 4, 2, 1, 3, 12, 5, 3, 2, 1, 3, 8, 1, 1, 3, 6, 2, 2, 2, 1, 3, 1, 2, 6, 1, 3, 4, 1, 6, 2, 3, 2, 2, 2, 5, 1, 2, 1, 8, 2, 1, 1, 2, 3027143242803718505126909039249553993196985909537, 1, 15, 3, 3, 365, 2, 2, 5, 2, 8, 1, 1, 3, 1, 1, 1, 1, 12, 1, 5, 2, 2, 4, 2, 1, 1, 1, 1, 5, 465, 1, 3, 1, 1, 4, 7, 1, 1, 5, 2, 3, 4, 9, 2, 1, 1, 1, 1, 4, 4, 1, 5, 1, 8, 1, 1, 14, 1, 1, 17, 1, 1, 1, 1, 91, 9, 11, 1, 1, 47, 14, 4, 4, 4, 1, 8, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 3, 1, 1, 2, 1, 7, 1, 1, 2, 1, 5, 1, 2, 1, 7, 1, 1, 1, 11, 7, 1, 5, 5, 2, 1, 1, 5, 4, 1, 3, 3, 11, 2, 1, 1, 12, 1, 4, 1, 3, 1, 2, 34, 3, 1, 1, 1, 1, 12, 1, 6, 1, 48, 1, 1, 3, 1, 3, 9, 1, 3, 8, 1, 3, 9, 9, 1, 4, 4, 1, 14, 3, 2, 2, 4, 1, 25, 1, 1, 8, 1, 4, 1, 3, 1, 1, 1, 1, 1, 2, 2, 6, 1, 1, 3, 1, 2, 2, 20, 1, 2, 1, 1, 3, 18, 1, 1, 3, 1, 4, 2, 5, 1, 4, 1, 4, 3, 9, 17, 2, 1, 1, 15, 1, 1, 6, 2, 1, 1, 1, 3, 1, 4, 4, 3, 9, 1, 3, 13, 40, 2, 7, 2, 5, 5, 3, 56, 4, 13, 3, 1, 5, 2, 1, 1, 6, 2, 2, 2, 4, 1, 28, 6, 1, 25, 1, 1, 5, 2, 1, 1, 2, 1, 9, 1, 326, 1, 305775074313122487185251705122186328047354915702907025358846595963172544838531205407639575541041859095250006066596360833018704496391517178568926645323641127151072439884078798110626376686785525080728008149706489301535878880339129060019045367569653015345140650313857015840922705165110149310012459033195085438496374446160676491707701157499191531100483027676498871248252127997706788415493879807449179296743966980813159920721828825834052089807702988198318998114983904345542498775560014490376158303983930926552869206485428678823246838169987456779204667037989724859927780754999595120260790692482973838677594215962730312791223395961417494095137328667550233991458706233730624707144156000147454009566787078151291068581068068013790263178889640152930208638380905329015032987295479735047055702147602348359120590287872106155833385276831170183008826332077881536078053608859563230324047235421726824927899747613645783896850306964605159466125471721468318730887833869905849969362978202076850378160800421134470192818102071938708546032543143615973204747621679191730990333873721553177550734563456595682780967671050523438551389748441988436188415294405232578530629636980794578506904870716342047283003226163708389948559754655051645302687988966095367256901653005733850183631400588434249861843296070247889640760200516968661744750976210710241913577108037285549007857190579788667237126142816400590533077485606531453506723669710216484828472107443391604340490934881915375382625228186741856966252186393047711736812116372525317051658668543951027856697690353614531645060105091447211186368283347384012737446409398040190650306998148891496598278095516261611341110759641079283213052492462791847336503826390395887575108225438584617243386851018790944404605460325690087518627086050107260187615162816822357249110212070609476523616217422951737675462138598759798283358523599498193832150181529988839498717859238623217756218169444747006947098953043427113929853130979742587522566787008320762021074496993202050775160448210854243914701610241207201492146041962167388034864886314908385501724454263532053267318181112199357428075748981577628265023142183128025694862917460535169832747173726603641623485474393696929918667821413350673480240088861759456078102415544845995269715810303754145021542911537089458773027490360303801908979255752066037215412733280436008843552048696189154916607577021088206466318496659421948891289807372239089107432210666389, 2, 2, 1, 6, 8, 2, 1, 1, 1, 1, 1, 6, 2, 2, 4, 1, 2, 1, 3, 1, 2, 23, 2, 1, 6, 2, 2, 1, 8, 10, 1, 11, 2, 1, 24, 3, 2, 1, 9, 53, 3, 1, 1, 1, 1, 3, 2, 3, 6, 1, 10, 99, 1, 1, 1, 2, 3, 3, 1, 5, 1, 10, 1, 1, 22, 8, 2, 2, 1, 7, 1, 6, 55, 10, 15, 1, 1, 9, 4, 2, 1, 1, 6, 2, 2, 3, 1, 7, 1, 1, 1, 37, 7, 2, 5, 1, 11, 10, 2, 48, 1, 1, 4, 4, 1, 11, 1, 2, 2, 3, 26, 1, 3, 12, 8, 1, 7, 7, 2, 1, 119, 4, 2, 8, 94, 1, 1, 1, 2, 16, 1, 1, 1, 1, 2, 1, 4, 8, 3, 1, 3, 32, 7, 13, 1, 4, 1, 5, 1, 3, 1, 1, 4, 9, 1, 2, 1, 7, 2, 1, 1, 4, 2, 3, 1, 1, 1, 9, 9, 8, 1, 7, 3, 2, 2, 3, 1, 1, 5, 1, 1, 5, 2, 7, 4, 7, 1, 5, 1, 2, 12, 1, 1, 4, 1, 6, 7, 1, 1, 1, 1, 3, 3, 1, 2, 16, 1, 3, 2, 2, 1, 1, 1, 1, 1, 4, 2, 1, 2, 1, 5, 1, 3, 1, 1, 1, 2, 27, 1, 23, 1, 5, 3, 4, 9, 1, 1, 1, 1, 1, 1, 26, 12, 2, 14, 1, 2, 8, 2, 1, 3, 7, 1, 8, 2, 3, 1, 2, 1, 24, 5, 1, 1, 1, 1, 1, 13, 2, 1, 1, 1, 1, 51, 6, 4, 1, 9829533625907963365594203490838, 6, 1, 1, 1, 2, 1, 2, 2, 6, 3, 1, 10, 1, 4, 1, 2, 1, 2, 320, 3, 1, 3, 10, 1, 1, 1, 245, 1, 1, 1, 1, 21, 2, 307, 1, 21, 5, 2, 22, 1, 10, 1, 2, 118, 1, 2, 2, 4, 5, 1, 1, 1, 3, 1, 1, 2, 1, 2, 2, 1, 2, 2, 2, 6, 10, 2, 3, 3, 1, 8, 1, 9, 1, 72, 3, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 4, 1, 1, 121, 3, 3, 1, 2, 1, 1, 2, 2, 29, 5, 1, 1, 1, 7, 5, 5, 2, 4, 1, 3, 1, 36, 1, 1, 2, 2, 2, 2, 2, 1, 1, 6, 3, 5, 3, 1, 1, 41, 7, 1, 1, 54, 2, 1, 1, 6, 1, 8, 1, 88, 1, 3, 34, 5, 4, 10, 1, 4, 1, 3, 8, 1, 297, 2, 1, 10, 1, 15, 6, 1, 1, 11, 11, 25, 13, 27, 19, 1, 5, 2, 2, 1, 1, 1, 1, 19, 1, 2, 5, 1, 3, 19, 2, 11, 1, 1, 1, 3, 3, 1, 70, 8, 1, 5, 38, 4, 87, 1, 5, 7, 1, 3, 3, 1, 6, 1, 1, 2, 1, 2, 1, 1, 59, 1, 9, 1, 9, 16, 1, 2, 2, 2, 1, 1, 1, 6, 1, 1, 1, 1, 11, 1, 1, 1, 1, 1, 1, 2, 1, 3, 2, 2, 1, 9, 1, 19, 2, 1, 3, 2, 581, 2, 1, 4, 14, 9, 1, 7, 14, 1, 1, 10, 2, 2, 294135353452284121308331583539007475921244321275055862084987813655858394509770191671280975477976986135417082012125019556562121010504300878530651920654897026310747505174377300065577808185592334404680838790333849474033949110780650006933231841611835625599497730473421882902364450849117087250808027733471072107064084794445193274483553061891230740196280391201498852612568768163041496341394597492535779143885697391370567916425917322701445019492859819760298548802576709116277175824250703431477265241040117491983947073616902908252168493093151163066123717183976754551435797588584676018886764298746447595628951711090035285680730333059038737882582777601030517122896195927137941386680588497065096500200067045983333480634439915206524126890602750120164179747155249659711497661921129820095935356374055516818224180971575359380775753474442661873160538529727769915581794335804605181906372709523188778921087725681452019128500874920589442481599543202845085101724243131650455873824424072742472016033339389095721257295324118659152958941099174985873384562520090134313302545997873670843735713453316340706824781287241617420184656227145404490517652641300770594043598166290053551672124102065591734901284787464508804153075730376500878159034344622117385821680035745115374051263492615355856837184484671797569612868194026760010408117320810206565085188481294553596820347341761212285222203947807421906983563316339316805615390977037433933215909938159695738882507786811003479212530067339869160838485856707182907178688964242606928280932285117762500370355052194732582960967122120556969148432982602383628176923829621538425072297296878180351581455966658858277117020548369756777301250521743939081857848332112687702603554285183515948166197394339464712040453402531178008620231697816791802496868812346521228283815734184440111338226092515287624628508664770210785165046274731483475530245977006946510771622290371186528695971996140578499365290033698836836460265956288800680040261903654539343512584709015851565107448488675766103226408950365907262527183221478800182337176475662216725191831501577835040820670405909894696702890488711256467653124313218867883693758640462107497481192042616566763526176055294784789971416668566920748206512619160860550570507209295712866605629705860056012844941971883027583783584193131609505493226196214016720903711825342833611451065846606828380921180711022683906833691863811275527895277423980561158506538897903237015278055685389846032354803001799364052901709789227563140832822253740420504721445093197526278439795149818804665302786415016187031628567958402978362694137442309698569323121526659553343156902699263838909084828061164245647077325414485743021945114988754965901643425284363584462925394482829186284613852565277866880748336877864694648070314935516827690087005926888417322662879347071198659752974432383319302143141640342295863927644558646045594637704639029461492665014980495822658059571119134481181187820026371943262492853758239734799447859835467142448725169254658465243247075854140934677779888560726956507774821345339237385011428227839270674680768637897348257495653178146866228009492469025742053200316055850193391914652651288387791410395464055553947599528159154714135543080256791475942422834410531941423941532478411180686828034451923655001231326405762573964056249380048796859091544349462523505373605785716714624003219711415478950694268470182587546669937805255786057070314710480656438646357058486399924447450097702077935671278556984302413706624166751055544054194461669485394125902726803012763342404727648151710346825413949793719226678381955782206257883403095763216048615320064284851661547126806810951987311978287743000060892524841600478171874852091951704346605507414071938721974066554583452161412665077043266579708289957362810067435511646759457882436002334720692842341940032710156548529088453051938979129377629099444401903043610006559971996611757240738566830372810936673662786486945844196282367461524710033768140431735799270383895829894149717225406065009136294508787766123088783215729311939262990272588244494421794470596990026425934213268222095135713095268118304158064027081983012033232543914666984111502908504815286507198523522392447464519823359999060442073748311052159462106997302510258678432553804061694871968213647855223137821325956309459897631275248026093934277694420624478852100685775362239661722099308656314154282533402192873815616110096140778773219087640641595258031217580068915786045349196680303752242709370604410789651307942296139618259536369924515857534495003595373871999658577074588583173328126059378735742010206120748032506602212425524523305887497581324476850733656218236195416140287531735688390242943980985507294976839405040100846105461703925412945572000115302226573216456056949994046964258858117226430403344041444106072220050496156388246772346503653133017894971400203210580498670437973534481822090703237359728677815306237962728422070019267094262507357866119977745248250622830911701649668221780343068152488079664425386925875405074715692288086846447293848944277251674069790057962722132595525853105767304810714587591890609956971475831451389539821415654369313785913484218642337166656256902957581631673717541774365499463564018697667245785584890025236937170535214579947799740379369129290728742996499221886250035237169341537575583057592845140909876659887901787704854767334133273211786753980115306140024922498426984780720629183771389686106483034809037406413747513798793321806346282824848333273976990946083078491287406180857337871740806641973584642655618041714785659228551277219556497138123354752026254601099806591082733750189115376165569669747880751875809079752925067081044832975428357206213184252089665031423424637781592831532483861605663207263258563195724370085920941579809954069954515983645296887494369260374824377151497709371419434434632924594100222901973909783118777903678818734860550025991271571194958676803695826043760378498634240191773339354093095035740822235729340812388311544775001053025726677666250002275924265804120163416799284823118788406224338389206620418141982725137592890104290585908744958338592534403330101418328975073666311313703862944282539958494735791188781344204496716891680515849252789482646535553223631762508563608891189451215102069003261050773581687896241902360717954152675077927073363328173961559318126570627717386435757364221996045080729810201970065614325554959349433822158828091601902441305429707757519949311319995763127732254802678383183635920246610278705890770632049252783222676189526364863091150141682279807804399904404481353525095136318632765850033343455395530217034590072807350829389302644368792146935751896015389655393521640191329747542804568596655128528901084451196146034782604023417449903527026201681247928297226960429105250544399524013132497244880168840072240749252764904940741122223392831778485096780305557140911617545509582348659013595130644896366327929334615792101184593355326161049549426644098390997344682910651625308126241034722283153246966323276476374044277971856822933102387275036694142749127637159930938009821664165971835032828942181562647874949986007358177894177454502254511122803396284940341129672746258257955323266478913383842391838191487401364003449667351837415896742282115894492901942682704893403802945522258345407171854570095235450038263256558891164104640556916154934947292887449251105926775296120809299596516604155817261107449098107542665200994212032212686846539956617858425020831710004250309760236102095519133643992745749294596459466649060536319434415838573899102635145353488776521602719866878654100529527670891168071041251401283860931448272336349859323442994277913176787816583101438206130852325028451821270989624210771009312476093998712627862460578963168679596837107855357932456724296681523236296894768600360793690334323225768721309053938728986393418570256953443803206304688160087283636177344403785146491610918768557332660277734152597868849354869564370193888065948860642012041517687400352050977378583049600053801710343376600031134106126031916971704718433480186491228822559705925097869316119244728677627347937098190427348371824418571559990818232723732074550001582246856600287302988641890725469954644616451865372851891406238132467304693423892799185373224304087677719711977103446565105860353667856190923723479155051371839469748070707293974808590308316464866358652634241469315598459299384406253586097638076113729866034449306194868543125451328195653903614485486213371065485983949263197207855239470412573488191421427457178101820602407038896541615989565903423461959439427844401029498027652134894333363488845672320132048336335104847607809735680567300482489751480529212051429647219726538423076077671223713298496591051697907709192676091382995651318729324142061358068864146127446218096537129122768250749374277594298992468848995033059646593582036847057024133699167857944025791739357702870214629109209920126543101175283016469177442796889173141212494739889800752916552624857094684204327934098367078867139838018334958521618246115045347926457086142329472995056274458661048426359579225697127035412343899190945761674331918112601037361517505106100001360403810128744802965745478106498109500809863659042491630619387142047460813832292327904736816469677760950389360879019264116295828380232078572388085634610132337710460339442032299089492239498497396618837236415449688163686170698278134961008182865898537145723099408783019815965847265817549548216799534314809357205921301639149324301972656736847856778875069117769055203733278677191730985848674073574940108482523194947930210722966165006924429600754288511163615817364810521936249217604644075514364343973206208783803756781273572720206424871475974363112065758305350634814183612227261658638427989783002337254952465557770014265802618082388980231956369542542851729721847285995481100603338400892868263112340961961712970560178475814090728059514842971932034926198606370900922197503148812055646937300472945429467537449443122643048199741118839983186722718735623305587176124586511655876853429766413474203899768911800750999736014407739985805649391683428754335032686126423976467354985717880342451955578212598440321660363688634080519440863862566153639076426534118146117777139020992803277391262514749211021130640914768780333650325894936884329325732193923862169028081532746683050040050846151688369944061358649497814509251914423917432129037734421790974775163181654641133067573275132492264493757838944051022368355216763622826575748304420459015815364485290498231931872164501857654633266798777794729102674040716383205443353749190995912787471489167097814984510840824840141204878762568220359953308594734456590081013737169989002651775306714873616968836908806532400286746907569947163800004457452434629449184894838577006017748371108710353276172892171884059243501941684720117165947971906410659842224684204702017398797476245072732864316808380772461128381127342961643936790396915329951364207601534013523061020613791904245200525493982426916110186322743272211918114077952714994549568522797213728831495370322423929228141406802017700306229635190279932937148474499651780863506407644205518201923355952888839452125351803478012328165040035898158822368055409920880309911898803761447115508884703586132361730993877355065511831524421792606404492017547101346520199865831120821737385048651595692814743635381852121041609751009859922843760897949382498196503675454090815546317662578741655009191343291989094747605575929578165893951115176503785377547508309007518639754108158914132834248521249133135470468758818545581076980769746067996129038761127968957835792918162251214212615767420227536357005570489550203530086963774928125974584143963457124480131170590656438217290087455359295556842692591347877021499043715169981967897809809254101597383453676392663793649575700062260510343710406316122854297964924166236303712138650336015694418902672103478322765356849419149978296523985594183079837435128107811402768082162846387343337317416364828459709703916402750158451677848661853528638955013822376129537158918552715484681843098644886581211213966893461234363022182775294018829354048475238723934404896883719929544103737750700681644782099713525382463214548351032382376457847216186776673171183620146092928242524749349955604918236186673601629455393504668454349697747888821118062009490411460872585721489601018220654429087045849620722493581555289175329920816026325444046584634358089904189125289266239380383543499722584650604218669875408217423061956943184839285872905741419731173363986064080488088845535350636092228326620306892480888916941462323522314156928417847447822223125841849797890978382238147349734727057246755298291465642962063698130671639310233717300274455121728020387255420335043978867253037923218070900227742827241794086993625012079675108056827194521606928494185349452688022706342357548052223106953733768986562720775647075080213370381452767694274486768178114871377729312094989836591689781623476002220752718086868015660762032865008283892994290509228320998528810943247244953023748485048565729372091346006452481339363932433809336636016780547423445800327251850347507351607423755879438159109676058048194273972596121594267072827797832845211860266343316187264524238563661369348397873606680638149864954361177646825763653521489836378804466984801671021448804368990222282055293339191078989005034523879005753200883035810207754809412706047748766206472527606929369681745293016677659844723055641050875113059613354500009541597966478595757675872123531080066058963070483953067125953428945820665348800068169779731760418962008327231514263286537435822202835580891506806460201078887340199328834700608295706218530214671080898540475598146615421960024454176632789539190359994077168476970408815301519363656218148783739705610424406085564763316041273472225481217393449199345234928299316603678165669235061177151243971998867826025257597908212692466409876098429376279198951379335750412008894114576599834267250091494350592773713944516512760404693347337865206014379395738515800592254773667623511407703159259906942575153581760258378383341875461844056942052145537472413637279696549226060409806847542926221659938120756950946589842463074966426390818606674795586250567529593185703817829067907526260637541525980723245282050480105711479384749892487763952019319419936520471543236276965325371818496137821507606330823361847892794549503661011960253708811309302579877786895671467793663153547016031671806965896556999926252189202861283323922793817201770804910439757547200613805083578476254768370028818091506720277782731637616791602761695694185559385562950154426167357701900594329300339128354905348964203862871741104033993877433573095744874427764301732783619053393235510137084866141776169723951239457706796906246859830178958606526500198858626333778665931434135658305867910724164051119506993441443330360320708569354650291356119567713323262732684724883988641324220279842856249487412508844730166003493577957880345357120922793453593117455310407448281824647666786754093747147464074154927001649183776955058595916215648502331277348538726597606514604031000461597763402132425086761794608966932627962685597370830534790611628962299181335407004712711071239847108620620078393351813866424002394265156430214366195267808159099236318972066594437626184410502669977743137672826134340938570426752172324375069565113223034354622930219944452331262927023051858210262910473243734908858996611077136905593346622934366494915580441738638984540907752147797910213472904019584499043756202156070372310546617048508211271431549830559336900231123435243178283728678706382752744827162770365582700043457407067005770723569906185626761290332212268822330766752232441583792829977514175867962568222242855849821818905096030487377551837169308901184001946614652013978742648659296486382836834684180294097391877942248838174735625736947961488961319479754643033010275300712513672402831181413514905036062790007634840447909995730037443628678662696610044506220798442574795015199155775733702101778903575059741689685739019467585910283737888520558339261311715727177619921062806798115543538102896457355169906450852714902055686233349758026819698018115479496778688739040341651745214616432642772547877736580604412562172957803458230517821699284648841470943617387882593062727862563239323829021947970329307899115156543081643808476493209558390061204990769242221191785795293736508444911405589889423360269529263740458412065619335280268404346121523651944109562948731751080467036053272496573679378515078178038397373732449508590332982780133822113727171744980174000220235263001676183116826971553461951032010497662359702040978080078079162077949036591418011341128367465917120221181285394366860336770393291315600603817424436149040592295498886381740607682634727580007553823557454079903427509328624921475878121010796004749692400146053659908499020862978102817720131674174058207655127041783810877897534373634174234028244599244241500951982703718834652900373729154688631104273924408277037186736845873330762447356501855244551293082736190602459443870197710870802119332524761175507758028800528056764750518441488693514972486218691980383279317733127653110718049000016719396939551931915510458208395544999294545964050006792771259049145202334379797665529378000019971079563584727039681600027877460224773355091774182873298147861393962265094261446730581789730182550681316277386898086628362154229855823231374867539653328301020536095332959382861663162866992091282015036621739135330572708492379605807905938989239926096349153087618478636320308784277123134024468625612177505866352771765247787470894238337554478887852331347865832523840272541263799161122733840861398666595874957562566027205425325096316527881033539623171173131943392391281435051839285274141555789305147433409323904221827808191186433435267476413291898159507861625791387957588153879958350513529219307549166819094712135991611167356785386578128391210003818341894180549819257433598825068787608999512345276006091100971091079045846971542172345002645897251194461395468466618264680642269220805517795029384707090350830454306723541035805914397070977827271710366553845489316994816352838589755798362586027694361133384054975268065131648121009727082775353630979047751282473400679547950249875973380025942568039012434999082570778345742179768956970779479939971162308859877389335613747234914818370408569601561380508170377826365552992600270928535478431435940828526660174428705309115844760025082558529532651235230552718361379913650029949590881167471120420964066801222822870980394325783343689222210509954435733425068719380318468540560757169242959594019912546751860668422869755947641005230798899811876907279169452104276565018503220345397548051754751257219369864239030861799412545813953289462012526643605912711491111656753431713740517626249775068081309489666547195360745086127402004698782190499435538793559189318829296975055622257684886865580880836216520873093433834086116999042956562260956245091813675377856526438036221507986997725087900861407096499397691381762478769165147061198313678620760444263820790855673182269614001679897907152342487864674584142192705790068113621885073874216219534343727096220296728829244588847457351044926907339242470411189266697839330281222879467471290914564772495455987936677953059235718049717975806946753264107605400442332418998118690664265066039197450820486426042983440332161979798472378435525208288523269656721038119366600824016591110570200054412159031703320479067122781887581656523107760845847628520550044624035602230639940534705747205684661995953814151574605946487702937140201051562482315513513809696972329005180199981970998930065530132970772100582089444016948215212058981265359620783922528944067813949549865281268812526242120066705764789886946816648753756290446556969017398553406242385002810289257974927318879622494432570265930702206890373800825703107173071894436556627290837402342497310093264940836842563526248571829073678275050424157022852219532463961450801620467986292728631523132100806589384438749799148743116113417292500168716050371408298109990677012638147104455789551444841682914780880195707407032323795102738140500671103681961068019527436964476474736232311463923993053325525787081114470497915784744420869632136697356451097504460739090153854728940844131641028869613070146260131650211096806888312403121335041500824248371396309077763120647937069238721506870586687237388351020122921686249459966681638276544917869478092154207147691445081858638335587301947062689864912434845942402790076985388280272896304126596615893391919349298971568657091982222200122729628710656368341814074110762184421000992842301229399797549587026004748947858482736967600796575720270997999190102001674693212981377042446684006388143254250882570483230528771758804978832897604117891660435819014460010428838627342776785989743052410813823254759919414480615570623186077830561329623768049053687176100456359910887651876922969487208997813662975621017098601790153634013825353509419353570643283518417825228217537030427692742877027553302173002442017034623937185176910221692200442515847905032074464108404416773872659409565384255858496772847527919420742735173271305431816886219918039195415235665748092968117740331472123910554442651490093207622413310796134225838691231431395199390105738685098968116344990203234004981139173264359102075246440121818659615855697856376251870444167522282552784874035495152165406257558693303115390512831431833255210908570961440324721462318996321157033116751547869622195115025339067056834370468733041018991297101701663951938225257097331857353310133560801609604118287963574715830091242157877837804024197473677608678020404303199860144592056720049286032988433758293442677193354556863544524464153774550034913018825378398520804047959207904579948797037564896046880269053917315377334157974971477063723208468874111978615227921444002959913725412441502972220655466668689063698723563945236234439841244080589012132288774889596693792155767074314779681985814911029082482641851096775245441701020590265651891080812143004030056487371663123779171924260623161311974095445329997210832401394812218431437346512755145553424224419109659521796860524459083656064980560573303951611526755994711404188808356482426290389428211003066539772068047755413668285826119452228683227733363324976295876345894659936848137577136631482375846956126117793072509290736635553488002001906639514607257159076850005476520246954721895750757304192712755523790725438335374724132940077846110465326549786104013882066634964314317512697723180714330674480533710416824942524310039400910632772823139709285472347027343610211833670213615617586413463751429437056748874239860674778846101954394827530674988518503734834070875206998337698121877933527647079913464890863942598839980022025057896805070756300564226768526000324618917316912828286829203907382018699095902024700810481537252928312881622062437195678615864300938734712365065296312735033052916250801905580323190756720364922242743056580947108214662300749457415863384400299639286060578585415922653500514632736779881032704116442997239528798838406380176347660360410245765187644600545587344724531676438304968952797989167109594486380239439990631875837880020252823829528347147684198888404473776510384780797330747950254293786716598383219443222111829567877485238289114400794863896536533549504915596007965356056300477666319194329933202917692798999833283032365311844994093759459016845024124901617731770082210074929169156762594195270871135053218212633471085934383643426710728206047263236865184190247350582473257689038255419166743790222309895783353844472730539316414833747090749234947534603664106930689443011679449028458001687760076428147345169807785760589826042274453491867892019891045631422318044693988879012226972699044564771135351061960887002229605121163786481521650374092752032694650001888213670705428978951439420984101088779342045090567339723409304626870957809377350342788678710682738863857604461464924484588318162788000262635423755661876117761834602814075289804306712338105306998286665009828676204269980459185858755442909422110846041505930934560405809993854555998798862836568555671798102313117363006948895860328591811744487604916393908030846758244471448762140794535359135598676618009040671906111434525513601714768740934583413888539052740178068747587854754707122802986429695767296077709379812904375613873076413760222333779793711747390264649704817236432609610273356125419461812183873534039582131461391732321894869777638118159366465880136483238037659451900980016642426462757620264110848822386216049818610915019284111936254579133140355305231453551561203967511856398381851833109373642360666685062431695600937381648459287546805166644235625975180416887714921288311662418357297911451062215004788676538434626395422561575322256095064208974549312804547928167860421359681972581256369579725462405795051205445341793456834661421273011834415494278768057843093299893760355546352017179205117046200511097055452360591959045770812161771109534615705296301201208920850140060541073541197484348461012707309243678922644021218544326185550546010612673346623191619172661301553646096472561028723403396196949260397080571892879189937206433368416198311134269307897716041909732462744263382615787688667205523311466850991728402802349510995547480678404946353429649385217181095940005126552079936772628884641851541325498672033025266572358233976675933669578260934863487358140250500280866142028433188119000151213262057087391511237821793824027068553130119226393944953401059210621835197148327817207986154985066433948392859081592599534629199641537855543609218918397025861698500339976690292783486902905096826549400374919980451178239743455339187872032231750048966897856454859475262724076889784912886159847166689264696674707432991438156680703853869968217461804078419523328086741407646898416124363566517030680184497871479619990295157186551048105656375952222833375980882082962134829590633103475462596864950897447702831614307447995079601982513726227730526589690175092334121030891217263954754540098261831194935971454847581100590889340812108733921676450586404758632771942467137530450215292389620360978354694883122954407530248223155076075797471838214376508104395169501527594732405742213764972940071384607420918583110860315681300920387100731433921866627561841955773516574099885523791713411675405656272606979224998829843424165399792475028160683283732034564670125171356920123896431783714162214586942308288610421478509395865638647514759430538254185897628589769059160828818701177863276543252782139182354643755093867692297135848423092393508432649326788862433342550088571121695843397551217790145378542261863461564423805156005684773236834782079475337849194702561789144441491024772463017920471872226655533350643596094654939463799376910561204623476770374785425610212943818469812260375524255407016747929907307678342500991112144698765565183455901520905965571692586773408442164294617774169044290448513154634989938531217818719138225476829673816276312220279023251931218416992877890594673669419100625733813276633122736723007413643928533256343215368643376907663902838043081870896535736140904942586550948620507400341683715746268877501940143910139830347498901372561590361128486269546401888193068643233067746930187327522744332773065502584752698344867450236759167482535247585119959682936827062062848993042338188415724839834499162613067671313852849192417295959272911009666506622095762091326181161519551544042167438121383952875201931143254040241738470164436679505373315457626407399085413851394641542470671462162854467389247587398739996141519173086892804204920325661376635531924831273184009419001635613683721956833304037342236146367353678763389839559600324931753167544086515458693505891661305446009863769689667235634999946800486844775651429895010140997212082243808116273170458801480542408646282982657189729638541762086193110268077497442618105201552761494443908154782339043008364451028830123357528971090995952283310377009541122631885709713840903803736303169004122598817987580084742046270077752580816045358617945896217882063347979559480118309585319441577530392118576499278432436417447825203044672764534663723446085820662353168632628232352467684177132959292749937140067959449255195883943500949520649972696333876179307786209253066747770945884107937929051067126927381063500304066247688839419750146013411744087790954516504176760041758002293725388386150224511705152167522810834119184871486038620316447044558077613021200562079260378008390294521404498116508126558764283419917513098654291538359309595747738342215841696514844251875989118209155400937711307266113760013290281574196923536048674452485227192393933317556413526113150034924027544967582497274546161612819029897880851670300451528167548370373240996848408826515765771178231708702319572163038884292235065673191979432734704989661679671677359283350418924655285824393877756790782296420926972570723418936509345166233226828362696534105682298898530697074042159072140515996954983861143268269874424214938330567744270746530336637448360419111592849196379766793633955383385425494881697985532596516189834156955314694672636555513382168645815375321494820504898658276880365542388977734562527182048177003429053295201935171698459959890169482041776623642873018664324932017292750191538698016635745676211495010580798293412773763735896583647747830581771006737918594970155312769988565449870532258965260236930093649646029931893434643295532486579611743208005419664181664664595288363955292251763070649634869351317587119517593738726442878901017548265111960281882083152659084218292176299164219208372744189067311821322726749615282388169989265782677676223051642288970784596263547864886448703801718385971269506843752882694153960332147775597587535775366589520287611344272937723575881055399755390771992119523111058668261723154832231263597432969108480790299278397196513368036719470059575255871070306106825051935322393289311148264096527725889902355853243231698848864869435403735286572182853794839828140246279182228845713405919998086055861373255460945277607330139596333190214247870500059640216273869075063967401205112378653111908311810440749919408381511727822670627608865911893459888919272827599814588822247790432997583193024844997551079279552335906767921288797445857349448767588936459474986020943956707266290945013599433004074364060834832638447673762182380189224158739926965201822858656317930401651153157577883986783483905189003454213065349866643252093277371734818696432478055004878498124007212890096601228254071609040769180796975801762948522480723448024987662134687465711004161013023347958118006852718355847930861788226155076652749846297695902722831068213838651382353435617727118147248489017924566068312385969905462475251163459799656287756406438740831510240521405458433501429089271407298799879214606657352577743702640859183289706572584583729807063632636183844760583505896162942397287319524903710936518955870335941454105197042534587029542521093041884983822931923001065880294902172952488032951884749345879539928813910129831564108080759933820500412630515153839453202348186830958148027764475742966197659676824519953579239919618363048114704104403036452987729223444690607688541351963252785900641774230294745895624740265226576233953122896951131723774216525051051609922762445418122508628099502185873090309327339824473932150958451544145572331934819597262035899610795759674751789472592510524954105887647380602031379014925945704452743107377787587465974396575013781450006777847752589030040290692561358872997267239021038421767949983028442948040535584491652508165717763342055130976782792616405531520350983893101953127889735081223736175602293838084110849448101949326386330984886311601277791942842070260718087215598337053805851886291938452829460486262517324221904166375003348478323779163872913112874354939607778766866438513304005085356275297272190292936991034296622564181370915195879008611160475221490739675720625357134552336601753927357894619759895118829780233290979114558059667095305670815590375851635899075274466146577196956175835386802013224261386156072797909065252020887680346160859741920471200416824844754985230455653258001770515224510219138731193806848043993892867166270614733787391344208220934259225114052086713380724179622624902207586339579988279600477665858402202975433562941684887005408211741630910126881119048366563529460977825713003966831966138296545767392976187038439754192079491748179832912979956960623075520254677214398773265709471740410797144214494922288861729504441629598543449679123045222245553970234041580126022863763185760747726084130802582118898711906891794388854715531989890979446602781125959127775842524630460209415533959924565467394757615156698345821290678920548157364583515932315036335345800424473026409870521743759891657743970846506859381979472390526737646463862366055905407693760786054240749695310242988008030324631549957105920945931261477012715276230759828142562793897656097332935734326445234323039792584727859536893616735658843612406267136874363163993943583180583044405045549573608013308028910239649241239751401113190867884478416651977994146800983681168749596450814902207961410006908719777399436179039019686742485973744388060686494964687691168183996238991520227923419687206875569649398737500099195418677048954855883324945901409525550529012400059722792086515426179868186193649197862196889780753309694546391911878820781753880857211632981683530543243389409574088394946976358208553457182827274132730242621408259515753780048991333699810223860986579793508938224228434160537296291486528239625148169913975401978232198259367650270820985868599601, 1, 1, 1, 2, 1, 2, 1, 15, 1, 1, 650, 3, 6, 15, 3, 2, 1, 1, 4, 1, 82, 20, 1, 1, 1, 1, 35, 1, 2, 1, 1, 1, 3, 1, 5, 27, 1, 4, 1, 1, 4, 1, 1, 1, 4, 1, 5, 1, 4, 5, 1, 2, 3, 7, 87, 120, 4, 9, 1, 1, 1, 1, 6, 1, 2, 2, 6, 11, 1, 2, 2, 2, 1, 1, 5, 1, 6, 1, 3, 26, 1, 82, 2, 1, 3, 1, 1, 1, 1, 1, 1, 37, 1, 10, 5, 8, 13, 1, 4, 3, 1, 10, 2, 6, 1, 1, 2, 10, 1, 1, 1, 1, 16, 1, 1, 6, 1, 1, 1, 3, 1, 9, 1, 3, 2, 1, 1, 2, 3, 1, 2, 2, 1, 7, 3, 3, 2, 248, 22, 13, 1, 24, 11, 4, 1, 2, 1, 1, 2, 5, 1, 47, 18, 6, 37, 2, 1, 3, 2, 1, 1, 2, 1, 2, 1, 69, 11, 1, 3, 4, 1, 13, 1, 1, 4, 1, 31, 1, 1, 3, 1, 2, 20, 73, 4, 2, 1, 5, 1, 2, 1, 1, 11, 4, 1, 1, 1, 1, 2, 34, 3, 2, 1, 2, 2, 7, 7, 1, 2, 4, 3, 14, 5, 14, 1, 1, 40, 5, 3, 3, 9, 31, 1, 7, 15, 1, 1, 1, 2, 1, 1, 2, 2, 4, 4, 2, 1, 11, 10, 2, 44, 5, 2, 3, 7, 3, 7, 1, 1, 3, 1, 1, 7, 3, 2, 1, 5, 3, 4, 1, 4, 4, 1, 2, 1, 1, 1, 26, 1, 1, 6, 1, 4, 48, 7, 1, 7, 1, 2, 5, 1, 6, 1, 10, 3, 2, 6, 7, 4, 1, 1, 1, 18, 4, 1, 1, 5, 28, 1, 35, 1, 14, 3, 1, 43, 3, 2, 2, 7, 2, 2, 1, 1, 4, 1, 24, 7, 8, 1, 12, 1, 1, 1, 8, 6, 1, 1, 1, 1, 13, 86, 1, 1, 5, 1, 30, 1, 1, 2, 1, 4, 2, 10, 4, 1, 1, 1, 1, 2, 1, 5, 1, 2, 2, 6, 179, 8, 3, 1, 1, 6, 2, 3, 81, 9, 1, 1, 10, 1, 3, 5, 1, 4, 8, 12, 1, 3, 1, 117, 1, 13, 3, 2, 12, 1, 19, 3, 3, 1, 3, 6, 12, 1, 1, 1, 1, 2, 1, 2, 2, 10, 10, 10, 3, 2, 9, 2, 2, 9, 2, 2, 3, 1, 1, 5, 3, 1, 1, 1278, 1, 3, 1, 2, 1, 3, 2, 1, 2, 1, 2, 4, 1, 5, 1, 5, 2, 4, 5, 6, 2, 1, 1, 60, 1, 6, 1, 9, 2, 29, 1, 2, 1, 15, 2, 1, 16, 1, 1, 1, 39, 3, 4, 1, 5, 3, 3, 2, 1, 1, 6, 1, 1, 5, 1, 5, 3, 66, 8, 1, 2, 1, 1, 2, 1, 2, 4, 4, 9, 4, 1, 4, 11, 8, 6, 6, 1, 5, 2, 4, 6, 4, 5, 1, 2, 8, 33, 4, 2, 1, 95, 1, 1, 2, 1, 1, 4, 6, 1, 22, 38, 1, 6, 1, 1, 7, 8, 5, 1, 2, 1, 1, 4, 4, 6, 4, 1, 75, 1, 22, 1, 1, 4, 1, 1, 9, 1, 4, 1, 1, 1, 2, 37, 118, 1, 2, 1, 2, 3, 2, 2, 1, 47, 1, 64, 1, 45, 1, 2, 1, 2, 1, 5, 2, 8, 5, 1, 3, 2, 48, 1, 8, 4, 1, 4, 1, 26, 1, 4, 1, 3, 2, 4, 1, 1, 1, 2, 5, 18, 1, 18, 14, 1, 153, 1, 15, 6, 10601124247147231590531764563569285159833966925261943530017104106771937601656658619801561980660838255356218965811703825852937336984709408117981969463096392484574262468710003801930848080908977941983458954779417084585942895947891253335531500496542690441878574314090020263268650792415976504130598276677903485754832418010425867094398741399419944826652929237620733098466187619828327732016531441762562106677038058674096392332401979472520223041927552210862836709805169851699308432500387414399987029058566283200976183598266920979781533578722663194048017280245634291227925604610352538382688022491779005434038507918667836440296416837216253382838257151593333939395264260126737114786903884149445918644348531734425015436079167781475365043380306593951130218171903673389264058155687753048095073729107925517387454092753694302577359693832767923288456848454386979180850951467401277326207677038497144666083716264055665673117904883311087052699217505749191641421780730679314822619315033169403714158015149403823722202801057199529449356805378364239839832437069799862534224918324868912351560010151465262659981223266668111621204984561591863162884252234650707077556181620853381295137257614937598188005533946100783312144789613892256001912961525233458497149133542653150165206529167387845844161627149611647869509426115440091977325964086950269805790098928714472266242626138815077907846205271591787169805291482293072167330276725946344983326887259345779381455887454251957177890325048288701789993329721529707730581104678252391439704666422197178476479444227579739036728254049887220444856353173185736997709647443543086332011591297251758451529383088762875739517086247740480301454985090643916492216677098749539735802257049226549304122066236937873317631379577502128308483317673622598014375148518789227821859185122973426025415976553648632917563164643149302675008781022564519010982344633419693866880818359719599393788122081534301067746972392268581565128158206354839608594087370992082879053236627582983978754029688770356567013163330357326858627919663909525494594514665441970683824354979347533917467764280242129764712622212344461994529837352161808779482302182133917478127968149564567139804982665258251279017978160910425748259813760186218707461999888136623565693911649360866280343733004277236889059319464316655269803756275695262069608138662188208394540857255791069862466606774356146403171536120723, 1, 3, 1, 5, 5, 18, 1, 1, 1, 23, 13, 1, 3, 1, 11, 2, 1, 2, 1, 3, 2, 1, 1, 1, 1, 2, 2, 1, 21, 2, 1, 1, 5, 2, 1, 3, 5, 8, 3, 3, 1, 6, 4, 2, 1, 5, 1, 4, 1, 1, 1, 6, 12, 1, 1, 10, 1, 1, 4, 4, 28, 4, 14, 1, 5, 1, 1, 1, 2, 1, 2, 2, 17, 1, 1, 8, 1, 6, 6, 6, 1, 1, 3, 3, 1, 1, 2, 2, 1, 2, 1, 42, 2, 1, 6, 22, 1, 1, 1, 1, 55, 1, 4, 3, 1, 2, 5, 2, 1, 2, 1, 1, 2, 13, 1, 1, 6, 2, 1, 7, 1, 6, 1, 10, 1, 11, 28, 756, 4, 1, 40, 1, 7, 1, 84, 1, 3, 4, 4, 1, 7, 2, 1, 4, 1, 1, 2, 2, 2, 1, 4, 1, 11, 18, 2, 18, 1, 2, 75, 9, 2, 26, 1, 21, 1, 2, 2, 2, 1, 6, 6, 76, 8, 1, 4, 6, 1, 1, 1, 5, 1, 132, 1, 1, 1, 88, 1, 2, 2, 1, 3, 3, 2, 9, 4, 1, 1, 2, 4, 91, 1, 2, 27, 2, 2, 1, 2, 34, 1, 4, 5, 3, 1, 3, 4, 5, 1, 336, 1, 1, 1, 1, 7, 1, 5, 1, 10, 119, 1, 1, 145, 2, 1, 6, 1, 3, 23, 1, 1, 10, 1, 9, 7, 1, 1, 3, 1, 2, 1, 1, 2, 3, 1, 126, 1, 1, 1, 9, 1, 15, 1, 2, 1, 2, 1, 1, 1, 3, 57, 2, 1, 2, 1, 1, 1, 36, 1, 2, 2, 1, 2, 1, 15, 1, 1, 3, 5, 1, 1, 4, 2, 3, 2, 1, 15, 5, 3, 8, 2, 2, 11, 5, 3, 9, 13, 1, 1, 2, 27, 2, 1, 848458365781554070, 3, 1, 2, 10, 1, 2, 1, 5, 1, 5, 2, 5, 7, 2, 1, 2, 4, 1, 2, 2, 212, 1, 7, 10, 13, 10, 4, 8, 2, 1, 12, 3, 1, 1, 1, 2, 1, 1, 7, 28, 1, 1, 3, 2, 2, 1, 1, 2, 1, 1, 6, 2, 4, 1, 1, 6, 1, 11, 2, 4, 3, 7, 1, 1, 1, 4, 100, 1, 2, 1, 8, 1, 2, 447, 1, 4, 5, 1, 5, 1, 1, 41, 39, 1, 5, 1, 1, 15, 1, 2, 17, 1, 1, 7, 1, 34, 2, 12, 79, 1, 82, 7, 2, 2, 3, 1, 15, 2, 6, 2, 22, 1, 2, 1, 6, 3, 148, 5, 5, 1, 12, 2, 1, 2, 1, 13, 2, 1, 180, 2, 1, 1, 6, 1, 15, 1, 7, 2, 11, 2, 8, 4457, 23, 14, 1, 1, 1, 7, 2, 2, 3, 7, 1, 1, 1, 4, 22, 6, 5, 3, 1, 5, 2, 1, 2, 20, 4, 1, 2, 2, 2, 2, 1, 1, 1, 7, 1, 133, 1, 5, 2, 4, 97, 8, 18, 5, 5, 1, 20, 1, 6, 14, 1, 7, 1, 2, 1, 3, 1, 7, 3, 5, 2, 2, 1, 2, 2, 25, 3, 4, 1, 2, 3, 7, 1, 1, 9, 1, 1, 1, 1, 10, 4, 1, 8, 2, 2, 11, 7, 1, 1, 2, 2, 2, 2, 7, 1, 6, 6, 1, 54, 2, 3, 1, 1, 64, 1, 61, 1, 12, 1, 4, 2, 4, 2, 15, 2, 15, 1, 8, 3, 1, 2008459756796978572071447821343380374824670564460168910254030864588510692607733268319487885219491745450000343173698248666872290031475599263633845213885191150056367169867647265573506508331049050207427510968929883180674546841861081592640982816228595248535455766871854690211565470488297170786525670382969846220625033583856344383519790131514847317416139292769891174025715605958605139949290043026788938823855715758608569385790266058345008144451135570000865366552949367627036214872670080512562107003448671866826724469048917551186185000487169949393507219567721730618701398440135553929731365325632810442994995556740857472299933659077587289395944808363226544023135822931230491227603104512341153133443039495177868222303237835302699284301271599295382033159089677441824172902832864958177582679800925128898266554602110549242073825331516470953740238536971569592162300852592654855442265088762034829241504057601543757110060106110186961045570021886679436767669914174364431040472585735268623866066795988046857273562334249554315689683699802106431881897821823940329275182374849257912808416127756455358351693857998556691479587688716634679256761075635898941368285358934797672415344986758536288032845764873979382597924711997109921574852908540174504357043848185226937122139370710990249300614785074270065120275873177000555677981638350779205778992622930353863191476415281871886735633816017005631745561136280967870768154958678099308614170349217296773424019040112462000512157798648573091576151639963116091756360697728664328441265084484737748832829640698192949488418415577570310976485120898053080870030973254786876731105167103312329948711377002849817318442832429563106350573930203314803601244659551520280564671010727460542711854660736458716246950527106980943715929228924449210245428011152965248875271248277333069685497104927300545877773689061582556332939887048835701536521904779396643601111512319404051611912743031983526112277358874819149899534397226012170577268485126161269824590037904595477465696224093973022063066231181460400029841299427802446321890599625450020773277698757760682298685540967912796663894109791364377007862623588312974617344005034378445544014987966836305230316498335243341880992072606355749012064157200093137362325522466627953096205131164306535534194587239358977725985121612934332458274021683414292837359610066997659711326076790717225039901555875966261670539128236775832936277893287981221569225151531430375702890422884095606699058821139300466827027314107631896067643737802326369639619652074055050548425354273729175786154571337337610258166459605467400799421444397936199975727944245855226825339954549835273003402243794415157973570693366317230090273720828163990522336099446428699323608579091755674506176197745898830943709778935257286356297354091118447219255164220973657758698602627891520081137219760748891588031422080150668076262521714120792483689242155014883082295780775429754307451903131718183985109959327181236595600839351637316281442618682810250065942672912699548089978355713178701498361261372282527143467340926332472662699510967113241187960948407165688184161597072144633861919833742377728734690536978345271846855146971019145555107804358653750967031738388864646184455475688862845221365001697726465619793059334700116894869841494860410252056794198723467604698705822853618874372875919185324119266053459772251045193403915585203523887229459654762988997700712033527139319107590102469736818655613518335702163042682048448487391850131198499782426656801852903164358174203523651321641679817117436718440243231059882230260497995852904393975535209943530843069106362998315248231629956273654942530917994613618209015470194645164761661334249449166078323097140766247265623153146865212199440454720412322498656105025256868837119157768024790529156820731696141996026312222234498816361704258612819197818849452882874411670974075286890827739979744447228710019582264127380656121419707133763737103354775958173531448581800128701527190164719394376178150069169965518559084657283831622503096369091921866549480333502617441527799408093045276743557969104870005260174695236441174447894033873950384932968189873647216730665810619825317935775717349702189468525270877566990626146627327329104388145243336973955123605220017295198475254882765772998800083059743237074334499328856537396381628459822992930034638220903213934008593749838466755065493876261762806903958566610259447638584134887864339772667134077968512034620670780541152545813250697397868543518837770608046043241992854830163133815516077342786807747660215100437554230377510723987918090346994655355454764703804626552041243689475783159093914780010537377172777715558400229538981968363800522591963543409967710466648246095846660945354806578555681448170841304250003696418127987808731598503246844243916323222532723341227960024382759405340678646863348677537051829438567894780120128028488084722303396037013185800551079173418696067802763584376864563223211342783700663134646717012782799424635138995761063114904561051139829696986044529520770337653656228786156379291800746000198259486461318693341602853356685801652657705918726701259631226418557917591781008781906759515638530235216105133561150622768544846796550335364592722759925812594080126119507388322588254048979213618110568464018989537690443173952080542970153407213542238959653155753727268646775204993431469707793427982274959004733537863704465263085964961220155528868370947657932067337388791560296854934218439101087316980955426131155099672597843000305466693672713611194282485430725459721631925984906821401091319718939404455379054016992757755728843459394287201676635503180452367374430743142540475447700763339871813963522811412708702847163936633214403945910169838956959767825107131733280542158981522234433810840197591473291624603469450184975227843085083251560282070681787244053068938909150651962715832027236009151560313808894376406290793297100114433764758734094341017294671647188574316490126939506632220276097716392642568959128603632926632136630390462224262000498917418301151185723832325416399141115555995768897959184957114571199303040467509161814371090316279620202314773330997982904479728605109312054675569575466946066213700067789679523167891869762468606770731076465987315495110897010075906634194687787133033840052853045019451877216970413839403134476021338377480003048427839478429645856042079726272324541433045613908875586238758503213059661459936602828080660712402984866571965344470861861091697442651117502018687734039069969108073321060172868499731714533543350339278274087918388474704778089495478822479220863752222607573509107629470559723650546415355887896317377216885994630169171488703221408654490077863549632098977987534880199618950996573364163756230360413616792457861386252718704977418643153445022785871006580117604643893000183389179574457604887379537166419659641164300620350990863356277662233779182350739903464022371461153354609810504235498487082428672127125666672789036926793054991260862107843117165557545726437824877112290764506022326927086801608101760237420739777663737080926119704942349926374563475906369743242524707648729273646138202756233274837939399101291371203656864561721591428180652385384952933449244394689821664220786451647846291757783464090846885261367911402610091164274951667748823423907410138127199554422296030668245766477211614501892475469359895230621396367892071393650832647037455149943492273385728693773895817062908403432836561782722732239500103900032558985698563390363372095969075749535175314063343340737757974009842876437802874083926802246205354503126071789008297739427689893689475510626348726807010766969793855685090276070279946637896078347823321282757948427122131412480502910501044319572828491341499615030122795293531961350773240480179675829706136324009258722174706350574941536545896526748964041761400170478377543423231250477544780663726476719926736844035037238539772868236145153624331355196467022465756582951718160549075958141044430999195864973481369618131572251946693442250541082663056414835916433364776953483907221998221482870236153257006780600238176361018628420367112648157263790464950744198978334598589386883676456398001584554387254098318106761689801142904026746803429753195640491326036575578858556409178734572988917250191770548333557704332511732253999316389897266161265887375048530957497123469999334852613038016379487238334899428607997561367701023904893299412647055963206312302330973807956962259020364557591307013708777286375881116183813726893717190103419791076470224675038912711737536017028584363568537294804709982861673122676769402995493682255507393856512425148769795884036500781665987865677339462316293453234472838789301311092788057812836216800630241317078739190566121480259241539349241662368814433145324962290587179510111435925209332843982859364683452315361829841716883651396576538558004475932150108152891696158007534509360024006480114223432581677041430239567179507091864897310881191509763345540359739134075890678082660184504598295282264700913912566294964649133968723366856341263054932974905924922593267359810755209125615653983533412831912425232562405758708263387335317749293520763977801364073950778538608198899779654819511985847379075261418222033783933352370680394838825100396549974602225050601058171043979221892897922894789313576074201075097998856440590030794842484390987082580170627084797565225486495192845944489497735934345295586474915879225522034580560645009052973273703764541908069328306588983555188354317674107310258066348369497050372326508991000837477535638250950687204048557862101188973354276608185370079848056170198459122231085210844549645824313620623753106711548493372551306514784148210579513891288224642927623784685447433783339343894752848001988446843506255318842184151776318345745970744286732179609966189999095891978055614364210786547182432124934969175585541950408114109630529344135824881759539931287898898047771152963432115770475904942414385468733330744194902750641705597483353198471065040235988317242775318445116352895186322446135155948574610659673797238354476232774281715193854613789756060526803008338513227934298878705067159070285719844537667650632538021517159104533000464802152441951991659149980469921687063826961239464274714665239271921174419245325816955579709337732003348231625750415075157952630292576011974913211771340284512701515199526322823413223699696266832453090442114583947528817616768514502444553899422775284576210507386204629170261012199797144808689913905993818400533480320957710324009649081793670351689655384502855127151340073346196216014526667007859884670393169590513957176551013752065844090608095039708793092090496550404764727520933613075478745837835573907033821072362277736677177068063683515580572225166687271847820375859895606354821559304532483090324978698582161523335751377578420055200548404825462493026925683621937371553152255672067087751107247203072834195097867839137227000843127187351747357375427392409466317787532504555563695912601661884718489626840101521490813434203290249387235261837434449796525767308721207440544604068801148541367671651058553506711486994090875256086595890705468476744598348527820654761867792468864288229054754968921236635526261570122896895841779918877274148422554265184162748152945581584399081235129870233049399086721501951172150456496897093757948984034776529429070880427891774439057384992149775262318766827157180583835847745055811201855561425989704641581273856275470996699534159323886228770062973058829858677134036391187833563462090369012711620660703379630046993200880503312523007841232340813104233269627925426058212522038117476277710211693917104420263986431482924678608295277833361955585247810884794509708340165331308906088548415179371478268802939574622647263832786396746962253921191049265551631095426330594964495946460809779600657464170929407539912775346343534646750966288481204111808432962899233436343880985962191317227704610670065124576038659226886151714042423849455648733527016711771383378766291761461758522283267084614053139926820721079120534483933046696008319634606936217057843429119040299258609632983134530174947933639571586247863122226257312563610483873395611690453273824331499368134713580443786088739611020461349736287082495179667677115736097213034765870632985086423539706371125604213197163856345418509130594430460554392748551580224090984391228582428735132247498101859628548558870282094682617895369067070534449979298272798845836630364351948837525107450607866805732001901191331971062635841985185504136842605834089693954253650157624987693537135424890284719151083041775483654476612987533704571159427529472914357717090387058412005267008302522965071749382299669579851843322792523664542927268