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, 200845975679697857207144782134338037482467056446016891025403086458851069260773326831948788521949174545000034317369824866687229003147559926363384521388519115005636716986764726557350650833104905020742751096892988318067454684186108159264098281622859524853545576687185469021156547048829717078652567038296984622062503358385634438351979013151484731741613929276989117402571560595860513994929004302678893882385571575860856938579026605834500814445113557000086536655294936762703621487267008051256210700344867186682672446904891755118618500048716994939350721956772173061870139844013555392973136532563281044299499555674085747229993365907758728939594480836322654402313582293123049122760310451234115313344303949517786822230323783530269928430127159929538203315908967744182417290283286495817758267980092512889826655460211054924207382533151647095374023853697156959216230085259265485544226508876203482924150405760154375711006010611018696104557002188667943676766991417436443104047258573526862386606679598804685727356233424955431568968369980210643188189782182394032927518237484925791280841612775645535835169385799855669147958768871663467925676107563589894136828535893479767241534498675853628803284576487397938259792471199710992157485290854017450435704384818522693712213937071099024930061478507427006512027587317700055567798163835077920577899262293035386319147641528187188673563381601700563174556113628096787076815495867809930861417034921729677342401904011246200051215779864857309157615163996311609175636069772866432844126508448473774883282964069819294948841841557757031097648512089805308087003097325478687673110516710331232994871137700284981731844283242956310635057393020331480360124465955152028056467101072746054271185466073645871624695052710698094371592922892444921024542801115296524887527124827733306968549710492730054587777368906158255633293988704883570153652190477939664360111151231940405161191274303198352611227735887481914989953439722601217057726848512616126982459003790459547746569622409397302206306623118146040002984129942780244632189059962545002077327769875776068229868554096791279666389410979136437700786262358831297461734400503437844554401498796683630523031649833524334188099207260635574901206415720009313736232552246662795309620513116430653553419458723935897772598512161293433245827402168341429283735961006699765971132607679071722503990155587596626167053912823677583293627789328798122156922515153143037570289042288409560669905882113930046682702731410763189606764373780232636963961965207405505054842535427372917578615457133733761025816645960546740079942144439793619997572794424585522682533995454983527300340224379441515797357069336631723009027372082816399052233609944642869932360857909175567450617619774589883094370977893525728635629735409111844721925516422097365775869860262789152008113721976074889158803142208015066807626252171412079248368924215501488308229578077542975430745190313171818398510995932718123659560083935163731628144261868281025006594267291269954808997835571317870149836126137228252714346734092633247266269951096711324118796094840716568818416159707214463386191983374237772873469053697834527184685514697101914555510780435865375096703173838886464618445547568886284522136500169772646561979305933470011689486984149486041025205679419872346760469870582285361887437287591918532411926605345977225104519340391558520352388722945965476298899770071203352713931910759010246973681865561351833570216304268204844848739185013119849978242665680185290316435817420352365132164167981711743671844024323105988223026049799585290439397553520994353084306910636299831524823162995627365494253091799461361820901547019464516476166133424944916607832309714076624726562315314686521219944045472041232249865610502525686883711915776802479052915682073169614199602631222223449881636170425861281919781884945288287441167097407528689082773997974444722871001958226412738065612141970713376373710335477595817353144858180012870152719016471939437617815006916996551855908465728383162250309636909192186654948033350261744152779940809304527674355796910487000526017469523644117444789403387395038493296818987364721673066581061982531793577571734970218946852527087756699062614662732732910438814524333697395512360522001729519847525488276577299880008305974323707433449932885653739638162845982299293003463822090321393400859374983846675506549387626176280690395856661025944763858413488786433977266713407796851203462067078054115254581325069739786854351883777060804604324199285483016313381551607734278680774766021510043755423037751072398791809034699465535545476470380462655204124368947578315909391478001053737717277771555840022953898196836380052259196354340996771046664824609584666094535480657855568144817084130425000369641812798780873159850324684424391632322253272334122796002438275940534067864686334867753705182943856789478012012802848808472230339603701318580055107917341869606780276358437686456322321134278370066313464671701278279942463513899576106311490456105113982969698604452952077033765365622878615637929180074600019825948646131869334160285335668580165265770591872670125963122641855791759178100878190675951563853023521610513356115062276854484679655033536459272275992581259408012611950738832258825404897921361811056846401898953769044317395208054297015340721354223895965315575372726864677520499343146970779342798227495900473353786370446526308596496122015552886837094765793206733738879156029685493421843910108731698095542613115509967259784300030546669367271361119428248543072545972163192598490682140109131971893940445537905401699275775572884345939428720167663550318045236737443074314254047544770076333987181396352281141270870284716393663321440394591016983895695976782510713173328054215898152223443381084019759147329162460346945018497522784308508325156028207068178724405306893890915065196271583202723600915156031380889437640629079329710011443376475873409434101729467164718857431649012693950663222027609771639264256895912860363292663213663039046222426200049891741830115118572383232541639914111555599576889795918495711457119930304046750916181437109031627962020231477333099798290447972860510931205467556957546694606621370006778967952316789186976246860677073107646598731549511089701007590663419468778713303384005285304501945187721697041383940313447602133837748000304842783947842964585604207972627232454143304561390887558623875850321305966145993660282808066071240298486657196534447086186109169744265111750201868773403906996910807332106017286849973171453354335033927827408791838847470477808949547882247922086375222260757350910762947055972365054641535588789631737721688599463016917148870322140865449007786354963209897798753488019961895099657336416375623036041361679245786138625271870497741864315344502278587100658011760464389300018338917957445760488737953716641965964116430062035099086335627766223377918235073990346402237146115335460981050423549848708242867212712566667278903692679305499126086210784311716555754572643782487711229076450602232692708680160810176023742073977766373708092611970494234992637456347590636974324252470764872927364613820275623327483793939910129137120365686456172159142818065238538495293344924439468982166422078645164784629175778346409084688526136791140261009116427495166774882342390741013812719955442229603066824576647721161450189247546935989523062139636789207139365083264703745514994349227338572869377389581706290840343283656178272273223950010390003255898569856339036337209596907574953517531406334334073775797400984287643780287408392680224620535450312607178900829773942768989368947551062634872680701076696979385568509027607027994663789607834782332128275794842712213141248050291050104431957282849134149961503012279529353196135077324048017967582970613632400925872217470635057494153654589652674896404176140017047837754342323125047754478066372647671992673684403503723853977286823614515362433135519646702246575658295171816054907595814104443099919586497348136961813157225194669344225054108266305641483591643336477695348390722199822148287023615325700678060023817636101862842036711264815726379046495074419897833459858938688367645639800158455438725409831810676168980114290402674680342975319564049132603657557885855640917873457298891725019177054833355770433251173225399931638989726616126588737504853095749712346999933485261303801637948723833489942860799756136770102390489329941264705596320631230233097380795696225902036455759130701370877728637588111618381372689371719010341979107647022467503891271173753601702858436356853729480470998286167312267676940299549368225550739385651242514876979588403650078166598786567733946231629345323447283878930131109278805781283621680063024131707873919056612148025924153934924166236881443314532496229058717951011143592520933284398285936468345231536182984171688365139657653855800447593215010815289169615800753450936002400648011422343258167704143023956717950709186489731088119150976334554035973913407589067808266018450459829528226470091391256629496464913396872336685634126305493297490592492259326735981075520912561565398353341283191242523256240575870826338733531774929352076397780136407395077853860819889977965481951198584737907526141822203378393335237068039483882510039654997460222505060105817104397922189289792289478931357607420107509799885644059003079484248439098708258017062708479756522548649519284594448949773593434529558647491587922552203458056064500905297327370376454190806932830658898355518835431767410731025806634836949705037232650899100083747753563825095068720404855786210118897335427660818537007984805617019845912223108521084454964582431362062375310671154849337255130651478414821057951389128822464292762378468544743378333934389475284800198844684350625531884218415177631834574597074428673217960996618999909589197805561436421078654718243212493496917558554195040811410963052934413582488175953993128789889804777115296343211577047590494241438546873333074419490275064170559748335319847106504023598831724277531844511635289518632244613515594857461065967379723835447623277428171519385461378975606052680300833851322793429887870506715907028571984453766765063253802151715910453300046480215244195199165914998046992168706382696123946427471466523927192117441924532581695557970933773200334823162575041507515795263029257601197491321177134028451270151519952632282341322369969626683245309044211458394752881761676851450244455389942277528457621050738620462917026101219979714480868991390599381840053348032095771032400964908179367035168965538450285512715134007334619621601452666700785988467039316959051395717655101375206584409060809503970879309209049655040476472752093361307547874583783557390703382107236227773667717706806368351558057222516668727184782037585989560635482155930453248309032497869858216152333575137757842005520054840482546249302692568362193737155315225567206708775110724720307283419509786783913722700084312718735174735737542739240946631778753250455556369591260166188471848962684010152149081343420329024938723526183743444979652576730872120744054460406880114854136767165105855350671148699409087525608659589070546847674459834852782065476186779246886428822905475496892123663552626157012289689584177991887727414842255426518416274815294558158439908123512987023304939908672150195117215045649689709375794898403477652942907088042789177443905738499214977526231876682715718058383584774505581120185556142598970464158127385627547099669953415932388622877006297305882985867713403639118783356346209036901271162066070337963004699320088050331252300784123234081310423326962792542605821252203811747627771021169391710442026398643148292467860829527783336195558524781088479450970834016533130890608854841517937147826880293957462264726383278639674696225392119104926555163109542633059496449594646080977960065746417092940753991277534634353464675096628848120411180843296289923343634388098596219131722770461067006512457603865922688615171404242384945564873352701671177138337876629176146175852228326708461405313992682072107912053448393304669600831963460693621705784342911904029925860963298313453017494793363957158624786312222625731256361048387339561169045327382433149936813471358044378608873961102046134973628708249517966767711573609721303476587063298508642353970637112560421319716385634541850913059443046055439274855158022409098439122858242873513224749810185962854855887028209468261789536906707053444997929827279884583663036435194883752510745060786680573200190119133197106263584198518550413684260583408969395425365015762498769353713542489028471915108304177548365447661298753370457115942752947291435771709038705841200526700830252296507174938229966957985184332279252366454292726844861985056244285368722747822584283418010636631011804460614692450823320447616411834176251503977281218940605600942829117052070393253285909971678656503524114984231096348704574278551464170905229865395480435069390215016788717025912506430309792273686669031137017996150873983330861178049369217122145112711144669046842062231965979625677100185663749147331329063507831704182066202669128274875758373774257597624106116552905963091338237659684151165574016998205372666000914692802014451516856240984533243819495740750850159671780560156174132342482172858434569280084558457041394221868661533810590055503264122316663464681586206976598549717068003048259827688687923903042755593694194399497631173789945116163696629408710638562273433996195164489953850459365483427895068204726201204807991165550053697092783445455265246725772820473168348234243945001199081914398558451804216422416832932110334898467611212395548965628226271469160877431812144415019272970385500524910499767873762517278559851814728629779993179178132876409097942246925965692643377452412439489214000132051717007522883714778510326770656478920481048287739557054976285238725911475236286549008838653913142665350233974226990400270961294332639763085034641985462184514548917142617279388248943227256870950827142822968102956069831105936287093856860483420163530574513253968217500979362894118138774311205963512946493208297155126937654344540374655635682197372079340030391390479033147774141463208776707325053501576930441498176053210166499788504509293934762328508780396360845785016119224392401954051921574886414333977243791439592123296957293402059548687725215186384229713268082077882543787336411058999421403262397107091874090364309231955506266083060893845773737422327355489868578571036824039099115545225783620606215094358917323942601228367203567073803570975930338032030422350988229201065386059645240353223190241106149396132889920831841709614741959062520355319553192352720856389206803413531584160002616923414222881486481559530479114640556637548304449979692058526004135635933028708600119156822779192123372376115821029851399905946132499736465866910072183531274167846341372070652493273622084278435714987510365507413043674964855658423359161533308201211970382061808102349107053444103969685920575303594287399090411346878353891855914169390932847300969597909851187342069359992731648915269829728955373551118994093632999694207043637261572638640757361816098666963286284728591465248956683915462456190990272309414202490123202762018414681676188788062450480869245968705793558898614205981211622565004483297016911142149023085821944235568041383422264055401230831377158109259507295652959855729552505093155083442539878179394758441766257567594336475481408772278586978213740022438834108000868352512600597430710951172276505345103060706739003746236294065169048849821540558698526893645848252642458462208176075507320817871758850733096569076050870122553333112199917418649024549637007730011698065194847916910297547082069044592117612398249239373110937406296278001671342324304997514615356349993645535610115409641749251880249719409327738207118966759965254241622702446082283600538024552199099787791861716953378214568452730966027229052761371769520686686478881303535942456532159017549121464277604032357611687098943580809437560438071478282702248027089980397044046365752795173879337142444717910054932748693517802761144342813367465873690458694844250731058822296126626569128316060253041496908842033532714428611929522306245642626981199326204147744826904723603744376122728038128021204414398217325536847174172914984185348519457290030984326370488511057966926977426337068347297665807260072600614094311513822196583137289256554724583494924190436363462632023149471823516241040632335560029334582856579722229523720858010730037657710926743815945994881199115960016184805930202954296578576615168430631074314436443864805970708526367312683712155263240141530309273958713343674269029045397128468630202273820405833564068604499775844842150219375458634437993435169009717719957757156855412506833166938882451266372600385148215894752800525032653387818932247647900203405962588310517963654334237181527890890609005187948014726087650779362464559464443460594736878570785857417655250729725216068626812675407006778967585427975650279400138000174279770845559811805416677150721031694789605624481734951409633541781844037494792576220707962394702870067399318171200715429473181882434868432925583448150895657736364152420704620581691473611905814128595239633822605196403342014460511548806919163879533038346893353260696912307612512551479014077255961799572379110243593151535604590543436642170113184669933142203991515417294000770691793278995781526657461931597589601508724186979375459383959271939424882731358127323652142800525993906255661210615708206694743908875049309223856521661427665453242402274637952758078826689643579150533855618083948851934654841556860579533124640282951462542738902035661693479212230096611523276620941190308025801704645843969446120893646277207074304178265578012035239417753886998525848221735952182733668868751597564749630653699364988224421717436120334771533396550411463662988271404683537598896573926075242378367651931708545004793149434053135716636053850555072828808945901552577918247286207624568381813692386575551883109013510096643873439190265508960980114800313058741092622927839968596555564548791339412873554244753054560047758956581256903771506245558619028552412986729150225417456339261780823395087244652355427464685222220570981022937713105927819362468764478695899069746016519574144837306729647798741461123385456979412967335916168032605868000442108915603914468299996509337597917213299780545547775042149721582358653054876391738372529763670922730665086520812086507995964617406339174642155282248427594966686584879559155158829959258864767780865998442712153317674970137637419475332758043758988833646096334788496250394281008818337063374326638569917500993405973216060115909525415560252977031572182340475057889102521184406074379162538130562229998304743902324756372225250552891410516952406782184719383827729340081509951114347081277318868450331502349466722455330815147246945166295127909209882105264460214981438684354195387764701716859379963132121294275060211038515661189374801055217350146627876690841262715040337221972476454617182645966737555762747210371655555463217021597030229978545724842415565898831360145733712974794371491624308224233478491877731998529041272311385231124394464369171273865229538632634331044651154665980160543974510770181016945140141401760249195214753711901901796099831837647050815889186235167621293931588095560324405400512248727789872878562394129016185200105384106510802250638834519866981342218757176313283270521969021997171813248008833133802793458267279670754915933394066646229916043027916243434182294984539312377344836219524590288477869310973602858600777640623153432902186168756407771976768498430191628095497846684307386635958906863695696251862098372473063967058250699338366105330113227039150019584787291337958161593364085410111387885480294232866857820874598400764414921177442363302153978554900809446386872675468593204634539570563549257060126337096187003909309294020751743125073215861942314215827430854067633090151126362553955463749267560954112786595682135616047224889355270737855363055369358962814126149001961708218966064523574051512001257250145759426498645255519951798335261537015423962535562241140414728397871288747451606964791600783436156265660177734795179641771509899057728980856465317213572764160351233107626748709109147834729223512470502751655416505331937613285258475817640079693540199947535679048229536950832754395273144955117516043355992673901949660220308234559581379803891524036706241453282507579761464123264014606933049403709114809179368930046524083732014702409839434151194183548038587468239295195888320148229947686308122220748676255412533154919251237311096095856625535918797879998968105527448148143358049909528628916055916491764740342884383118751515870341338553173679951599045656391830195273458956411270325428143915401450319893864876546912995877999393499094807774793546307159732540021246000668805244824363522461659422071193633781657948694747032590702323881853025308768724525484382242720035771972398345531865611200633224678634000041144611993922108980880009706637226379035905347100583759194378819615690390926039779794708483894054609427919203658356446950901960195765229244251735852051827433790474482936800240214762475832752965469333674339756465503087116885401736374081050254284934075699568123613911580392694843682655285552531665907860241533595913916013385057816157957078052467421615214462059437517546049315097712476579558559755734710472602385201574871164330544731625491502493600864942001777402290294413335244135928876002768984068514927372173806299776980335371880737976437738651050241223049757173453529920339245950264223780431702596176426313419102715135510029385406160621425662834277890440605836717155024206015676163541639088328293687369104792690425823138251750733727304634407314199394595485715642498643002507934344134131499108928958122182986862142337243601817331426885604880720305804078026462280075470911241412987018699891131889919678813119853436140843328328055886883318507022879885871747337848177814765383253282938540717368239551347864567174877174305491498796380759985309561170756459508019841767360763686499561421695050523943289915917213003967706498226260126881620409527181208969815158284905934434759512828291209186740514636596948116687251787900785945415148393235044566141811423272864771251347322859837134538449592082474507528161769806633262261285203998585227069072614753084944788783673869655326558432495202718144478281903927803482683482406636321296681779963569419565321192615521340481877802416892346979178980891569034076603303785928486478058105649127484730794544856652364725976560009661483841996895774671151276806426354339516316388392045160246690351251195343420258213534496830564689854397043842498588165654356881462120532427842793304390135141999095332102040168944574380189837530448606412863771665797014421612116172163709403137217596186954391101765731444763013453817224155537168727348725853104861043276956376797821596468865925468261601004274511544353688738438260221625885794437510910907437065470220020057119205618907301582714197272145589527416095581754031771338358012143554261114138442790724042547588778907630171628453527920899831145387651827620497167539253347796330272775118927898532796771205438351850803871855364184603176877123055993854153481042759753130903304577603081363030716615983147858273119226030470117202773697405049379166511472336505370350209097484556939846762871869171194995954607872253699184448741697781471299999627290669138401724465133938110896715834067929803346597623186607856189568398497468995559299587538028376857226187176114775013365232766336303264256210209009772302071180614031551051054486029716397198490980714526536495021116371613191099217519777114916749094006371401550851347088187015600292521476600273807475793500166974167177300313768867200939370563621667583565849851637308295230217860730832035546916453190633415918936334374723239706217855840999501951080839614306104773952973884110447982710913664488996369081047299298303758838343106917347352878127710501426907573528255947947572788946554327950650885683380407608892557702017560631232053599085243821985426836243557582668305567711563803152441199727501824638595971830858553567660053619609864447625682004234778207349033027277142140978984416159689658392153695524387469729431878223512186052006276654528129667199385427361512686020817045330542520060236702356998938820035939437825934008581154406019856614935374654075895826393318573965346248055272087025195514448533172138055177861795669157039410247432707020560762498625006016912904905693557800007016628751931192455840000346043598205231066360754659217380009665376061460797359690929273369923283936955201209207757262456923666660310040534437314588224957904025892383188173755355012413892866816110814070241017730973409608480186229967310651277170074692925017331003388126317091055772722334153850556548153760855689762054743337532074832990080732503150322892536681713053453525527498350503310541575858488276735080672009581835652854766394834877232439912688903665016581975144522584790262354240411194723453728290403508133664136125559480785631134974767780583085420343878245359897832980371319781096253292737279898424838842560403496344112873937413271602019290749649364195568133494134470592688925412396220041119825439302202603805645396867935391430746655280165998698005410578768631663547571055338511142211505793634258779749161672658360596553201282227130190490845914814217333737612543733448711194487537006847220227491930503886893831180862747141445859708513706026001744483282905241513585070374916252038438380996230077368382055715540774774478687587114689683525577348675447264007937413619101704620388651964883194106659375101962286956771107595721725434994580483771458623152270446173036660003136645813809304896093300871704187268118483822963261203628468589926956248364366670576164513639359591464741128803347285874033425635059520731999746108811694706913724726848391254453134143375160528211861534315118933576712752799811960248088159676467316109685454963914348673406960832902818060869044186459387292905071846483874502060253986818784667758977141037145595055860674940286504713297434431659492205891077389005551822296199786847426118495672591940055990736330933336154776559529280631571935235424797923542823325083027199352935989051854674439742802122893831697050067876832284052920479186195525450936855982288356451515244737401889609649506943153007628312915026981973195799829919160481187575949038219200181632642666965203573796876060820609285594487358518058930815309050158927763582503704445135244199063368481090249814819177439119113737897487635576419787957304658337621806108203926228630303753672221821508341332664059132715767367129173531750525755564656752826240250317738656279922773286091587570735021419127958313447103934504161542446630971587167281415541103746043794192751058705056394751290939611693512627140263224897913457507274914685647288316943114787283446520082533541305823004176423781182810798014876668489816174662644994705471649083241775186888575385958598624027623201140409404179144742538419534315856725822596533910762026487076340503174949744233414193367103182415244203196761897204138420088763674440092621534045717736271924615613835322717852565377995756515734268028027410426513051874240290353152956273200671831321802986904971028803859010349563421676710640374880896728586655714900617638821090867025662918719294483888163171702369316390637781988785943752636374397832191686613798528671603654853337572419383020892538645539735705833154713326131416822167982120448135503755112506245304452252862982922738806457340861862551118185572087230841932447231199967022841830775758822055540237858894960200254523961936654579862080070721663053889328248985768994623849012389621150907005308449158380303973101037027767011576796002557384594533594817156456270751413309077204694052739921793963729600819272796299287300189899779423565857112754893473416062262556685325780765725472353687461893475446409851149523907148479536014228065096829631666932585206577334395902266944157798268219952896114901430903245099326357559687149747653013763674977481026849380528109910170427454413567346294332492971271060284410033312685078651951119999655871436071384845986432779590833036553185696537895746716846155772690780095347369232290619077053168224314204891220074254940683664111838788642636786112839057336714269450058868391198711445393320571586745971008692204310401881060764664536310513842924203417889002647427674620705217199923346181506176823899950068439801981473603130004150613417963566329661128743230799900628355342344961656343189958599781437505065814245552557611762020388832835071506838738343310826565515398068807317759308498601361324946285226906243086050821446592473057908619251021932922580002956671064816996230252181745668968073862029081065826891469264555029123290008426826497173233704448772917487769750733093255263658839322636181481679246138841956487064735530396342567783144350041762876263147056156067944864677395625450722081045896883279519729616103202905957923172401817033037512266554642061681013541861179199706535953331265357687724526718514341991576384183904324307705572794559097509160307170114128534386098993233813987641952189901643207230738340904499908035074892772145799391779973526614673084611975890366428055490061975221366889201802158073923802511943179181197300906505250271151356007016780832382177608637524485633203152338730942610918491257680224345780271898201212447160508390491242569244732316286530024824996766541783916796144619144863314223914818307794842513040444178329475545316769611665688629530424768377585422889089832459544756546798108967286778653812376833956994671202120742723720762743854655025472115101187433653620067157598400727556492500146171708315161395891790804842799126480232089344488547881865145693244694056102425777962529476945545471156393103818642023368964474012649513121902472979075769176981771785752253767760657051963206587129889336692622743361807934984314683840638609806939049282183773900376341987058332948973995539655291098271660111553591902857377472572319114805416553421707068553457895008183805297064104814279094122557025536250151148032954595513064445987340177379681181340908224926723891091969409630372121226948831928328832052518117904130592391865331159186020720149518524267579118132967387098852143848756690289817221675004028812139711867676234894029319232502862110671990052580843774913844764316850517986502459980755928072060679888912790966199045579964894786236079881989894861363091515572111655356028634795806028165440043721713548691265820163910106783808086809101702951566047346529530353947784066429785823943474031238181368957729665262802954841891316074150687492543672540298353053295684888940443827287102369038042363683366257044618982243740448243322669590432752918768741118275045681958163526116769766923655991011488396249368538663368541774992564542569511940730520440924815160848140771128563613703853413328057896357047602608672654841545271266223821637063478623571239538804306585321083255384448898554586257797342726530779298529459828482909106362883274897001139046576104654137338800232254215282589931455068135837054516915304325080670210859397349254359846418711064024708344550495583533395741427215020676375305613019207100061524996206041761526728100948172126040958470825855265066060711822665055361053528453196389148897272355868574124139945865229407511922906605311590619061304051925755983175949752548825421414474774000751916657231797996565181395591935667394606248210175942224769338315552301381352968513919873651225819623549597085912842192601279524945841789124413752314741340802568157073352599330920886503273127490939446038570026138156431528456368935896809511559108402705414471602706544579116130043791870598252125855862654146933843584207709391968911718677322649046463266269812273813312326149106747619017795445883891463319251800439803187632241468345569685726194094515164415217544842876873521221160719912514429044159342288467476023013546018291866179956248337198908066388735874573410641363633598180338894105761587204023473476766061902717586389272263336405785708453188729160317318365229136080126183026438095513777302385756079084051231155718470989327217003528944542378455103257461588683261403490726450651469924057093840021598071170749549172414222045171300964397478309301944781165233204698324191928383291015498835090892602793670763614792306142206328003270028262398910937518038248320644833590034926037714804516021985045166393442139491939620296881528534279022047974058199355489578188174282102514931256722404210450043468650959671023187612275945429888311374204151407075398681001959180660388361786150362821060240038600088811294784105259036701775145892206810699247173782686310552596092390853146176683605617302850782545836166963984291276389314845981210481482096931472070517456795543371939832256344781151574633971910603346675590311481899827834101154968251530969934514458193551915202991067334633926806655026557680744560800716317437384287711264383142657478662105843799792697862055895696270636094147302542038359999573027340371842172470418482992747295517136159378956091048306065402477981464194899732699268291508499336971189064694469552868579774102727471450872733659611478573445228057183306059604663279630912142702201755852062017845286302774418934765714806972238495526947700901405114059990031323800859162319975604994169039541970859646230208622356317447322184271214102512806996798479964254386278702281030305240739741495825530270593455013252549964629648526843015999180431888820994274264936798526210754089922579146234087226451147878066766578565425909151885655487845826470520474276995107312544221417460078325433956830608930998270106534458186102325976395613161532085751740405650930121664958608821548209135023265708447605450653203978824045551007406426359806040938922439784744466460115317653547351870180596369635537263828307374731326128117727649917167301040576107431783316527119973221253124677283920421830430361981441696106259379420041330245380373958617817881247013244069764956915620932921454480250997090371620678131523530488276529498312292453568046325372965215296974255756092648845163770834846282262576625115630998556118070786216627781473274141230858532743300068037373570039507892319023455621191829035490544124024800423532882481904610599810047684944047437700480640251265435488587801284975939965559102262682848552028562498788637396180491698287502501346170774780243339223073098490476683607566663322168550214666365085953967852913643673854009740786815851780185336504809877244400959447241537125904905233977649323961942646493677259822005969322316183866968039948260598413826865981635888287485501745878786103532334770601143983004336928988585247517527623502337023856416157899879185311962711192225972967280416232941976091644842034165693771559747807904862085769407561671019382459967867678379328400694437274016441799849383060190152135145291662215966153640776489172775555580718374719788600162254256535559765006554759612649062243568769365227059781161951638036580481096107117359716328874830676024663158092309770883872224352858160619903013759571907334704046687716155754393498036753408213882643392029184113944146619809851732604355350613081548690750662348030571347334537642326321575548612067342747380597094102129261548066589065749046367643580486263251601669371413285478820303468227202947410064559146796873123980731709692625136473618419932992760613637415381234408181147662811718753713942176946282532247537153149446556858672518229783600237786461933877492038660308372985490417404057527611814218916069292698831817870430826743383632651873303246814290468598091560671471632664197912362999101679386442824188587248491348911880374814386985169145636744297638782449984967113191703024239840249074418978230805867336146238689843059950420083468143404287854848968545911539464958464798452788040062428631867196068001276314259002175064051398544266006924900918158656506507239665561855731616671142757260848201545171159403346097469258207103036363840734367155332494369228792022051515672298194818735863567451227366428028166635408806005767003407660475206649686299970576786982599614185785067206727399222572004379213979789770839247188256382076458715321166279236360511139487709421679582293299707843203684469366988962952280007660415767889064946287515024527456774370030595812867677202577252799611206948029814487850488819828537263389379019819285157178070177859523586471272943927910158209311004455089643435230333662707990962221077791810862665366191551244908234138446494465615283213746345379240021157234237426972710120569847664058723487283612764583652178351431584772028363837971809800807371746443218400012194170542625765166610698952563486674193131442904370101814637865511517509531092469675880400282454786406773547797989244365157010884662078412584353464118799030982015870858708706256752852884905952115943951055157059233298946220190350910312633851275073244116824956130088871746784799209626624660725522444274349949929580041294293578332712668392341034613618487104182835685658261306648752961302313461168641652748067809551777221904930217805756949016060476731394762655028036591926029168775448405893251602519362624973306931607445218460441000423247707745613201778076830909933050381136939309907396761146024062047066416161388280199460229744701096927978511397816287524432561781879711629945902953105816245629160786738022552247533137708410717525348649178487518237737716678533171828098892660939208389266243210808646063677062803733743153530191318353543142568770711684373326480935470094606079409845479562177458246985209421609105501612165005754382550644162631242390014941722555348647097563904198176893318782189189453378122935718449562751120745970863166472707018231277397566639503430546117542694466825978127015945288188044343528944068801322251687570658267333021749770071501504438871085452488541063374261649595986792161920961579446006455478457661885448060108650108889161651427230127216852925818024263016986209165077101112431646207420880640891160201131567559158789771393420067139689285874864614810192379441219766638487357839493654868052572680746461940727173695752289494853459110653957235960222797273234920418336754653801368361343701103058204740337863295737149137249446738616527901339096305735830821324606901108212957568210913462105044560567566336751312032669438566453767725096370600916976085798936506625149714137539390665030789573829061707409938967290839922132976814027620180958481385774345542966140944826551105737785902797573516337442513081400599841912895330412687237220704110883950206646695841181665641056453744375713892759365995790583823001198472170743543529794256017601868854828427031795918299293191586028917815034135998513522433225221775321605447995483778358648232964341757876381462261798877000219109661738792880116787120527870876816110123872690750509620880369556757216139836591303701563760319286910009994556121203423851303929607082377715690493852776395920749111825434909110503474526339960951742536143896305845900717521801677804283026199528980661192371041359107749974826667651642073370345538673110334586805198966441811454451118175226673287038381268081813239679371494510798350497143774010153873060800616522250624683424964341941273254727954597248154959923419136385739395329117523382582032442095347723246412095869702655503652544623860283021726683649777875526391273727292414905067835761440649454067755243016627156152230760866143454741003047428715748681171400369787699836802760991408968357825615342082764066126873115688083432503600369857416394988546900589616819165195307620185694957637513313671547094743974193449748770660566923334518617667323485493292488398717776383425497470025156307803422587231020055713015796676551053817194976950210964280783470584196256495217327738601264310408925981340277682311948848918733435332238489247914273057803026683993134987606917604405928338581094455949754634524074516207206595453964653560072519713949796045716605304931453339551130201612789280095783492798942540157672847606665287030791906759687195063842700741031310631438954496031921616673096623746477139694603941161756800016444250106440730304859467807032676374386253790774234129161627284703502887100330271005855051243426092557945852143521641931586765610331725877064970756374207147274100225761222337008560707686898222925542114620921478616487017878015174251802033288462542783156672553576527187840199353643511358822273097112041895251348002181315473067192446730101307366377592134901420551820100836898017567317683525111410558602959752423435457159435907355161031976804874037750064423013893424766337789175511740967579055122665827572746434895013591264329894021682670759351390175197313518945428595273671108602594757411781549147359761919570950895007180290178825742949997648172604801145205868158656175369903340746468329503837131204749173395197430805300321096581027627105579629239454015672560112642069863304789268715662416728514627089163898558835917739056082474689555011600171776932051430505644850214264777263543775899467725356851743899978378427736465456067062884970624492800497868099326961803838205792682823950617041309443785047090374696502680145152243522288648585286980994407118128462144836127623575947342812322498278657284656609030555887146627837019199578071276480646467314718433314390578859035444657358390918344413019421173780135605709770763484419480071931679847539497142228218035497566622230262644293340345662086253893418940480633504962547191736264144974598173696059792292948798597450945757723010082182571040808257746613721880916175884101234504173437589276653172787722449396631369603535887646309117629847024245564752229924570716096637411253119231693661044855313934054628219923530831189693441265922548970157083435645009349214248806075608985059617151563932209514992474700196694310471396062193982168232112257404041459747399385286458337577375047764216855086054249642380612857180624771525031391695655118868642105307011125989279039869694718878219190735370404740391854580664400138006000538488872336155723732485223195131240348902003967536479374576793347600221921587404648934283421318548565246106121087435143401513158325864774717424730720333258223690267046337319148801306240618399017134650005333696244190314873896674337126488622391378266555287158220240954579650809682081395635075542302467933117671924070520846938813116496327684275850546872098257600812888952948986900079221403096499835595957341475239441483072018618349023577682789750422634842301542056400432066537960640208428510119679578648522833472749224393540617289198880619806199285159277247371458920591170821399518737742787205085735185545377418872424066916491700269053180774761422137771374853698264718265553851258714151486250264958920258779717534604492642610137093120710768235414539233574030901119392931682142464612205601351142599668688283171845412896684599184860929589271461176421228952672918148884677947418903225609770055189927154794471928194387221345059419654674393661346641165315313765486705091343525582763440359966857591351661769452138736080909505712039427618556136461097768244273015884929791149503546074702911772421154962373522383854145856833584326560026446335420055811713493467221284020628284579368609647311158319209231260640932370900470015241323241390271378882060608533781448263296854930423979931205207209167333315320275418616847928708628826251671658608828178395154749224787763677240053862752523200609071729310645866649266641256557734072755348489817564166079812828109738851199849172649677723130732739335034994737032135269226250514391914020563869165625645743252823354832235155888386160444265645984339278505263891570664386351129440290973328058113287597235924778971464373073995658366257407547486782972296646032466078720014977784873268835080634256096652189279192016160002490155321085580703858464636615305495273246926382695835671599824645902268852149763136084102453698357777401119839382036433660308297207145865994809054005711909476608364975166806746663424315305654107639824964326167928897487023706076589961746914979079000167142205291126170410803401344803864191133119988481858913627841431181427896451609050157478225147677645720132552562493102290685086430777036537294175206256280791795241038034665649565074862088624355094927569037048179094417831271498799007269296347369103246035324649310664655882931029496000331821951440146806404168933782391046007502822560494831538891595488677918594954013146592827810503212188811119170708679934384190241461342042390190849100630050216509202158731696478951075082991292766843330272380894755097876905736462796739001147785659529060140673937905064814695313665668613779717192662534128226156165734070758838047781687604193796565841554840927112082745069765531179469173234192647922432318404717561503097466256814501188291839910457364426428954026143382730172793293635242850540026273164575214352337179802294590656049491299891473258645878177843007604711707693567431859251280122864323070178039610211278987699466908757951721228045104575242006416589676508298942294281334969677527503418965671796878668699485807140988502464616581486196249339854599703954079042081508290721612872967919289655282644824754546157146258207384013967284559264699125786257975185340078920694778403209980792512483852590030700385778877074405354034558979998046007739416517023749597415320291314458051279329725220106871342209394391826733193980121540104348830130849304424575868032279881828318142885756956433799296225235263065108905551095818974953342867000914251613128102600922216003381481553872193699865303456121340906841495043732316477815847513994724313867719747199779540883844255234167639214415381260518736503321622106721868189321463300915238664836952038115785998221715494517869761718245698252404785177281251999217417252320739696328199719170929660149171559681393362553982899675833237329804015005123150529152835022038974069674927246166285598998017591809637660962709788068565949305985056848807182813916825299936117812404531695719721532854115401345756677030634229419397361133062899437511335866821892762799329353278789432600867871036115169537327944198557491459510333375684279753128608411287598360810557617108135730333491732039442215182130953873615392685454886486332950965533389336033996854302685316384854574037116479545062412634156987575976794954383753291839701882392026413835208536327092609311960897357080758308345145902905905539101161246656822134066354938310706354742843296515447133854066664753960460916540669195594576508596922920084417356127844383400677768616047707552826531879895296654681538579145890342025248706248799376678708111515652466975512491067681248692414080479653473587382931179332124026082884500999139025946218394275332819102159381840664711941969670132064449897283937413490363131323654628376138583902193548682111817114764721701064907207399606400178285254877104893621547410518134343122572059808290046785224267057481386900242294544774687546694864893549960159976862236658988440408114478754377544308623222428826953499342798275750385799894059229093957600874507927025538734200373174983570089692582755146201386032260145922385716502940524730396304900569286513579623116903800691112971863081080856667878453589074033251224118251548370131352398079436768365895271047469000809947269266640244902178457075754150940500933973612558697765777549734566074180819679622381935593906294222185607719846324273015319518892109786278716949968938320905294922216409455210707033184385266716927472746271125581816378083731183749907954781592702024186222098400586118361938545833401076059184522530136660128236302613932244643549871978736996447317739404272620135135021853389889595384373900428118059190061252344543574657432329560768016601298070267671153698380424138233842591372632447872627503939558543767990866744896984777278415508775920640428616592163378543398159972391230623294586864218428306283843769699678674141186528016034615873602266120346961283640281643007199004243616377314594617132527884665009701629951859666279724236960711897621544388349998704318926411549260032902744168623935390310422206051016592610534060074418444948815188702499601826748911638816346346605858242990104251375341274073178768469398554235632239421107790002797683803484511727529965951237726584752854025334814437836778705533521693095230408197711557545263561511828531321808758876937953547130413306713204496306105091101455153234464591725138210199705871583924482095002325456056643959024412613471578326993970595832730870769967686872945360858754040774130853348451560366609512764762041356558093603076692124956095550096503960992112179247019141955587506297325321751808708825462293787244565828286417388832438913178403193186667156658461049442881890651247500088986237905526118985844016562084076905716543250001576942383963745506956620973496040485790614145951023164680478963650966852070738465671323194896278049090758358926474385443958841853133252526845013157654725271330263769438412321875078195405378481203366931064162191327428703452985426126981668983687321776028088972792797931545061404835750600993363876418407358533152938117408720916585401418481860066754074474254080575623337510049840487109907923931497846801845763368007442836293122630615251933013071833492064588099453006025414796530067662829752914030497804382371973485663767187007916538236473101771411406091707064084158552519621844148726749616127519876362511352053161572917337636536126146577646701862830272468179274179337654913195759184121881157692728395783126145427462258023778613638590247353971615945537700675701550154218142281724524304749142912704852404412215715339385720753588135236141566935929135572237070721919873955113701568671745503872790127304533065624254654005661685615231783986401507296524278878639386419554662521961545896611765319677307305108031504784839109977133626629803453535109908709067895910165464891414464158885415231674088354442543936228378851078450052946491511746936289282292729931001387100461423846468307397785341892384213143432788530514922131316982665337961597735058062197506074010405406568554017377763584309989525126978001322582628940859815047648739915529355332254990672811973472382357968732007739001643283305271040217051656198510306590706637548551037057290442759621360602735378394316323394299738301799020586688968675848778778530357958553742790980098638150331331370653365424233509341494007790986751359520755792128541482412872113403968652907546006496437843255051278917792968325609941435515154902860804373732882001893311899552715175358451618459557848949821984097221566447358695236894720137686275976286902628713221770674387416233261990415859328280609481374849449695497874126624880600766061497898975398870527955942485927216587173530966050054203716910405720749004215956309627495747868044163118763777097880230799938346072575762696037067197337076285987216302755272701074783175968999304577586573742059471083051190859766176186049352678667170436050963790001874981687120642651868844786774082374726743272112564434549832407451419363194069538067416999703129033657550527069260910844711702599272559286226034612965136400085626356970151772938812537544689964318511002646897468173078800806644559169747899976072356536827616928481429397632874815148164373656615427619602395705610163671582723607267782072936485213627276864015975865042486587799545311951478043712041359214389878782202145844487918929038786334045800929910423182428593052323761077598814456645388656656645815021230762309832504003000411720745100308774218910295115833918075633985925042444954662488708398124071348462437509223992551077501781125293388670748679968978518546990957416532090914002362549620167308331132675275161650903061972333809672366348418717496188734857705894320555919102509237733606713464924065352181354360208863665611851627193938985530909800558360507517139116059559327476101055267964756499426426697459381717318373551926683529583136939104064145256318363280220397925329613838911627050411140010366674124731671992515649210172917056881772556274464477226430667021876690512281307263576149962516695019388806510052129182415527214702513976965065398834377535634682758066122112011759408322777099775571064927870625621700415589574332066925921241224190260323598740997941794559038130030229022414743440733518941383730322913669530176416912698860843673287138107309163897892511373122241553824626006921369711609381065148320653748449469004375586301661038537492651154132499816402747072155177309749645373535606563572895182895023115841159002903872989023292400802349627920599119554055169912353920937199571894424617629743516826501792905454155354404355268678427299527182778611997605356445779992308681587745866084238370634011662940007255594134511826961525748474320640917835853457937120568721184523790140080797868853848940822663140915161644948873658269343280195116890930211715940910389631992464430164329513198342716140186542991752140040412261388431373698594485538746219217032257134165095340702082921025308574643825807960834041399834501320854339903316049681165001557099243529746508931861099134556588811414471439440301978038897412984900947815956328484665901046126786559537906267581661004346461814112163733931055214292779533198120060099136349420175310633927340218265738025228993993729555623516959996291081531516810258132880646884730925011955121166716124766822992251703216313492365188588826558942525703448187903986989820008942341048626385691830124431779043952695660247332548559119476064372806916120770411526926956090958098182552688333119079438559372230480799859873347292027309915804211105900855436291389698001861434400890586553180773148118607389830542156514749630550082058118957657668611735696278840916773681547163021258925384889046476574576643082212228710071187439525970088173940315460637642138713755737627341742214965366580014300665584683700265474308796421992479208139049883208020178966771912321426408728535424294142263239639825499970683898574154320745719321229267372817725159257406210313521855979742837728779498950181328820628461865296502235393070443537798798295825093754623035865784869477290911012213883046966889760659532395507994601327695601706042568536205158788628322224130269487248296455517260658529087646696069944890471998127495494051013099589283349231157917193798676260844071032773006482084919626419723464108242027794897026194933517897957471423835488772592518400089984805397100075781524939011621246989892552751616923820693787121657523072097490781292141077706902614144600922925113362854458689984871966346107133565569361022741101779719379864110110997386491393557131554971186258130355875721814765281854398939502981468507197707098999755984892906902858574788302871360431590655145551460683197587143868825150137205786906592918948394045999056596700754303945289800761687996246851635638574236153081226452166013508445071355996487459548125591889329970217151482933298660359170217177934284571971795313813717660323174945471364927905424923354550894859972109720965912749364192168944912077588443443485530517631919185939237129683781821661255675947986842038116379691291664039676598969957055847167117530458622796918679349848363184687959841697970678307251736393423532147378840285197832055471678377311026978672672012276550010183101442187639703008118903173890169520108478545540597900951499501001621310570363384165479102043398620683324080768127644098463648680698004690687816605928020729031940621329361326859296060530017894661413149287397986401716353167994755681681395186325460857389321120061633977361891019622553565684203034920552869137718207458826885769283911666626742346457684002033580060049587220418253005094067122620698583009518619037182186641468029443790260031566352720825772109429101703924938837490369233756555133542088721151026785858683427731189877406688203007157653575919206668829744181259650921728755838869713697106412282059667415639581552807993278274845186533352911894456115194391223814112077899299277542152132519562466874370158796561108247270818597195846658193326725645971403021718749293236762311434523828097597445834852540621643890147360481136925301484800067806030307945957075217176023113845161819429060634619291736200849247772634237952620077278619695955805644605446599587444646548048561073690284814549550882769075674327592240253316634119091437092865468551038287233572619381419319113095722160167555736156794354767999917102083413701316640851845120647671738553142734292685363923671387219884403532023182258998189777990130815235959975548519660064884711080792109614752948061318034156427928370178274021541406386617972118003823516836292004975084616485728403299068358756432369643272159072033553999159863308559279648715124700977425728187785177264137376904594222516862171801624425396956257198363073292900512305705029055799762320994992330222155023224812030407757752496710769677722313872930760175827358992785261750453635064162426770466879240824159184221214120629970081978347601538319884045847929555529971235962536440472812603906093540795233065165624368570443346304358752140930738102769221470747779341992722061971793931577038456280871231893045507135279737887323105374704656570047144658003902561169335301839283850137872639127369555731375395696923993739928011082450273958786581682614749754696831776780528694648777439847835359084218047783502177807739665121055340007492798429852525382437375523729028603835864350083268012199376182275543094117402463037829098529418339545357710864629796219177766707348990402153371341553655948296937458254950810121831668710043551330724314344073358710524372001054177391085692317636132767951342595542979916141848095657281852014172675502049210310943873258786624440669203285295749827958437479350050033105384356630467789928143954991813887061407530932323608308824943338850584705777032750373407066975774178389822110578283217968184204749361035157432318345844243218811334627132087700361612438669477128924591681361153739687600696472232142006302108471923582696260463953033994509726581932655304207059784528277057268610118251502106755938815056541882414500376317704517894521037028584231549574279479322820340375858925034121056221799736089802991470418000144782703981387647941119506811095870169517208191719259648890171777350057030456838039684458749115514054312953820964458873333877813554575903010470536748683627698344271112035026882143325962635489471933273085333298237342628061030769501314939448008560961986406562298803123866458665254420506648877871969535035071057714511218178686507267117140512309648985408179361276439936763271499544578578936869902988540104489016868938981452622469164281063171056759670149414389509261342180535325315239054541514275997964339770951946088670768368055056985565801583596659106828129805883953245360105014816498140513224162441313371935056288614483235132804428390245370843875179396349200239000187401581131538351231914706708513314451227258913970195481884569434433418440011870371772231568302513084937522655954334453207417955647620217580846446814086091088865250533827655278723588775775286778943763394776344579757249474678259654147060574816836427061864728711639072395799440632815894125133597553910901534279529632790395976341601924014572113151789147608891999034332519904043999019954394370818755156391333485554072046704984567378858617448689301783161040453283819411898284019091885225546312268793443337301591363674677946919624734751259801226206180678347755217029097984239664501139463808671021668296462235953283944718050850906606691661942854895921725263745484454188512894757288280954964899465804939835955034593471361955911517526401092966295083151154172059499866347131158889503882852042576894463142836046316701500801652880368727506141625728572190502146049541590159468849206572890508653176006592997174421346419465642831415001587775833317654718280790933813087825845622180609964177034202174612229877730071567950385492762350032114621727722796561926839513715775135252440891269134125469865811810486945613053208130079394865163678669548289728886699022669583602682161861073130694044482799628454957009870493827065009997738405613912900808376142792086620524524386585267293801128931900254419962677723224811242639316632155124812240475565511996407771585402384061376720667624484493345333515988627854740467135379851634679262028827794103930274321518061638235254808996056510338075225206422669814421834184255484359396874385779368990878322215532994322941416019779275494489048394677600245984069048894606229212773679877244267961503090363165513224852987228952798906920231509201546381546010165203388946349498740976240066615647656292249174898025426427250027373761794832135263000460379137671486182388708466519882278081758640078713623157558073981200935218272828266856613663414338544505175450950396530506454528813817722788409146519438164587467745886220928664410124449185168522805081845876582965519187839053111494577990229762266597472793706723421193587653286785361011585019330994529745207789845472287776233394200848804928069030643964981046710687488911943609294190284532430573913731165874058480615015578500503547183381197386590397261038121733706060985925163805078652566963771217845932321229897959192970682534593125087618856918425525908667034405893835038702168749762042147040558968626295946728262128048702160226090033385593260600929167457928141426825593369434327589651250798740960837055667436446705421121427511774081838993492136434883303664661166562148716774778235750007679800715100967493224281993718687615510874640940555558475003686451563417929137948912734419468337536063013037280025426474277830868066311854853422866242718765611434163122599593062182746415057061999294681695383503858216140711547934366372462665485322956141527795957100510593196280227186172519502777135449864828964354381820722939739549217805694232710886945810333534376053317800621024304003391242605413119583604354387806077515211912081005209520568562421611395290338504319771484218468749240833009709531337465400085195506506690116065870844893532612498965275764779302719484458142271048028570550913186273218288565989919021748605109474887612787247994646708928070958529880201452213324906467776694639859502546751059588299225072181300183370001934609364542799957740196983513829754385348281962485704665618267703704201974450986348081944313055340387339411487973382232867074867317073353523091394161911389309988041789584958677438327918248684834401925400541448134421894865041396096695400630815076557745277699113046742720753932105618287811386582713850081201885072471068281168415265460751345359415850022672452374157262345922687615041064226082659686071870233643492925953849496035734502150986484213204501995291699837303989448641205531012955745857789951455259762468285724064628868233174464885755827882014748441162339683346953264634429708468380607920957222680696179004524286740988728369838267643960374689582261200748708684210591209582132797465540196098955217509307105937859164247491634644631632823591371792426220104636499210222354178551761916850948114029564308918589600589654630447444182893227595112021202405872544323871915234577254467040258398146175723305328330642743696837654089420195200063768420510181476018204079143113122537894198407441659957628410568495734881532223746118088128227519899796311699697348278242553657565187134040283784850292510763452772472438404272657246690175199446385188349228853799949131179907871775726871412198878011923935083826151374498879668501423624731950269604576345307416706706729172515739579336838127147702737501578579687620664756036732050063397646260592780200975642963540873818227215345477209873266236633124084539662422759398490575357499251278330117501747045063335164377028760950747110551213692461179628473060723809742117002403242321289391179309426252265780763353532776620471474728768760756744954796754335009382672613832056297318722198213184695672311654970436617536619562726582032398275401238593303851144130384749952452096478690853978133068701003571071402701106888787765599592903298975934309103616223403654745864687209540099404438876184438485974407253058153169637366350899757560179504090340770919408116641924425559422516670253393286548940300861774297813723198144953483787012772659673872649222564357318177696970832297834053665442164256420992887745372608055101276294756205942783077855921371923706298324241543372707327198444441504901161377156347880159573576808196599781602818013339798991404679160696113708823140414971369338272232456963975626917001010250535362170340916785736080392117437962707976339031662718307982745590923294759750779166040962082575058754583057057329324506829791747095629038519994239109184904533566002941658775997612235225354151868370280531232152471543277332121134640949579236327278020958808502353246317594949276046364464695394012101203037054754257988220562255090915237991798075082730380857063650021901752567865642260932755364630700789974327141314079717971641484016934984407909409330879867653952016292845627125568670226611095395108291126554185185820709118673858848643670439878052077157551872227524047170966272294446752730515044052283224211528373020070420244238109265682581031120118739018239822483718747082779710465083140200505251677394318679686013602504056884795072820491523085892049944223653038615267822440097958451907987088583776480271401873232199544517039131522239705302759934444552352278704316124657078751730807446289342125927666008680252404881000964574480993142063842218388682085980577897963092105677758788909388268031522835292143296570531626239921603731335432048658339387276142029742697447578746221608901984778720694036833311336942546867637310131440818526399905230092473634440271794788740921143377963547755466867503760815047482251959026007367861970623438191552805579634467388136251074781362811862418749666310187526376709099768174481251117743998816074817010958700892347433329041477919689719234912164466984380353674036768599787581401597171074275974654851178615150653058026204722660844446590387872249115411665828615238648129775140596051998956107055350092411017900031924175289414999299279109575374078579593726671158568937684760833559621671043994822356598479531633459900661840381695002737687634686550717418720768729648086243026335919319032197472879471184480526211368855733687762752802742272381436403598542118831198915507704475168541957596079961130378445979548909097664489708702480800030489847305558707427290656050772569891194322387529562980393916789370860930995851108423627534617097169340773378263878064891088154018284859002456762931805902469985947018152511160759438412042614817789819718953943007763639790340507763794404168103958891343685354466154145317502080924722601765250701801398012446936031119399623616933752850595272199415115680084064907649286285838701759806340554464564639371708758026408829810052227760750510654304333075822704722716327877848262185245909915416127645152885946253554946845563725418699325780393723957253069248952473518090293609066946284027743009511900920581071889573062160563665995573333141390363597431358753572530104628230841555902472718984196473516155685528247671931218382141351310192166670142850614323492020682618908216155257781150462132389374397762110557025476265263167102415206837272870468609046564132334315600249750409524822352614336202930394046178455290660764181675939542746938409967918651861948118828417991834871836622595024011787852284116929085032243424487594399545598265403550490109449149040344604284526462558577927338656769437668271465600372053638344728477564330389827203578093039658072534458416385174118995247158978677146616711327604023419274490348050213784496238828262084153029566363727321735466609869110647572858796655752461013793964793936108118439397881725996984213916462854623104406611130042199446280494127760543356614028487403019521324962204708563412586480816312139078474125704805466114584122576314420301027637322019779303039665648974611082478859637941611902533001361205649181415142766717474619281840554426792366200278630313001039077545385148461541171027783936322067433178556196764998135530821921034109813272352855718086916217717215655719480618131109306381069729512928005376824554460602073782172823898629784091862969562529850520550059886914453024725710252084849557587211084354090833383278482920869937231884899807548877583121069001642343980114198691343472831248080989847609327248119742165556806983842701840415443565762038069906156342702569394279979514661921616929860175254463700057231942421033034898842632212551560139989725978085667369884525609664863170389735435527681276883174499997185569993188681368093840342073781216426988824798169840421334685346829753865563709169901214817794002648555019909889246023326805402501326520385231199966061331389718408752637924870500144322120957559709112507456519676229003351137889043856126756403493488136583072320514531846098013535360052443560956384238583408243858493680650788941433146510538037398568998744858669524506919535081899908129452224699490598469119477724487422878821160353658480835889224554293854761910159983522637363933820321635823715496361361084380322793012096928160857839807650271758522265043215269635232687488197167671400429874022477981550418449395038760140970802969057371632720254197378488155392823677692623865633254836788704588967867683056762271522102774472631911886971786882127157550013673129235989295138275824867745532814867641718185177043992754305620312311317131429543000969179986157260299235313322051482988853391771736459886880449896142098569516120372367899275071336254670463971046892872271730942616180803588638198606235436966853572653227854331159557036318687034967938195528666707444104656416962838444782120993715889635396816684653319832174223831402826140085543176072465411290395182589026207245211184501440038397959522441115688259091053022777583051719249360652424321880155313438965616969198314521659047968096899707762772950027073400988833943904426507695672579542265171853971537299173862557204601572200980369529609629322057778736986163719849723564195922520844170397260506581571789960572152815226582954977964746594209533000830463751965947051885909242052809643392700770102435729910751152234925955237578730174372114342191864029144905780147481624059422001718568353997170954470484389188754179366280477982297638422712601441927017939028956666113727076057698095026463393197777180054608618722694523193377695248447504846524841967721069205584545454990959299489622568216944252302627536796297369876622097350918838867886255527817329019175021488984188885282979874159654061290295175088443484497063880204798559136626496589187590506107994001453589837290276572358711484705043328145392928785381792134812573346005648867590679011894172325193609460212083894287733446992211083084660869539877486444686372631254894519109226074718739286378801568054627613756203089540415269887099457645653176114312843886269203055846976264396038794625096933779243621625372192918407095039874669134599459689086234357699407795576705355824831928817080506988590408968789426292909890436429770344463512868140471227302180846491393879563055567716844072610153117262838110461182763066505681081418358461425329244186355519934057200531858999307118865272813271238506757217265948589845774962328988303176094346850965619056216386993031253031174986090026422150691939196541650524972944788406625322882865547862593210675658182181571270487937655875347406887245172700371826120751286932541192175311033641004999511866324864702680334061627218966125845936234098008406419612503804220140879131745977148566330307525625787329042769371417244761397328870828639018137682903440529384844251096968623320588290991088095811896538623254501201877104356677799800522348607360663255441673820197208250280133587559144791231100792908343701156616568079640346509912288343160874710424171547195295546441589396063237955303316507570625416740914055033520935097309552118113288619272613601516000872786490054226475334998872065413894895760594818961035566668684901633681193524230210083557483778016372138207306324210089639018692267861064175216612810156738751483869780265737569399761945852422357831997225017940632335103019759391109945620197153890800554060894581616210764513669269567867492516770069417306735762804291420089711202843124756133103110801029136727843925856031720117518755504291061051339989116155062164971870156199248019019851084881894810850024179744267018338225902255425837369019519814396434091065495344694446555826071247436732308768727985208284002499199435924921018127652449850548209520443022019005531654355543250454526091446431337474544212601006956686975003149473390033338210535244193596211038654156682201195780634838938691839614495449032623448119862558885816311247816271014485867598087361689286042363395043910859565898862962071413690907892309715976633191324915897214735737037973084835994382708403886245580530501335794878995154820977074306144555534785786090401354746005339085764889087714542649506583877332174207646986831210451430543521143139906702432359572046674113952844377689266059667458622148491266187529623747964684111773387241026509986518431568035795170001712712344117398006811145527925645226149427146701460155071404197536122981870979418839929457599726226628420904665364643443554242305566132395831025704973269156024614718032287516533099086197734915679928485172432605331820795696321288025087791570031000322678822424860104157009320978310102338292826941033777375829664393273206281917008941989925685982994564205510087436576092394038071214224138037869628983255277410474138497457481257514026636573518415322500963413406826688211339481418481820699654355410493298847010922803718015060869142078563093088964672124264123622362730421965984681538895907126789821738458301257911996596783919809362098836985337220403729058222729251410522598106375883465847914853413702854943774824835689681360384366433964462316801098388514367939368314979658849988113618146644289302624946760388320465141403683992274732990081102376739374768834800493866745383013505678758556227868347574475283767136364377571757621028691338152645635616837319309277829949398086669303158883928658835519111076638194355341976306648481723830185860128174738757707503784423900625993690502127834797819816606979372028244243136087258703773300479792144634700986757103486941686419601002769372311868290182752254975496117518075907267909849370438468252379535217339667881380002080255962595924170708098658773790437222636449346551228124264335122089682057403536436010750157270752481567745553592976924435272317546585367685938040452798558404414617145031748345715772643958962999781866565735393880866249030819592132693854118492454742124879293369456479857102115497704386131536113502018909023746784123781957071768466788241666094341619923156603645091908031979627593001250289224506004718223796491516255722811624978524167072419024466251426306010483342406351436231915922134862338534682362037346350388057295304552266534037732476753810051096880584280290890092475965173946284161360379307692372494572768957487116305277683409299933624302224957542461229841999796022495349649470963166305697414827896354698446268963505979210525881313924625739166611142989742064174026206292455838953331100440394960815685957923610625779671894931092645398621361384184144338948605615874159368644038979162348592822296015884445768577190078305538349332078823979758556296422400926339136803701678166796267661783251546936129531547155554085684340612061529192584383748629241423627294522032075586136131764103576066548322120480376839462881818547417463027772419246424485432562468591309254407438677730408927369202643842202364976620560279884949494545355117505898419275442657606719412965012097411604879156379147509040389222368219281162344864098905270503127279644514514095424260365873048126745177656565688553508533768596775000926661184724606203401761814809722421170333022881861717404686905787108546278626225958846839261183829995005738052149836819546357518504791904496739935671239670904208685757280341041865511136592405907235792617501018240035563512521891753702871940780856534139005675018186994121915440728789370609006943242147739014314935175345205404743107749872938062414213585863365781444358377280339498643335771956390734248255006679644724474486213870691734833365170106225512624135720502630644703341324798623482102397287415231902215102342745866374587793195396311909886977234995622389515139637158042852596555968453634244271291827324073452889680742287545444133548388454812841562542272638458122306192472425731054959706162915707727279225763274109555548977301529937204044054410159974822529313835188881283552533386097030848003960704894548536211272298988320443802209407797077846302513247597043590350661273003349885802016147928522986574984382013949754575891912105730510197640339252315458207522215139553136049134670704663801047596449724572682733688109188045352609734894002821154392416020323304706262149042294721240630313793907521813919865596078439769686235614057137721731954577949759926388713465468767897699389210879423397586465978765422370306225451120499475115839711665541214550260202960973094875732403174192668974031063652131648640100676443011136862080492030165320336129243511526633721315716721054136547177682650161013102308280000391649622702521647537984738182655584682434746940941785034210134601031711375732003526754204116927070607238526724002572293514783853179249371395030919712812994116761179483390568020984211266433505455636508427357030898931806170960209172472707174023211502559051826190513652308097856793141732737012785318789643223461057855962398274975150030277449469526138880268791523320189954757817427403890220733086390593852449142952395446471478739498248330839643903603944587235587417997110106502061880704400955949000300765997967123104113845689413494781982753064786226235996137174650240593641881622965100530896163805285728526787514004403639492515772715452504601256478057105132746487751446345128238037774561508614294199733906983941750331469331543685116144316711844923365360505385145335106185435732117604820518001299623077366794680121350596406218045020571928149344801789923664232504809308319504841450432852294514508153248137976846936771954694032061063857687172632587417523594535473170386767302226043889056209994919725774239834572039113055026637547961527975105306311394830117820544284041026498484215100223832528296511346583145169505349959851568470690715706503149997773855030133174805888558926772899853974245508489118441276683415659876398736785371520735878571393711381443450633889906936335726689634161093878469383664455891970538101325990111128620429653404689884263981031370204808893240898191170670812643806699844896306476181312090918132085146046433607589946406820659912683605614830153265559133807305099941965294928111034461354360479425175565107029527106345477498148578508336149411571935258455376596933884716351096405565787205956193386805479047246181661560350371029419139492724646974035952541748380975684457835659313896128281498108402718639543331637459998506269772401894125498604087105328137823561323322157234515863526167721073941720483959598421362299671290694399022915260395604689466325403544924758748417606900229961575039281205210609950871132295384687894752360463687783851065521873329871854056760878021499999573830127015450857655700535046778683636914155374010633590345153524929456223822131002783055510944189353312618189903472094065409578737407858047665170921984346130030068388859964261411679486613483571473117740511521375595774464102941330160374075699202245087832054010308703770847214264410741012624901474114312639767931109975386768107590917051425547858162820238309464963322687070946650145330227165551138042901627111045592882513947497107846288322095353073999059363082077491176645412398155914406382608918600136844598340314365556318523354601917233270647192084478698584988134156658915317170275644162064673727919025424363410828873580916251987232767407387985051272022804783855193272221631850386973363796267529329154072370552579527294623826074327725007916063723575201905230399399036751697485322692937288267411188803468244919263931441579622942732259098244812905655059482932400187806885646026716140991971634288470141750269223474554836717893085794057714645085626290812771693974612157246585935675659675131111107294578515946142765458719111760630616023006372220339484007970286566203307748894241372713361635821543689814182175626211503318494777884158405873248037280497987912641949378084622872643354459949466320752713541273467223466077222316784249222941465767524892582897429862395369056021091206540561889917829265987803741511152042895484697511245793505091069577788773820339197879510876311421160385124289203313233235264503877369646681859789616237506167368696997798317868042188609118915039315035978166789083422613340092164696479769759590529368134275480486226560331756151725813642718782232806365504311798635165238812413746277084009241965995293206107287250485860455512429229690912215147087801125843752082513717382511776433870886266559375967838016343987462665321812838246940941494893303106138430043300240936524722499095273054956554676448474601405394016238981999506285818662988699106555409615366276221777365550012388205275685113922776401228580647154154876411950421171596591980031557499499071246160760258355287191134915535866413295869010641375218713954422517866719792883395725511995839240535198378175033375770546002306699204868554584868984756052930849982875289174179078298096882135200503908821852411930429759615396024470373697061572385505067721268516292894002620429398717421038736464558350706347471741950635146436433417254446989459189910475235062691417762249366069104733319538166747867200615350560113258174196038503249783790713911177152420488400159363672262138946183878466637311455502925524977800412718292322122641161840372338149249593445818423739217858087346471321397531789625112222585152359531013417834318562998650476665143816710157586406764227408559596591974997538959979152555532516541431980254982308669580572710603709548814797599803832297011466105233565831391743725307733569990726303060464291720214776449402750870858204165217017289603995057785067969329583076857121998975069526966624695591926204232054794807397257755975205534932497423743482504280893214926986789940919617279343516955346378563524072634690679870577996242014756140989012185823644064508268230445470767713464661306288917945823402164302251117709501270249047456869956615661908889739506021763024287691968425682173132295687461163005551138353156543179063384496350591182809776972525605238071217423997901002588641705356785519629580471921454657734441527013585429891953393531950942003293708617307316556601478088679380851246364702130821899616571033853992078085842403425658737625162733492721313683612577412816458602412386319390813234951057427773075207733442654696975465816368547807219352755291167997057032016283463218129891246741554496956846675475957672461651282584525643187086787641101571967504985736745978787980695752854229043968605153034227485647796781682675160879004589112696048192261802947711995352266575544538649964547106341830805599146928433553721942592349078936042762814439430660856328306990455549038647276773831807604681485518872348252383123091969634648830196777529379264734580085100785112400853707456086456322564063209912088895236419637672697937551235559742780208598733004852036646901973402842582372584573077555648821155524334921818553671868144124678078438542827783508380006232930503618177261404366347975999553767846055588584305680369449347240202410507834475669358029781878450019949628364397976378719220358926000309466097825824740464979333070224114809295370973497206811211313434398071037890218377980372542382885125612248673389853044043019324667667248039779452783554259477147364354906115092199903169078519280392828555078766008639832473693699843362801650916690333315193608904797885586545167829665156321423554176013870991433585633429910498253013969806987043037227857948778643429079462792030475616381991819645155316594977706171902478193186627829604212378709781142659293671896220828730521578752803981795126371072073923505836536548250910853603875755883166868472167309230817729701815824140158367744136090993949338885971455083560916748496321337207586380214671826117268232738537995367945847899368864990898867876620779887234331387147762053405456260440672236227750747563079401475229013650343640564285044218000668175331340606259291419918940324977754171306666060234022833077822761677564548292655956992506869737655065058482804184792636046103027313656459477282969195576946471445425260745460822569963258731643900441689282447950245229436212245225857868953821694040154461148317130198339210145705185591395343466114698263839464975241108451435073193475066519999165905758036236249630570429410561821927091952605669085478285396987756209787061418709393338241981970185776882109007324535660650026931539995330466429358993804617591177272713952681288300352845402712401869173666458056018171565953980844665224523906633890796174792192612740850165414897506016679000382589169031733555874526183526254070360146513755318603399463244172774728220538675682690860304373291761634677445541355406436901223921477874018615700633119625714574616764121118614467644293993198967497552107432656897638055119102054148555047119372081081581290857957532724056560942261977495134615282142758507489985020178700874684855063686380267231200024048882024357109076703705895481995126311390467611021255449796699836157315418069214723827192723008824062968364405169775866705926892010032677820436818584844687616065376511575340920188216535425168312702667918815846945354503843965930242107177219017115285909972863495854418074353299575254177289098667518151321395164819912639154978803469864485456227213928787307065569591412040385316031991209100147968649896247891797463822427320057293699421429096693097125668746346292013032762492283725366700930976487025357633654919401628376011586638080046166756950962760330739792976245663992208930030337792003833646366931299954092443425730621781640095386641616226460646964273318539747642023099624834420817745278344275079715624547536969515839507046794616687388047726545441077163816194556241109314837565498391789385707712188505287966021696492504135628013087115513562179707695024639378077531850066502918197899141065628417218197674428404066185963956136667496018151132893990733204915464482508649829247575290680552779659490559322925134200050706552410343460252593247645695191051900472660612546430671273294197060968520209949452654553900269154980398330133477691425826709880898858249977014060335800145970489293026190704268377664827402317429146236675512726313308692474498479327708815291349988357647250513273144680382064472092402677633115315147901673301587768912240280356155717354227801275965636607653110114286460230395041760828455022617296422373702590383284281874371301356900073831155099282776734733345858572030910149452140761848410428587731314745503987816122761746120478049881348216126940362641138819365645731659528703589994600811694132596729625424845744386238495959066334985494105694473273037519391116866404552084959252319410841153210554567090120855773344109917810940630815355173238968844211214669519560089997745416251406036598637559026825539058901547036504689059813740337284069452187590071521957899162991635774769296799539120997224771646745435526531990308581310753063043346461538977458308261382962058176799557778944692054952645883675589733418927083183226495311256245415306944532345978765444228708563449824217656849486174358656678472787912241186258178387356750961980166252524709199280940760849712651502672160594711241654386947844345734549127491557999210665092244413529900114867038602987486738776028229695574688912148544757586467940291695059815025195396541955713516109014585694605458739645205467339110252852596669913106829202644396927973273917213556986719712099816169086815874645054994116050358553374377912632011529550461279141754706934055207894539896910478381560306908977459974596067144840437585367519573738182840369987594274416522595575413001155361968704675357650217375276966470652797641236728316163567610775651967364174411097571262874381216702061578880081318286446549371709694676121606529384484559941615090735645434237160638829552918205210936175433843952807676349597836484636678441683594682871599248523928812557746999294138219436186025603217942929082877231448695946050811216599235809351632537227650207587928708596604961266108870950777234038636239794630909999839118356467839762469384570897544355588496773041301735570911408054078339473250467351047454444645159913964591348265687636723455751888883286066856010591528840619716754561027620315461619036877831140545671967955477476165285087401038115403462227943110458537699450227183280727763759914666907899647751213864612349845047082561995398826099336733956591539613433241624973092274983395594911243017077476198897384089116756482622151505029252768010665569093555232850717201031211170837269928937819343105996005827326677818092742788345614798199306023971132891373498553218078262394075949349429737445999391239307098848715632668909531668525265181953712019772146646718618503396169882869719934747291114230228588300105795138594854745684900635159029427971924263172829974281792985646218033001383332595033991974003683745762781065399307104204384365252879787680150540667539389635863352851807418052479885209527231653328382448385319899215784172685765575097672044235613951897310145786759630945675760956626656291472898968714275584131370442334761676984589305467763203433295912584460074419394053745820647672377161340034198880855303092031712548119797687063779324853770503319697998810881124709659172451911669820971712779626156899624307322705134740146083911739476500602975462993173423204632162905749526840491196192162271357555797573016162573271214783191903386271503082219984157088917578909499313309035187167827174300657184694619480626872149869429519530811023932309088371899244409865820259705368620808599721362424887223479388412978922087546648912618837057810323013371436811337578945691882850042857144752616740604795688475119373348333404598695758468913319789004457304730509049570462788347585646526658042591769614391573716704496074203725768861000841083355662670254377368410187656369260907362126095146193839625052487501864771554388937443130832273989631734868923310190241896215361588592837017063507877293056816236318751100057645755717108353699886984883958427499324033978377681782078888068599974088697024182058783128976061655444947077233643487142036927278388608887219764238669032456214135873732985933768489613791430338211378423424063581624373573972413149475868628078116254725758137545104605675349989254407501058431703396012661732777498079775546045470397362087886882591404516885026184616019962956331336628781176672013035357694666417955835866882064051433919955604002223287926860648601626291564147068796144187016932281231156243493910125766284459156041986755196354638210911930057873604325139297868624215842139072549662261254740759670175222361295325875130943158198175617975774898715700906206645566140713704637622924281695146739296667088039828409644903982810856506168314769303201653622074303370320781353816037638653354750403016429143474390936921899666903103975900471668437832596801225101212295878204030097333803568890334732968735436335123437197580614755265621955821233689462164444604619670311016056784172991117789905149718965926961007425316668652278561595629984770135803180985272528893688874489139197949170155733445269154936410989940809579328764816483888986481618376749003612336738178755303396350899984865657326959678662386186486894634375918488831445523040625980819131293117970549663698793427444360183954916848818919147526253064019818159721005096867668221115753328919952399309288934181278690133287914201323420168200456024825364830094942258246920236478644855141739552249780203866002617535808424517892022367136561891041882685298276581960591045289000876301252195116392350268520104712420539325772592865803940824608451080944049044741510527494238990790817233642005720394666069432288844679294001834716797116024567933093830131625329153187426569477770924849198035697821061465105118263357576372184166498795358616198700143649704608652542905009229059813344033312093719772344230070628851103120491084745112697296464832520819540717318633607516621848385990676092598763820492237482609376682125070606163850770402069713590032994666425301008287169152525774866395894531420056733311559087429682999321536200560797289512144849703655425264360829325585842658172399669417473923548426292707737221285512864157230118747053466252524912267122948217786481469056709127025092682071283591354918101776374346335181465386769481572366867341281011230497089114074579509754556557324353805211319462047934580147344963151920305665926380445293938312448790355102696105609630481808643201454164343181728505229644069438531840449976248573134848019993167145951303739177459244356091975475997117307539056275324332396567272487907070805786561905297494148077669578063437489293500766906922905168245378145889992628607573200799782643462299970030160737901064940350336715365810520184617802052667344066395831511069114464770831207039614573620070122419110509425312360566336247310097553137239309235604769122988881876430409331278877051823576424374328871459245662368079263913080398163886570626648080434631944802462747986210262351965905799967293109708684652542151536457989972238100923175644270167917437556623883935560368757194439622461748096004529629575981648416081284743975842833265608983588627880333480956807059365506801113799466242830729336308419979716448196042374530088581112478217742131525770468729030417615486215735735984777480090096604461015317324108548125486441228119147478021589435629165183094245667322445189071371079016793704951796127693018073857168762847816989107235894888573472960732097398576070968208436509654314504140928700516271156774408678951629320035686566035619694639259581529235541223117664951008987495192217145646579275034565285517260315586745970121405802946268928214999306465930921463799414460610867013853622963999009001659310221511633691966780452009713016204300619061293287780754474492142874299802586344970704036971393793587722373089274461197860971022285553151445058031989008763625478904251424438049295990774234263370343530639389706475661440923428309785889680634201143034897992984305779760850961276581731375898523475531007514079745987407348872214471870915743674963685624551011519549784701360842962635855028895443882294231724144813944313066256065865355333231492511594998174170037629599355769793688861515790058424010064184004528712456669176536802355810678791736139542950988428970356965429426247074852951317359591895277610267282955682311944992788474897643051857992042775660969202616009012015562066538461329570670612027672363008722663341936449057987799631413911192175073670101120969244369256862737754271687169835252368595658121984466064339052752845981887709780961265060814668107628938672545636768791522596452602358520593576244164612872103939640215952229013774041270878668405141702734953016874274692760190314676323211435880205663943579870964643444056288098983060421647437399157355045470502548917961851032960899885902813354920769528235440879287915616703011297916804906645339710936028066362165468131219839435398828203557703664568419633014228126388295621342673513605171294899391482464046541241129848714956636053347106323559180011532582423855094938187051253646979232116137398646954189199220098614241807051628495501235828252567225680777874797009476097321075949108207660300900058952346215283661972094707757582158848996555412846967442277025223825915411512267873362545935949419875754741827815940559838973413236323312137639783958387420832285595303519277002823731829961239539431791942412346569758259970618924008575908578953638390462660313450725741578174694058374106406945122720137872317003920103039209508237286956182267063309813151580193321153232300369440912271053895442681822638004727594877769382066965326027650566167631933234297554946419474183523393090381187477250869706845188134284413301400413056394534799919356681341363700579933223931420689067605643071084303623882144978844504760523354477860708497129355053232856442757545359071650873114573194919058515108554652653519321513676242434105266631821091004550652499134927441297912162066721191906888445091026630055331909979928833382486890456016046207643117413452950893060721598014410174116077242911467728324781299528320988195645776749419735722566344468668434495179947573670852008881076296038704497885677557989130769618441576807683384204654365285272034904591037982589291324700181364282119199191058830667675718759384337297427569970695122473953589673361974656744874360966588468845684615052076003660106578297661762349668940330577267783346788024500216198268593274584424382159760864264828934570161547580807392459960606076239770622977179371869097566519876151835444332196580717474123148751099976974562706689160915814257649046897535952037657740701036376267176334694556849751924949981889473532984075675375852554841604056089429365506075719689751479326772734450603895155002168681478534530046617748499119840894109243129657110898037919680712390003585110379471708859017209513280089745367671172533638604753323982097252570684161289036394050278056761691994272451265263866174173954463754823703994852943805027876846351520929571670630811823841587005596268036529051904242741548010377281029677796944400904646807940902358144971232607390226685421087229346342185634737067730657550113731182970518393819810693517749320459793566873792764501183414917607126175870633642428332365835991140645177832026716039567270579597575642828076379137337525881368763157250463991395101955288323439202011505283872254033764524053774499821655747794413749676191819018671387162391284271966485607322031054166124972723546123124782124051420612936148163786410048798675002214970715187576122345845038810595826281523103877462483726162254138691243002847854891198646274524466995181304167876598249361772575939030075627958426890149674901239597436175308468759000744771918258073097728685995068352486417837759528476722291544734083391077626204035398444202471100200362776204712175088639469609863335847538139176679266955436574810684991824417035663404799937147124310064886939121138220122326589096050658090791765324394378377620328427119720734940987871402320539354910090631785677431515582650491904320268215418855122394047464919144393310994626548681890076490981240525879577659087468385618619221293342171282625727916830647934173161962686417927883789436649061343726753552673992555050560022240156268616459065261863183669336764943211335879936373799792485437032182488232336153261764173634375543017156547249524933413801828900497343601172236745228212456827838224308324891948026866312610658511512899689572304539347837248487716858005155810570186366817785092973448229775477453472124313319327161216512185813157391135886789480674254138225888265504485684010576451592005667234053083650569188519581598374236084136315718455153049517449425179731272125907816369270332651081019838449361621831380024879063484203635305819764234039986950761002147291626915625813811072649493857564622331473052252086580509926103425705748184373716408427910755090030506529805150674590682917260429516208762829675000407288519042484225661503972731754264316567687346823829709188330158804918281217878677331274850389422843613909968997827659822262758481645336387847881604885409321493009954699281334275673899344243227412458112282120717885648905671703589984650134273500595504747495027281184129819060956402565215136400925527127956313704700066493531524305517536761889838290592836292882988742117956145755590175977288740559131793276222073940088281290886461994512155102479097763775834244172688326167428528065226717460660427096085503864857176325442878512446860299273611488199063959592374444301300857675722893027413684401834773113802358403911580712815284590660807110522543040366514595746066973719164619105784549202575103467580017902821368214899892754028912244865504853617571501826975403391720871960652175037525499333068234103935261762228058098567709404260155899949326445586835343058233242845564864051728764736239112232679892942524358605758618709118363124939510987504537602357949192697931903672147355633935716961395399475258364604240758765582494438747470649596715303740448682336358306305321839437370745830490422205161377407198370452011551226708212423370429029243974876189803818990471829005747468334762104598132042252508588951248119615235715753037979027998651115140074342970994319243283020400861549997118400727983438952107462351855889726281418209883383822440690318036375123209398733779488487770205503411596238995845839731714311672313619249576464559024190084206796401174867757014992020918595847260375440467824117791326123843775195924977491325472911559327389141329197514783021019467125607994350095682707571072992099037653878124139571736816185565510751047836129820909635162165184281127724011016322149723913388001580480986651710422670732358624081230135016011655616819010130978422107546325523677657161536840732166646982389122340434231482380085508351786338199032684266585523358164493628525203134695005588323242444565448163555327736787926527671786834701274357634046450652986798979400590283179444712620542820987848563665297274899846555889960781646862993351554922807023584710331144262555183651077837691634661887143630381304861877887533770746161467286427393696675937465599723990800804351071723827474821889826107601985742183574083767166913320547864459192992226522361668443282594512002064979778198254109759289786228460658870750354196334875890403479231344482784131829848086677910535248042556841239290102698336448327554455637301610124674280195060847396933064029931371060057781327506301748622257213425503066660285249428571485148350696496310757043814234419173030554381962090604257316927895086402219923236698251506963496233423885621639923044666751658869279233433561439633102832424716304933589676085396505139185617045184304659115364798264799937182523321254571689312906871284029412170184720956477005513236393098120408905629305191643925716011374768699193388094081250561172195797758947281258117183900953801956275985442783926200382032294535776081390357901995074834846199313862975392492736302938185294931677883631852523480148523233540369814704191237298159541014708395531042389703346975246362251878666680779431620682332173874535481281780580237874468039218425223700316216492415524164475495000064193092169851763247404558617135518691137905416423706493979537976810032429681943040963716003710156597526389661033048713671918275703310425454947598988310675292881997609766930439358812903666179413917899694619784478883396809437039643542812279093811436191271887685536411619341681431830549578619483490831334843666371971688464657188068251766623388001869700640134157034807265604857731887350560700946168996038094875187292945858120243227249739768211938337406095959773308090299378333019805542722426713773151856399743058069611009447186580614357798552627658528831615965899510750457361940144168608919152603135678268166218268947262520186444813827486491427425034103430166089158286351442621328900583655341077732321282971500161935700472372931316807379795588682950935236254741378229296351263167443968758872530671813218611961079930091375090796314915399332817500394645056475530828242802977355252692013265671135604806041543880708643924426704790870586628706641055925998580271419877774383048799369173358105260885903864254256122448839175449919538017346344078615868482623979607916710903407929898042123271927283250652653378941067511482448004274253297489902660899855072180042415127257578768469393018235462409311388494284291397435145799272441344419478206494501867225909304480303129454663545522027540002003073311806110013800634187026540747408035071893030143370612334311459369896559423126160422345301731262729337699916693933784545478809989569418769988766843908060986752151981236660705923066827792806852433384033249558911843937191955928799853670765606999234668005237194255011848061825451970504057114959269307512916691240315059656797150957321320751178300574023414473431280482977256753594155630118718319711372345074589601310451816051021313064657027122757108204239727522300247656231577366170505316079712283841347014981861795348377108257378339396494051087054155178280163384060280985825295571761468578960856145371717906247198473388848539209932845488755073584132667316478631218506962102939274178770726187172833543505655710050312338727668437237675753960575653653173131050408140220614942543870250636699272777908088233096325310980307826838342901959485793720888325494738854068022131307871609114569293426016578777923126541290054234302435399911262786136186367610329221673816793257727071928918285729004819377780847184362616095962558996669358480140416307065926549326585649533741969009616689914025816970207508493610568091082662804305213646236666510167882526210232094671015151022392698948779934290004831304982367766994412031419724800942303809273913959371280573362538454485289201485533476813329047754456460240415252150627657544293408282300818121137550428436911555428226943468636287144405918487685657261093815703424519104716700511855481885286050015562174740455686508524868711365135933834457650028969201947938540105918225876165931723303753541167529625973503724216720414450929484382907887284123878317428980555383452290667358545009940576665815622281866849583141881035878225179854617030185167976628357296706269829571750531905905527370527535107457838547059520997230573803098094202344927310876093057313335979550508221244889764569380788401995718315108009143950379105299637950947602878954280041353941917804675067680893483628333559798783684277964967397736734868910607027980621495250292481662062993424356161931556183354247100427992708140415466143813428939760162296099252717665913248425098896683665408716088382333106394916808308790087642920687852241864226114061256149946078226978013155359828943495734191235098841448429416003502773128944354950129720073874718052430275274641157017937872545763788986606614328675645304267292290518625836448763916925183832233376569032450526266603742128904514161179570974542310387561186485595015604281199579777160205067117409151439796919486646134798869030245496678062031127105260660467207175047123158350475753607621480652757115724261847519843405974018150281407649789925238423765384582044740238100068282041967486222389424308067533088314669038155241185663800066261653795438670729524133240511766450262062258153972735365083288583050764662388536486338580193603158465512720107633305694504260577444329155401960751857352046227227414349424979692283183605104501293121045850114384897172679012108881975917059191524203065517419444608834709899793239918157956987012570899757861680178229407568670136631560335995617657262321333266015536525746682555950031721661638935523780033397670156874602556810852894582124682537070390188222923699666895732589105963232978145360858210234337527519007483061571775036030888366935182242488464019790763887900058542222836942075950993290955978928197256642805709158066772495145059833093800598301228053137102015644667037120721925228169802605053137754080994266335612727211939255744886626594394508117594292633670975382496112285734653378768600961309886451747560931375632545342860838580484303219576152218250482046392845354583175126889693326139431784105663228270103347599735267689147977866237483988175345936877034862642826393919266133560825485090270108250568934953832835659784040296290797993706509191175130598489822524428059886585702623052473484670061466251837757652225933708489896484355797644592196363593754190414282795559687729677646281519792041926435542894354473054758556547882344597945273727289814435254873012213470089792056967888489272668285138309321750025785410991076862216702634287406841201611371913943329671799897505491404363415514164364419137978579542466020267558741480733274275222491181108272912666501470801852620545192363326268810006646951734549963316651917460487324263055721041133083804407783371498018586758211618617400837217651908946831258791455826234538068038376595510645662594185854241409634108097119525450406323747556974213282664373173840491270424212952353674771162443930274414226833431618210259125402197947052995256627542568404346574911691086112811462919149747061322371814389068519182072114431532683359059977286941651949459776350662622643952771589961256559061955313362634356129333922386081649777286351876203583989575992780397902525378746855118876403147591936960829689811240212682071434061384890293229660528726251539066777776501801670586876485407263461598318961637106705460588996569049150304819097927536797339319401602180409744446755016249237840071599595425501535476155460338043185996340638531888839331556302733306540490913551900375349343630419652806716532936343624065642502440424734227095241920819386932036199519844237228523716941081693658230641684701457317718640957801693438647766324303810072541967129018245181979548866572927117139674855065692311927305834101877390276134567786318468389313552109648128472180934451907419576210726450738270742936050684586028944006494277387495122605800989669774451074914502921569343481772245273459644415105288043361783041251789335467942282643281168127157382212002636625318348067117883797851660409965145881574425879330594691875030091162346481523648604420336916641049035386026090014081440190610991501150916404340892318373990681093639665718066105501334027519494647864613087376296278869038031708110857057051554554040681515565043443944284239951984790983738643801549160242646711635102528495054939893462252708178017828095283697847547463874928572120193714864605038251677284267238734809749228768989935551366392068560073849099840202471540079030262361985738686490398670127217389802172307499897352677698991666357783434577448760593349283804098223120648802056158648312893663721331986766504150886364499912735249213415084061939068081861941832026761606013338126787175221845941413186618029978993055856051790584336043356780275954032398216669558992749790574040871621512591438410881035213655655588372246567893189721312035928190062684088711339282131205993099263348097581147377435141821591652677816437741693683171712721582521333623554381168774479379102802302250802543396757320789399239106894653293197285130630805264723373135765347441272750652734795028165064256987008603062782762163969785753838753674600251711040000023475317266340638638412155124993251997905005121401785328147160808297873264987394303049256301147960895295525529902622964688435220561599839500970385087841492931685747309959997172654897175170926301706719837519763851355061674186559412741536247553679993787236102737444775546967119831561185595275670553788757877229355895629817906720123884990839455533365543516091011422816383132941767950321686817472707050318308892853618514463984310410152771390747092921966848569479538603354741358015095814315485316955915055874729933147707944372280878533783580146475284617265610390408971236649287818914964526866278196586505113451586380896836918409916152350650382049676535513796697941907171960915168435749317483242694266422642995031489041046641401389634684426851465673920341553076857190340378840843247852922328132290638411529226781212414142819993809990309939931292709381309577441960121765445907453882012043559723861194891042446601511357267121773941210838981483579191244645355441069101599094273154138391653369348560912183974230696367057724643884615384320277323223822660890908344016155966518214581076813435038889702142968171826036343735577329126189827459793828600133251296994961184265439367506242844566911638307033914531970000489347580950835023276725855946808551973899624404993359883285119959568634571263233885441286030350195832558856942622650437114811732765178820449371470756766966288436940762743639289592480540078714561210437846653609717168525011036622233277584546088593459430028292407304624586806930866277193543188162497903237898755013719153555830533929450228071488599424866521090551565411419483207843495014635745528364259606516823228336457158526336545864305376312804772855727830800594765457372962072177737791942904291038994759469371372005704401549279814706999550996945380538261190642300331977683728839822871884050275485149322467834727678630299378363555420225090774399180977621751249953112821426365598331860474362745590655068359734367857062025242756640761552546511205901120389371463945409829863290766294429113574632541483197169794654874328251854329266361844668427458473191655309138513418383614161860725902645100174596581664192673552531839198230691011089999168812410117751963639683139387152344077056496334123224997568896421404953388087726929910540216213499119862700467533496878149655978577040853790751158372742918055499907704345446389562615806544767930076662791214331949915540338960911355582291903473562780165785824305777781069058909660919805952991974538146605583257050277830620050599601858122477682360778566250316401572777743920818553821325037663275181010445935391418134023438150739050522798468692400350850637203883621762129998868046998844194975978758047010860682217853600090181324900437020978814697909407414267321060897699806731774759030100053844042176650544479300167111678574391971959550848251051903131404226873378996094506484617599488712218485522814011725136138462236654712082779442372270439786055315809696942769427481857489710695278788069918889462666979519275155256056484169414148636318009500131936816186414316921181266800880568916762065085181620661325610764455390128813267336309301982070862870750910525159160232687865953299286736751515128225894318071203557183176370801099604099873592817917251495758157507962298958361904770836447805462876826714327373472820448932363828411672429798395430228477211985189574475498495602015618590542186123574086679918412379254809650490260867625809078783634200906721725484130468200674252828995934419279294378026350280279813492004206134652064395329970695177054883153217144822527376276720018803053832382782712195002812485983299104803297756002501059817596537508749556961176967773321949151845863120909377022519479966526980445434974347756899422076921267733555677195858194861586656535414868602639041282161613766348703642460180457242322979390556933819400303806571757031005745692556230783512524505916255421822024453611902536651669834400311959712398340729675319670552924383566130400614081163007063544060876884429686405683736660882202231510137719327315635298358537136974013418874621737609569841326480550259605889982415356894969591107672662803600320597893099399291970787626507501538419806774287287014332036433733769235543915903409819338778846319388442650430242510178150102294303312104646789823107745425208932016259377165520204502144777259775861156265681697497556501452941768207414994300557406107411197553062369639320947549495585734014083582981970237073995549075800898730919665138750164544773162678813802259722522471514151179911452231314342189369949704294109252957868501337853447468684702867030719872421873943531452901614663567926233674515422314707661233397892572727355783393537151769031646066650669719022703904065977067836142004760319418074088416295018476780665515558079845791259476761257094382943631049803573630638493579006870868313013664752090138468748017117312016820602207662147122022498380949095316029430453838731142005502195181971532285022726394864347451727301041318298732155477630568918572638192706950988452059511238802041886974506852593075616915051150850075530187961993594211302920393778971653154165365320695092239604426495992154544396046816233865961744286464197943991734283924460663791716672637903859442126581831519405269491866049947708276559758885527937683567494227216645789053046756341853789576503748832676353541744766035463526088836890440024196552308422120200180681774463054299184651659263574060489264111277901876779363691732136347926866581937490740781971431242199021710612791038979887086317230556647254898810667381390088272058873565217419833201900103110502652816709171302028474704336535101358713949974901253242835597182462568031105689228908311617173889446273885842003841484108172945419734381478801176164155550131030362864325221780836301802018590925001472635897174327840786073750516677531085801892036709707251697963424847420172165922966487285413778733912229149885863358629226548601501989768031891550538729501056754288542195435975891240341705105827659231434512337928010779892900960395256721467971507834249128353160302584685394151438956827838509066065347698485425182394716170220229224131515129731644339986263522058348861274255062896663842798651151602461154072325799746331261777667227180061140688268607130740155992685062752906397376223225651025290368455034746108753360840366444588562402529449544915225994205220380926209096141688115297577955845872443648597850285183495014806456555051111953182470830462455015299811351740954450878740199225818334919056475248177402655747443417101493114955891950328188829338725506470284780277278914611523420751959993656446006450302669139024121708290557163641280457603550395759740295014953609363656201816109628082284802399610850418217804618595060342258949716098127623012304624369474279708084880471195290335473732484782878236488130481842742654097140548757245510857681147849935973013396675253958677965331505006209793955211434117826993183830735600155683144730125048158665691991018661251792140470267986698470215065529939921091323581272063878431181508464111141866977650462785929452422248030219260881017819378177918486176910805348070223874672311579958418117856665641956205610123663355083091363578246721423193707089736786334327288217038966401413847371195949185131610035504173518837798456846948621301637380606895113895135965441926983418931235494203721714645408768803705040931381454719507724638442216677392201853646102298322893775669149491716906990250387673460990769132215431904151220208940943480797755292703087851784635035524985108227771699129102860748747179006057902033101540853603043418343711080559393451005528693681976255980171132993489778920316641646220447551222117738647024767218905485571616515096160621979458081531155795356203518069672490862621537374795862721873631740077463046400897518755202563710009273186657053377820297649335068817599516912254324897445098958720840503065888983794071948933914505711470165630394061420860439172983940919963694197610926201843014537981212249607219056195010001718666037836969345477846327673148859678103161993154912794689278628148179020055020318673480433628860776283113806234254123117394009478658045114462597157401575946205743674789876638675437249689115349622429005886926402019502581507254110771550363881894743393630217406618199768804880693742054843325836041109228221743608155136211345241778995140606485114694112715366533111475263231095529942956816553616089538916311142847469361486346379887492498503484146363024087488720798912982510399696931284445208368027560656620867426099660321560963802526014865202209227386786428214396204551846089200092473936609998464292075029876249559137996105122809750412282622537318293275556718978454266358226261300073277975600933719247815545143039210269382031771510410168590473040329749713374757961214186301334964550019293883135959259778713180423036304790783278572298288592300569683995689478806062256754753180916883360756237403473987393985978759116343302578144895729425885225316279396881467699615701352747022457375483904098728687879091413111874670519197244138777938436837384134163555461603784469267399671752261198772895543268535115892632768638955617701953387873072980447479585158187496466241277574274242858118633236457353631156557515364072762436121270295133807068986836530692904613993003951880871815354250891956683770079689019246903230233190639544218251026692837796889211812045769181390241312003361281806715448941858218237609271309451235144353477861231121551875859106211782156634967535103210468476319479702231338639741987789838788873971531928923656719392794903386046210998402350205909970409078752331931663001064371439521876481190183931680170481023628263892670332272223159267737666789150001834595842548694546598188839590738221690091277083756924938352865951713577911301308130829995494092511764633325033885467827991467534590023263721296416014396212528206704711979203356426783855902655399718868480960026023546095301703223652107070953067741177597862650216974293190365315163377041848984644462839609411739796487051204583261283507344552718510805541075134149017392186417613171501431269092539198977407977691702177371509737339226837628835516874301748589372346314402449068626279605627127378621677913665762300047828018791165232525232597737240583123555192313116894340120783453013293025381509597779132314822402163653124104210622839248987949820122710650608780106959664964405396985403563787390069517623456603441586049404139469354788512372097610939298607131463392159238993879936327128202432085998233862107185623924411969173806032664014591353448849288741119717988969034055727477989991139507098886905267116793432784858210401434477621286970962319996333322754194442058297838282910602076997107594931698597577808401616246770008439730060118693153492276568888079723041236200107828966527199147812990607114891869102498717306082903006781904082520165019375277461196523471161725669463914805943297735376742105609614358895977137789336399556261730398843321284825713074676461622555201719651449447703227402703622374481628749462275604264417754517837747050075782770292962721604862985583865607939685631083908780997101012838505509760427244170313289501092429631949916382119628882746839884281189168083965308664693163569879693223520735267339708847328807192243015092948781444809384015095715672635700896644419750651224887920426033030626213899224685705975365154533105188598494419259012975847841365448492992496726655861848938666233302068664287594338030050862755868700564628286114137556773010641201337158700033496381904718263720020645530714125159148127337735951762973534982252466122875821424452355038014860536439564359224598199515951562030454502789432111965872823058371793158552218119868144004133068239098768627859868948402481734333644005754425944112283764452034773064801237920311188424507785434874983909733815969393351537088929119047738487738502171501540989059303932164852342956674351180852806179146448179177915366696282779528567161171147556873322569817776388903687001172102289187328160461720003711972259912719214447617432879020980267864394665105609263859069902556074683845002225501604393026236340363278061544108297413754582288798768545450935758044150119235894234807415844533074259760349524305305890157440836040930388970681495596654708017270114221824820491545045316169236068037566012002988526820307133605815958715012292977438979670365329607720350879276644719086304819262151023955779494999419523321892705014597732998602050391876095585870810160616657632325848476853696580316164052971218232771456015012984835142787551829100953635369024205418228910984380798052103943529360489073151282583081501904648071490686956013128704548109629334878495953630525885079375471529729419647747218958895899543736715391859657970122710550681507597821892827918973361735747756075512159157072729195019597554039605720055453998654006283062143460913362875974737956050675290147767191818594242681747375667476693332922095028633000067575627991643158237834423169357375945339415606905580698451759509578868568383735729540769912678976019561084370472093855862880890239011070051027655495377455274432049775743493792129144550260406445635451643538139999431480073445014324326620043628166348127075819022523616986892303865434163966312800612339552019674943148118987679066179465170517138972028778618211044864262203869233675892354105068303449674981272036138286237045377897664107683537099524714896356154389899703386636785401600554946746940854658591443949764400352109214493612668259160894795406243568317067078897485740574432861719315762496526565002486990154487827262952647355121602439692507699055779272435786454724159473742690766904455365679130586126588761722557373498232290205133444661957781243606689185956839679021008996875432645451116199609370247434278047705097851585351510544137873588814712648243498582751148483004171029116716760157377279882522484520535423170710596850473395033987586791388856946880528087648632311648791873429244464624157993411803286661426712867456594741828837037832522928313616769844975017399914703377661856740392483305178488222786443795876890558636197936871024518706918977028499624013354260172028111158878308033712405236083373923931540676100446627140334084210785187238070652542887312700799523415026094067690570411399666017783548102264259718105324413644560015337380652051088781882542785302164722434862379162403196629289789885421980932999044321570202611915619314356390528461822393013331026418702275710226133031994677286575132510574186168683383955125601168668037071609055788493828185749280114086065595525538919036980473815578581950653219275274848989130768853366941439496355177700267961483652026337009981707485914448062054845107259022301617534598281092795833119139525723005315202636821046259891555312020773400812980054622937439448947798160313591585517532166850233907732613998458705969552305134960858998473783063078188045818841607096765709758783707019674519547706843170503768229266784916728835539750439022700941981462765793258109493181834308422465596730019247862967916934905967928820082594440835197654764472940232340672831451226200233112693694043270481490009284424066070215259711873271052958383862691866968251731288957341993752162872700476134368364747591355272517085795225938795367256286075292264365326298293673999193429684590670063568385938090094232455181092079800559062659161281082691192347085692904356585224993509374491286776240701577792302773643248896480027441538226860538954294335566720239121570424266353745894913743666173022356901720726642250224460461113658963129099374664205470503159760266056559695367425176805297607158757419501305684113487597514753216530612815900179712277392841919323141908985659288214748427949089746434324379270430486482277733056488857654094977908683141552541040821222243374073517105334440957583947081325278785151235636188721884398305738030468901437658847007607285051791520846575424074272541596706094060665125169208629048076749413275001014023505056260078004719998731848887523935151802523112177247706265411675390168622903295407216695825424541630474828028070151749450766054162608369031404937447168335000639711418205333040568770172851674368365511578810665154724857740030785142488501993117107628290656036386586555193217110366397616521299972260020627468557476111891438102876860866751349920056687727288821733310688543881571173334187240721894410940287640439230570274383000587339594455850792219006289872635636043123327639110616504447108745046909079675465444938388499507630307374363969363811028593615332542677999127935141617541391735532287403197105366270352838647867713416817625283271129297576175396983086111165870529509495803114958077426258237171388649157518489646119800850897144727699410835239317568444362481401201851171976995035575620152335902354299661636675450186006348884584841544885366350474260552336363394331835309759682384351104251876938994364477909921349274706725032129958351952158803559301278702131806917374640469948376425131119882215833437688384506731841935941786222679292686938493659827389906670374085545372652956856179238886348113193604135522674165296356857822385501178764824080881276522061098342715327002022560241993516301234989073222922175940312972378620096162685062134120979094332898228858857795772343701464419229663666669427763896845145439183355810541102712490760561405807641773087970689309776833383256380953460173638369026930717643816859456670077571021865092215341038628592798980368489132590898070366917986927140422102383718825374426450343291525869119542862973481661729279718162453605650075633145408257810926407974767653298801183138535985305445719287151485394155476717534643201871431493065957256213721980056582460370074999683241265255509221502362544902418944433991128417560828058191665389029859482758582429727045138753802484517237552654115409002532715005506068066396376850374487057339152707100180619665026779169177083637174397805080484291251033303778542402395884411772881871728953820433422256040359158839881886817536726186053078726426473938249997312387089698889375977175875358529059211909717044770848663310309662483859563834920497816036927961937218379900690146658327471351089969430454607924133306336818389294649902875839322879580506760198917247210203505100765823682497875429099097164887412786003409579461888858060449896636266411129168601897609306623643433145423545571686997550728575182076814823549612729669218231571796508634885379621117943577974265164934050205196847918117142809431654383387352836608149497003458755784669508533310950336290911174948097384473934046378817871209285837495504525927070230870469605131499467882506508315518159202561819719779962042419107837813616103677250386360419230169305363708372699320458547985809979822331064508321164137652731402612349795557327213617795148137353265528290588158759888464988325495646910942061874637611677465950540047659551438388857970792285723743607438380533752260862576021375413280327682264986459868428440988815417204273258187719549891663755824226101153871727459484196725077042151827485002657096796642110565460126367896430134580022603018399274892523318917869577213349925685926096834117963533573617349440734294219978903278586943588127756451154664913930765354106431838606044319365412842898303708503775399938484937673601743832707266628515174388551852644498269206398583422956897890004476482137907134199080560913019324583155308238135876630179158145610416756521100909272486712011759034315840708733979615218237186342363357252966320103601204148992880404198971856469890496170876889509095857667962420984402798671685889005780587375312937981295208657739343550637895539758469662372255865503324160649810587572698413652236373700414908577500108535155521940824446664983735525739073951231167198082343127564811757370862528202141474437533617884607630457840163484582552020197464550463761621178353966555247143206140358158026567993856393158030851833993287853719835006381502412988215311009058485465378551546755250463986773138127323961638771286471150225001800210162216149986781760851203746901389455466577579063016789101668957117173049937745259653612945560110771456923184070871815124789180738048473758518614541653926599323115567120174774543662915805180368387185860011993939875529080327665052037776601783258456592477521972221836866178911468870041807402558336238335605970177826655103737854912120507487617243361905184111149906943953721330090753901237746269675386678521199969233924178664713491287920934609061096642091663802736023304002208214952608328649415047420370693212263285259945566654342837268747952831486603154357351629231648184375986784351232062177812351968646855061539562249470826841389931527120532125044706896996523132091182675097973524775901281509498819468836155514380351713864771395502335208198716693806942348967840255113872264587983803815769856690294289546236743376063110359165962982251851398442242467471728532828619894817957168198795248184217852852531785358629517153408657433087910447431969866512444501725297898713664874301671073272078997775313821299274211043298779149175920805631895992600927591298964180861564930730654067696299648399732668798804032512752050080483950559972136366660036764902748306276565002190819566338614601514290956498637851545815247400102781441016640575272643820965750068856929403031031991340503854297553620178028342538683524852896738367188302859459844327766210508526091592301684487579443690224520874962088333288570001797140664089282741517818712876254978574091928165952844245008311583044852961591959861568385304857023554069649423748460388794147608350605003060019533360374190693261219907490908947760107819893712272789741764063678952481518342350912815636466283329332383948186714668792659697993110744551092715535702913538083345217784283003283170849205242099445246870829406766983526449644837298165176917730272354633608093048881578494275847470227386459339890976313181693748291554832333477113266868484916033213085451570791237792147243312227986829528440351848045540162338138083387108134698831615904527727506482071943662988713737625403304317377361943155524351577881161632458549579374892476051665295500857981272671548625572611734152826379550114855728114064450195875358324422280488729599995189402288356700183885028165172403884116340550268716474547061096282963741273627133545891010900694486901881207006224385154265554634320821861177196229719265166001326189679582641393614768402846061020803721470056815597980741127080618017474494952867310480701755509433762309477951361133014847424907224589132943048048603094802074215235198726400934773373398106707267536820451878394737396540884443680388122388285368986190321191411415194173755486729830921557576364691493959449720738384731930254393682557851731100369604641222346867136814551389589340124426798950522260621511941828564084628473410072373708027286709574281645874758411719943102340870805318979399293611676551120278703864284811478063687400247867220614984302717182667190707704235291019364509258831530854244566163826499404297506700912204369674264679898064417502038072761072053209477414198874125818276972549857336292946382357555458602167621198251084886877540733790853837869608094560925979283662253867721241566633676550734459958745875584551658194508419340320760276826402656664377980125609968423494329022444789488791806170183528445113831514896508983415941847976033264526633288427559779862771022990086339240252329066922640087096112731243223630589971851760595126011133891653141354753165142445005283873009754800564660208158378259752808997654415451945702565985156857926031204290046869648119563495112751960529442887743308752203468372694737086113433389296564315872200739554338242762195099690016519866965839430011082761881437474320054688215893908786995133984230388879472288051257799471088772371645427616526129095395104217319266057074585194483555558318968459421503660358174527281448349824273986676334836436342870041172084110142677418149466549646640113175290972407145103187486198119090174037129444455192251200684826585142562824875053409263443170826386626260139680533154283042936316080713827674090630629627895006114100107470196219997382161166305262365415596982729226582379941328465900257493312773342752071967617982339761564894486390930994038989568213743550689722477732418313323384736965266948382113989633060947737054293656705581255076043807386985741538112750711735754862643312853482468155550398154781002876880820530019508102744391861089034851469449260780598536509677538495493391640417086855513228336589648237157545119064953383294386793062577587963547633971046351182582408949661129625150472339495771116183998522642823793150486976077046598987636268645679596463842606371691763111896788686902176591193265209188768409790671013465002725531531857138728369780376071586703982979944655721891912048168811808872301083501530385748227025879081767673330125023245983948731806862196872948155354953641238010755107370348020669689206329216806118997406220613949048827153110619660332136621265087610345607347365318913968858706210769483890757194052209564525010466875111769834468895781953452536627757898423207589852846880630506373457695648609936486019822273285089233165686780809242578996395800972249858388067853522398378158104704466378684473170718121835308681865568514310185857585165397389130005562329489185351224378599276346798042031597664614198759280724766060320588928064545199788704814985948236517854664014607678862503479485289656450604152786644319776673236921821608830295120191129624769596194129350000023342277296723340484834124869582115463471965316516662518127092194805338876046649440500276927281074155903047404896146480892403971862517395963511158292826282014489003398974023047057731711131380248551143192133226246058484207701047279072784746954117060379078505123359672889212374241729140847487374912414138874782420190413383599503194312124362740456975164626047282634992480987549154943048785670957057019142414050665540564229138072131164077224366845007356603141097224332602598961072622422546733316292970705564037404127440402433461397716678373544859638095448614790415910334093671817743409956440132666713117450317626994970855155200700211950311519070630548606615241130433267488090650915880912493530767857968703000717544827316991144630354597505906963398741339804722430808409445644915970259609442155034970834525338903839742658654408929894549575803964607580760250250057743644528427724504198265694948203934010789505188475727988606642416367918716758027282682312348984306376537604954360524337035902286033307072404677851327944558295585169742712645363300629691639070402245165406079302979279822829366774381209494365955151805719799736299011317905420018749180961598498262941025357388439799460394507557863556613224498092431924926112902949959854590920370052070806165594336881935136834228837669529108168259482128513069714251634863971186709863412819439382187215975343938252473512170575444216822090916291530374189032871443036433053078483806163999373855499626872248885668107944974384886683281889039590124224741014293846911974445240935086764659941521838417143447180596510955002824686363817619394397817359527378912569022571657608560069934521802528124446606540668991773585826539662537876140837221923853909870434304360935929963675571367502516314368165231065078316082301056905105698777969588545488932406636908870154646195094326572962763491580356333199306702975816194367005088506497096313890798853948960052513534196619661931647928176648039440357436507718282744085924785749391013377768928549490348296466676059241423910444727314359740445220577747316663444458100238333945404786673284200859537138467766999267321246268569498842257736779311292922654439342366359980748713804031273889818277702970393329929088093937091608343455859679423119149860804487895086295349810225179717631732538173315133202051272815410517202804299135383202857279181088153323985687681236055975965273139046410794628932003162810225404412410931355669819699371089576982499303174330112441280377486451898165869682881665573321497950704408420024127784376284496736490919758060729175189806901544734686191293969876201550850123788615926111901346628976410459771648873341467740385016296095827711478116997141227755666534221561839359236133658620356772083239332639723953427330364363451546962359380918562600905212544635368094316623054923489958662386782999185503777287406681944299961049866425884425644180121066957027298799151969279895063810312572475714639828612626721274257021206763623806495785001137181714226088589698988018149662910343326783662732028837762721329995136206076333936726596032002184806667971721668780368645456112912669522826848961771087850370924073366089013538707276820694626351499860171462267376787326686991060694344509725772046967022697407452001068882096579955107074378703616959336118163679010484108840772497774799994993405068854525855514312397244808399869193632236562164687542715059958476690273756110201863716691399429181771668710813326496183092178210352862321503418276030809914388218578490461231621879201124918511895587490692867094904053932066562129074593821762045396308441292980728396468161400099139445735996244054816300544303493103043203765700243996988157973206133507409173157897681045755968152913227873423295079802836082433273752545874244109515745628873690478704132138866569888037027308219573343776824383113064086237490281034248209984650426547890371306577746388485031705911398287843296909716586974933402756901573728784404886729722887118066072718946710965918291463664191642031851744136506912635135779079857745920999144532175553230484577587951513393148702281737829478159069731217538456206613665406644933663066367705503048994768275611802278990733789166739513224928141993096705551444906465786597363143908181056317921421465307795635613344647425060015423799677852431505464967922906171034248643388528167131141796066884381780372604583307636420940162108600934649168424004268738725977428821359305369115071878299429303021315781954673797501227103808723761160769223987476695342239675226405728592400794059651981159748542778649598913339211614597335337515489304669092733225013402070661089454332434615210133915796550593722202569537370904929344703684328172381012653141291016169973721876388321729646721129287477450717786434849247783421956649591735202743045084513868558307598948013964181214078945513860969728931663701088749302208170642233746290871708136698012957862738872317480121426310470767782502086462524902113487371447732181760845018131345827561251962186307831821729831905737387358556942557914289791051193027867300502947899907375980525993304870580250791811901204222798722667486007119783223410472629690247845248329607660128223980186594538364642340370313268348854595977813316464637055426358336470161530717272729710188606709029130687824828027574935512125007030996397819247380822401260106912755536032743917474622439483953664383854016713542775945557401914565244646412298662823473800142152338044684513645837927216561327955050503410071894087778081596151657001292983202661439564976861962552301128983651495092052627335637822915403010351081623878349109840155078904198423689689096337548713573350558886057312944857488149664068812616243274678347783539797819927592618830297008411959284642394004115223670381923679773326863773556169180210398329228132227766197230268163923325917008309410146000763304595366871368169780962192874125754152172669494146988574054623849337807254402154995010396805694099054037411122071142276255051990366813285032731020903708269294086713187463884447127369776850367508694417255728356190290950244911262676371244187206094245754139156240812010980525871369319273787222614659806759548018638579725668158840602827779371673645006919495804474853797262343895190325698687590462147669635435723163154610967046834777923395120269883946031799575358170207721154200626751832709103247232987088812310937618109834093280170111189505803477797846284139360074045133241404250664382260472012002179238924960891598433696512274986410847181830473667013196696730024544062345344839732019960394517903460167383481901121939177761333448652349904494201709140547235845039088521476553819257301327026363893575094125321106654920706271582425323508741982173023312621915389865597352065886068477799650798395414107362458972200893126485655454220316044387064990737672020213307552098819265663189651456971167561450185770616171767492056095985607483060562094396115297664034181755999721295422675678656698491301187633396321938782091189097735715682017990979301751109418637905713052383530017677522755006471501656091337965759824286422913009052481074576066040747824925371696025841305831085647106153021211527588750860849131752351426702692911410287806559905037468119174326120237519723754214495971052631893041959207054180776500557504379794237045809657064309334409901350745411561007142739375047344183366317845008606745760157779992511186321060856608901821199975349653931361648928006985864272799354980368184147540809790964410882964445578027548994279633925190105172105438992878058396279351754561751374759750580426616219946862507968016576301782250936841515419356509540210383633732537869563748272430322541586344453071489131662667264451470931141066629311782025943627377960755034981517119692779036206029014550241574829546226968847473367145533911077619976114599522228088041411056429655771059330069462837811076108209886101096121452197641820952357335479452804494640885439118570614810685748370893805718843592042118897965404023670549521953559637349396135824134648286742667381877475162258898227317814153178530318161689247201693728710281496968809576408800385208373627028959842955032256005007375746980533826924949974230218052082947174254773693594957066799490880016029747320749788544602672826545327103025579376730914963063311373673017066163905494000732353716481037326635898323474201520663726267732412643096716530715267594667820681354073983947938192711262290130853396624233264063338683251099087746825422703921117447904752835117151440916642012177677518609289646877981848415395848223264821519579988601181056701805317933118786384591203080040613723162541171843224986618835802853902917708317557969265486602739291869544535055897162163930409453875792420786319486761956030681348727365754730774815277521064334688932470423750946377153079786374959490801256675324929571151907258013511131919915566446335894794265107749702061576582561463048616493461588742301001359603099753763463918891440736483462611772874818995075438825801921055789405539323819934992756166165307735214824541623038056331889999441227897234437286433398480562348464511226146141262741339640911235630222893874666625409409562081756567415866194739503981497876884105571421598400125526525128957643904632488428950259486434517391638159293270816035763552883658106594081558356547312552244919474428408915057213487719981753219136516629341506040171277673746495452882530694021510922874967452817125507452576103463717334556416677087404792353961087222712959874867317427925962010788956006955149022897364357017162621356600227068496631842931762944148150423376519231342585541036359206341258654523672816844316312147076230981657565486235849108771070747852081041785336441679206504370929161873566061223816245653929622336643937891307513942668537840998984681680073040814526756707881149568157546802460747977277567231497432789155978157056748900111358110171136984395999723056225892829815878678597132944453360048684793364388010038305245102952260271980025584484919606183848891143005301293012021375889517872037374921776931018210914130589460121766336936369097582861305357803407467088189317067867622098335512319179726071613722953574834266240131114024902185504778729997400899900472042884149296181585947453990211682046531236613807315093700715187539779679858010360019043366758941601743657810523249946101892323201654691605859201581080138538867107890367172511231354720326105665393170428609246466171723501375760017458422778986750471701432170425639299451923605911662878413637917068820096669323568075890976484620170013615334710424347044493944696632813606983413620351781287307400460779260352738303857317711815133183622528483280652429329288449724441655510733675623532519801210227796795018967660000116382504513618037163947759228467035794595041384134239887192472531935438728740506597783512627915469340647711502925166748805323780382250609220236971853695595893556277745870076044520286843739737077048715775940527012420642218921034438325795300661076849834764332910404773317279846728028999660180272255014550543632262136049670971105671916444726128929572858305387787298986634633293900968127318741193660137136936210841574812188852151319579058757627611247280561529017412648324375670087045198142988363042377378845755015083344470704943914685422115104435294814218927699721447699586108663917267840856330308207405612869313793733369531911444747596895964157380942133884733157058973441099237852052265845887333181334334061280430187578922440305842806431041345797483084654950771563253629565461179975054317454456766983373731145219514991646442516490986282457738271950637691326938055565965585931380683704547248252054085217782965709530399600299681112758001509852560480486238368111120572911455743304118945517671596798953669274896627064465081586256480377173684869854327151926751807542393973191882672778036678339357745820399082904135238530205186728414289276649751174064772066992699654760622433914417164358008808462507908674640740934623742072990668810248874132486180503343202154965359210225307545522818721025770672747088547703222417542892483911093272877537452175283772249293351157828567214637726916399823548042990887562205923082286684671480601432656458789090377475688871089296834490396104712778753877795607898129141663542398139387210195166338626054734408413936418105091948532624672494546067064540559434426626917402817457749923446562810977854668587244674382999647911558039390741869877970862127334402414120946614314088358987865697033685181947674013649178275257167410841731900170482379293686996649763851385780585220194122532196644228748598299489403975034316346174905699879686457508264965757127235667884238260988978221732595097747720645680016752192677597912575257913868015275223599660585681691783227460784329261219864823174771185716699752883048869086026978495379391654448020230633329263934168095845025132494093685717032032341051796223539932275908973357907821878300654072501510749057998303717512318499288929562588194938788922920732626296649569997191132969537953458088701493043864235932246148482042069671517866498548974743455023891060604595216449161307673340334619340455967268848839259877327454521004127909816678929560734283391523174640196494174278021864648088079243569724471041240003344531661549840978993941486286132326289595900652690348151252776374793165625708180219305305874442167098171337357886952838360065764304960090810737280852824319627126805448616898731297829436765189042259434564531049391726655936382252831286979503399699055554014135408030793687711509789446263578306193053369637343542801580062192233144266419877096078877382215891065986018099485773354582253142799213074323777032563319611762345101757532153139734258281733475937679020363380033410591561053904381351230005484775826309100125589333654895094842614761859189826496635981688185756752045821918319888294797633103002875425692761979481763090778912721027397079820816605331273294556352800561538383695059496499453180460672550731437339093801167160825834750363417723861726270065536572438120829051082147681461691121190385292591216853048567071602655311747475100480281095394798984090615091802866245261910800231352660304236087926593577805563535512397188479351874798840185043215910803612804022604195934949099149658987506372732533218628872140488735943181178044140096643334175135381863388077839163411568326940578886644259025436988616219626633356358440491887910776879417335410945022169355136073626075321491810843279991910306200420182076885932371031686491229465359094025734830406643475913889648016712976750309894475824421444275137274347145592033308119914484053428125194351676744846507334705175330691001316010187072030123567265686634322247145571072166826197245244988928476266848670258325216844179842406334478971836530022255973842154568421775631647200884805338778395450112177898578244808262925699164369364537352927917701353506456413697190657678076741955598642917702755451968726644042560637151341602623550262082116683283086738898326960018902392971715630970435072018089826672341170213124087816333927967706079561103307895121714602119889730207731834698779990771313370236234844582561501948932681977575672884923496978650198071810324369145138691435410106289187994361994879405260661209444369534999332551833681896471208907475061728476494240146322035264142666706700639174607265101159253068785322545118712797473526566013749602525803047602654662980918643800351110921202216760834877579054325907669112890164532327842583833666806596268869932376511291992556487633416490347182998413788577735495255506648380208816759465596625635455483680891524030583315671941587868965425768220121450508720035075687261231093167390600824152973576659442473212304100659615022963169560306101500634584390624973881569552930994478152276764447060339904974014707617279916098341953746249729525085535797366736490726689391271494449088278080985668518779191121401090975879353200146362967698176026391089157230077004556967707761896137079389277566515361575471678341926376717281266627445118441008452811497000158367767332556654901007710521532280596922665164744984975308099791589337493824793335839984863808483686207663484902512572206819621552105321408128458910740114742532547453974026811498131078842452386903229603633592916921639787349873298612090763772378770304234987033607486718273750533601821783880092105587718731820616144152294354486273396802668787825422670444677542129501774633283364140305930469397286281355663720901068805146799277100989732028373528007154257582815798994280842993821852752961704262143565459219608721139868440956710291360244014270255698999437257066606194749884352624493767293433996019694396114233133375809135522702844928346133363222344434098560941662158874019403672251876802384016936392839360833290323745929048711262771769151598356992122269489983058892394076206652343614507652711245204145233849756456330132441328227096269594541575250190231350917833777523863572678807334743375767920754260548877303326610573547263740829941428630450624095294965823441880550805312746924196841558686780377183836178748739729383882754221214011807133843797995022889188262518414947493063904324526280849802156860065692249177909370367957691440020482435761079287960447401726914051540667493901397632054450947793920995095179141206569170948334423437066109634696342940967297577237719453163937780518263536631998615218070032025174716319268640566524689836331736692276019339754617456083583412527261692139491347688344087381528914774747350444631374046760356881251481736234544879444845308174548146929207967828844890049953869864552749711541505334079154796408066231639819446630148585455414368106267257603221964543918836151685512676432832475062094304176535109077337200865515696343277374263572008540113810307581757268623905916778287961227824050579082533254779212992990454264977140653925290936625061465688059578181874056684468880015892789597190354051759877885317400128225454439927513166526621617138117729301551240206505241886852276677286922741781417285212096726807285977986570168197058651803203225846910199438165209854683353981381715444385497105125396546001116377685650791476395158652779204115696765973851721645396470992588301262540171417710653883077109253678999619306581138732569003962048744972612339201665238191123688880099646532244462782671124071596417167463959895478880083427172447785267341097001549417218539879120246228720712334772410170238718619210818937663478427215348855142849123701444700613862484795769988205683203497984959133972298642303737498181126977182405526535430547122087615501668048618927448752834563382727534541941871532714206330717504720595087209948701244131394384179634312464951646419203080024455449187050071290147270613772265823147281807484181614366631699631259528932665422743912813728823555232397684060983668139125975238300907275573786587890005487786775000659104810365254599882051003525063117358494029932644586519406798899993695939874267379505429150100388533544719376363420082618556640814170763689039163815579523024107745986121584738439697284860989992943626633009539581557322253849274458876784182410366599182011004129904137847328028167792460567553352541710216040409890874720209767644447252972351339550770586940547607111981908731255892820926054088923126107011379375789544524260996115806826131880589016396213744196506358900203183557632982232922244878867141965087594888347929642121035700498052474247882379908170581280731989450606207125118129857644016312325944195643995064041860491970968483474317758216502330528153492429450824291594746172994398943518693245289715393419521199211425670705662576639650201848739446221481745812059690416955908473736563095265936254750154426900783339389818465268440618423091312645902284216456703705482168868935776573185064953638430014313214044664606135683875381842093706568757071970344594791730661600124423136462853070151001512823654196306391988539372896692077698000650630277047474237601250053596044692865491564103958866703619540837170609272086961289764025028324910448423002703123779026490567564855420900373946204271102482479189491197417123286371065501232320159450325782538774189021667797572696210928262171192042386168643941085913281348430801404169669578665102780280357149845601790921434574664773841093463540915637406191309092203041480241376551203315764828359121360766745548096183624510842372151496840628355884590977281284954775561658200761612164329981474323854372205596221402405725887930862028560348567683785677511527248669641257813350730922101164558094587463095820820879406655757062529614494287147930090609224211003576319701244164169945809436561533494431406235467128078474671547814943381679995274575805696416669393659221878449431933231729637931363969320944463207029536890289789618993261422265367069541658100376453445604726183867853319414562635851334553875997028869950386747936577782641567586711232735890923002798762267048549080194882510551412824102773428413550761567951215807625647629240198160641038172398747846715002091308843636153479010086868802626647389548929323338513593834187571419812288128983068547436635704618692336771865907076271003511846134842403360538608245563428269440705106816012241990541985808356080800303381168254759610426806536054383218405764430115911861951101494695521891327136452001190713271401193249394594815191722691216913737594932235179755440646052871799690646238272511558239385400041486825388645910025214405625874313491922276175281510031609471496283213710084144879066408346054001975215196413601066056430551154931642018546927893982375566294691510565093479985055885706866744345181470695884634905477234471914024986178956517927515878363980476938181039756444744243724621087926986759517737889796301825487432166315388096483707307344705988805369672075016120759741516360007116216846405027183446938200876486151105684059142537848954397888141969772577758084624760499347471255873215089234130373095979436770947934420026714382225760932299875511791810224604252233893647808814946883660469461332498188539325518038990605484304292058274862333577901409214221317174122932700752930087894361131455823146512952123158186893197417729416291878696316927197296713959776726518988498961187445217700087826074318150673498013319128312577849238911899824968116889331458907127977637415987388385747027461275504143392702099573206444758177392969527912886921631950996399849890378640100158546185611406876067905560492453557914327773034336157203439873195544130959180166839160739236860618618182631729279298146210806781200803710687784407477426909325987295491564820899982484954965388238541879987946997171888054699743262513677920651791293215979637660865121428311116204455558356906411618882765760412878708731175353662119412550212526939595299480678458495424113070511404571507205493636544683156283957862521698403836391001774488681710759283602630431601811674565611351335793203069534380725982249528916242934321498166990290829700018923344838594281180631024833503903475176827823532490229912194628433954572895234447561467021206596697561149308530866937178651659098814477870295364531658393695049216715114745692141888890203133524057616982322130311444676552541010774249178615480377791755773780528332111403557651226945483415413675885073703701219445329276409815617347579365565034235074558445311444077336309881808091596269932022205405074933004939881471471543468312811996260052968828696015452874312296243340408360609031404319477471488164719578995022921705737719348717493631734498233988712639168172548348017537168485551272833020291984693185430427912269772055259630044999276767018509868737540631058497783897379807530131564365553237459699847566548592825314199063320507762514687741470835642515408946567430989016077446950959437490935326338133685982294409573306648766105527662976897442202237441302125143426358484062356263302988158252837918189634700641129923884253049367609702192563929473032692204761223606361697865121068269094024168629434253810154385269845229346911674577808170786065488895949416986354304732702440416064062522288393113632093288851437998058235395797818112437253012688819271872871246965533017726184035431779830848938824199423638720253119109319410856829931940529568137658083163141717463570005666065118618032028971185420761840166230297359430206991669046280802900715404195850649521045471572056229194546783139454190609146093735600762177655090864650262859708302125184296598888652065669556897143671451560021709510976481983524100866047455442367751320220880343385214186342752520870438339939150496800340525727269317592846757856345584996802579117154059463821743909268366525281293080133280403715535644376185278516938457723799622999885519506889906742584716534523498698258155375862513723921867420131248730444782822559434731532914601942694607560550133563325322479682411899860664249511880264770896746633860956758222570326837361666934856399654401108913043468418440657241711713743508761368990910156747603978131167511999808971869371600475856371789010294342604829314492467536757573543469655443953411838045900552325530632948790902259572551833273696708982012591042811873322496091721314417125568914070167951660815789572249713756515161386648273868983802880544729944476438947568169248583894727356894633017789400904325056530540388941510123214728956544813926584551986206991797683964975588262723275787031122840980228913067217068695460616483090041100912523691781210144864135103355465115798088344781684698202354475191088390315757327832097557566141639666193754156647170702891591024395295468838483281480117349822180347122640453867741577335077305040850799669898283512341718932567303516862021202651754995159679120773220275471023125828523174558324196444188892364526672329734786381467368526385578577849899825554476655903110928616756982079952194411984649787787469366653062007490173123219976788316131866996798187710876511214808424874030276781239173055305846826650763361671826549229639917042245849209100689369006799896898134805574275046344105805268306215514070485185790218989830866390096349532079637328386413140483145822182037946579868368664952190088007670768110885119091847093504875965112200516381744532012695066819763212667406283370536370413644698886617973252679002195829067282161548242594265851330642053861410985083985048126347767640360903525354010171708577936041113626569970958151074446638161865340354729388615316951261022529529044874012653456426309444082875055435196644088568794874590392476661081543485327270250790982258004826787397383183927273172856549911183819335170510601313697269893461654565620184441434030381020825734770478421944652427582625155154409626312815762621474343284369682036460078733476030502336318321738970194706172545670783271994987222460226703230093792964171569432386140644086647124855266581812474537012169536849178852634236697923028046113695606374262880506713031358088780983095393659399655236679882403017580745325068373496030922619471350297673773263601526972211360982591598571180239634155673039058749615335413807293362259083698041442637239595988538148863966684027545316149520184532414724841767655012952310225219756235768537324488182193780753890952801262909108536813171653048317866225807136115640632464386983378610237729397260835738982892864069154478196227224059419080436787567530312459058874365321700276121340269480232660412010443062364221494970511884976873257199674786701243992313232944144422961328432766405601141698967669600737043703511628583222342798259239605354206465433762948114593009399136689866672425769270845329361546910231403019632119606315873306433145189417635484694361277750935735981595784690728487538272921696647093462568967606225993644523269670490024456236220947359566400716635691608444018649558595738335060824384493765698738752010056854089853050865964058400558501272389096941072000115211268903276684932610636693136898998089572840316742769775739525120429968325375506851394494498671820845526071378809802883650508539408628143168272992688572140645660962913863135714878842369084596694330697095223264577883179208196247739391582601499401957798249657343022093050930954692416902711170139624011465846789413954488312355195146352558203671441990108640300015637558227011402732328387759901362711892429846006955261039079352980873636790588751349783863730307765199814316191289185004837337255366486927164952906192892804806561567273360548504444746899538572574169807766936435207062860008412120950764744743429049688273065666959832064610378565917595229881892453775195567240314989758784609277907987617014725474663514342323182076745844653880805163365220068828522317120123864359162156997757728430061814550224905921327197390105035531971026424152412840415477992236186511615712829371298151685626996007411609359940512954457108254576214139687733141939445413187063336018400473596789572441098109575233605199433983001493904965976268927816085162347483203632576400561960423976129034643947912096742977055830574523270975149672783538245267714178510092402969427024999608493803032974037915103868296291952426750622025033000198355322848502453297764027335686380340233137727127502454211169681588160106538939561382909913831626115192893758747483353336894154845595153221833500710880147234637690424052878780407442106712467939510710381252882975511490864945125129322795942028978903692494015321029642422108010231486713672167063002410730305409551981240804336668323469278141328013456404585555430667470628421932774349075869992649847368592004861742279341259694073568149061846013660229206566947375479879852701451364855345128760792710595635735472571799036325587730582066972712624142228652382079179127241673135817708102625802735526093874565768145119124152985314233967286153132792252214800254848440011429710016090274950295130703790737101312949848684377525165716424812605474116166274418990332793235615923061312244707802231875366838216031493148494670051487434469335399620889686722020193426007835558130281473342441308415510837938045745013705794391535029360232942354719702689708817913705266272552744369497831506106074222266788841205616488931911801484659280945658525174326453103215702443515374290834470103059304332705295315126046826692712210927352331583230832131419626356295793534884136223166362757917917798393709333434290189025257920871594584487984293191846458968856984988634145171382737840031756035066042711180525360733651131081701437539538173797027135748488506367935729222097848377619900206881775924392137320002463645319213577388997461805331989306167196567082046331204903610793924609017885608426080705862237575057205125801349096368624086746646757783265562920365295632414251865782388119242362191380290400080853906514270701064671395378090020415965512155179781945052589592393958950424494556491195792793563435189815854091550943593810507288181222539689969226385883258940813709327706659016339521500957476890370022014929991050039733528178438029065830895400775286491475890166310766237508892978325514237260925561556591114993358515295019818884519377002351001520416705240941107665120890428798253572640773003657508258366180951027767112447572803400837077526573808666005431174578979957668251766664356824423241579151630822768395546280378953004945362226877814185726847175496250621996264412015230345194600528949334924038562853607514401780025836312860642755427546960663629754170591166447659663042564780388761634432281673135391752918496270942730510438066726113220875471886239704866830655005900270108006564921014950435273231515048981419397550610719187461644276893256536902636751434787401003644228586987634736254578165978519565579161403500049651375791214538043289118012306740059966079718932634052134289428699558120791779096252376885658337714165704226588533397918364126676429006054438324637862895147104717128958966833846731627350398419312096047678954800202325938855128919820468012611791516983412066719469051627450251939886672842153731254018953089160296317239557556053726292663629061431631049013683502964684345563061443176526404305520685183534568581022637510177241039231723779648296806932287313168935842765744982626966331363144113713010403042189807022583523565470457634044010377512783914153974777871113101488776587507454751434714830140530951490155450723155564777062693408094351916815684593304406665550440432839142759106861327836573689936404547968022878456411494361993969415755178836353619403431355783483205784100891380662652742483342066993148795206656958287049487439833559958205987027702948942974197033843092691003203771217362184219968505411403038573033392794123201214905460743257458162097325103669196324563671653689737466914757257338776710881280311808370665393750391617077119843709792640607344529493258864551078837867437460271887178857801821037191501760926906288375977136025500528942200883435155744956440059197170629522338499035281162423635139835744289362867711991799901868733308277732727267283417566821720337414653116717407704098703316967541756968863482166461840446263097404524947352240060292516787644860144212358338645426050422965157988584999878041156106570032952158114731449409664595138604930850920786529583746681427363062462748059219026337993560991257762807439239351447064526788196197594945962256254504615515698235042079387978415305882845169252822180114795925923740433317630562721994431769253286590217101468399506220073217548099194480862857921702076580872184402267747435333246582284091084894917129924934991337000391876856988410160272184490515778763730354829824447294320568460614918460103410000231795040756810704674793151684058832796288481964228121348953740667169335789481605199002675803459133993803925228378243192523665193103889764559564714027371861276139708872532162171015293743668112235450040913481758699421326470494133447607502284429018892800656907983890472143290121410441321477419193311888195053175950003044099933067458037042104215312641543326325563337583065208175117149049896129303122047720145855942064221091939372911437674204616143907654625074645756387185276567090240699922240122673265754640006320986245544000749649928036184750511807536002734287543656980738462765117640051479734236729012113588596824168315726539137658003637510631627852542423662118309260189213781429140724482076349389662280516680920423674992744739682143924258484827863320599399398329864637963579749028817709575241016434497183499151213698954068061473472929704826109746509429793939919162014233088757146228646893349870308147979242343673139410545313769275210331507479851749496629806861760316843312120286966431969159441803645529112289974913862584084209929373855961553884841511813394420015995156108006144828711855342338696879752384736316122824172148567440000137418174605401301079511779465895282984472306601554345742701070384811472613072122924442330485192256573684717366051305621074624756695667473810262971794806634254172099582129726845841992180136044382401702433732780584572135036578082685348060991980203901716279174407161860109380882477527359997069532413946596525278075265698780287906836717611158851062969548831470654674148724688665996343617161995953886359634943931829080851129595442962729278291046599591449081936327434307523107827555929047239229969992310554633653806482923581369669292966532659163869116777427161286017110234360842279987354554428817580659970182360703993917607378293464981837947085039397213705214593359226479522897842728601255722835422091651103353090016541133825129555965374721099476870323872997169904089797648855594228287597917993085794200748696092493757689938895018304688460828550681968432723752058402119203455520325440316725048502418043476444212397301065402826465233793199120770491949427380055997456952556773028628898014981543781543261732282259927024468657580138286971148025491382647961077556450748384922440060641069970168481074761518132040301308811940658539156027194313552294951765861527817620803135718504116258696473959772754559562764214821323616540432853468939973932329493961108389820859399626900956078354640348535009562024817198939552389864377865984924878081758248435536830817446475791053017242647591796870944843695180220585281280108671637067555007684949745929928209446617919037761320730913064667270597366076296525079764090721268089026417687935512237135937204993556670784883341354104279252625589340499837829470475777650484921056550299418404968944938638199346180004635948889184025794486326007626605858388354699333442882737882893449215773699937727056513639703371221115146140424975420310100558937123051495488902326924677877561052197298401347157539323122621888935544732788542147960746652424038617405305988346213664460707580797731239141167066304654677095128424204169360109432505691813420187110256785074481559842047710997552657797669269330233257826874505810535581100503559823367229512868468259818352347914847016204844315169766727832263667106406185067888564792271361423547627246251362070974441565917216430472228267684171484504072722306387812088617273184434674628316422137480621328437335782794942022638238223058062969547311952865251195819981836836537496495766785712075632311526653089665614432829504044562955731470434890110985230066703795629995032139014230784690137620834275847858543371091622600026948837760535482007552781173720236345916357450150676034853193167872642428127237704776978803996728594048554128945644230161744513630859629480463479308992772435489400774273049446038290334458149544387321578702327667833981570161720293074690317595516783716856563245138515699697378609773291739135786013038253310326867083245564143272805375354736156056773550597749063295576389790977424141371015545412472537752169852116708930518919420692201273207719192671633053767712227565427460427340744999624600220957098467507144388891347090969308279824771360636800827597415806955853437074907499157630706650805890393758045441981641106666500319173129562660240764662241718579102313006708714803398727260982022276984551003736573933776371738188297599758328535999551731748180646687576390593198035579060154594434469924924742629492058253197011015245547603425781712601810101972877832425833586663760897625317145919486579203101847774027105206906349542418035923250140422129354051186841914468427811360108998270340891079052199580952023110050883495864144304426892913877193077420014459467758831687808297673625182478086556201670697864164511505483341821848274346898701711323536029106406741563889461638058883304568116335934439035713163139615014792337842479525659074201035186671796300652450054666524248520427629862845724982229644796898863461667184687645525210688738652077234939148099768563100479106436777500859638707111626432305881403663334697387457832166930606446257191225498639391878295105220835579467270595590314842395520403914022784516206285575084653470542715958459435141202412411185702722494597114691136053786397591900955005599681818897932257808889428443259008842369017371675177134216215641774252234017476947465822097753456129142438819327286668744919074356538350919242312575834969119108802430565736981666797850243622533986756566338814737666766714969345798483943183514860910925287734644544228498253430558080173247222485343935516878859056404296093525777959464612639502202533805791069768454107827419166359247648349056143797590908828243442299970533464768057983919101836053339707343429528946502304454008991827993625363838809925702799192438994521643849786722468785571857761410049287438397123010651327422374350972151717092700150682077469028951578844634021440112404757527069124689446790783854841567627390532161755165650184625281670387164217297595168245881419838295549529714382062098523661167027766474720392207631054412514331653273989101238192257200448858908137665694710076556965300174320097592303747381523407979245232535538692897633432523361183286251779307360198651353639378741739161497475983520152377405457039743635766409211587900862571450367894305523590664275921294972095236727836695443482184822902791074653704108056286908837326323161234254183689894353300142881477985566517196482851928614182670316546220873259892800069619075273413124741338605601201097570358840732865562559941273411417300401259383400287865645267260420354867082771887737007213183103004989267923713549419103346442624104947808417773049588828940522711319453811316789524496329796703346617823478924830547281777554987052056096790503831546426270527334541557783089915556623101911400054712100481516261242833057687678478851850060675487064920896310499454288419373599048470709790550729657518470672791512629585134087406302200217805773070107827022641469710925498236021322538539257654033674224721295060209301971764833165025311515726382787759506898458082324074996031152980048316176103986305675639792182326595693934328096420297027839598066313477607217205148816052216012765938187122047675141079764562679064702809973501087716599605748434489962391490787645185361922623336577596202997853381641797023250709680625639313304728211144834257539512959971045919064991374528438782125002647847262756725811853386436136624416541442302885780573668673037927990337950778018421604991613929958037119241915842587747639220544037092475589242097610044853290062726409819311133178148504780718495083458367988428762752857264516466937138510965321727950196897260747534756775352347771828171001177979684140677143654455274393878392589901056093553026620234960769827586013693295615241346977333068988793575519041493769456384350071416222522923835687584449902151066724976991211551152917940594712138388877529969620761799288348616911286288839466895272672880246083205809043209334372616402146772891833851563198219998470328325711728036983784113368737060085656979672853294949781021965060640313168039048024339672361164216324650115630043172721882846013819628031842052695606608272762390223628198502194254031298379019992112467484303836520209265076137605266337645930354471208790417831793651247352970190425558672031967944021452612721448638798789323494865373388246473440527534930995535729208746423732639822273301365927269526330244504946701538012923633068195813737426279505700429950077163077551196056943453623014767837480333100149558190452545734071614454501151786977408095283219315881540892860463999798304092573593922283729892708776756335377983503535168625963589152930662060931514650453978855429736612490165084874152587339813290246053974199735173829355070344180461091972236287039766744340285717229858460427367876801110471354456748363137500237678206752869533481540829631922621173369490627936932345092563600727757193331820062037122782803814805580520578060449843363319864918183686656085049664141298051732538658086386048631281890128765697660785875749398836356412105791766493065219153285357864130683532405022737703365828483096343840524625952958802235217518551762137406118769266125012610127638620027057346258114929235206243812056670950110418744259584808865769105297651090379460175090153876219167544357169573389775630676343640573117677359210080802774248478396390308261286041795811987323455518567297396678689960133068475627076889183256138739028025793511815943615990554916714505736052394693886796116945411119355145488608764408983845142765068299628204951085907869920410178158577786210112524705778204102379431405904764952957776314596605865669001133527841841315596376433158972808310267752369091033870461164485391826782178779908568628904335159945964582519213192203964082715579058963711625223211162640374254571480637949791104647133104758569458427205782724000385313197052145893384141732117652881850442840746403310575197410640510977861739867193917494092006191681162106701121467250233383503399377315919786701799386671034699646355750083344534325144170238886123197506721955102174728660319002099620810763416176727276904155092755533823338456095305184189549407579185985527383862250543495434578329096561140901032508983371230691134368030451841673863324317277773633821989168212392630563670297182872478454024924756923230938921944962676806939189671998672853045241941173846760953810524193985883205121125818830965680229485160013066965459837753952895274160282662888100477890948742352709548689740281019068512243127504306242430560101481116281736285381615036230850847664946457323591442146871731902876731455048260681683284060731984879188006956005149763093688497495301438307259935902660307382305381647138101016479608791019376752029495229154101453132664903066929467320270556178010940017514661418612650539473675803633635262417455265950896964200056119410936663446900200338006722697361951260718269997933280144303615195360676686034391761337879513814799488972040606500147032831728957703649176079211926037149162341238221107367849206367071056132035760019946318709287867029948707818372864623932443633460427119809703255047402423490835843465626536930927433738224327171695379424239771373223341288275038214139748558109876429283189779004200669750912535424520660408220461601470032603143526865669472258204256203445839679068254737501610973129949504250723952035157758629765794524938467503142020230008608407409302657003722535024369325710610645662519967869601474517261120940419312526734336426322897810372409206253407885616224580964681972237162831106391056120659034507931748700288643679080691468359982524089931880801739140809510565041894837806335848308135049828243368535091551047396059199004891621620563793405853707880625207048181650059571521575654693707002929670145976538468673191581176834047605181128659015582274611011592197844321332504647808106011456400985230499617620118246465087018876972631679827000509369599212473656584466487226670154358775066574671756555515743251473506234598418482495579513202050001089871260277309396520084478426737800092092513974980243052903846530218271146159057368713486117855437892845372905330540659777956595759770584828040550097776776241649640028354796428626099644198719912089039039901163441550130055780738035413483134263401390136726281291349989372671489509049207669682380283064068116383135697581628472959965648375426291065682731842544737381758325154642431020516492290912716428518882237056163452244394122140254052307606203361930254695664325617095725095684287957803409286481641543167964273163387231600282309528749917775218027728032434643027469024889898647034017309215027185615631417644629960825438440907047027682896775303507635470595810035515694786368616496458914217197911843492903252761680746007462077126306634476880704881728032896613516922085756365038771102254056443315537703736440765199639459952923684382530130765550247911156616989199076586518409224891206415672624825936930031710615284680252179969014898420707811685111976135517531345487332746105857337830765947846692777638487214024802430924913287648739782148329295560238425895192936163501103546617175825475990655773828890849550379014763744835228120899549685985279817481272005350230578249537920686158609487321146508105339876638884619516312336744304253795285608190377149765753932063214721256073362822309642330712959879528178498623017369092609275455571180780743193506843506870359713540946095273750877657114554223602533101716724429091773946491597317856329088340762304039421274163402414878449181947843648802323605600582705714614584315809583592197571433222331157514669452566882680157893621290587563990254494451510970673035121221235371210016357470866330392312696976817866386436103646188742690364197767711347368113178033515668585424218684023661956193167862237193329951094558227485743321904556114704643047321116526945029966731924266138176523222105499782709487669355676198657654351301966613144740679008039218101891541538446890922408132178831125897928794105352605694001008432884499355697891055076200746080815921050985411460370618862469688444236999686839199853936694108445733742799027502021548688406691484702315247981035145206697305873637502995465165501129604354181758188350536309256082763639859289789464267196970508714833939510079159990626967999828245448454569215173349589232144687579697390393258901852291557597700119960262117944057149536163015298582484938316225707117703965215058152710002652368638918704488027541284538863969281401228499183106159886442630297583742865826568752418400136822038070799151227979471242966650215504713657146663583705605754514742559298317452646499440372643695577424037027009031831156791761648306662780750580923768497840513861474892030142426132592240138992366072585252446232414951379306675592559004190962437034951106801022001551069371684254813446910286829518383757525764585687846889230681297059767137489629721861067095348992701820659387175453581169250068255003320714583428587914235996014290164723802683703121784971657106911855017857306950136152150269282422465166986773967851632152428458647757334240040696611445371787356131528544012386677698806197959862318739296863322120169451923701047832653826377211672855708100031844578258242855035327270563933319754449539893664748742625010673572931319258242142289311042984117081593484296059634359492777619540546181028145124664256206421748716086288821091927865785074925915519860013088261648810667978072561429074420564339806845312512313976229281889590886559757823155049887873353462063418543899755388751529213785333497389730249379152739600666570761998943412509497040230253031050040794758520120645802333845277946065337705856987843410326736500899166465424366538026474976908495981636859109793550348125611550611276289451902779975834019600430850400905351798027968691140250949765049929968500280862599768032091622043335887587559921840880787457996267370106330091785358538178530080592541938977611728722335412348534384341708410234776121996226374100980557234344200221788095378098335032397031495574104334537063464122093366495776842033134310445735131065000350917210781314313638944920093805924242364975207081346306110261463663346153517009484141915436782535719357644652034247635114990917579214135616451665470921867377936147174620344755380578758219395253275477736547691627076940585701575389665613004526350182481392523611038988215970155343281849500432383246650074209112343485369746059804041192805906729191129096680729222873273640244392965376153614456410525096754167785326469467316837674812156174046854800062172686380042501158273151910257446516931213348933255452295398288317932762938196572064256258623521804991326150676038901224780030490965955992684048886770926674090979358546899917940663867895224266670288039625954544491636354142052904562319022388875491255843226626489292492068411257248992875778483416506675801671023854050714892356599465846810478093602991565086985404181930845318047883507842981988287366903214535782421542536125092049783107236360376834911354538918742226810325968032990277548666780206055173917454244764194699259764107402978708163810183801866576009143787883296084741310172329951886032191932275965470689276027027870578025984802406647009854078011013228161405507733341886982743547130844063759680365573752480422775840936097725331509120879025457743957711468439327782938655647062724354811575719013832131668585676710341035058999448642358738092474185261688049428312575557596440685830248251341213399938921929404198399612371176683187945699138997431079096121484955776614725368374941094355998164504117502361776423280444074186633435625743684448354949458390992101022280774406385226526033063373403783098692575390960618621564560876324705694933408883930897814394131260792113704193279206483742552557394146744065314884504985052807343746106913427874807110942405576775328946708930290382070169598179896280574279533843152090533324412645941994383023485512654622646184848093522668094171483740390719845829731390433433014578873725502440217027316575016828613195523324603309328762892457713972529397419686364391457766122043068766964766411158027229296243999020807329183698155899789453826502141835697450898721151893556696393772090563124477566579820607484572528327531906975237082763138661485788871563685586090264196656811100265728245158720648104750815460357039054621314147926826287193397896366818316611522013933153447178697529096470006303341790298317438885785777994788734058358189222485033918754118813167710601262241574815897571505309077319902516468076782758577354963370198623184542720961375354522624173267698610525155957301881553899464788554945729745625628848268745059717834532590176956479399472484820040726049929756022281246442967770236838675615256508769050884701358759326869884383486211018696800103360198349989607252687052280853532993659924241241374642724483358542720356380495347237805431540627470124973244485832617276140416166477961036069493739657078576499162953625672458283482231954678204687700225114711959041672814274635891478601203295414560073011512849841429542417533061329918507620007661283496165390486564109324241080999964785927547108491942282923108974505806321194291874035751455565718021199317603221689270265767905566940341724380792149972393433463865232869236798397538459965417608339929063389794120991625523729647044487818173597080569152006615412165096064649687181083900685139287933423875603795517875102809238272845669603579394325321913975371751203077156854195785062978121571659458005425704013934535875782104956718314338199396690755332987322110479190886348768295562992168165265162287502734288900221915325617660644619212118484977951747111225405238112569176176039096485285464839195338366314936942154958272344671828973442726621579165511631088289407105946728277653420891464837211428211539203177020529943883269783949068096598086053346286579522684644329770541484628216512838855051990902547879942609713444961080502242884158266123551537054892317220725010299332553985095807617986862787875516868584298453501497720712731535696414806606185521750393503762070827646556616069466022810704286805991662985179632767521729295600661715463147970188868188427533621062730892485401238399478455406673205741494017811262240101080546578709107808981324909378432268698488866463352355780122561636958088566045748640827505441185896322201571758308666319583869105111522320714122647877454030559586634711997865415559731189526233934152006876021909732875826129824135494870257401865429516595856224653127581275276844875405358526170850402430999976148103483288117890457784954718740284771119371401378133903093121594771777669171459238875318894420360802202540186478927751026874058407409629416710517216259020284590750840250548847175023166366911001210054914498653161838795398219819847395808218243420761858565910735396918378387889895678057881598760920547587845016996434402043728482121598997472147427562847569443145582703649116304579689247041550775206565885827002176379114496771252530231878255826813292409602237791030982885542141209288349096900201203570142774711735811450674892600796860100947254254705381683377079718681039102674888609156758263245538543761368350475987079070317623791099319362128605434189077303202279469164823331056657823151224051529054019196392200498038076722071524936355157110867071367422881167560257023809778440082378986304851855189476044158241732518029945114729226597934562379295370440824806423223737852927032726259367612520306655930201380920385487786599576739055990985754328642413429686351028560275069414935883853227288830720534065103179665826157685116830185799013462859479919992755565489093870037873274110988450173809240166490445678509565262480504387645414487647423738079187011693946241634402058430669096787973169838207928864295576922076483482845935141093239012216109927888532219790795684852486114804633059008258574439009605894501312876708399097799923286491877051363794540239957478215628279696310408078348862140909170845964971836060294455357359201212736391468632236336932876331176763507105488852474746891225460943313032004981161463218613135350511178756787182261780980718768747068417835452295044338064463840249486669840323116819747350402662070035065854212781396252249841229081185905493173168440797137680269276697483160527780974575174492624553381222004379870752229445026099625555888418566977733678704682484368410648195580661465151221605529939155477320285281790332366747433357472013372965558372411731038310373424364332102700580029939873407076016143711799046494693480661523955331692009354043095509965232665146132789467371980540695086022583495527669623271085850781795372102236503970693630601927222359886369522003791481696788910484773664401613062616149548975128293309837706900498133987354920910033515174831143425316902437696719608145182936863910220708297771255607460286487113035265546179591221901844556828890416508699896337947763459801438774434931883058288210891873374854175829053877155713256598718327324697080866990433113450952055086490512852467764500318487629959650259409225340231002463248600464059618472324182333054239231876620712125548180583907806307214204053431920477375893252069489929166718804881299339192874968181058259681821699802831818596421763354260934087609520069831723359464887644500808276135263131141709080683158836490601625461263780495747873200929593269443037140571128740825351859863376875849352051815938794673473929457437336640829394980050134473260911826133244927886965765248342060179596642505349916288606331869629062155165042710682224418128472547471864119801904523009779287271986745804683911730447516268551643950269033993072861084359591928151353647326234940478598499640586003152135927268371908641857673486777210569570323103363937426850021375432980353074288813628138448676139510565178248968433553736133224376353790151891650704190261795119515598494476423669188411479623820078931197128053787838501470911909872380225912892385800632189484982877681776247845023945410968850666639456649083048479850214441185424522068117565924068364970057621533508122130428998291600841074938946778712680106418481045699461964541600594857657728331248080390140351556106177342238684530464894768860649180002287298350051909163575810344705980955836034477602227548770827144309815852685462191643388067567214880054351878276839089654718264602870431989898198050170645370369635190673850305008593758598965998027664806786630859510417797343658217845677036541054991078222333540588937721019619753101827372741020845986712567001688702157545431299402415539531352307782497454452231626776048757082637728439520347425912434372184925848890377074664733473288614037344064781457152394303999242751067508122220553769406533445584434734594839196121211781153481344741295450291550553150477178909088618084601909763042085373343775604960982287582828258131383357449196919292075043892361355632109058758386193013015732948367538364523747300506007687905859010104588594314100637600381870348675084707851174651501625651422070284864259043824736084026223260937174276368013521533777633604801840759086526344664876096687185750030722363443756282619163664456189978812959889649312872958865534303968446696198453689563972301194770422962015648208433113091556503281717469228944032420515099885471676299634881301340215375519644637365450247416251092779302871537075934673665326227241185461464313881856783813119400265970021282218119908186657208831948687438362267316416511941849904825964749228355651714519724980538255901539492975066966697968848126377532938260393826222605054262645239963596667812367342695338160879603666077149671644616274720998658622668801115148787095288590135198104263175661213613839095733073600056863484577092202261003806340489807341952322031944208168093354959615308021583686142460894156977262885927044644216148300493814901242494459883772638086072642747029500514839327434535498550571352600184474790386281842189236584987695300573301853181841263542517894377495784968225769083237745332843154206960139402703624433324256739418603039011207555664052363414982731089917654680522900377566445439427052828951266277757764074360471401760734736853822343822294211865491388000358225560646529675194518351305277352489516089321423976007364334218047490618217497833205341494927517864935976681582554862647976140751739470654219506743647147226511535907203099007277147138271758509005271754315830061319792637720239862954184516807459437737805030961264081951737172451102123512532118317895643095262384472488676472339116965078693457591283561445681328833759367267245843921621786249862210973378953445284277751702201764090550626985629660509917342741543312139513671074580434692327894526899076449572389735536426221589786616893294200865705992151176515119721123537732515192288396567747679371704040902076835225448577168178523416709089020724743758063277590827375974175187114715852888701560920737004071731205585449860844934585105535594746196574080596105667124620654447827368252972212377343973004601225482654010692041136591302510919433667701415199923814579188103351066681416851226023643496563593251174507628714467769399501430084392042090821973094315690058811315767459405678976927579107144969799865965907604611691978815068023177409892739501237244526683567551561613095135028584013612523303160738702041508779219296722158000965866735829651562870324397277577893496475541458221120961753767604489171795469706395393164943079903471937371856670764698508925744624797804206229970172128188888685917822962506757475241613735423020760516601142526684850505676683211032619313293064538953186510796545724637136412434279523772047872866447388351477406091490037732929788180271086722558634934261214734821207641249976239552759159065375766198960140316531660017036371151775910803613179655164289721373736517113169250508821783456366672166861363111852983240812268800172119272950252435754539493831643785733183530432153974225572457400818100604773015722787733104869806276326453429395219925492122380252085093137668138146085513658516497337224881141936273147913452057999113778348615745539693920820032916416503356030179669883888947344978324336938959606564303816294133248083042333714633798469941349509950669537302781211296901589398823389374470176962279668435014990598770194109137032677040125524563461412114798031800566454107574776506795087431050718078122617577820356884753269175426348635421018633529748737955059342418577189053385026728674596495067114711411143867314563884534513872700557897587035662832958419872858535085758975070832282828346688416187014168641109814544982819733527099344521778746382573910505378123592317078371174549640467802375588448723088507240498481520919673476779225486060189559479013955071893897156478323168841791533691111194711565257695707438153098805519650319326994926074072428874857493483284263251095594568370343095747485866005018788362842301283094010345615291069659027957862606746561763312211836318459549014228612053178799949432526569102690278817996011917978334040210604291940987714788925371685495467404308419827960049667651798387294996921458195491535515887804308972323656319228438570390984237799041797625154352993890617322184169396484153181426958384814354817337577712110462382947993301977113163381486525369426280211563383139012424207199118092854894229684379972125153108839139182457374119064969114501657023859414277463780829449699622566517905857268393502645377464007929371123481983200992166223321074924606845350638941306687319110999679824763601914187808011487156460556416853428930537302711809636951032403010233464312055293105039108913897587696455814854956794156598293519711298757155243125969066337974884729996427909509968049626085661793626701642054142541895677587394938329080795304566790020475057686972803122788308253928302352578882076163362092797814708600940146272455970207713566031063081861444993156940702241206573016471913002564576105269132052842512047437856701880597977621356224997229963619442121439070056821422100376460232214812772051518668610744918721150020628512424954966679158066518220990326502346615816614532148398578687509476805620591636745970957070505472240841291903695187250528620404510705390952523440756023881405000632659333837855061766764968868445703298390675622277752660343869977848898222343075496695026734340337239601344028301737560492576153932223214803638683303534506398341356991483848895079015703352147782937933517219804731899437323676414992226411883004145732421519966902004727956757163450210376201142742460175145519984558105046247345926980773839077668102256299908010517140427647588199897684080567951943325595077865167388927883142568611418074990831303347132014846297552527717580336548606025283851137602398157345922572812851642257149476853010458020300156010372657186804116916185889387153981993021303975689139174116502968741288728026547488049753598703841298634594648224110210765713058237283846365145718229941010481977273069088353364140293142361539645218471460575020914536919836133389135031789912987075969314130436273109037656074190947381250193407559280759694573681428462721020052117013346293692820224196882794710565883021337554988859805527105206596331559425184343601811757636554913799727384367802439900560945309135534866839882966333715646077038476595439714878393271486071682391594755210930446723988758809492069503251352820794867236081178546055935773727269322770172701183536053309529227807986360349207895301614042230750351257438816633810186407833784497924407608460845463204534829374776018268971684908005819726457577020838031754587991981569828378667545866563497303306424954547541342296287764607687265934340008289675592614887238732838191522827952012855917594223728624588842540986127680860522315184058060088156744123706431518529345387762095566987808870270337376963691586557237597525476845514926449750388175525317079703865609759587313182998251498964888634227832550178603670736154189362081525382779125145067549937583222309921812950603789412649068526636997081862602318875048736053440860226582774865497671221909184176712950370019691058109671369728660467912772456746035981040517855641983357354152650221388760896927184025195682592019164649523857256092871645209784640221421837159147202822150751891618311761278364688187756252228131224794874375484887199956054320406345817676584614897959013626197694605797709156654225448072405309369523594632662530205334924022965644439417471288295967795747808899175806177556777799368725807223378135528441942037609308160709258044301818238158095938863733835461792416815872329412238064412492824501161708438220014942553383589615264580169055242925624234628073739602594660740138165104805249085264153280521983961124949002437803600068664258162681272403301683247951791347293232973181483915317620995813225272448299730499881268633389831210550395372608210628781082552927387495091725096061039520315142150900847850068840893462273455904832258942915274471764933511426686881507527694640032071836733775877708364877646309231976735316461155526911008790211587753317995332532956773071852633320251952994552206999348572233940575746287848921281230444754562867728570002922768887740555293926571566576283267658767063064872546451580627809705873863602532797420566117126063326940996295721576347290668410114110305598102166196910228654041740474821737146251511896187519509280587455012973636336411903871496193396084207294497531630544273326835061645508388224690878269702557929920827144530302814160854405210030862598394483843814456987856596264922803873037123488857498410979335423654132687331585919305554859204427481993361794043128424289658998279632253916453864040323880629075219083535663014296504250356376061821941980868333662820945417698847957847175427420787874418714288176965042234252694886162000376333708698188234522432582160156491206582563552787119221000705716923659333449204120762270356673631025047453105833486547759311588566474406975320382615734230946028133429286705765637093903491953030365141199349933709604957716139878607393217736476885555933391658972141406940802110610925966506811362609446441312530280993262697666148166147725371139757146456205883858815206851322869157952836917267803950822135895598596870910601006619268790895384549279493291268105343195635615660414443675537236464648614801347170449970865537688536122688789581780935817636925950411580923780418044211368600722544133817651576729150053768630912819416011305716992006303375485630593965955963366512383813944409230984891440429831608813478940412813647182379249833347301772451174170534009286230474145193095776252333599776342498469186127804980578043582639946490004548380429679040317249501138391775417696648060083298087405737301168891332395125698868372124171250115061113857139757343863635541573537766713441593378137070184584389294801514938873590135836159958557360267188836001692333862196610230489711767206362456590305374163507513091449711246560952070925167731409375437485562871272117555210250316957663856048071952948528533292491744552356643921668414556300248981204817869490040668967968009773745617735625783206640085857621286767276296380449273821500542197078728634651152291242812674382456553442178204612927058337844022423604065611694893689378564393300088693362923880883952810181696651783540540381264677914589776559671204493933870062884317890431512615744838272550637085475410886579712413179777203970052913648691480762080230801783581163292054863257993860142363381092866691754365923029294556864355077168863239322533192258019928629854291063874257833228242316656282004506757316329432545137516039747997578644437047677406959573039869415215774955986476347293252937910234837874544102718431127186170807566208356094232839508581844249429320931799982127157837721038112983962487562421510233831015515447428472171859111704571067700755507810374340336004118938424627321274545205012521018699886532248739351629705102639112663257541163034673969574543219582912150552845339667672595361757130708060899077532939305091279378318227657115222591251273534971679908571688067531785930940063501953947568512700240613816601896811295569741782657829336802006859016277399960485339735028298259850534459146951366820184521127987727990497792654288381180373534506618685760437475671526354792418553835625736524262145481638526089043962732430083791251844611631235981111771315313655812772527025085278720185748732322326184849824468190340083957593130948602177698104605896591581326174696469407768802093884985173966554302936337676774783571041337686648506965699826155637668561007800748759426845407775522067489784296564066984691680829611220570981015574725302466013296624763295645795490375122012248988482726474108083346334892362745139434686746308856938307863877828470091714273651201127012318175330603555087910482235013819377865333877896859496118141044499957749641216348262679424586342749914849184801994951713312089998145227612474016800508105606036634872745161536702615079671860012129599187987715836161626928076948965955057111902070174331283803465532767099651890186768553132039621789325486178325352725563751395239190195509526571105560014623904478310645457389750155238988118583275760595178863773389776390160788745410083674092078245449847973891010866129668972491137468986542038311283740465246029900667947649622214995318108171522727958738780633325880504697288385906085849896232068558963614439016255905313559476591869996301647985684802215794359157172769583006441571159287767755787474862257686297696409066891226455062728181788653970674903572088925030680923085391666858686550182408570708580647139803087042356926259002132934648200806269111607062638107338439656025342752551370594057322440624413488973856002921487089864610577417254583321674355420998845448480289551098687069501483482840701477307508984941450346676544913610277098435523961441371073638274917869949819702306047698026040397896444641205187533993247515884494159387390963298277974374384598867678943840978457249317131675514220481942655413190112056618934058787796785969438531597157955399047141157679345729680305978716402827714852894767354268811917706054770873040894035582054756544153590615652053983058150327554947821945544412491920933056661224334636552191295343197132277892599267842952715905331795053555334807653386463809641429534080464757970324896061720178049772667845169699629185912253253786808673731365227274586623910167158032375868522396376565997625153226914231301754426460685423425963576228235379800555921137632951018260821550655386051795978465959793326863160460697214136153065646000539357756109090874086885928203885037697154310089917738845941049523638545381135857002067799246096307908310038002113457541654817790713967252036572124982443770928575895433484395824216877866896225116399532237716140086063301892074531255825937055097349084381758530935916901060781190449292609484582668393764641612128294036435977340035388539109594381316095023662720899957361791235575926312143770533295339809512204149218629350107876721352754761700184495071322093541368896636955666079254469167257773162122692952171697659879276970698922651541176515795144799952607624076413000065427043828115990406518690849109505151557300708854460321603900174529691155305427956328859637866838146424991821014378106756493218755455749764750595613165280374438845216951036257843766342955731392437517466920584928126713308352811078200788026378409156013452617443741552419872446695106504970948595036947891121532142569695875274963793369503632274278303881373546257363859411272249074641456824673531879414208262141339895570120278034045200840364782921975519095469870297406582801121001284031738972117027054339135956129272373992356776873707230894891822362242000806696678316571391377127487763963753569464148619036369872294400401358115980936408606193559648225609264854123988257758369493280230676569016133781143999835419983560668355012491023820729619957264901938164975789485149019648308235054623111983678216884081784763504852662001552604856332937776776071592707123750186511698573537252817955200322202013894718953480939666563003057619851167358181438771872682212007116986210464650544018899450025785656524064365841196791448673361514403191592363496868706656748506046291841003561028143218474586825364204336208830592669768440856144325743016456606734202549528301486896904036127865668793179833779165665570990888818764659947295883208175137136044925755213226301201469814009112187081222403945393325832535855681012323613366306829928599068933653728547510178802289202484817643430227167922706055628113011996859678864928816218841924051284361813838375082895689012326947386084440710327259924353341844952336273948791748311145846648618654271927247036404884932015587304100835011176669133302352500406646406900047686744448582327652756927207411674630157031536598746940216818726710652920246428171677472506560016147986695421873898948263240015820199655234849386049581584670892096047089588326576526753743837882636700839284453862889397208739808597599187005877230751035660471730038628952934215569443121198521624620942225538357791326769032565548668826366090737819414551079154296118882258597480611300827391411569126360603789415621411319132016734729865886219619406683387913498123123587594632859354734953407000757446402032529797355257641091807641847844136835684874168515386544122027529483683049371765441840408305146479807880673413184212886835418833039665904230854848183830576123382213852141655910774289235573856966852836790111237211753001014247737711097745566738619927777084731913412170359486652796330505661908060210320362196459872918441255807464384389476862393484446909775025942280126630958356503159497233383707903399637141704297561244059924719760379283722611445977253139223055371581687548663119123714723435305320161887076592208641735892646997440061389916488978236671012268609361094993709463467632410298132207023568688933864541178910343234919991354310296807544328904449078214799866575528526855361154275507517808436949781124763093631161417772780956750969662102709083121376525405815315524520526549798444692400970332193430020985870870943166909630817275964584014223970981448524790461435731062246973175387161609968058042458961694840808292324849657314273295876320606129205546746254935188643113102226672499244829604430168987331838400788121232762432629651667284600445642759883050164442802066918456674292493686441518825279392545418026211447425481322598704905047005589997711927773069131321835932293262915392995819457857542754452955388697380954927684691732000276592170136144962960375249169013429929850017727901343997526241327195366522358575361949378396979210886089768894587767027423551609949478632916201332635636898476269757937357899271184908569814872762872153908975494600044162478668999915832183901218919858672475826985740397978859167785202378938485719830569937640277726223155458078686608636002004828197055019777237557307921081500270730167920021097201620279276607639222684859790199362927779569829621356093238677353045784413651527086221531447480578405049931511920018612420071207969845900928726680232288602975513207053384453231545388211187332214591348986618259093975435044431559379680383545674187815275790832094936121523519808830404669309614827729254866641963029940262963204954449414774328142453292057854427890138681471634002076531103364695317650151621153031274095223465012918858159608527635206172653247264506643438586319128293208604122672254153410881117507649545572253733009655209558710622192221855329583816862468938893484705543511359204407419552609717981764530585347560541482410142873138850006974665425260896220543767787260469470650787023830353565248738057835475428485264053383053979667307952555371433671597128559001190938281809186747056757864081344613002191933083028168912742654940494504868220392622872135572760890137241837196727747828360245164517563786562984383014377958910430872466907248541622247330353800636248380831916454066811398024518327203654532859292498201403600045981161422395366787436684558058337951002829485613586287671489380500578502988809457285334049236274340104034377202573682987946526037217337736319049764679041507882836427472789744271832777004308127647286237536870639823756235161482035939964597250237114202010481156513427291919331626660363177423642188023806466565462116371659603146112069854519952540500580789738638292931250512361844479350250392446528068136210531386672583430067108886980702024845938323615784133899025346524123848253830082683999730445573456275175558893304152742473602934773853077491366393628403352564002357625322503940547635754104440817312184050872763952474884099543422768411610058376964104122817998600277372104153127585143021524136661094505423853333505379164631124515014069964087272120610251945165073019294086601467297074582030710529654675759860633637154573526777438145373123059289092996887050781749419857328637451441220870394739303219636284077424334475110443704922803102067115784585093803842629990151346547577364653028880585823371475837708465217539193084702222874795237158173557590634472038502905095857063840775585707083171481043827785988161121806859434945100065493466273453139637657444195248063842238313940757853656641854380266290970743516530384557155238882614514751758791041481390203035745409211478998799841626833475177200168417599474536232918878329126443540618662881257187812212335749030330321890663920595874405467239547741687981679414226061181083164043514960154059412240963535387856384297301465194308420843753619697144385310555195459905619769638909851811052441270244667214686328687018621796228243927256897111333892309178481550373469506105259643835336133090074652485090701861216325227029199608591144697303117873703409480828122024161723364824400425421033034586401285874789911764304855096413877996327809020408555011786199004950365151521663652264752814300595778300203181984587629851237012760602607183398952134378458696669943964954970038127109761625364390939196092964650788229708216186711904778654736944264976018141858910686872787783125410287071338815812410431244903318517120389837330127652127658325163331623096612153274994723792029725553807828597056202441291441783678318677352853654681583959698029867376986692029968836357096253597178408611260464707200142919228661594817752130158468825611768265580873955218688277035835241669820381952062585402486827003832617107760251658615836474768852697559636117488205403991621511300767338112506139696059286177383474158140355374095254677879265594147989567607160684288772597246465316047040214219203370603420649318207959327038043986642901304315643154298649392617208474966831333693418854644639621201557198330380232621778070154868068486888449517986491175406517509048796312438385699150781878602529768403977562388469864771889759683227689649375672340475361854063159937824245114187883098876268964206945910339887859758736361458052253492309746834476878822403752379218679700425559981461623689155440752734421744450409240166072553963733028993023549083082773613250880958472734566054726158610237871400824296229064867974943016076620738793093758253316766859577315198075625725443361798517587744359269937168420851148633931533710540428212944511648310929809457931986154760591964825604112927092747772727791335884094642638051457081001809538882272318555838389600491102108679206466178932926719261843878926977257752507882032640411353572128381437489043721462219195318727536670731254065916900580436862164638270419077737743439724836462046109036635748357404179419702600823683923132237240443122164348844839704381999833705592070203387765381778236013824918497452287243491751017217222692806000870572731111255385610813990686490951890325685891677838019159294237735223679140472939623061421127514908930304261148849033083127831481756379951715703977472625764801765931366363949736647260809637127099472538279831811779559005283760931608400031394162270398413202221256321847938951594121056117814326363885566767453883540561534416410103727663735742035412126242639963007072608919250526960684567462857582879882201332460148133352688928700752209988118051187094764279456469066774318702759234380875379141485578898278889605486854135128952071380056591511994393143073732449586973292421922771018482141211625791452640947956075635913374035309133739180244549542844819788226400701667025716684420682511717945260151116606783910690685085354341517606197491862922894033884507607952412849180563872757383867946268141166979322577657080483024468532848708642388985083078267316836135634787218550476231618441135142045294141058350387420428698575390993566319874491062612445699623417191678122187468786528608552986608117244365841338843185434788094617677104999350395962479984700942565670076081699870215042019963915196272318806664923336584463094289164707147994840257047330346104643189223559240079621167399778648144667542157849258881473993893684446501848431476863033277688106130721563101169119397491839762671989076605326963515174367091907116143797363647612704797855901097108180423510582698256690209032180244665874811412395847990322693830049815888565550728252979641927611323600725813945579280305376286093052388218386851085517635792729558333812529692152340427394638919111042054351006565165840471156526166805519968838700210542329346901174044290320476425709774767302639428139190643724326480081753732432506515722078068606885459506297638775911719074773278872170762037322962045737532049514150806785698642861775591770756250956320311262122953556457565650152405662412084813302700522786310128833640425950959840607273530528165878557799673182389996918981056445218009903632241470804194935157316731186530974285103826849464721489109399156450381032353001058389872004138372955711040645708528044951775593782091574033367182340563163266589629554394534481445094342054773095888073245146981788325989868381202434845341783822641042343814170209460794558886344888691632464200399066438196166769755595058133964824795181123733300748621972884797635613044069657840495391896514870312974694995395013187686455044823841727790074139987206622001337875826964257020656303856042158085823086413687279306171232064300649674033327860430001964454718181371253659283404885218199046814343518504414280674643572562699214659837201626429042202631532379132026243985801644011253729643255586190218925492553465907863834428601312873539234280207851369136311936376226446230432150366008152046270236786503248086451962693944349504602478342384949347401903307644593843062643586870458710875376542889872506897632500566759278705295872977791413422056882057923970952485288389598498252557005547915794069365693678900088631602772630053377496821683277341731632688972558523694407760931877835658443307606855496625555815778451824559508420661118277684218483903294723792573398010921911474853325791468604570973520686679925805415958145730909076304397647707636176957077467734557324612029322327225580116665897675588350727148151771987193197171633612838529547378952991095872890923373513969739439508330461694041515282510026525989597269855798296409263682250436979259656838170774305901357605828628796636335734028074879107535705278194211697885497783778858022984026668786851910732100257759759954238768993894452321745777843019782270031076079649015769126799312100989640725341366056381018340820293433881380456639959191492715523470357777376035833524595885970640747036081553302742105804075931098091563806221900160895684752011871260099807864018325340567868938020206753995583961355410321457849959415799074677196654439531401850386815555368945260901285527441482812757765609430955107405892472909503659342861306630353051525793901980764548782522862312011978220666171481551988801978184103310343665135754609726493656307804532894833440670149011537217597427949627109124049597535742922874390968164884879495589807270893516334071902349973463590292708554995407132710202584846646557265566729281125162104799008329087824488994688401675182799065348597140462456433194625340832845965390768396679409461590891854095748560161478873027060728193788455705130701010315985992898019150497300157145808029456058223106652677070165649845595857348348414219630969821282498527909583396688324666595033981502928010750623294974448805169225483612575877137768030288178364391563220920379228780081128208688234638471297106665352172774368970411160339741640062346051685929848108888932871362802127973965616130182754533435349940832396481091868907320663489508642725190526951686529745359011785877342089082558971588504644730518906730929678306119565191812370627482407961494303933546989915047539284223250025486734341585019015784126805254350259566516120475453530507609924905847271915625297352140125531523146855032550395801393721167830237340904427532153367816707104678425434078295285602982875260833124676883416150238121841803893895641014463841175379978926129138394577286913180558073231060634080206940336353301934948150771063013978005674067538517779180979852757617289679694912379551201682264558449632319924169464914163060029586544468261659969331133377257172319847425830131443217475962303123269899860529559150859355528684032471414198760525543189768187690858622673759542462379675375778651758678642669938550714584820741563882236242810588254567448420428061821101514597960488255216052588423675478821782170540194038134111012679478162052462878038878270946367979978052281632052413543227247841162198355208266222417633595983346604333640971480305711109238714249241896788128568361028150159549761043284890754286041030668613277162484189652900171385712635935596113879980885726454425652240880911768437014989934404495374686269017211518168123882768963806026286066254855950922113348898666808943357912820075893235360234935517508348928742307209958738029591772086123847018132000223401749591554854079902112495233080707211347864833960961871832117936103432789680694694796873860589772638254091307145520731530143006405614550584892693065584036099383700888659771668869239547659875773373058032230203261268679536393820420159465814553535465974497099561186571205032109525713692329086393682976842989261324972436819763247429735551499848180128112030730308412196892034154037590716246933819691133473068565054255374348015974782262045321680361790365117218131107836901883570648065623049638418201370688479401951926570782415078419612809650268625649419909774070619888572249852595298519680143686874523725875848515138164206281909794635075308425040531628700374028514691783020516953334294929408269697343099845908218326875322047940447499092453182991632186732152563599129196021767281647180516279586827131125055915601841080724909197649438210153526979481048085702449168382677870008787650735941971039419055557932516133310440504842769889595220146371936641234777766109061695237301778594844168627731415045643993215964228871465253578406301888914202751849034231030575622277421535816605890497381509789493405763025068600437853750395025937219161719058328023504038452046085792741506925685880446340670558699765146767794059426820150761240383029473995790947563612560627905542539362547820071652309486813423820045357791397169241493656170444821411249856727572894616819003000343871481581148670593300842265754372975257522259071052394864759455742807596708506404717942254509788676270844547794900187569043616368277835079027980696042505909371912523774971023684500668717837415347695248502559057613379882765629909567857765760800727851970755190291389721710098689427535051455448328487615737662216997337897559625237270898875122124504935055255563717356694735645464528932426039149011657426252476887163531361531867951460658467211121599027860679102239792435935277413244100363822433696572180946995356753682021102318567299085286115576341682657923760784214573490374834761215328121723234030558975166588999447262406462729463630279422174835858518444573715232535616220284022137003306553754247310836875091138120202851591847037525760053722223178232424703111109457551646933461408313529019894979709793565649273933400980339083543915569668724002495602936530877739962632406364709496566354119967347745849984620940832452506965645122695679012934294553284423689027436259925228736750926842841359745800693673423887209190858783832149308260556847273705117974143090070975581522985766280204667043731109623109590683785809806999774642566381782145829175446507761847667587117347228406590824920039894514458715246712277463005951881836661957866333191743982693744828908977762860881276392197460269812728199874678268129427080377072511208948628377306379459282954365652853962724646515558260578011581672294334515628799860418368816175237280688236165433633179472584580700731276724801026013986545264405007906773038583631570866556935898921269668248869801548275786453036626096747432926719800536524945571302915767845695991663772127549075488946246578883666461725988828498200258421971309056799785785646407366390225827812306155501333131421508627075649342640157002399625003184631945949743828075430601040879142052361997325243372957253917352058669568085237615611205175395808367449389729537008981404512714317589060622475947843962958338155919310110530495955401300248523569781745565647423237639397888534224708517796789742703113287539895923072175685255363573423399682135565661971652935432158329981701331194943023822381086068470230378915608846890949122555544346014482839861709197309522384745876023764779172166224161828638753746845792922376114360174133134858171401988124077514020037632586714597234462853793706441015305481764552065736271540322014456304232837861097359085933887443343791998299124890762840152141385763947067521408558368264166223084282118005286154444890107028488529750343424755515136709201396518738995878029342337483545899693707267500267013865126357247258890397839381925385836200734430784133532811044559569102779893390983561067768778833449155373025672683993434601072837770649090094338697596547658092479893975462753928810450619594417526986179700721829709603686096078178389580038311429523087684727556047210587167756173355178258187595134991862390671013149333451741206219230508276826612251162134210957848839696484182078568651129222421200170684079831120069986978130561966989913930991471441160265702396421276670863696903170065225962708051910640567319950963710881890006360605881771796500646380637880786321775859756869127346143091735778095549447480908633912404391275710130842165385254505290512587767830897513762518551167563137614456446673413401909246259288255361212011113701646861654023450592762182880531159820257758878671227637515339533857248520672250893573397214177214709458934617572426223701744105889607578366366502620764119746938026480403398465940752409369633001090366478994639482943279836710629260989429326862083037613985877377745710196815524223415092491524364474763586273522638909818509301464429015227491427259860627291343866114148973682307290427830194167948767011431217254758021127154057990248712213643748594598940186665786346024305226588648684134974448091983940090046723039435677202634389586574937295395182913009817424674344928322306962817900594370219431213962629915141622185285897339959361403626499700703566361183889770876297369021917134408571571897775527085454260767901255358841778981666297086288087924549479643622459935341457933791510797348613632995659682332178579150027936914985769283520378851791367469303428384978549146426696690072762239802521737090502325103708576464879960082543093383914084822879438370749925702950510533482535574816517569098496406664661215463779027197121173055811596340945431852006322706085217433413170604058185499752244691868162166074903023516728982854255203153108058070166231814205171446365440391337947808041079597422609787700811332655596355232191591979466277424236690210147156989384416248414836010869656137960850888528183999031347792165407249512434020708653543643720717020670935684728175571122120363233176780802869442770725493007315710786929203744016341465286228087916300621019487862291845886672037090427441547281201823106670084348141975240497850651876431504866148626553257924100024546220814456492089988761859360053426435789207553769626912681204516229662499868922211987606217651816188133641158580990491662142343001407130133463237160022177431829787564711965533648000256802649794620282059965988257349763810076371214696653086530515011155428825716668540817613949711876229170303708921128280837825525644949712370552579674473535119499949440660410454467710566993174416808875485970176662773095495725258071116615586974516638098429339400243937350694699537434687903999173325593528431186437692358309449364574664342240756749994043381700387278713897635251406419840594580004568858136481417411961643282434252092449066762931783822249458711854191169810333258462997650864521688279679923407326401421942963982806337971615967628462665194282698572159558115350361092727400108395975820024547201596408471287481974635515269755521857080149917142116148580720221478618413644209178108155960663071763624151006146298709860823587567700969610209654809686069247243078610536322085929661156395643776902505002781558674086057785937846262230423513935526867332970553393975020471144383922718848216153721948048020306772942988333585079558858293847780244226598468397659908678060703741189232740781641955567115324435811838790774112114312741869929140356921486071590503029434726810992633278836781662903183320552854716948962019639558234449017813220170488294050610391425414274160244731577652701319372322945307008192274948859450865643307898009334863171919697883372383533457662520946731259924441171325584915056802515622925237975424311563461710703080754228389447049794442610054496166681344600233470560494603889208210548538406306444274529954193495674006775892620821168389919845794049649854434590908846116225489705738834135716398961631539880948803406636561894101031446817820681586300992081391523906055429157304717320870711911766247765988160505017917127102784464389017045502488931913721405901838453266846616220400889966677688051154058706072633843790927554933836844921280972381153247232004463227434956905490090430663773585810925124188009003887317003935381841402610411773083744455370067549304535343749088478667455315116284502388612100929064057745028012389039917533582439991225675565797722430387784708340333470483079154893751679522248734716007348908174167952584842139216305129046640381196700207647390449039111203054958146501192708643291610126597202591877398435504369194906436923618546445200854842704259231631007397898433602972953149513489752056001935389592756664254758547214288004023839788901854509402273514530847105310062946896069425725192294170413764346983403624928447458180406515238499418764058874765425255528234498790979214346979189269861315854863598647382994835103854014826343092410068104692924753703625611872202794834771247268430916435382602083949932858734026695073451380416018203504822315931700153061311532126484569595238458318840784810399743674906144672653087693188089661708905205222896037834976627982003138144198877310116030787394204283893161476110477564023447433806580813824095134623013511137526277137986955738805316868602706222167308055894032965503352261398166331152014295962606191878521582659278396001991687103676417959390551778392553315180941968785377534508425094627498719186187322462662479829334451604174322614600241791849084088092923256894647326734704223700252344356854575525028907307612640113637753579536316487806533785070585322609928631871184256021362815874064831336670951076755962120400816508947077601459507258505732423027375050187044036165839548719304545078208929096999619431448383659472197826745082601165540375681155300969704482484628491050333990961851953936525556219548645099581970595943849828891076588388002151540879319753194488263469361761507715133720608774522675527029203876857674276356668344200027357183701374355906525863339263744690445904219796517392825590319249426402635427971686920620124310623449321825739937112128326670276268487085138762679140877679219967770302659058224194318720716778779513702855154986549349861488020054968978836416836086190641629750471374067993838933675365982552897981607459832047059999765320336087072611436888604933088507239312610175259585981333998802982499435947058992320644236480885777977031388538011622254893106739319893212502541746535834185436147272162936040535720349718763136489517773996018510366278706982498277393337474542390903297325258632469182998247933445406923593680251572963388844344494874742423219649733813773269494921705903624925856257046835767451512349326336853799714440976851958686134879590121013617916120467267402960623282569157820514652412412419796017163130556578336778858161037613163951346715680870706621293477115298278684359030277292517862880064844811387333989859649749999832601214543255057369386335281009955092697523097011872155433990038210082360103773631062871140936290846000408315341492737302093133012739825625363145530154305048398546959061890843306521338707158530965571294498439525346866291702096578021885829596853280955448312826185559816497729095753283860017875730423442995970158052854426817190053658396783125489723314103795143301237439215797515852792363887169433679563712302306470435313654912299701595932798573359021179445523609853232573444858754159180369325777088276406442924255363529216209066564783307124488041229073332999756151130558544267632473836677059389909833165265427606390983116882965592159439216314727348846507245886790402364560711425135762674719575393958280804189894472810925313818301558074122023554313505503953803640713983030853903313010334186375674767042993459886508060848560906353934399047598590182940571072538033227201333903636048725752495429879516112464445602255952266332725061381623867271670806338906605525262331227776481367400936822280326800449096286765074315949780878064683273520173641343984521596760375563560416593759822772180829806239386534287031096377154005261582814206678177794645160015120745716797188241931981981481688865339796835245504058276976575446545295080099161473642216950155740425641444554443903370466346288440060700287167815712874385233923740895136249040576266556505196402289760753460215308479498565029157249483806752488138721408572226302072377853328371182276514194514806688011194168138442722043854018393526002643909768402854097940584734403695538313323930443841646549398745685461943460813705700438331351152133671843171624194627635263266744682151815828979061286223455163160006799229714490250871834419438126533488568202338751467502310339097060860649986678538727090551259704219292812258950638739184030902004890935244116683186034029227960242423711406006084725950176483320537018615903526608737678642821273827083464640956485468947778918616194701697585925952683800771397574419462969927099358630826577918091605596943383792673018809088619558356179564067203084309705150918245298134696686381854090745025648827511148321624381329909732300032268515609269984919178065511451833274876376749605854916747638003323616651438048486535209936699834361158755794315032723539155749261129829751048061554973917305443746624278235588216061606574723841762219143473256757235535050885179217629295486964062213508264793998025140564916870610375458393556845070176416960805642973192189933837143668912628570615934574932781476334569699381537997749860419350776845520710828737391128405941618516272512514416462512315086348015151747700026602127355551346581493435145801216158912113708675894870046290467716399028097182880654690484894754456955494240012385023949316589551462452749860681340638635569511666019071017814929331582265209426951851586519903532824295768507960844208454049494871972023852197566771390964422211020349031857860425209336380923649348948673236373233222383859005650747992778599582016159783737899914449660048280129411823909210411781672907691240453586502628213588348593296050909969660785710415146899157331283582237237542180367912128133155397723952788523914358884741960234091405682848660391606642776852510453723781404683703652183225420271488497055915251607058073514773531457249555100829555356106724492724246506497755526268929526217366829324277752508573792806023485050692945313192190011177521738828042573991733975966922149742622168496487827791079539881729248561820445872511243153646151608993287483952885628746439420035077246595177117308059930187083100997573063277443825723192594129655924666593745333594975914514819043275508807087858188811194904468740519588984909151315499478384709806464375233482791650994004014719493363503330810825178578295403958548981623924794779930241430076188518166740367757207082723203567290176607747920042679567491672228321090171186663266843582876560895959788920226051101167981819538710619825325035152470036638687555404252500905937130789493057400561839006440454378021786902115804611590435278815510334863495462655683423578252730791910478666694176518961984775126602407472693414248952112305924629338762012984857223710833929975411553311547859113508387436883236483154148598641725585391321301665695868793418858581576612931346991783614228309438345964385462630286595122211565114117273464556906722920751067117808042831804893151510018751892895163726490140207641255781878962576905204454634474322665708876749914894376187313577251294208972693213326800751852600596315924558852864210510621712469073660354453254619246858365811662769213288348534315345473978553178624118150921423756301567911332785079008621973716998689094185606313447966696699148871187195100074103398558494139244787712757587112167325972758035530784983998068809439061030418648384551226530525010911590423310494650909378473958217660184311576615631677674797629755897539354240078874719716049181110378480212724967982970164940805456563139128838489651563317144302943863486284505939602908882188745030981356989761943206609071636131759678647086806041272647092400973215395383193788606967439512023201084650591619007556966553705553745655945871045702866743835991602111757275103934512355382674752659767761869029560635557344075205492805876866556764129012552491468033682842087973466710341191526759648394772014752613957696524237476603664252593816679775090310334932264542585601980952082883781472523961381670614399251417112780325602108409100339725666904925061323004132692345294414848090216411170233697716674705786870796361792903548431781910065736353570479232668912200719769195834003893392280703071833986760745923410912771683052364334193992417221296393458427206413277628303311120501861801819579417194233913389165375506183398412587548611624100614828025819503320664807172098367228160383813355215385462684590346276087136887981085472507470425496730611163007541620912374862433579154130206707328611669847785594634270999513674036931222771778715209935383952861700934742242677326138379527416511086912407624109802971963538448309984896843100429394877609988169020870427265362399716716994052913394676827920200206787330783795563725723646330511296844410923352683570021454647401033057194151353773453435932203028759074230988077649639161105834484943041648730656399066080753498067090726842531684192724157533492128803865823476501577347522883831424743752474174729835538929635785638924006228769383846570824743334053930570252790386560221723663748306412865322884524400923383083846589788954870239168888811263986215768664197806032685393043967731888696537886634626883228075271960883958351036907643998120133058620039055905967396242931315929620704622090853747820827390908951592500471242051645814081179578824681537756867008256489511240392001082854993714162425144473633068503950744841698321672447092058265798973103693749068491085274233213459625973380312613520606212005343694091879069068648930245879974063250012882968021444256070905505013026048375448660266337330195824076864250582986550382759748393298967862813610788143962580179294858357791355655057631760899293139794121565676369144722133022772032287745630735191846650930200852736898352167498325283073370825035471109950140317981282416069280584488699566143897440601268771661158950121614276429278442774569235961340941534759522641793510474441643488821597161085696727817325346088553487217322411826089650334723976967444921334476375780478688475697572175880190228543340385248001853252334580106768362782789239465471524828889720845841466174636378770064131299819381164840479311101378586950138776898788575289724694077960447315505978092522189691572203403305338118506395105675926814016916284440320508391514590809598969309234230174044376596417337306086910387617900111672881417684886217699798354961572363900452055179964725471210421358905589748898594500696381292674353169102811730858563793611934475221951831536085252558194648284149481044389278984365260650465341798454269293243295343760631351539256329713757727028366583896222663002018719962259007433033971147075980899512760454400517854196852375808406805164877094921924780598907758470423266619435257613842603461744274028607964368275345544332898849385116994225827676788054892840832917037572381457782612935916278400971714249715856982363264246137254383322314096060608360603618727332966519003604259988574307432184563808024314223766658694566251630114982897470608488023948408556003472724110330759492238325744720232106856925579159625032681064781732459871617723881807991249287482701623285917026249061848155905751609089150010822814824954752061607746994331790821376991547215671845345331706361367566258963708354743471621130647792797142049516328015958985157840699723844065079616897481746110421369646049672189116412888618608569105493391929622941797164685965800492589807732553735691402744139630850200400598780483678849880126356423045665831640356152926294419892389456535510595389154824491282166601867039636526477217784711671630981941273572981246483545201586033339879139634458064433599347910049940154470959972190702987556827785267465931366675797003668855602386849465076632455728172103906341417000673745561579595252577685918687422803726488634783352739096461273338044375044184237119496721805341485514043626346328419654871884337858188485249585049078041651496549497045501265742439144130107760330000775065995874955147909944320665136413615611667988905300581764229056495954912030224003106991977624033814227597413329092582284546457971339826683484600837374282173784583576844183345282944305022810795891932907778552228489717986384938748864285655923593381984860576361331964388287649605259399845331410235444401063506912982409469229830117993847050482862090428930926380446795206093923870865567541132486045902962714999996656737499220181752640693219377245200435927641070770917656795803499656882809194948943285130437637285809164547561307980790492181230501376981675132368967346369676512594618843357481688170463397705257190248175716166773851696941890254191444101501417115623685100184979876059414454667701454347062160910060795861654835035685096308003173319804156092796713536393346158409456072382585295363075173141592271826315055120166971476794132632239722953061552090129101186540828668848102911427601569310734118513301608659126217263461790396563109242924037208387624742052904408042142843082865788627362986459838429581608022231316564505427151041631388895649162911761764814914221066150917205816459637602991293048993624888725647271859165449381769908031830924250330028471026793203827402060212319563867777883912266063373852397938039088786506990004233549644757345831248789829792841054072679062380422134846940048000090785431288898434257196828835405540442372799565824316539661845550853654943279664482701545427445236913098409531905599958013208640140968218221975585835028415335118458937923128761080242726343371193648568172614491947796780793394973691086092362462107646216450541987260482430096748031571738455837921404311961300356756122245133988475330349232832967239666118788740039280774604488500488730634902305548610143323926854320972893268578736642224924228512612595726820845470629246921216144248438469468888472652497631895545399469411225312629876382197548250262621404583745421715634729914424268750552623318090347614453711676127101266555809004204335226933973128679076747594808894331162777054478088567981378912403911144740616580979165905779588761696897175129886206744460066606334541254657848182751867888487932591817938316028011544909672259009901116028785463848098965844609055964250029694564747015801422339016265611524344433164106077390940237433263871021612541932549786380066953092679673901138927079765652049300276931754070529103948729164996585975518035690043421237783021399866029855615827234079539573840859938927534038412207180979535426230491614116874984051645086263033145036402718237425755191297308321677794422745587410180757967754862292030214993638416793169241993014286380610497597336435928072503697048495044837403902245232492179031582631701022529375637833582939758481804259961048078936495754152625604929741372551261967829100105286749946964166698268727699117233805425337644002749572969761879521184988506955119684669182895200058745066768341159145479400360609925895789127407113818730530523021151115468206292572378416748319420052511923963871546795999241302231878673681209779847967689648383647568749529691019724238258569257309202133386473126691835136743496708236599184257221877021744853087820152512323261313566576664491977191733670342410403268583820009056440657088902113828102045743908425036460227517081676629821265033756145632085398582382527609740560984101642990394346113849737044250142464675301559568979542029305865648427090873150882266426427082141805712501672856635958051469199814561844100033827836130297945127790573527202075168267936969798125945366859019563736288271208885128972296515237525970863517567602605468528729636625544505746609644918807584264256324293696589358039309143715596893991749453499433570290010710664059032316680107894268447825697831342194920660011045560160171735912244465718759265535210843186119114321108055070217862666621662255743347177052497326803666077267117391712376352290711959747757045721958394973488644533459082059148872603624894522343956960018425911795297074588733857012444757276306742196598869282280338606769506498720915568137837707143499497703681681762709674283749178068332945062133369615633662534528320578395874275966602051143192751545126014529735685908300774346968632217354504542641864574243393791431730309865069048104024461422743071070149331390675498238425776534191935621298350261804802235663290936354009965831013800267682048683880153370917266839605906513496108719160485354082208203878159523150359310794699728398293849993372410128446568827201943640249077103431735899885619299436743444318629426156415652513449433695042287218684114501912934703532211986833812227018112581949358371549577223717527554682965326557129809657445280774255196797329105902389406671605260761943909674780930381974630353273170580649047451681813666648197741132222861945310819085839026808129759013869090912269312642371954906386329355419723052734331167715294581861768516584844078965607653127921776491168031031845783046650562799413617449055130991905791816178056787628623098498532153123714961768270790232275259565759631386771472596650139194397776846246472683469719193927084487649895692739701284094832092651886369227384008367651809297359148518173250959001156242746514521130708589062625920475520712451746283551446621422254512488310255381901267277200382395156273870067097973518204432735335226784674304512246851120383144533164903180131658232519892976783170040293555370271002511238282594957448070910447407343234995990278905503666758090697046234166215022775948065836382915190327009995741759264746802787564922858742489763257451761528596303508367806875570922515296191810642123826798024168252582202178574318908659157406953795548273195091444807222568549494940673453643783518916334046882757479620680396754855004324858928612043894099892861710622151823187561576896001650912747263502094140356766986685704185246566066827281131818994110249297931684766657785389424028024840145888821796476569631868441593103541674423957651925040170923049393231071886597319857874297967071635635194617966450420016234487600752157372860688464729428907801410618995476805339607990620197765069387335681076445130045457387008812461620150762673941781199500093773673874521646510720574160414137151837639578311185696170215697398406303590409788446135887172705511818987511427655033907313153756443562187152534959112369359042818649158566004813894550086823972712188121859248295658902857955361779591839209467022215380425996989404142715649338051949219868478268648257891426005875188803155317090055400610922187296902986346322039108525013641077312604390684237828630358655890834463455805735265937742188702802157920072438438776681636211373101297702439971877394950900622037141000120151732112142256017028751916109701228719653189966063172294993282220226958451321766891197198202450115816839007059038375017478635680995807377552681317907837086297619535440446582379487487175032096062603140904106221190836920241780643632682058157655249777455713798346075785033005877856802215722439927857172011020254923976069358486552029162533418664141220553934908815582658033598709472643370572764535186647232959211193656881506847337920158213372514192269721065417255561592322669660147565530079784872949922449717955272835411560967556476900139625738869344131283128432324801538964183674609411885255018683687656851674771520442480894296466804405738422954823341999617938802248893981863246429662918408991837484115266193520479424659710881105213448500242856139849086804372405398765933482593757590260254775509790056646948896752981970168921384936407305183694131386773789877467635150111665394700489386845574638757771378413513984995622265071093437299338577935910273583663175652732735432716192297644674083236070262458337056087173645850905741171908873915679222433020250112984979264628439929993137413816451178414351061187160667121256007745210361721290636983294507551136128929916383162944773842618573611294211306615611281005534095605362708398906821689755065545625773803326043845096863303338135590740196394877776621773926184991624376033555072066123785719595326348543805850226970038422750732135469097985444573967261822574391379343941720417274213188535856458872937023655780050195741168805149019290028293212359437219028537406360017224846603265633592964789278845149152295951159177098070137260799282158605151029079358430656780247675568456478970350974765009543054439628636600469938826187441092077165358010415870155277895678421770658506491293678715136476530414354961175050787199154425782383724342988549097758027931099183262873583565082921729910945072048738658827539182108415139992999701221719200210263384535478585093761664292310507607620703381908416780879714616755455541868566047963003019028889855351641088051085873464919435101081315610865653959227828846371997830086911809214975350015930126957215571876584743943943246586895445022343168678886857316396226056034983130423050115876002002722815280365809576767490332735774892613046748316288772719961427067039739960285671011499433880252502592839851849524562597039210428838118601750304239920626707430175696783888855475490860713570210207818611699654862502495835541552206351109066140075657043984142645510813106888484883011054129507433006393975125310925306100746606100643412159703924868402437866301808442946712075793346518672291534491098203057621963273191313089867446192269025605370995728261002573636547296822948305246998228557213811163503971219871732115736230927462624257239311849932667166958561957591824616623231091715347633316547183167717382833733077505505907325916413925288376226509419620194919315587448039075995908297735741633134177140864675514296221194928093672034634809828384240826775212572636093708381736024426913465144317513415204357755582762568733703295005584996170577212433741165291434572674066011872351538906072673138716581093127078389100013779848433507583945355677437612233884041501811210729817287300188393533970309812271607260111925735173946632147397413888003729568054307262541868259882883867219759692125956086391110263381185523158247351743967138504622970152696786653489596050721205805387162626839441019772367145723134653146865562932029201101290692779579890365073644340442108274499250349207453360615987019448967260090289908545187564478138675602000237064493735796321927115106204988298948184569925679143453894454523392505407017398120118977235310981677079062659644334048155015252114111000733642738501770191629301402097779726151415261910647198371062954326237073286908245286103618245441338843086817046135798358880087610781728037593059712277005427531402793587265862493403069770697284885737501842599401119201259045984675877169756876653371053550561637345883512822612159087427171383644423990360167312524856019996775590037647756099373132338890626488346112296293927190120866357584520146557923744315853466213608913099411929616814646692571628840873123778549062073393563624823340103848086604399569871580709975980016331185512043336945684445148936234693529423520621576797927650675130636317749896091754995425830721409250052572233733696544821691818423738531421741432387075887892442857245620756547676304038724393154136755106415307828085874894816019724153198353752364389191037193116628179974121097747044121592809165513173434627296689453163739873507523682817841266938934162586491578156100916186799512761603895766460921051532251121708208850876878525124650422978537723625547363602277509332868255861805662713129814814655922304701552299423305948234201886104663550104493293160333826486069462262950937874058382347155210904700742132496071094095336446355010197112560784128976044735776651674617984880682899385737231065349543585056681343555482585614623497850801144714758787813469441849875842836723286446531655067362171510975504616630568655566432160413761596148256057188248491217633770572162640040981035210509816422460822572513803253159021980015763369869040110561424803123850656059956241847312268890715851382015589366862291145189365603135903343969626645099540815908383656968102777063758994544643844518137449384023543346031349634606917599570874998938644043599274051952703027945282810602092687209287559766667403565289777620055987153339345763601234959494295032122578333235980144001579804181796437262527397931937784041419319461269711231530572545660666485088378542893783716475857392154571294262354654969448951057238985340304609704648484517130615814414222106251527029307905719855467080367683891339921398874423730659280605270007969908590553150545358783839157791538101449048306222657573364156146874277908624390824913020295739273522154997903765749474083572610181260357032513436790983809166663788819283795812948136921862464248003714875739121205351720069268936536884650198178924811288773367531981418480394861452692012759001172300806230612209926775049724682942664812127584013059977628692660483048989983023828363385716512890260704835744755801508857783433259335432812630626864171294400247118149078104450476181885983381444418681156614315154683710799560044902707866101797516750632944124682680212682628791179514534669187664792151917147392732878599480610868413370158211142424916615397005467506672075858101915579789538051934163417987879981073519301983603326326639706262271170118416242169176608827548632746404936171178578347778253323389670641216941119104711323301200280575541566385676334061357282041570874877106741327243529938011427622459878378257289438880630699715153271436330677023518401924351567437828237197789477206852179861287767048035736240032604853114144987766690156596183617416537634927198527109971488707051033549409380300480804029710312613885310144007859531477340980732075997921058502975092664855406555791155040772616456840013597353156439828487854910682649517677725048935769216803226877895650458640492381671666494134201921348462672445065663838658510170420012005410533718916069930665384958963154588252578657807723770955267412186484533537482156665219684423883796295917133166064953298759807779077212159975472565209471703727296533634456106269714356840206231917900059575264749544745684752196597953346425095653455092973726031228697481149416742984830833535195082558817550182649245300106619447264727382781543253979436833543403419004213700532727442975357757865080887802823140640674685213274791057262478194389954551432712279893538299429482552955844236112424244558006732922479957704695144499663559002509017253172372825681989491423846543547237739126524149998111729908682762268615076355552075197406444081724339992659579461818060058638650841777950405201971569971615543598608859712220792638489958000239577675212020768389033155859414730559399494265638190287945755827456367711679784034406201550106980400585070259781112855495181618952621359024825003958903967103860353157639259144276642200389305035431752009431784671346162770332122085253177192789266688764313509473850493694398015630576969495668989791705194959498551468448983205752292902411338170460046158239465569711375951792780818664542507625757531196359955417202896834871145539677934606189516284929032750924077426462356000984975355715518402400159641782472972708816832507274366972752980660018034767592135297250737954546927162231357532464142880587632040765245029802398599829355638834599855489366190924308705090273221165011673363884639594622747301703221276244340343285828581453461095999411703997076460275132673403834717568215210332428510472100646743847748170317110516850846807334988399233945102152462806712269854393156305758849207014992320549450707658071548450355848366958339073117931644526678707008944481024320291358683474332999913931147529653729280548107052485215019497542828341667455055111166246654230156347473164933482455453121687575908966922487420462741003716357008232704528753478199826603562531330692326362718143844588453799981764185764712802640208560598197480124851696508975269234239624839490737540341590733532052802388743483493702488798012970172394885580907933472120130289184503415068780998139463517040700039435157136520512410048021547074190000807833299525688544802589276912734216921707217497675366276325983940404233779388642640588484380530380487384621787639688699564690849904529780996130275667183361797027458353262137247027308200136933201778655780441413030166628388464171439333208964171815324935649423781471678786812718242270552942196230513502559830565287989257104319192015357447680386887014060402158753967018443754741183232224314517713848360898521661762938766232978458983100040584905803205996114520839320587452567549105929716165461086415173421353361951254913228757008914459153079612884452433803855373365979102226048998939226288256191102329657176412308009416960208025827600971411239056191480049004328011097916322289040510022479613134970146231468911655546947994638574872813549837844738728796384105653146778610080702635433186172512299109516269489482459336243224840125591010508450833273162248475137100469755443727171273811630993008952736470028603016230644112698264754113358947904350767471344571285072362383602751529704508115508161919758916235883923107498973766070265994502153524896629461318352916455105964528922978171596630847458728014107018082751213413661074766680603299373578028845627445402176831447235308749727318555836466012606460005395773100433614541335838788084406104710073028374192172202219621220741149667598159391358490640498948402606020502714009938435271193868860649513648467302273513597207414850096474025537877136210572775373314932061859388696619593190503651153311079355157130833511190202767490428226000070151291187187398719006893546761445654627099702638615724791729352335181057193695256124379346770456470764200096350954723775119079762375384082921839205449867819150722359023292498611007677697401874559340883207237638907457603618136127301808835569085301397033368621292854982677044192024429809816490063690747914527389238507826559171610882493817424871412436242808709959308670083879984521901265846040782303957634503391624478692416540175360692914817512868935839041849635999133222707892830114336827877703388128756125900643453081870263346008162450793042990270021545912697985001284284501446157519909119108175197737964480640679563872205932249164060903132137301414499458925276516942111612268221154463081743647227514030590500883766863538659410254025529238786904240243551894505435088905473770736336633106010724059596864043343420207555871027527012225590651628033581704851790162571861146034624091187832184116665192268937529649761618791727153048500988930184580216476717448396850746755674234234324863125707495292162502295826204433729229454829165810429993646885080446136954307574482026422951647233254551354743261939881651360472654787862630522906187446254332298313582167262456821279688216662909896640098117451982653041044205848761087119922856870044166110539915610994429305195106659859284474209502353891245365003901555136253615034856230443226074131920344771136540820023780613023966123318397726605820929768883666560974956649063879565152772167021061133840895180210848698273974976376914530109204355956356143099309949697166159868158601948113842252852427307646753280904996034103248424017948216505665961803243075237908297449290525112158646676687027661602146747594269841012930377445390725634070823057088838552168857012412445575070804680388237860428966536431654869206201476384575781754654110740753718042324047985494793933841808661979686447037163863302633098317430153872813839601736044310986574430319391412661277365588066341406041103305511039444689930062853190621015023882383084141893398690839550455096545797776872494880977925099553162784435817096519735465997671525590039790343739531741552909137580032532510794796532661567512212352143530538028924760110016861562791095267904913960562808039350059384102512456080051035326653673747906714090182526075267102388894505537901437494428031438827924682650017089477369284078145919685299481606603489742151853500709230404989613813327928750091548576856093551903228181494552171478979217921482491984272026672725950307450351132617110032825553781097271155751324461091092174707196358417953407156252498342829000860577947951913575750107200564749563814673025343519489785080751281091198603406255746929183007033506484072806276585579308407090651100786749225843698532173480320288660150761206875804420601746101778522154355737134004154842083691829924813364989942280576455162622993867643086864787927209712930263085275370195860810017462785055764668092111800603351835805114507386327347593364289205410911537211783439437532213704788527881172200159572077657588227702336954174897950274836226172690789723963946373238577237824990012140564937148362906971680247309388208476310082167256229710115676052031966524845309351067527569721759582841817912477695724965717130035961236046821884828930702069565502366735362364161240709170069435316746452299824322013600601339718383060539382266832315486261840650649828451168103145239547900403167516591368323278281726803907509624101641220407282713870615116887493242850846045248123811381490995990900527032572729418628585488527087409481327869676028812339457981806256645016258703558074807594001513216206767799194074334971003859078898976581301786628364688331263951552720879745942198677477491163274189676545985053101800212691404894066557824074506755169690922365704201436919944267586700503381690738078808120805264445513497471516304932252504059377635629423244155043864722501832671870388472825179308664826287611443239544996561685532143194896631281636956472447486011581688924400910259139273983367996516162474257491101667457585242275413765430356805069729664920668710617849071719759992524941628188006571954414416541799248648928605624155516581336387900777709280400673518806477196404969138743757275814985832178046645940556419794295701037304841333196097678791778586577837675199549787178633675234485449852535089756928714589244775690219963457890948340786084446748324560001481774706078730757858796344514809670403595294763891677648773736103720133922912403216772025535846571739525357138423730147163905328057835411950570743320970952409385647290350924745054137791378161440959100694914744765527789854035992718409759163251185282847949803552702799022173139842766230465973169947120541926790593434161136334079382197955959473436834668651007600753836404173963360513452222026970134835509969751329736108877512663263293101906508944369014123304200955848480515531052135820351090975143606001529406311236507707769667564328197406564437554516064238417014699213715514214084483572719557514149235613461698728993628449771548549626695351905596296835595482427395288507797993306892943568324537279421949485201848768383315076819102243974722086635545736635724020208218392905316346359892615559607184411272457954469795825097624342628522566661135112749556297118954750808322051501654753646599527529483720594888798605120945339015823409962641166284373378147841143816653773009179422290111882195494733134337125627067630205561891711159535922057266468023770743665953366626345986728846581892440917868952463059801355912353200374634886471112433527449164814928489799788298255535401064599403496103180268480507598481052731867811481974482601602179444248270412850793341104313234439719373488066847522889211704609837193675407663795161501839928088557241527659517485984560227329294818436644701806691360913047961017632440917235587532409072420430231995556332699583945755046946716570127029807386473745609485925147161221445827661955986477890445829566876889412916080355671219596057093760074563051245266155423202796150741659078767322949449277099231299053280782188567668726757494272689576053977850619915914860721108282251575218930835207571586569224023180242472019583844972114125583221408713854856904338300147033027255574553229797668551808488217365799838278708256595256764668891060585382877170088712097875539843711795403945126663623051700352847576953253008652968199432754040321579873113403659983376326587141928152585178741564577452688409037167009107460165541857581740448411440603592010008456158630062741117625948930666557931775951978252897385850169719703907554044271773242239380759029639387428273721682782289303923451694145337322175655086934000792154496919584874109240354738738874636805761130762805721914135360023940918265791061201174295081864517309892674267552863148437667484255421264030875899007179578054722928291381606363131276242481438881214176507619186486775179962780135434650385021517619987021190895021466426748923067731841676889722496898751632509684208983720611019131065278789875176675429505994716621324308276116263413786694724051451816644200859110003809188301773163373332347201685817313265447047059028557226125975591140637823090146349073394327372312417001276371953565786022789551746086704138755904002100724948024534924435564592029980113509935109528708979683804000100961057073016997613298055281979774924681128404210475292861767225343455521776517901901776246603745994451451883662404797714688471154702379964971369846542692729342053010250177096371659918538860478956445293994729935461571926289799176706563197385345750972710780519308771006280436929091546029069795571724818235319847198030201988051194724751907134582081272613204326446569625629641410700743154241863551517682731849286682548649649578496435252194497526576834433049423984922477428419249087309754578508294863601609306896765123540701020910371030733436173103716819225783263169249615518849982268737650057058682735772876550645934307962247301924688612909441289517600034725829156613591375974412108249374488132559312605079168346663913581227783325442138490015860682006426834275611894331807602487591105980631984547855804801996935361078412098485324563335614475721573767522123234164567811383522029459032669627366505426147758121656113487512372343326058384837714070755567307205738032871718574612558835246746249199688028039886567796205899070937199541001270370915439548429674022110707053959031961292475744958352768172492713884522207792174214010817448252711250447610976195104257120727496087792491846587220926185621461924373900118628552036732792843645891666661991238467795846068716531103356858084316645775713697599722439971475020403174126542497046575013119426210922945133569494230340354283332931984247425699313682665803444010545834133164128948615320265822366254798726006561430371770604984401474001453730171487847124832174560292944523686571865098856777711985943136244976667435750786016289990243357357149140957151137423810021631534929029592586345846559179194162111329421041643344603479230166328016584357006939621990932433577104508400247897175834174732954643847317512762392732974743529973854747448545195542337074045072524763475685305671461441436213011438849171270118842301198708770280612416236919248787876399952074095906903007053752819774484126116538874717529015179281584368979559014421788644741373561396722865694821094410451908005199652260523739806582862110400553696445387907127724692943245228425866501157559559443354214342121778314478996208965083374860716822994466950993375934806184752765310714353757933363418781794412877790081459483176013090674564292389049412828020279807107884807002852977786741720571291269674795567228796461005686036185421827006148165182363017763163505009749467722637136390898702109936566632500184041658031367810259047319395942615570841848685252917770959346334345050428073546713640234510134042392952396265978024939591039954045078467970599453623373896559168374139185000615758599042754830041113936284645442871831538220569058873494906254455533543503503131572814387889968499631531815527507764512342770010140786535303255566517077830951528081796418188554340540936781930052053919336365396986391308566451702103907022582189926673259522088380721681632084705065499289712492711170060443325589067800892883830654763691406564406333916779270786938069921940504341893673804711405958333289914194957071552150019142614796411970007998754190191332346067512071716952331454410572505135881407148969388775119483601942928105453943522668713085851607989033997034726323447895747475660992416395090305186587647567130049443328960546714769180065121930007741359838336399971710629827441510497267675640866175654859926986766499041940881690885992735558392766092761528875168352522632446466711980443807074818974524862677233921563231380380353810688245302655428510000036726796833970471160442722329454514285883218175646244349659347924636231425272507138054405356669843416291050688296333995842063127932561920669069865403504399459350058843771890090181286338201290488703012945682238811153820623689631639286701954229960222740732357977662435381604116611914104281487644372339509210004706657553574186071922112616114988687800379699869837385502857194220748402329884466257016047788866346747644958882574078947078216620865283824978177047191288640314290886172807100505048463375701624574620174360297109081461332299207392266196767045084873565873173337910852246241992665783488765962411050420896901205426452411154881935151116074951659338134357459938168502198951055567053541892407343583361954220421776289445491181883252823135957613741414089989485434515888647381803325007848527561343416739211293976576353069566771899907241976798845362511030836232504284461667707656081834904624229536565273418808328013854496443729773024073453982083825691679514215752314485614575205015597413042289557698085160204252976117453003252258885193164625393793183481534350246261906522633928678586924171263810584040471153172978979591879111614888758769343494210127422708043382171811900479671106013735308266752202398997921914068763778892033391745944143189893611651818075734195186499534441779868956524326737955396136759131324805759173549478406868858069652373790427748221629996406801170172212418305459950475022955212315886353015564972093621838447912735880503964999058601965605603681613258821555341554464752494567744856978394379818865352074144195926043348820692660985290639361391856456243479919739831880142667861906996955512157702364586588270431798885383343826207345693037643864925746291779119103492238164302676959592615289954144861008705184456362129164041154590420560886048222222797519574800309278190933622325621726126420898439812026952087523256624680573104170676375744742792377429473261096662074301446867332491720963199185670187079036550219091656350807374318518583721102668449690693817484268064897276646991940212322942889841614737019316640682261146666134882355973561282723589212775258779836622948678372411176085674946952079581653966906139007886039615714125342781516893475902329479873706754502733650786433895365665123146981168255448169891283608612902353512804552999689711153408804175337119525389185101479528102286944684456432907659901878171906115200700423661266331508942740532928945956559711232525818095341614948479322684227057655684383030648568820005525901472972701139018732510627759708860081057461074406090082133502114223886059415856015221518426209649498355019823116949018967422703275790332594272722745697095613509006709490733353645675155628851881587193712299089130079269179995238991836102984489383816137703339942032485418984208012771101700688525225364356308236894853416989863406747755377840164608370467017051094876715052401519552377827899055556906010858556230978040116018902782331214370903672651228385650538617676915627449087637822563451948451204947906992291973584173682951087771963745212707660222767664474872322958567633336890417030267572215541162852592958822269143035017846742693522561470207861808742483728786619675962275920681477162252973249305828104526396693980452452923332718392672787255303453095373508347478947423463775160601711612038329186778251405274170857126020073750095549828595522971968569633441615223404143267910901916505000898386149263892638524866198867916747905160954229173165896804552710060519498682766221672846388628562117255885336107187557338767413097864382862669980701642005017349459001766125312101467055756881187139055443414882758714436404121278552013291642396692783770680851456290460014772573548287341173021569963019643612564920940184410146962959253785978446760136228529069743173792038705982292305738463532670378488616970554187686526814271392754467059366113364184765803819870526505328534982008014591197132956772621072912560425634259884033035192660410627489222498329720110795297006158135479540929832831640586092612382367089941665639948361283899785047724246106613569783533020065193719602012911607419577628053783605234148347239524101169804028405343639321877046258857497502963508781472701273002708587605853607877459800129756899440591330335213433453470839266291300055377785342956295899398053395404471928406324329158317392339015031004522950233751668480377558773347327595741573024017972105081370011964179169556955762806156495041040216738655462172547625221253431756802678175492368871794068975533130912256186907458659615192806231721241019377892712427262476299795451897494911065442723672359089410053131569721992538451597398500070337254941900668658980463716284442400126334053952410247463844293048537627833761362705101028297402404410165533156738523129183092634795550388333362235896395955245400380999825471069008571649785610198254506937919593503251721020680754576779203071554951111295205997901456218480987507867231008250694655160321042228779803363279768031487801986624412387612844047857975326290925641393704493784963598360251406872960027213088559879670989242750217581177582444979191470418686123134474560004796076641832456075653309725025792545033151407955819296819529540974692988284328415049428678429737571120035848109765462667575629591843064635821208482259399511881055469670619624590417191855855307552578205149822166356297839033516289529370676969217036695049523369436696637125436815164020294177258020767397413572753321857370938448021696878415438689071526712402316849878237905868320417902172619157418716847512439269111333562713507009804165055591304976169826724044927498453690647823171994238496201041046095615758992245236047579718270702155242483530559993753259298279487831220994605162510258843601560054501494857190033641953376684428232955184820935241392536677809082884060158968829980124910715570484668359974623398957178046232349975063672582394286338772282307260685014928110763529510229408479967548437495663319587358494634963698697258603484917588205195157494697164704972750861604554687410070078270265543255136047177961490261840080250656186097283060274903164519704283262984456811775549895961931133912313078506433634236813813898076017121529504279643424401823173028462459197799110441949681170303875067371142962332670158769240824924489393879547355367458556636482971806658205111971586475961691543434037961133586077314434217510690494510767993158067745781572517634460280952949420995567413984858047498280151539034387999178557787784759720214433130835332483949503559241675415388622977389707934485167905777343747756339090076458196951846472228488085378022004668113523731493515804635052796720960860302857750151371848263794286537951439950482749527803569526101242107775633732328332824875252399868136320959033697901720328753743599738827141024250570301269734359490933305494768762011668601415455903187682363867156126627416794976234102935610657593174241362054947292553794369507392187612111571547068504991123025122256331176033722745352695945273757162266248240262172320655875667554538756245204966780109846831101559923921066257569569311645786999217510824004890998871766102260352768569311426326221453365330188363224660758808975389592950789523597467510673746368113273410529500658280467561068862862125761124060729223603852062441224632336263101163408514528842058400160824279733227478242914860129900118075957067987712270542879352376372019545537356243893104144826305108383029575573642883024500336658130491498239256202130641203329469163049832237708751189178544999565807481021072428908431900487038795213231161900474494551921940270316727226180631802251095260226753600721835233324793148533603696925323796289890364361315377621633381208905457026855975046862866837368465225714757643566215863998271877326516779178484128554472053887020952350611203953796250578585645435143178630177318854882409789678950442663846370641754130248546933931312337702221182918455466528328111501597267360659459170410000802434892305091781214149731171152839025832521069313815092258092128819404246897699568160934850235093069057922329537209419227822986297046167688509183435701412663674622376176115611051835771994601079806274529101181829188950380550584410498633540374535707066351358759879301854793747287054863192209938585063913790538723679301871860102914358166352839388841923361345795979426101596914299069454411859568052293836917519927302120128337090477883578571362516759777109507945369944235143518280838966102695223780795980091913549273551680418039396825221233870681189971086928212211098330498517513112824925732901337944531245280477952308659937754488544421123193467849656480631519792590534456171566382518589959216781633804432722740732616717628857928961953955196426649064618458875972046479324395071408136727319901185854202692213171527449610791161776944569472128964093488176861676963693199025053536151762311900395485515608846913662602926674541964202432408602375126448828803464881648008187149560406583577095325890192308807481112209813034905641483541265245306081120084211771420818866861013491152947966083262653183115843430220897275900100421090220604805284137217171939098533519956736593876590288623623549983784773758682754166226839591141228856505215157061265604524172587069645069162163596556835229310210745360449781990551719114173784282406024531109563913573005554305687932073442394601893576454325842109855543564085766518682976731993685221184832605937328271157259524737714872121603230199343953084057347742238670174429309395527045266293567125063618672361523060239627510279397785846955234352711903230198656016799344444925560370495026213894762556896401701298094585567127169898398977577851007262089741627898317818127157640318811193649705670372342656018328248766065117920532641979196527538078522778607780824923241458154245025949462810893705545889445404009253006110561366114790124522959080111062680935729886268734955793061366815161834290874321951517842176089473841488524712506573588577589469354892035109739059767018430891768693441047195676052826982402567998407547709481680472001546520427405376071195647832479414648221087571669703105549513385734397177091153350691486682947437450295269286338364863870141220647305533931732934544477738663865040812609521975147363224887060986235665630833896956436413927249862207138900874200636388046701922683154065745121545822632605632398287292442853695071353109618665891207657183113427913358228289336187555291127348692495176372977296613400257335903149939113473226633157046519649828174086257336404574650003330335109362552443862546659452836313258636473521987599161832789008218034967283166378657455725136693105440530099065625254791510412949227392067448232647588344368863491503137390646427864540714684653786063562949216509197985964269445313763640872406733803296582383408422577384859485062152601534668217135753584141778209602085690624402499296978538276936414855698808069527913876482574445100605805363776687336428262407204255169345705557059356184125210943249384020310593683795712521270799711269688958243582134812901410241526222087362080596009178268385000071167776887018476542700836154869703036035405509983502169222337890758666329273711218405550010914339101273597477169722230471366206958777307456783099228033806780541585400330170857197999137902712367470010824497716815610368924658554025174270047186642032338090213808382757542382855615409930168223862654219941723802770549876945723597868705742524251773975471125666672373169081101247395242482847434769254540423677532094825421666258400467751778159058769210809157086691413439134558859685968295117392176455739863951191997568175756548743456327344339384726281724264655654269456895320705777127810646357257139189232759131585107644020880074644210330916194616980236427708278678283073711702831062002898964439565857579506398692598531270914680262333344443124217679140787716558769905143893350556127838883755229787678684794707420690813559198295617935729800002869684175961681348836207611078735024980622832859866612899086822276536677143270126309705076398496072084177487542487816368500256040819015316525579812146905559229825748861467401215997790327247166156691326412304152841638679674444533086518571788306291256163707175568677589946641533851996818395718838895654146607166295095537560633021279272603551432068855096754806464154238361031171457515045938605614698428667923554807688586503789080150990757931276685038863725389320870053066579373579861528303134983524625383596165531741163805201583610897305174924117378402612235340183949181397902324115013841247652636048811959139753271718568320727504321674964184788936154150304665909741885548600616982915732309694858056043516372933931116253169340851767912552959063716970457275251842319416969887125866555469263573139664477159153326421147269295483167631345587795454280331284705911379060130381838872147211573823018373256545853967869343528009888327212058792590753187076341665296491809861855704688484007610702621354556921520585196627153080125778397729581521085891691515371237410577246100200210125033560991380543895785543438771927742301936080467142320960981062972754366764423827959906061740848688490072654983733462282347534917941900538441200042645327673997009135478803001529152498554746114123166437738179062435633395593986575461884748437372704490934269170204930819177666981436987705442694157797471959049105370775779991906620972306296199980553313619231042279393121841656577533719100550818814780123708974772977216166841072540809823498501265213066206047129098456305521256012239952876832534773325864547087086533986047683236635306408823288577486179399737575818655086819056350988448210024746426998966544366411762623955615214468191922915152992979940953940642495938285864034657645034249820668712927563291253735249635509960349688922390274839607303841659950980698073402326963664048806660607249852153938117706182088296851567742425460913796654108974837600232625815659566551383851298871533593075022790586834645604765298143807266420541833517807466855028227769027608189311107808650214443005715679666622324548919605983897151365848302634671329922598701363003872114965939041371386171024821749293818874296640588254693636976586727345985634799087315590427784892785176382506840601686798347626246285901766974021768022668359814133942835533040470782459972253573893338323100298813872857129454199685505257155757078959715665022603648956244502106510328868987881347280652118084120929835686777334438426338296454234951134047475893621888905368396074440526792404978771014931134388224550655302665635811203272227016664627478916580444596787563719368748887214464024996082597072473841570478196695277873497860181861551927423460377810621970627027543043805244755639320124792616225601538425212156234619307199375943545793900948145409967976582974913328419701494764695808129131416666769394374176305009035787371499089279873624575658389797165756548339007927043100750510151687594169079532961501189410239257770457228266691241729113394785175573513754582629900820340515822531343741406352515140035948857210647232992829930254480070076822169984340138260796151346106837543081170720153430519795910896409246597251401314521644678187699530283380705386703981919066379688208866025009724208499277673663907296378530067381772789225005737524179830539749476601125533889761691034522519119077052551165727858287259264325281615099378041058657709828462541565207350434593083540253764819944277977696448324067765466842784129610546301448066605660212008969615489563362408292023763006655967641425665862167717297331956043120668483405223469566826500637358810533423335341130374937458158559562676719956013165246477630792453284024107667555224069918648789201382972937524674541376132050785986211944306267416930199560167116434050461609620941817842651326283613189813743906473027193456720231464023440692180345036125905082362356242243961624105634036322828530763038951753096803872873150897103458804284823273272976073149358561244540730009340117258311207174102666063201809408842528988499239085717021766433224536905464517242961500370444127290139724597796066911875240014484036994281386724463765462414501400403412550723349311398514644951213234044710885684174742599968485407335284074634824849277052180436183591683176859796128122464835912965603470380709148192232102058166542304487917244617711338921196776037764914671391778840978136605509090589175423419924744614484318226384551503174925496935094817776865892227935032715283929329917003993010021605184867400293145172514974747205581386376201453672779140425368342580834226672744551617227705562714008531003610729547106930405256987280063260290369138555648020260092153209673874442893598570627505022337180941896514670329354515651087782781452419995795852046010400656570957137770351893770981145543396964070596751133196244640973918778497421173931303688395980167639326905686757520701866455044706061072160830992366111722461048486681683043996207315333416838546354944500936852673189175742918057170268040256339848067863677088952272735754316063593434769033867918145253173388474568274541500622792941671659256541864127470916215495285993850216230361558242972164000338553769834547974220800737611714244073446824120715209071454827540744714746399446106357291797303183078443007090591788374337753600987625324533312315105928971321152422966139446341263647850581448434305173600062814106558104555930176846619930032755161271399896155085679898234694936353324184970682336123842427353125814401815139745683189705512768133115909282870799832954396894656618365638934460696580224951351252819443556733261692655091759159574287789309104199942058183131352877409529759301363598345917264651501929969508959860667737256981720221356218649067874121396450380128629038463308316596142910923821396393898612535194458564592054171182534257545286298661500779224609905915592505269007365464165176099700050129383525780675701312741515801143340830047553504080835347233721088883408812284634442795475690012613556934828481135460804292529685421758560351596026798545697839100995169571061998167485299686255834269875220478634065509579757089020225852333586549840727617430190015002416915603999125378460455475758171466045008511954668824271475657677146255650131302453951704670009964837380896137943868560270210513492726429001676152043268371215025589453895690846464471136842227718385820918362525882573275335700478319406294783523833186143921933758093275555811417338105344185889978255426710551613534548916633605155520058856208754896785490421987144921201588657346136142523384210265484821950997363551922177050711904640718446050588371581003494161695722656157173452435214050203113932158685184489029143657054398206247348663688491038694455123214544459117121126825270987156806574440165130907055223127536865631394771614100610393430526028559134583598851199182671133357800616303967494775928270621848213503527521244070827836563078772697018377572453048588526724249398267289779017614707228579937025987998988136494782912581730785181641701229261742271231173892496276191645834078532967014070193267573000370904415918272196207956049181430980832789394156743368317477663328265212769388901699968179879604130679389585703202573672732651442830603446777960736473540490238525404511659739527018320890402752961647498794755015567539893769998182411243839846714010367157191889138538410965123932733011893564276280629254677379761217682226549060199832821866533310649722261645428274705452619391536152861112403590136985525685660438031736540251625528710162770141502687480608452208147049555581631227115105254462981143382324855327251323738142907177171598429332267669083749918482272465902696291675449742272835642852004475879526115936669132586602540465693257411725168796574228862810291690292974379232285282516916834052043340050200571573438008678428373989325813465826200292272224274539585021590173763772221524256113279949624473049768220357564921934679186853335356141668649711722668586274921801757983937686291567455148327482416672924171743136963650980519654706782436636689339257709421203398947713988367228632867346649247491952394928388604537166356888325044117484226850879594369751357179842362251446584661157486796529892489309922687793555278840241465795641648973947869989575887667119213241553402770882054410835610194568912050297602610320154137897668066601642086558391115613054484445220818336035961232593620175803036193670976164531121385865093978453115811373492265619084249766026653751512639549267320645141227173938018153514732583735036496275756109230730053501150163366190870995974121332255458265092157311961690305320140501132962412255602040223922789498771178490356430251918590388215463391133560746299657216901497340703333598383654908601387988769846357969309266852865382256040991284863365546010478426994542425231070808927374888853680146479682005441845830298551798372075528858944387488118289079423999209492262441488373688176756230317809254825581944238192861377391337363995743577872723360864786489187528770902638849820616853287926087338209068385025487804255438987587504387084063563288388353304450632330725191765203946117461804403603917719130191080734669115323861290757868520946745819775303681816133517010991851538402519355477422518461365897013185613390278957068266434426661335657231400470707053981227894124427337682735113064551129745600160686594239294493742498988467160259160294371134085296839555015148659842770604251233003764167477583363140424000143355849320404397818547472906146185756059241674672505320737927561413795708968468872573328979279775293078266139165207424445527366984745480500017379212039430543664122596847514445414052387874985708460641616364451995258069307442380966282922377725555277900191009715915340881823698272673478527032910789631378862819207414785920943367814424609427353791141824287247427149856170198207400499105766839100000245728057118481962168439614857598594015819391160271533001802193478695582316951364779574844686027503635346546992395013374337387671701882652677416512771655582949759692388471771847568978101711867422021872588610690332600517865362025505046028739838310507359410397909175030036243241336199722491801348472548310518549503138504492193543722135330320270548332758242011597356564319290157703709651723023189421759079431329616025357910766425474122233729121021144804381613402177151317997511540592617310684379841380195813572570975130513532323722041416354666785305659140640106713222132781009587673620258689990478022718152239075801246435369351705556106256747421745600008742518020939269396340600961785321495874772209821736258161394528843248361976117209932083294703804964341737845207577505036435364771321907496057457726823887164495554760980985273885829863789643782750182721740247050428268203450792336720650062600186678914307700034690367909608796059520162721796382454077752577663422565243803995997555067102089083279215909518390686906283516052264200580133569884635556370644503546385338010090739910626121308501276962991206990108393422925713850117985980032671851813595404068848509695839293563523491677184675651430298381122473607074822978412150386287806737517519700725603719540637314664446358812767749453585241568577923419351195171293395705402225090466030442807268215841807993053082038375240377551994363705475302077015539675767505190903352455190830921903835833741548079156336894068716518550163714093804595096883743231829379980545234879005148730285893042306794838570627369839105434920661073039171440984044544425106483132973188524689265384812291806332422776924051123183581299017170118136682465374052992319248834666272145329125603092429090325020915985854004610045980826059286539593949360165095785080664764961071158222726692041098766593668054385786398476606920554658679675182555666176769374787078746449932550489908391396906093379649093573145530367179719971381784469117786545199895734507478316717763427861614751956307182618075193662352035554188942205283877471041024636113180926247230192124729243395362455944760877756643338424059211102328137640585317466987025949401510653594443009275727200834524315021144606380605758898788254283619348374998337517191940555147560090302274898219400748024853748526664716112294635775125857314692306930595125522439765570952635042846649523693754071451200191137069815706452952968631492321529226530327043715357923873709457933272895834870290652658239893640026869438868642105564914529612546404063275717588158203615559974132050224551947540221246273299483093713672938540291248470975513077766032800342973315820720321585403412945612302639723535365653875440223681117352937513719263477776771137655267348468326215781439324017938145365500800288160231245100550465206743677260603128662620594287069909899797924139123912489656666897295048877060515344338837461704491994523989509557706122440546246023689959031023653028771844357672279178172602321765060623282234672720685249044177975157959108237040059765427082599647284563163314715609399232579999556480068082134242115599935295219671816954713829576667915173417211960309955402753523082991994813177767520067165038318842815817379531746268746897513062279779937896802508177719687220785363034359100145837243118683499847165014610382622072808316314721657187202377709131985769457365193409859861047862424608136601655962410457736161239270196857376379113522313095594326904939035880252408241755176948691448883659679667995254931576629077396267866947988127076077061876295314738339738243135607373060048218632443236309927077687669217155498439802054505353967357235782645542968632798803380591436721942735927672535983937901260336998406406576266239735830674399631169261419716514957565173786105229622208565441910875869778162658313747644758735508378161551822082769201966782979743488338317466598060924673762853501255953623106148738417676261840788651472627460204283261905068273925454571410379469593916079328810638330463595364598272544918688026378367099484358843173539384539781574114647653840608167814886170357972779421778645001905566827690027897224787262021405803382906692064481313876075427436530525484034307011923390116112995734141564311631890840177001961942204562806524925887291628501788431010368363968051838755105171240818348777567059820806956891960291294378585761479839342522389247588176152953763182144258903539152278033309472055061628337346505571078973960680879401855928473236730033868414743458511537519999942524099891156107513753629781527158393663666501537175205135150075959525027881651718715833959735052670980893420383418758903526991263452119101250206348812679930319989232713148801082681911503080956594302406367825952272597797431557539640267549748533469410499264630261474333258962775430384955518942194047989562345972791610964583841589248407358762898132032379708139490404033369837859633699230227390838561878372934296726287372785021854647839036484290332376084190892800231342230997682182361695881243019756840502143108984230553128017774857005130613803666085374739623564138213486037002654850764648604243018584516861973369910658557222160856624487758635284181184758064712976251041915636838818877494856083473731354968686143853260478778200973319435287388417357671655024941119792771181193094136014545392838642768926377699646572918258356321595175019448321293001456654176005769254652908349663800075166544435303770220447238032138115519382969109597654435476304280637975674881015038223502419291688792332870659425280945245217682074955018804335810097393573036663897978767910279668890898797442469244325049827501021640202707919990794619455905667384890596960607574179364612750341665627751434048279560153853544560896088086761617616571902207640434049569230184690233108387119660413808095925452373991528876312037858573064504101070132260060036342151814563075001407826906756438437504591704046906574498783320481908239133139598736788133864932710741579033794241218640488664770967650856687481522573431421785565630908051054172064820892491550337449715792926097942748615191254522772686861937017825857081125545771069584287897677257089761328142495193928018038584044723901898507263243868915212862588178066473480462550736379215751413010649729372315718134003743935317083057978624855402100086150699481141020563331315527206977356063931770875408516324995045920638812055202622487434442721948208910048423775066399579892050210662325991735993723841796802345888605782575045690897618170149356055379037278534405801744104736493361304085713438224271734913519160911954233972368228983284504718421809700707051743072126883045997587555268817344947987934373256714479586698005708125770466184038567871382328781419063125539047199532100968151421398281460247399642448857416652596821764581035141598641923683140584002842311596338535634477036177146142791549602316947657264078340311180715659321391949648292577689813427443768551935041346229241441988789222303116399982139300275473518505111512367533690610656620518510737975080460807535537981296229026596841454044996861898684808967104055913457405614318140789813769720221008035093110647706213001976898321545035639955147456318125269338037300157335079757070121248817420046445765407458855961591782683830723239604367615088992665611102918605410849440874533512268129687006601440006894668295972031216384712065601989772091230248657185018074433203060782221281607017034689720299090204973995065460024893089577657254071694176675178011375900663007459312121607604044351825593809229682344873862640408234789760467694171022962071080197327919830973665870364579336340886524016492553180999869481571374909900273460667655353885559663370895369692122729063058186296275023222235718923529478317821147087813430149761344023266769824904427225315363731900129488327560399216877423106579980788845215119074499190294624936144292161927530501431343429481682533185428297130172985868267058624746137189895749081072047638978588622620705157594470352471846206246708522845921133077661626152679593500912924803702897380225162910493528640835768297863522404116803002858203355431000684866248327874510666439199449532913448771904632411262880637670212766399848094420480249231910423406424207023430371069994225406147702432084821918199594255424026923762259104258753245867428824455063330716091959132795428126619815906486534229056463111217702923982899226153351291897539214256334197670215865702066645264028604240692532276371555603082601719223699867423400627648404079229120779878083842302388288827192718062883773865896223903276375770003849499330784040055822668469672887994045354595365587102632978530618349282226852943654293854940829534644659169674513999906395096500862360504513820254890019970515520440781870715718963774331779558984650677643558455346663723303323191646585658847390437804502686641387449015694849172851546741631644420072016789022751193270371706587862255809699927583195615842005101340438466774762427562662614800181782123702218435040769673924076820797199080631820995311918358439336008371657287083485763588503461856309876050857271664207298956595962732249179075957274521581667096559608664548005444710288767294923290637518278279715243523341202037381155173837138672787908666535085286696804490915448541042710502806055392312547172322053861396248549744566152571702394145754498429144168286944167555063680803793202998174778821928772395371233439731641577282543873806899413956166969645418224269799940786040087240226579324028230101961928272198913534080981056305496273616158295050707007135486437280714331678924054029908619872300776661172771956208925725282765025645586638922441265741860064420833134900064448167174089298878700565656535824476858553316752640531376242972934255560839025924987780640802016411297987132580468252917140567987990761653144893540423518971303160287605996361874730564447835121490369844674995801106464561267320163547213473867531849660274153724884865676037698918015907669804696431205760905494086399354905792561020745135421250996072944871544592983994344114857002918854227603454430407481837474463068791454882099263605893640375959183144251268877226564208671608205526295266957394874637659210530174773547997029079163124254623495484210688714818941803356492665870023471223966137079018496454252060613900039826227520556025357457155069541450791320699778076059881714352307228419961684279102879903571503839391877091803270015411832921940768744424509675778231216304870410351332226195809298148269420722449580479252893648244154845811518517336454257963202722452708630377431964787929650431594966701525050817619780945045134439399710808727143148135938916662429610093797936961270516344371620054387349996485938830367586389453781046295985552448886394952819615725115982440948930112766546226869190910589706985354579824908574643163486453595657235513303337143129093576119584562407577293273491730956930606304147194894920702108437584348420190870907342980504725803702404817099996817011581252447103737126625099845679621380824085371455332345254646864024505292922552173224877136411734641460553794869674070382978400233780256200104543425125026681372712495765552571480840893024378465891022236232343953114866109691499875904513139024391848182190826074144802465496220386000651062827371264984670521678497796060351754488819373462093477829878327917405511456882759203465643900199969501795043977808433687364432062554600547750316787057242677933527206332305757496441533597119474374648922020882500274957410328256278591445572406573704276058117439750379723349755473712612084841711271434719496900434494805384205224922897661927747448700355695305502920445612542580442983223901669048372336297031137136633631606947385805171353145115677211476996468390737251779917497239573080377423678710584099113579212425782071138584888534586780781121981473265903506947102013907508175090091114293951715611624849609914778369874060008415099091070827390849830950287857035437642760107035806977150453183608559635881913186797194127569225278340666184986967250507961220391865708251128044875610242102271408418653313232561269778477987835409499491495549295732516501151036842555559777324916752381299312006316382303091936991068453287505069003149636886596570539601949184659910383501627437852820862908151404686595198878006776439090352734164235576598444647430447056060253744651735827066898044564074460469379767480792037119410827130215621291036340517357708963546174117488496591270061249978908898111646668439672650240420908820821489841810328663530453606589153242737533003131928365769268998581151777245432860778171188964753371392028516697435588287467984564826402762659604654111455933419609706537221071388514976974568578038920720381035863288783949147522906323897776438912267711398413748711731316737107729228531072822079173332883988742683215882048622314660255355768787395522051031065725542124010689003333762809855620975875201355598795349194135968254192580258285370525177081936351163968597605194057987523864428049133541285698552300403238621432002452507374119847342669357926231354540154575387134444520612908804280882117739519781449486214142341191768052970747538659142690028952935894471117624243490315768490055704924963907886992583600685650301960924700724670970499743958081248727749493930999910590286998976721245120085183298186330259548242072122415094725262623598058562047392454774891965751947178352677614779457906243761789241667366222675628571747622013175650464946854345312058633746121984933992155942150039169097828145127561903193626589972305783854055351130048530017828666220155614727582645256295994157187074376483307784800970182094740196738811430532497302224604872386783268327071150218969980086639632561119650820384621332330922125010188935290431528088637095182771014251443402092796312625518266794393743436708728773226983123604819818789513032738622670395092379127975665184121718692398321844806629805452343266298894346112058576255401234214485629009984402079835278175767195323833771251101822861323366585093040007528615885373045614987645129794456235613748580310144735688904577442396281460394266697325508163505780810903293161914399179129165338342073776173255402548043427889931200450465722906375336435545721815960550712608402489075311588800297485802938898874282176840144833759577922874276418675509300309872552191198488766590518355217014907140849443438399487022380411908153235639791628146784419544124782461871081751056264980357725568327060498877986776338290346492780638910494178064142747230798010136607716076865636063701511611013043998928377737498831207929128423791655178894351926153513153578484487232694890480276137810038908404640477052209238671394257894278482846521867724704277753976979694555893415740569102251529889147050343872163515040149448911173849544754198802418756845767094670390677831810956449170865070130901241737460194122267366573182235249363791144172037957717895988584213230873176303575727977310558869386899082190110102038243766440502036941801820192327484224565814967945771193027856694764748314478651096682502891906522642964080747668672957705102593260381399333598657719115752176948201672573528866369180353641126408900616803642215930936951625648506062469548045187681746200678038494378033195785539985003131681974866871738141984769278305345533262205484428656123722391195387553561146408581153131095847620298338461724853649212525700622190158818110282898083599119390219105093857822783200591560422204933051138660911014533328297120250684561208498391280808526777712282353648537654349225010872790115680298829114664472923999388452642146167151338623048122872652980873779140914412535591492494616948958409303854109511027434203365961629695997699778789253840461664712070364014197155794574327846954581006618231297714363415040661561270377672092569022252023427161655780691584326736261570375619374044082973385723628844273744585935147406201674837975720695834432059733253199442954274128141584848421000504358507181684784700152402617644762790781047528317409500008126312486302053079799387106389838145034182350120158467524218832126862761437756797150953136430117171422349917330327992488611140926232426846658716664148751768717070238177242712099435298036357674128500922221681480235979463510450537428605353482620733609692335039454638297948529583927425098990863179047804038698181727756992656367126390891040700986075818140340390137913848750388820344353430010518679561280477106823215170092585050575344515970171241658218415610123677290433077542216370390177422055964798268349028372643614922894922429324489018785871569143573287801837205090269542313876143964494748011473188194475587055014031143707982483723433533233393955067659915118965216606052605828855304244142321294967538488621317049051669451799063279200472859096968449023635303812763169599421822838902613109798021125615772611435710690825342772369387052388765931523405160286228649504878958223205894677011607191092130196705777762606134361364728855705389521478405639122468917615264839173434436976042749525235436595568235029213085024231391186065887818522751228908905694111220097336507543491356303866384778170758189514540184509732812782990355863529384942581384612153276339494478356496155425889715396395046265073195684016801003322604236803012084905450323599534855896667081253106522299802018813043740019550920939866156800294104792844728824167964899568310605363766254530066323743263601455959812055539867705304806744619768313166929624197331075269630348132671277307015203983356492151596647449225404463361406861786390970814166711077646146475336059281603825583553477173626484665212440065852318014530321712687930484156569412312492078208212120090008237588416001505355881550561464006521530027203491384542581485801552840792945171571138651410798388810963924078308117567913365639788653875026750604229584062212083641962788559237646255448786569340568413779545886854301419804382533530279338656716298334525490006426961622227037552683843848999698398910007812675770130899595388678204914481925234691765514080707914612919247249848289762205389565614477750993147225577985767373307030790759979889700811892099133804042215032583711825708942768305435335296844668858510879371679457207972956435716633796669403677172496722170113182794564423934646341649999963149074442987122513796955955230269380437653952001092761068433153408508665744262511350611003169630360639316323104135121611681764871320946435255620811865873349300025825470934284600891461265715376989646387823722746701679916631272087947850019011183778205576366005699641494453125832892660646961752458969921113072776508809890087081204369061307112958563584899705701675608301408812800708472642502790370158534672265667832392863784469198907315411836275012407918525188042386945925691986107108804892130014761535290278504630104537967571206722759157936813383750960629850553427536313871600757742225237726671144159258944176377432168957592066733496422021329538331828542270512860852593491268618444402548154788418540361941798719449453526627595753152689929660060544341012466824991785382051981421980764722426735651933464412038674232923126934424605953319866648309375685307400834142368486800556703236862378162062277707507404129402013046967593157325833137611311247516114101204783750403314219822953227123167834799499732758579147095917736897675831977201786018345238566696084403011346440316709449698616429059614497883332168597220691831530309361145764476762012450957965321575393142781693452728069243413977930580653745267337278425278447079543808222236898410585013726336674306665750486594362491502586734007887117992322546244756938754768086578025533787922917142714355430484456357052032991416530295565664641167888088633245787405477001296418957562287860063605160537332424017600760843108724621088331799311750676783422998736152911560074778090254794116790995081498468420204081777573414326106503563996708498300849332663507858874574500008871425071957680097896418730029784017826614725332122846269887279961806070476856438600544720107064913863501129352112742532018679458575262432146996969312075451662378216956842064401783475386060336663067287186660312875172193581762181200089578741516193976123686842231347908059336258833486597673232263066781983885834945361004847210242782872902417755539172044917991254261548466923516748712393921112876069328883682942803689622391064872702889731238717241855932647700454993744066152733007472517071068440296627892548233118571794570497364595116319918984443036332733418299433283579310484861348083086618642475013753985168061564256269055631297705786682961917922929721825936701202732588544178592128393589879716128807242517006754624538419125640924693416364636309285673877686400256382783295708738888613229775079798402545461234652970205388338761111381795634034020279137085317110438470131368450681190533411386077782504613014850679026459399489116039670420565215064987720033989275261223128831357560516238741602466747820132668582415438781079616745407521774526916820316103061292660974930993295459157866334174062906607526777070962468788400831046894171361818469648173959482423981358838274589971584439149297038963075485661366751582840578268827993223228493774269428867930025265559321278353656491624529635963491261967860257414376073184420451695511948498636277548710525156696407964032419142199251180892200966133701657504220683104268826048127569577584809553323190598391554387634298050416714783297258731378104132180296109038217930146393126675687251008722245236393139799288776753026849243627012467570660142898651974759281055392364528209842355301803851079209203119397747332406845069420744791673954325519596861678858382274960000536083617510168979320753344895663016366619426950727280015168844870304863606845693105159302151431604352873122972772893838919755489164848462610742264877096033353615677041975747242024059755257571620688451251354560063687097787532236448455937347058259534592289087518789104960958169383066138473619080305371109977490385507611796715124319676510238489954409139709693488340744822961699173724450780343578219505883024267490892561437429308434604022288107625283427470471572705554816183670778377159189274700129870821601489914931441282202422855059258443713258097969081636744944905739847702069852487473706185177587504896386315732898748340930926610746040505621939403668726997344067926508008058153058893510309698324115675560432416310928069259468471979878573565882446624712119708187379978646071312832701193588738310511095838472253544182158963184160584137293172310478042412425795289894549455524969929455548683739883953777602428272184759391201113598966511591873617949927575129260444016429185080242041926416347291990606395877002067942146109495629826421733641523052789918211239052292636433344880123468364144365762792020637234029644768497857378445912738617389988011558611504922056765351524364003998509130424031790075602899719256887341598762207568441439059957032756470034416350453090370424616496693440349660267717421020170099159925918272489100030743650369624175416608455200873465361240633195181646028630427373005442638715899706625694908289377534097019528150077068157752885850485768266903729820497090971116473178670365335350994204036165370254645769295228990346094451530511938098779573028194909540686567077665567144045534133027055282463817114959239882223955967624154009374780858739291172879942869239083003198741552557500952550962863406406752200238796907001525685526851399481663470565597504943529135062642141487653587327793435777579597942371697978972243317135805163317909244342446015910718185424212218881908782819406493756822174473359878042581083437262228856568917167423654814074018012973422010323961560464319442359902664768835578454956205606111433384155321575436902612769576490440391780486074909707381468256215410312728619418423465802824034932866806912843990067111200113747095444262851623518188301441728510861207432177320961995686574098192457064277925844049144085833952801281059814916441695893804893317392880143726783670591932642207651721015650400640450460757372082893820797919584916608806836398087945167800555591371843664104816461596151951264306005969602625531661937343230504115929481355942657713403844828102519479972385485622080736936838885106332556277977175157276881290615991623685720799295852675026397256009520270264378565662673962405554603046361715193861062886527293906010037977857763513383392590849441487642044380704322263478914529040032962991935005842496643858012678697478048317640224223608665314978008584661839308165515174058896380374081201964242462934268191021418296480240108838280084732058461874021404516897184143901082073421284919195653153655607265833665183775003039611592747151030749970345359401734167439059340331059579537131195531419930620538064146361212758723669123665822035090692197090867349480494520789773274991615341943848546622210154366529952121556315953327161732513295309695127561849632576106232835898882896543834090941778859631948698613071481743563825654134872038436653009234034127629392027472230624806840880450083147487242058261138542751762856679177081119805845772329831472147813779048436215571554391739942411302189543569930783288006000754158440951865905395031188579588401465135724003016127767189209036707997207294615813805359490752272706563260632780150679844821184820969707582079886841064535449251189938373576462455050731005902562868273237264184951479485442435136798060962833036601998163653030837961222653431113257776140879755795199856720617095484786447543129205588511083106762864120301819514779851742898456896257727008140743793179586625264461007694069621611922813300368640237702847322248074147248284222237262880468179717079089400225130270341446076581464019367643754203209754757534640073237181371082662120533123299451998808805588038273251895867159108352613710703875271101566792192992362111539305114880645903751358163996499522867111416833806818722419155460726871418151743924178241691179709530881292109367735258070934969593429397441244006154287403869944547765921249488333844894231639219855146653479682667545998344943359693270004175260389959900186690420692072501325141733181953369544833981077194708771764251628421668040426294910850137940313353358360799786352959318493330146450348713284025063289335283891782186580199120467456068166614387992147059203540482300702925131683302210265927204767196236294468809092645569091442334436097478527497315934174412637550075566777478173211152877199421896658937525443292714098611396483523391731603772410037154242618683013659776716690526516019675811576653820362259856838606683398543833823846670306406238833474601794208018862394246277948237531737897203606121706487577148700288521916984338967248766574403137852239320929147480232886958847610177070085016939228544048119349864449739512538122307456493575311154969293134508913791677388127215004615425400044986605997392403244197340802284705149181146711972178213669857190266798306856997260300146182632146726024150575502567875212331404459555277417841936532691295973460092572835093862052743203512388986187113462730006373996696637275734346110611408534532266913044205059957958258877982732304676842902729085612336455196685966896782369710070818168054662751802135559585648795317441906813385371139988326123182310391340360864695287768995593838871479876473012011251782595106412339505748665967480819464360055346862122996342571794249132544481803421267880104567077496856224887641489920363253480562307076011161080061106738004432955488112614687050710902925932687921249498890308244903829397264404479340528613640482299821226740378761613013758828447866923322074132796303020109789721469210471096076582332438107135352988285854657799384570370113362691662007352150864179170544549836819637922584629009412711727863802143569949665048839819057878166263899193012120933101148827665666967488095606449101041376742148508891060541374551417159038357381483462542213505060045964424368044466647999002332819388699052001127426324124827336449945211055914224798983721614980337098889906199084654184354651692659964446416979942828995207881000598916460228078093504149207144374319054106162592958393462007495777268412197070372182375106335124316980260872308583256528272413361839964856881769038077605983903841465845108290992478362514885161273271156985592200092457941657918479172693815015071978596382291722076455607454425769810112380619998952409371695573068661668566340568377626547409961463859609172492146002431036078900523414754825435959974595970526754818696560549965309960665693075090050688381445239381693284234501640714094781053192313651509150158790117477986443754845896131487931607443359023676362891313364344926217334793407496209408565992402938441335421820175702909928727640222486273866170128031491742600933079980257117720012525266077281965589329673943674220149398788074558372908458751735506465266639793654174451919376394319150841695614490202933582684169246251706219899039973209929348317085063375750118527587291405646860593410606507978460602164854382176256422174520023773773595532159469180402673079298197126568836903052763671945041471670176155527578048232399723287675349460733831160422154473888300309618091381455196233529756252457170970248573979814839996343338610311121484774764827543808759683867301179946627481019672066565059628665495796045884308057128768157660676930868433051586729974918757689736825705785102849200133585795973424460481266970429888004394686956512357694359538245249381528236322533536145892192959092254601100128606733325511248091509681632746325187631639735797719784779951147512852050331644724354533166150841348773388556486710215026391515458934047150892333999061598253777604435605803003213989962854130554490352626217231749519250314825568235901737977456618143872567341098355264575015563875023298890514756041601620082449644620686987842372920966909601036436354081854524657412581109421236992898983055395758384163329574660724904823903050928281074531089254194071850269097256735093561563075219851218806546442338983493411812835347610806525061454356585600140209279403235642599443577724671630194850962368640089163881555830725955292103871409429271333424912300896816590871329401518204714390792467811599423630715139152506999105031419309921619756836982828904119346872920836403869062977304884489461572945741369352809985128631059309669164593456532678087079696282656905892962886416593046849375365024298859125859997152997409217921691787191396258976003031616360975108298874592139005859813576930352600345136314752571384231623613413705187457896432621145533014940721261819815335041615392575199555537383045961114240314878384195210930426489606975710686343019736459360903150263725491651307279778943491840842887329269362676526243651307809160553118062742303213808159633164236902206897122132628215767362910785380869748294137000883225110167180519093843629291011951312580767770816752616230463717695127451060331276030652794419234209102833950780980767389617781998168118092710738312700105639796864059143045009498511648538323485717770595877315066901375941432356687980655946028844799562616655271456619886249733554838162429740747978250736613430363865479185646703129298270328251799449271402164651912527123753928561110380753006885655164639033181797709191590908066947950652031825477583996062255671611435687547414153724452124443394798755707246493905627936149556442578906704910610970316526474683505626461202577725406014434301118149689299247949979020889217001909862132211899777499787626996948674880678207847944322477685299580455543335915619422058490548641432895882671014671350252586661560088713085795744380323530056025377863772253094856753369260786037643092224160910255603171086010020530591479315043812486382522663635530995423917893259979168339850524652340042624162129200378751850350544726140929733757710128839021451596231124999695462344855098783969650339240414168288483429612596887235629183917313858549931430789836826081269977790887005717688818234415027728409031764758794337309256865457542361100854362441165498754444651427306664635566582348402542876548023066748458227361809862394491267371679184740750216556811043082693246944515271923388903885600671324110191015973851352998401324359190756384408906653712951163869378735955626152613548992580572399164080477292903978897985403945153799524206252558977307234507499871777303998167336151736880058477714358928542261554843973531022705525915919112385696924156750480316284887642626328113305961943169070239318665048208476022357775283016477919307122367748646447492053585819870121356943569665737799317766492907059495013380456802575793414030339162327760050308828558305276094274570641887078109729495306608872962806288698871854892343900777193251813049080581923591162454239812109029959581114932189531918225695713178213051282455746506037919782370804881498147091162769034037249697055889290838433066644833872830430783040742914699035156234744791355718628176674197471078105536492378842266449090876880543011230939722108022675490139947053204285866356321772270570792503122187122774571592944845888840070667506193344775153035442068520258762612161031931453380462022821905655486239872007311444080952809612611713822396401137328098301901789603416206510770394454057276557608812609655119636513209006839739468232507466926654492181082025436331337198993232104616023947760827775529522644759511035265418885141167612620345402825149493362218606796220168329459113295810388919410133194132685643887950478921451246131431810341051993257487905056134636864287381769405328495301288229915599647072362191777801778062204517010359020864668080467285839303398087209521941412187019989942192445464828145929287189656514942276262306168993215103297453287638709950297723553952487772940985510802129248776876968267986404951811193717080853366643184144783920276403255058640533385698336206972109981896809068479278245265713739332452187820306272764477725475882337957228208970662498562467102127293076499338737976711993999091735539685844675492298701569511249209724108691006445809291817937348342795220057846680074947873722797717004058301025262878097574638048488581409158871100995839368584956421769384193650273273631442399407599579993611051436848742991297877114705451440770701172446464821983362703803876876846009582896106909482472983328784695007531743676766911522366739384427563988271968399593690481591329682246325599099322650998538423203306333119916833282397992863564283531524282899442791334344459183678300875106552213734407642801137573798558984927787301900482010468345434933950295678052478219646949032856854165944244984447318838752080633348091196288428752072814579984853131474503318944010471533087097348381438704922371546788462473062090831470414609731330102406259347408217329524895969843051904358718663113890232563669116173763249280864996405677165114011879518062382665779907696002505743653379871715350346314112746310988812970853173099097969783533857986224366605363281248748058121737538829374836282430877011948933746699160912788095217553523831883185455727045109011922927665152180405352418750478746269063918259400817918127572697034910531029555897799575521150850055886805945821252198846321508214826548561753987651931026667003969083597560203915908654571649294979665689712947639440374921853808932584632313770350073377634904055920174380676601422892774763688079010965699637624596399477091245830955532118529890678581108131884000584079714655530457930453197318869320853063993013259164703001241150251807802272810388253908949427003301746233534737453160768523312929148518160106169155435239303029460775003565928427167865225125635929389300571133003542377425617206794184111373571971635299048640218722185918881348792923376561383097003789075984317861971034709059124445534044309025803606195560110045818547314108460771953847174720745801089482396232015394790046529863847144120900916928562520870343896133174545908508778886489818257470637865159314157624939911714656198762600278413225114245797156164217819967355758868893224607614938065959893110415018175056968079413412731310613801307349761000696342277289378185148202651556957581280595315090981135691775167157559668764419135985849819571098946307364450644379567893578215636011442185701588684609729082648372454337884374956930183816817843866606226411497877243617011681610047504864821049522148231631574401751423194411084423656745283428835633674846812042540149841890237320546321969915014763159828205937275418731266236897337310556333383797541404431895692039209687348384628155254848839405567483212777563781912490013577047195109473153875644136477240464425523316580566818368371737380270720914301600006446811498365221329026650914604845321909379317947704119574925438933036515814070844833682211270401244704926010576905926597382003338416718051443628118673561595550570085399215613589001268045613161108338771514659324746357557072961154507571384405981581596547272364594655072148153241318901409227749159901881681390432822681189588004092522871034769177408273374674050462102628633051380030136590892448323885516497023210455837712607908399193507204470604072577570573173857596838181017602043938613337055575850784292214322781761387222475758631715414214485456018388310318789854061502678779614936637405293662939205439606360741896970048576297696824558268091222016767084060467132872055745993689992239174058189166965801628282108182540122766604312453510017346635826357840653652507372541470032982700080851119804337922414406519688325286672261902096734431151935620684766092084165815552508609150069453060258136043654460957117114860424496200224907376575134083018891498743856313201223059044285567442156724741693307603380937723064988456141707461454536437771832622513404175405935157112438908815669420321195283345307975488239114668305988258849697307534436614274530633191611331676143965200270701958716164971885239776276176171153354065825314007540458041601386887606196838231455986068251235625497393831871544823568285573372534325800420089966725712418693948430704071989866844299653557324368635403092169608287684028986415641016896988677806069943899396512066806733932301299256076944997396647666767946392344231769298304692484924191586040682703786510692813947402348316745396041875834468585510077525011247106469844140295273562146342317766822706470287454851908201157400572244216443770487325135549666905682430294073121557368525814788845653073173283090094146521057621589688172587339080324680363671174925926825020390872674729410347313727523996118408380253887188969803537700964228091691870320602623445466984254486961310369186928040830913324545823399073938801265801212217865681424539963474023603746032461292305948889937714977620248597183412457068253011873393199667493943291872669909986561651744686961159895663508110188615067621066644317120234832525421604988716121416756469156588195103963644413400587751547445878518442331910945667373729699573343865284816389458652655972196546155717239548590482009831394912212412414378047584745085294352591704321789155203040701166221949593642032059720995528494203511020526183283409996511233532234332118297132023820913760594441227326579609282760356079247292032945109413910056387331828119204584721384162132704027102649170981714073458754721039856100902172338065415984924269246401033740751180698821184860367557425228618957392426318927969511516400283048019119473967654045149783138660827774934294199499195331767838589924082295952822637390617623243299668087029284043692824934804396819045358375268233667086005714719805741112610691372627832665938093039613084868379235840675792046231440170652267696348019080051904176569642857251393124833879471752911273341453034300779855512530214248192672326865974515698964725871149306642960271406766330954491209952825833648268584617151602390757779570801805044618284668561895034527351613794023908364372753719459894682298702200271410480765990491100973369578213514013962542020344860728190073710860257750790165603783014794470646981093879892505364587258875095293417272910623908556706040908524429495658119530477315557273020823217635451054813866368459507844978761319589334920436669515815327213081959694601499645647017538207838803477284133920538762735234072005536163975460669995014245243395404518595084665436856021482627020942927031540152595503083529665010762466846456522489714634281503845043573999449869603972945530826086562029406284713974795321660853177083268393062438085589043924368844924258066611883942053008988995881333524064457517439140463686414609257575566496440122176025306627668463969725739813516276175114031733380613641937839093288610975465743990749342076816251506905955611766968848578257941240413103347747372233995518487374032200998981067069164984469930681761894434161935292086330644874898024836769065554347288668696218030134163616903729379169657785474112319707624707938634506933785196487917021602853142101577515091367546487810568827360130962563522253864895280249833579982922234761231495207543311585896901481103779782109620074895354142594261425330142548253296016246401355234571169101103740069169994430757275500431116400822882339232576369230480440420023597266727548050090374335344616855520510471897965000129716386646524483646405822096500170670354882509002972120563822765119018650648874461535051811277278846936230402287473401073015322269316179104241048508147273034073433588658302415814811441317956678939923623486656748075368781898092772778046413834335737512649864597760902293265054057901009184500875404939900953082902163655697602214985277014054488593954885718671789951230814707586550807317302467626151358609551880267621505807354359464674427140512844525064271575404620411872951522868708751988645987717815976034471514648407736951299543600540931809948862579482574693893709339342159675330938403872478395765205710956941195647326157949690460731397834843099103190977897338884299252611872097810718011295324158301415887014280698088446963439280602704775942890539466340551571616811693445055007558980174550071134731680874197578034259791991129497000733519546179939030059291440592650982705400780112839071586335054232803555252883868514085149086518837879267902262718050788334708723018119496948126107554972054832667459198059874765349021386724495536031525000718165419364710947737509496190812263300904050355255432563986199480477087910753761067917792629414693958184469784246081144959083669339178296551630336152337497161277915993450760834053738730465828342358625629187379031147886799707261313016729785160086917115336970674500467557698789980858153770756953858396675706516673728195379434127670665150835794313539469871385895509051827770415482507287103026935849760972186957176753113409292409875395267414138757260500482612827536636061755544153245172290213530839005056487990860622955075803356909792326550761796933094869033172772839443616469459248768320802795900756715510675969417920864512482143289157423690686183276088421566068978598814860687591706962954247261147401837906863392712214695682937440897229935830134659355308413427263222345342528003508340721776910392176787237205429290672140814248141993154178104063462005764705538622544560371680706774872227800543531614586605989789112377159120354363035970597569162609283243910529749382445463565726071939908971293968200483055452545523015806137040127652803094493584411248393091630908673220587714603482100170491039999532957163930268023388125983253632395313549956750430840277188427721167122615950278075154558192941395591323829935972761556202792834160032023626230071599143103006618597469677903161266262078489941731792392666914726524709295023198392531564090872915491893296192131579472241375617035100580886786791795735537174325233301492908033466671734820910198189701042527094143241324012389565023106021283433477565445685381240923459689173432758290392156687201067227406045691498445747463921836265181874583129288027926831485514892194349406122413376976081476542232711983236893532906126802163797546046776512273109385184251654700653559683586372724912262392935484403247522449825182539415165391022288330295177868101923627275354837026508207526836684774831860195317479712720341085707763457537069036183797301317872584444980002733357032726506129758469555223979433009540230667786334292695727289051879087032206007152604570140646147431058780023235243209235201049532944047300548862933031957090393570323114094294678948549588288322223853810575501781681812681805279300161652942513740173220747360189193299732351436600432350656751707738059671848888483743097744496695243485141249556210447276419143742976064438802909946358908325529657189572382236799791617602142078500832934696760239098466100546057247633426653087549916618347957653612612374930847405013147243875619322211176861501204101386932621927572316861243900688812838812631004802321986752843949978836437511282558457388401600682718617216982719331281447933764591245006930792661674182723427954901739650288990497398884576011047842406678012849566690815796890288816222021981798984623240926948104972873943974823258269878546981553973242672085795784150393074568677899544444855359319937992704213895067859730738810559945481020953864014525155746400996662608293712594609281232574659720594508698678755498605905464469055580157197642993690042920121186546277286735564904995407166052659213715903275544046036015649552600704714661393934389592163090759003307494166377254291403346925310226678251370674739804358598896899316715021782150805540299162680131392763529967020378725808722142539415140352595143641567324947455291867434348843984320767770080627500678112902622850974956716631653970751055173350650957394298660905189070981273938359245740995826086781565819632824460785143310912005516831169597480569434053469609006685902249836366926476114261977502500607611698941559767662118708577665359255572783109992603619269381879545956570310683066900920942936548321474809939734911062053639401338650615815855126644294671778571183404600842169687720589280936295298604417215010064167047685022036177682568965054183208102583826121542186462482992725580644426807643178683225292569121076134259217449828048213884817130938699337363122547316428630498748522158925657655865759459322071856795890591883007155362449195168296548244060461102743362692543852131449912388899488120888332282830412826201375007816412875495483820225582189090033542941103238481081530995943460922001584755816759188158120985074152226581120173321125617371572351567576236702687786296437474510122602210886590162428152102266624138151670758825411407085522897758590242500191503654944364565610566851726548440854937439284804649556569618145363138151430548526492091592992006254736246651095157289615883358088669813205056061566146574276444968422062533214567542149889680732836877251433430570735455180820976281455890328952826284872320234176496235620773557116705822957729834716779939168364800677147095195486583886257069398331467049277426481071720201340187096274382094818739898920368921726695566636428842074405250700394854600715393981999118905328993460419620533400671814094207721092980532770385468655196577701652604945994260155503002428356818208571570702668384519209509558175871322489724478110096676159218300358649174726176712364655277863684102675245312770083837611740958690440702079417903302231456850840943510950484514744572002767923300895306639274681195464247681132497879881794017859180785174336671348683262491992183591162038152251973588531565593657352977945613906568080305535462362120535120314530492775413538995574144793292395511571814953338969033048583031172997229941233194350324038233458002049451552862711432638027263138125883303327497598187458410000020961571893481663772129868097330191001491217469449554631020895336140913315921115118542678227569771819550182070266224213251735738821754866497609090975864960463896350042887616534570896971696795696507440177322845566331054374449289757738288619275998774204932484611615633242398963533421352582907241043347814886222055160395030845917142251463762357372916052035128657359358349693404361489460855022705024106349885025791597135626173024496355146150432093425433825360017275426006742388478180284606101228738171876004271984160015249729065372436063597854439864410084473666779095948314164297180791715378265348451940777810246523334255587222644335936725475620405109709093393746515529503144679084829689301518420955535361651929343661111889804439487485816492889389368782554243740499034023828696216463410247883201261089762815104866225440067053722498417132332014132681457089170472740432803438587415764170239110820834515171323887764284357600054289971995484317508714923016815646469413719219979303879902355645664254192912562138842906349286599865307249340276275625790694516880466493894927807901792196816362556279463968007139446359144448648058619482219274970793681221547891092550695061244904771713401781300469678981653217724203758105564341615689811709383144032220780611548699962500782024150502114117725420193153518822551811895673072929406327489261247184674844654886173707205351008620870324996384537713674565554746331645229530152037561912271799186680088319578495705131655934348821913289981220559862723323909189367480252800452812604862383978963206552117144004611628064631043975383663453706130572777475706270416637034914650408708378387719635116022584534493992153051256283197082443433612693854243156039715494873809539461493108023137223990696957780351313907355233353746733954747705299540939016584400319595285899845629701134328990029083310606413457351857707711468778081388940898343073638293706893130055219346247001538210354818699932603801142958913987410223042965815044345347930339525756669481970362870387142759459868505702267404819666365342588025657143556100789098053153154932941521001972637136487979546313085730031427230635727247584961617590431965559649125335821020205222696726420720403259832085222484531549094135037715625689922526989930742450451751348040456676069244350844815990153752565842954032806498446328835766628947606754202973454289022111006663388286067661459993177092407464014078706580015344871425492041181458598933293302150034805927861572748106722693277314824844245662095532066486070921818360447915010617846297154535038715040196103369224780844836345079984537256769273582218285534451640516969179710705306009738314251793313009252103094679318196729394030808524141584510825954324371593191127321704211184825388388972309511575207216340513715472560392006771988975101934893981474216918660054639192484599822230586724349698842956456411404789315320934132232512061922916897342914138200964944720297486951552332158399106506242230079504205194894326204029379925653621729992713220893542226651911244342003913838384792075890167827055306218251895789552935479362820100984947803473639573272216639660224901738818913529487637400270465926524722975694232675304186924644981004729304020849922260489095316028273707001993460258379100222586022615745667076084875317221211667577041578990870778637120989562647113001112102092004804515265540322820535163911771200637569981311461196016081637951183432190810959060312973580729382733634556043750278285328334938330956107884570715124290611746344050184093840878226473218029835529963544247979761731654963637338712762822814516313328748563879634143684014850585514358458825420657337896926318989001425796402361337194427011134131743238404797724480866218884773009106098027663495000664925214912006323219231013165126503650736429008249830634233871672823155629340705881588134647111026226316192111032485624431053116496925031793492058733231713847531312007740713108019060584934531212710437540045329555410883163218715976548729925788776675341956803206835491749566818281700737942302800042384100354316939053194364406466254224498538476033826395736866072353890312109728331048324392889634570281744120466638632346543516673290064270866158326113033356308456794161233091585775314848693190729257707431340288391177115011202787948637883464638060569470630187133676232611303259097563116746335368703595015607692705366926760844650694455032546198139805786754834029134792881489476720185397474167999052400982858929275178103030150797096291185663690403675302923897661643334229564489417300037268501774351428730464875221677598234333613258850089302836996752743011071201587866982267148732601766161108605947997549688334135901174508501649290847788424972368240502608489748541020047211639734017477208695047818810228729911052001433872724570875977844072633378914207982855691475131484962846121418006437692633014603999369684641548246533722312908143437153703426962797959894459582922512030675742854725259724820394739795790736486022974490454924265368584720620130397787306842473181844357594702730439019056539710778211020174595744461236388690819476183080567292588786753660000154823505648004388121649359099102437230509659847556431761342888316197629031922789809824531151466954502449045851741950440023709251941193982862188981716971784187185801515661951523327094515525423539373313994951154785642319880503656941562150649948690706743397568570125811780922815461646949484794329105191043854987588076520130106786989811657625943990366661033206127394898773937856206968356532080008849657964458586283097263032110559005951050704216587610002104489531720895556322134390851669489726536283959367111555732682700036437159540644459591031377207274122485163265312189102690450429580750167738493809881218077384035372563541611876650288584837909169788242706716457334316461754572322384904758571641260035132148725426133364726574995858098631065085140797279737297493935875714552390190046646636282763340665162954753449119099120311336337279456238982618833674380098805218341692666660403769956474535651917163784116047123235285419393296248433358189421269865663913731673553882393401224235728131485429050861542285982195362417194395298902058060687568459393429156753425078885312297875882209345208562407381223252082804980992094052585421499201121455784834756062945297082145594874866498035211628791540201720354676769877042675171177204669524038628133257274110381287164557099461291988807995837623607294782236847948714646888682978503781141939519807034399941135406824780039226434915489776833869122662292308459813356863055588285410054671746405008004988386947009181377979967197350793835174233136683171619367831545309652057291844686335042914120910149554812111755883435615783159349185379415948667220074636829699628660789461121388173783488798865219329937493909367184982784156369359803081278174911010907703519445614105131414427998572764488549818721696727441449148452281531175291360146095770410844631419231192745803235687139018996796171636596094787589340497458512222598982157566983069687063117840899720133850436424812212947427559086187204340073295303546160348122502940916595967660965583181059180958913002164098941550393761266977046354770842045643578063190483538411409353765400288653808932087533867179556892849738111001836359200340823884397426332983916568008484972591016831439328808630476781463039794910652131482023254722342915822112978668252626741747158161765911289835655625838237743776361339113510231493379387566445365348936601331311132497130108149214936080164636811260188142519332159844732061243524894765635167633762690466914523832086138294610151363475430462082004890684161724861903264410611268134468410427573077609703865939906766562202411180949554229029658668725720813739191586141287938234788380069076806648525516048878971019698972342468182573549040085522780302478815128537536921675286685759117012167605481210362955924907955384793790132072271072569302884671624101143556633070752022491523597284028795372984962785205080251307423757214498678567247967636483073032830027833789089283858586630060598088835876656601664169165713527759843401217279974292898151263130654389974689941572873569830762989529334926386947842928156797164445669328962289813599490340755503007134147510296986248035478967525671058075095034245541848628539774081160832916318803396825859837857674646187965974089348728941528207437770127101543301465133515631959242149192685356519600070635390429828576570344302503393273003244276104888931522086166513290544828439910750636934378265121371513933969422006493391951024410582632127021662975715293073307820020006751223223528262935943339204703796188951070343288218236200311958562278920804416673356170903132697959823532221267443823650247031623282957759770803080893284419115591187877415079817666412969058046339349975523275806432236259176616916280290560315698216133862014698679545636279473255424185804097753261538497291205676023139244415990254600624545715246497558562707861754003200034214099418380480594582467155821517555196139222055957383201885735413916459822252284629459280881330423203481544763276610642070749796746033377611641093812967344315756165557957930318425513704893642649600047406909445430927422409754732746955940554125983906565391923390989334047845557470743067564239577130346050023762713710281418514136487407566469199722552598128901458419743791713499468686080059479322661747879874221968882678339610652620422469446518637106769023593093420825341535611021017152850937064539242555389343978870317947425134072866976551418721061913224873135331660412121251529458209238222412913642642678374530053674387900932915136714668547763456170442298224691617024659429495328639816029273451144895618316119694699942258619409303637535204353140582843908999861218164441226543414161313633207275183358172106608479958622526741255353485108006498865690114413955253098748696854169634522618957573506016442054019018458460111216766907785219463452392034772260472690387925256414954298568186390052857266070490684104855372190109128847037455733434831982226490932223010867841570339601875623763498853688246129392209070577594072796278679827808092226133006934060664013044834411262946953077561728412095327830908912739453554403014995381950281841279997027757245112322559481662777014827674927567312472596550658393186055328780563605612759050590382621850233416520268378642097939163661688925745599924476235575942383683459294950202111935827690523744209348633017028614605183794013138219811712457280984964578230710821848797889919148957589786458969112032905350322753717522635632752018704751757204979788813244379584333458346951419359616817842469921723904613582323175034388172932550426846493518296587123667341237589712567713883800519821197756908217806207539763526920340958538271095572281737106280625213522633313741132960445884680092879571087751888439174421815218987423922031036689471599724034017734339494656356285269543223723232837999186144124136351280099683884873315690632549025320881222521509386899450361111420219518116266292924272219645125217776930397356037687674971731726223799882497025865534054544190593516600222759814418415627706908074015575960893170082009810644352233332957414596972016727505963942709929631228719283990840639387334210402318678890406475882190783281852972321940875977124598979372518827842077299443179692210806649094478902088720626442866417278918327236023021867638154928835775511451505834585549640924846628009019481969492079234342013637173174423259023679045349471618338491397491741867508600262039987626194152727995941145510291886657426666595710199044383091505770416958143946288545429854221023274800922575773618789271451901614765636321278887337819881542721554408885839269057670122105307898253180009020783489669522747005901359678994896895610033865018948303448507258370231303328765270915982602962116909982884686842817986803109627067882019792399026258313309771635524031431880850808401987045542555254392115532643551031967468534044300321896854461366271653003017011364948082439012348842032688135052427094756703684805722164105056987381323628649555737598233242646451508988416703036517392000750917141043373444169995418237307657049906315652336904589273967690887833740106382686520495568434078823670970424732936495127020000149403842409160988256327350276885254213825453747288009717907569026923485603964932437419876346975381467098227897671944857087088800694154980372065045512291954584674964393315197780130651929093131679241220313305933864343787614071863430636018884883330516346399250273734363956096275672524829466278843902321287827775836497739132177258870751472201897080810518172916733651176216535191713985573593637583318277991429562576660769472281406044990631013635732925819860115176336778098457746821339557183832382507113122540824966628670176244272950897814998470522641594218378704616626674620367759742147911146456553518348866464071490018730102175392067278777548764175640042409986300744891768472485046279050331967415455076652366573536874240312417946636392112639548570270240472654468380582215526106144634684919842743048140728914880722354819753865275249226713198165556986279965500699816296193977376185010407634123111074097221709622554800979640064387277418824186358207388494477102082470203883310217698082281382226190408463924529731120912018452177885868077182456158406348721194620945627220925852789395452940442658678488539269323558100812252323519109751981567124898961231621510194758191751625063374354920664593237607325159611763634209232939970324323747575663283455630115828107395232358378794398438821900138483505721467410703280257178907690819591434834098401078811669208411127901543906833872817263729343793973753489642711943121760163536139405994978706816695767284258122816975104878249217111721957441830832611088423359428888813655210514571554517117816826328642912724613576182748222000581234887511408694725404393275149028455943289253352065267773207694015977952534903718414688836648607489622909022716597993215901505436084309954839568423069418205055905285193538583687870216430813923506308430770576966601240044654347969799630413428210715659214562958450055335128936954753845648937637219147957892110452186975674094394324341732108252002793633227562981764812611882274095668977742963683578193612567298111261320722091537778970925984632278824384709309815229167223323693451736128100017592144461513940983595952688362762156587220469228344599636865181659242394054502164245948016323736392562510084733969798881450307601377982888140331381330351778798011410389132906288316944944891832900519127811381815504523253405402595344717803480875535597234364664174934873226010424408412746661107509918737650430089761202250135374848540067916975071364124748147322352895302540394570644823767542573891939566946016610751129475454509169351350395909892084289957085539208551455307054993685077112936514451904080115264531547219935479733420237857264114107425065112757675761235533075675681522403363536498998730171463401249985683816614110374706870315699254180542889968386731865550089321801029375954669258653349101700500716823817334831841114909368664906197988636885815558525323882957397969879645238138403490704858416849434531285909047066104560942328641827205753676664432395143386790646398567944692103411054335921048306369319072516268818146407704609183172975242017681591082405710584439980681303219357734194084734946795936093251871553339983244077190904413336580673419055664880047087790608182117905185358577910097479882745676410739614699078040107754594825521380091626563189805064053860886746686554681548470788365916758205802543591837013786890450275563683050670975932241750430462804731515146645201690204841875155605805219597279743717010693486537431186630274127585689820259066585099385614154716800149695626910168361301204026789866900146355276389833893502575403884019773605891425269254040306897920563889651713693038173619662759741618205111406854636352411308065518707113872265090102085560730778574238886133341874058127154856536845114102218105438810174793818465908318453510466078450489205706641794429990401239528953088119503662265145729148426504833784136119366226736645553020981398237841693954611069938747760486163424273667278660165807774115413461642053944516067314365677934995215327586711193851369299678977309082282506040696130122459066894890001441145699319194231356093919182393142971790700818877407627574061388507846385203024413013732815898226250136116285678404017728172125911097368040287183167686516850845266368403757224055248077319667948082487617228776869334636413983322430946184643646100203344185965336222377948427150093187093182999722485450386674321754775011724412029844765968094304873696168549386841162040209232609877877312941780327490852525303182570905462564745792393690800753559074060663294950170737210551596185750492563345875303811740739923592690004610665126881908396834657849929619678580252316878575815176724224736589730368047385915967783814522264377087992849902774074799224746152572984262502282595040192825402768993829622205760475966057635997360508425422080495648659891048351141330809790640655387320889432326743392623884266155602317412071080561227804841134353826895932114745497545466200226403611086793142377832589000042931718327496722731378863558875058815343610173822028862629354830101586599766754833885808210963271161906621311499389537627448285243045133251498680604124209641320827313260242951569853872831016649483207556375209215547548440897314480406471832507168336807832475963561826853423328044540019677786922155092618277054947855053269589900975229685202790387371334935889687784526561352629988755172799610330146124625993303903670903413995044054168976641159172175214553332310722931754641360738571217078950615939550109629225121734956374230333736854207562475252988696451640769002195712601206726452967988014531201918007423977066306500552959313621871407908774792792294293820934041562974037271745678324948618810696129375785304236316894179757823323152229983195355203083384137363356386446427034263283174720845942595691978694741827193414870433980366068944344240227124670129387582236265223065455947226747243843852281874679965085531018761277329158171243315550491206002200445017563782856519810028997605370191253592190433468270424903517652459832363055962428070695294105042423735894389107798989479854667607272605857169461478208929350338115390519713227368220195969114191571621151308784876246808271654824131063482511764441787759916734583013386570870114606468127504495654255600388915459508459544143553542424317910601395269242493476328235861026581824473468246626638784058830606393436294732508180659571430689279907039696300768785764862586238565163141766107395124597734226735317899614436603066926153987335594802112039059128447192479516199121019565244071974363854920874350811789406316319590579142573066725534139238464725137938605413300528465732718734575778508499581386305837111493833763817141551194591472192366657471604631204700245280605579163698733957009357536345338536076966465284848022153264895292435203423463763260840300809963541691647827408849546516783686354997773759411410953435796986138287509724238275581923796185372350866022663665867733397677889383886025377601519277419025806180617504277918383714338432791214459839075431561186060057816911540959636751758182571306994015976693306956998722847651408466039641132511001579839554237533604618421462828446733706812732676543866174314866900978973959758809201977347214816851447546423088085847740564856983061324404912454954167195424978564359212205038972203180657713150351961844512751361692676544510465413607066265717359179283596271710146760354590600685975742433514741941597255279293144626276290643780982468596105764400536577385910680116591192961990724306599189480854160100319409542658223784283599977412559595706926470848915102410627975638896368999535695757495223044411547564319931045652642564640527999641309659967635247658879514723605758734165040171696526397980382849022752508257972418445979761817731319484527205186899485675434101189994827008104185426275281598540636417013429749922481590683993565156670698089351986155134169321037104048849355356793132535689701324045007161027305993854111123636030451527070576708153235800183516343844045897921102532903166304269292524433140716077346893126981081313154692585921448045723518734330785679502784409238845422757731784051469222059862773405266791838897323009824055282886595777823283419458659362441935271171723751184033318502789311392634387313966433374957978093113050300614354812204795829710646182034274733010613640460107468160071851723310944976989363880316510471329616917892158332778680085495954965506445198666879624163892446879720673313528572315892096725821152781334270099727946737177888008849902695848452797650795652958554057604501293042531470379808781529428495076678445091021603881561555529179075456961755577073642862579039752668901281074422527491736724904759654619826295406559653020245005507078498821095116587239723815774083636477045571769535388106517349244229591492780030483501583043777442106942995814728280656955232042971564527166606451106660454849685111606304201121014212626138808795388288773274116232048020608196252596530042840156044949368392114219494626905572708729186076352590849332722745489533574650861481829575186951135449264357881175045246202291596851899166210638121419975917348563696711998548999740667896603913011054736980872804882340615474148963707999076931799151229884816235672904146658073103108135077338715948702951652943198528977911772820626239550289980886279606164570172581429085222484237664936671819791850887877620935586921121474820703469201239476170195397088630367266478511592016171558458910106501095668628693888976147749302672277804924981348929367884495973428369627294823199801294922305702797878582308941622580329199393777699860684877188729745755923801617000254744278982837626105952154186485673693524090123650001792208792395434330814747957786324242089310643918996488589463296881062538637787065798103901918926036086396333460544783183042004039616251247076046663079387199978928454664630129533932231063198573811142144275596342533670892943030632450275258493851593106101836820133440270323809771019519886660887593347885217969568076510819041260907789245867661375408770862747278732259592438302211570131158613644802924695796557780578696638533886828121447478507490876117617464888847591117763150270557920924799269365800919434110758949254893836969021655737094088014650262902591697630605427606441043468672663232232655895451123467235855053955113131651969765142992802698291818605160833764629150683217902657476083496124893853792240769341181696324859716952497169059357853273276775039214837342299887442467287930509361868516882420912702431242687450115738828183609763191376733802149436448349691165872527303134855297584733385275888820563855969954568628352805396345003612694082529913223667088941162231087953980723947970715331857106913324598970494553055564865660954836105189458633692886787908045016866771726120620771068748490588769413951582582264172401619836537416369016159796443067321637309290208835812447961740361389683280928395362455373464977302445904910472930598941425431484272832690789520429766538036035014863012024339641751165464196879377664503915884826650318479023367280629043080935854431576131941815481188674688368197000532602537609001370632283612316012857926123387356625003295471993615489398779850082211245617313568946769779783186743861879468998326671655739731080006314282856288158508119963706083856337594265703558488792818851405650293771928981193907059676865725980142038629958716909799540382784316227724000258445077248226556247436598697478922554586267387153407025116943068525584028367926288111356313874891349770494367919651418920131782010155747956958867159810234816767255796819612074308669126407284286642314031043638813669822474007664163738118397721630369168004645288677004888932612896539360065711825283415308769854442371303388940047709914396531557082641250698710750060504302007315992139720080553195350250422705243762677241642353496259290561737418960811669403651778865319237777751039431667187985733669340941762545473720777979664417143603851340209719332799200393737795489613458011535515027028674075414457117477821882947638127175674484069902043093829598916010946596912286162963581564433943960905269384281338579697318135458921592281354334100612594482261977799181820415890696330247949181210864043586726527173620426570202799412238879486713341463429680126524307646085757998346811653212851282473446208239015504646989409817723059881304917522162064936026985429855372436572295999699380432283871044155522472262079601703570218642471245999003813420416124819549782862852547732280990274153258711358773638934024215802393052484597317115511528320483981809586788843096795116949866995339325699942461979869338526440975727427977600351005470055656065630473542084323618601192660722199788105220955983560202672187523320013141638351480817763965573299048340643086564587074231929080997949893239814609948006986029255836713177323475927302963406407361639921199116158265950704468215208287105375933329268684481553316102505957265341858193169490881801908142474519874907393412002027111959656481567549336577832257411662057578619543760042387574973868564280159711235479214095171516182183479059221223447345211812839433720911396108996930151412476597475536130365287181003459056562148716437175932581736588775143864783225220797432896045451930270574437792639289877613630174524438755054118983978597030523768913812793219377039797446409993970611498589562032640457734228992175243714438746942730624166419449538041102941220952836451627631370506896254768409837582398955280226818182677374239972329362438876864578115976321575913268038597376531954868246719136172656649261671969442151325358358129801858064942972841032712292349610354850142783737257698952519010016149944785362743112982459703191893270761781093669721242723608113070677657883352065738235813948658449386812160323899661219760691349722853598344338894698109088578447306495444287352318208703370964719171671362862635457224572602249982768782199312032144088131727335498812970558564928142054375118638521317394570796796883807384397183087746991028403637965443515021267907093571551355139447682945534684400402101591341267574220465171397292444447627843195068670139140909140310694305731742126495041941116464257405316602357838724797894418163594676380670257410853925848545209955486674961015334790068058822356829513557310835916012490593356160241548905167987592535363703566985267595522451543666161692836462493212567158474278983487635980281278420989250310504458567299440533405790720593624827576864824217349148818469270258847306475438864410947753127126541359098800226598565947173837325727085125281130176409789718577692210107597423119126448171225692838485416035838028306997142694800601155274101296316264955949114150214654523439396953525385057348067889575686895050664850051137303640596192809060232511405129171747432809005808953474442136558704822213428098500025563533231535389305640882369354707909638981996757618381234730671419150220577145112287420234576501232480813510475652441260799161130235828740398248448127293732839437483069438133221324631517002090534756848895173705798748295937887391106897608986432461886622641129800366182200251872483325198808666284786197830135347332662321512804356999993421208815919605283463517941206698361356924549167209783075818678346803661452986967033845050747127782752191148701936973777493293912447486979799582261547025512597705595672557656034978242088308307696086640918735187243004625016920757485586302800922502970158690808333566294552412113603244156252091990026164029391332116325608765450320145424068169810962787667962928397590286851207048233960857461771319021747788212348704809152480223697012802935862783650057526425866393198409459072020641512034406138632307566663628616745023325102224947028602078469600018667064576222452391721410776774703740181810897263396617139829468877088498757637229137525062496936595011816091320303728044432929274166047670751903673580429960088990111776788396908565601933495978345125440995355596177841524102002649158115767674691944359483179608849748785994663940136690775567864789127898117208868170554094042125143551585873977284781882746239009662845373072449390468599358498674445701298680429849928010939007870223633700770316685869936738637465495757035988800853475132535364661485607107112224219713375486069959012547515413902461058021462522025513125930097185412204430563872889279183394120027922271242149395944711770404742204008362749363681188614597797217823804014576925280486413395315883939776104566774298030270035872307437005132922249371284997815888886795778392173430812327504296651360020372498112080227881012670148380938169661728604225285364673573152468925416916300678824581603207490838370622985423367900154921649499771915482962782764103554453062489877852567420734501231057551232526879554229997631867983649385690742692579347705103927127598769521464751541733236935586627816664576946012827865791632761305089158956104445794070319182439607026433458604228721247548791227626721334650607053089442306163096887179730554516985122296754311097056801811790928293183868637025273396857680985118200324686163295766657523785263956479874195580617042318374171132196441141483459399307886779589890469136836084819333016842354866750110010309435013962103466264790623337519835886127376761009820510722475050957178185087385703661010523427957297375678892734858047177236474726351745347529450320974646984356107475285274109830848240418606152030997039634846424971019367202421401614139049489523393361922056754976846552588405047087818111327366397626283044615116988832709332064116273054338851796369198010588965582916704695540195512942120097772644212482184179056959715797546011140316921962741772851391977574024913763694125400270052397543847278588864323097649305869623995694248135435986931493790053727903489191047688727857436346703898164679474219006873263623356232852768264365445101164361032305408737864820946531179964476961887638165684807953528491736993074866892650152842402864169549298858754417013471228289838402683622886839768746961749095224778819515323857798108653176140908447793223539733710979117105466977485880044289242530779340274978359278130184299314469655357576117802022463410361403705505943284599875102554602050665036489121138127663498613774808400638792938171060635763640261590212527348016094007152408609911098082180537917440188268987064839323105543061638793323606000335592421772086101155240616189973512378798929398782339463184896909018995502425788349281160441660338248094752275501505487584837830634538880318026310652126084704264398939557006813379836068379157043294313450070066599931596472597587839570351713311629771193494143069963982880093611077223943037893389765389777111481510195978720323600972538285690103539954228473583510568252495770234542949692069719597354336967014733396932212513225317995771655193386978877269968780676169353204308659027314775292294365914456352917103317749691130829194315571876353283817742715656329457424185289493351216781081408706725057610270292731407158451698068563310937103787128362486127343460974222195200139129157305699842945607903258529426520390167371239931756126662552312131165700013980357938040296430739363546698944394180230553017124952070863280201788227666955285362318979928766594822762527337076514049038510702927385488078735272088544232742872457447427740085081908379071636348713027281638193030773066522699941039925027696956454049250992148513564506795168420222105760333186932627121851311010434494417063814271801971325964845825799494540209628373770198885820772524477260289553203734014542333356427848227174718074827638521333216362049555256755280109902780152376032067751306754115612218539867789772776750335296883820575289856436849518766870556133271115303595407019939618657834863066245086600184596263787496953488471135413522225781419222739789574959280816684805442201367157844865491121903926732345955352737244130245000318463967347202249886254899603790598389744313230157432827031911030512641173980834554286575668839899139189655129548352892939753613885808176512660920356077107330995805151685614881908302409915672980289960556413435221265957311763693520394972806314567788016165896983669090621598373222090527208879916201777728918874235186020688358415685119576274617998929522305686983431215315908623865356888692353303504559953083283323818950173534884819709907200158915618846507878581330813310953150780357734395631201510626699316147165603468143042855136324212224493442185974351244352922034545092742237458096077245275424333966257659903987710249699002787141594660338877973256419016763397783433168088762237452016229857903326197332845233023320261108724604857197703016680408956109664869235387453371909625912518286700160572910105546107260235431767872151923474456105213481538444947965586445661375434685378778586146275864845145697427680474914313950133896100108139557606141371749580370414249314543989849359794146695114240324030353321014228813186443388823585590484380603692060616124157740831842678232434684770502306548021137094483550279615231794240287154437526286972662426144539596421692560050335850692317435531769158227128920243700920213916887138865217341209560511965712277364034252916319512798164733416903775401033001148612020128567190287310904316288489746205420778326477264675377003830039679609937980379835347954883149061429276863912774054103787664887449812228945778785478558300026447054055260001780001862324905817888465197131517636665991014079569025511997446652258663329629050516261092884461323459003488238610294902919581165964620919748170324153563531147422406389384586984178674842732546295330419695805691931652984076590722596650729977758841082746186889710426114020561743259255714992386449240577801355650313731727231298939280038855297481945953656186863732343873941534284470027824539515647928955138266973434428655540653590767626424924325168753513261733740707445516075968188379262936641914286391778981802246575080720032870294450708691851086333370769593928117150517974985439559959039229020131507889984744892149540081999607317788802721633405196275924959929324574177752870103834774943609056160731734875881729716736143311959193327770346396705355568478271418305446002861540652039794608436435258269112378301755377397448530341255890627211719244851573391322122017816812940690587903379669430937474680800429405566415138028676570953973529438366376741388803537862055558398953636265720574495707074294285499476507507316859548774632879955456063544776023770389077893661589255629913612095619861704149938542593334085119476227826651446014563377789646197497017251413175035646478180363378075501057056492913057747123640020593352403115782231014662609241910174817011106441818126590342989078953373018537143190905233781542198117653020690960870447610854253158954497063787592404459587265759770284190110173524672993631673213766902656095294586414859085444076357573461930795695366908882152119208215555783062870338042918036322769791819103121325928038069721472012206761151238477416583586381874829534991323323329466810606396659233053357478521258894261766817430393818165858461472552453002745098077921537849363258817810386983306143089824123944967937568583655654697770078951971723553945661157504210028554769735254163287313975116381613524228431552237455079640592504824787685805173721413977835674553849252949699287913648766513562603542630510230151252914418739309831307339388625467207216641828125069555807366815435626392245544477953187425715361522964422310715709606569436594567077172017614774713691784867551480287782092683926565390056228806324232784235020590454112632172467995944013603043058697464055016340295787862554442647770262378383861820415714449553636984485078155471876913938157636899709195922310526624768287380808583235739598020713982710366912492308553924680762048026616891974898668858364480920212972980244432305500218633893917579998668601720925791091811517080529719133424473255345623290460704859672254440100761185164996516718486139506629699270649852540453458264029087934714232098265154094878272539402151787619666442624577737237502884682884928873492813364230862119591666799531277547002227575199486556940142895839123477403948177469188259577193231073954886545797408950057376397439816102644982344281858021379475146299218502436323746594302941702039178604063473552924409403826740195532620371345125720580138990616433826585408338377731321271788896442151498498822610190489224044951392271807091716845043818874589035270430469148364160554226529412477135666991139528132113233552042821092566283140359670161174127707712278074952510807065343165577942863942218210969505920153148562018683839129866112244135837184247374765189177380171856524161237997053052199730838441413030264074190119672705058641195254066844063636663866515211469284048028687620055810631803544108507053165596430710698997088058041733040637040727353216290045101929814962196767395198290349280800965443759280884059720611298460167924654975074022949258951589089055101320069032846026176160775691741261418413131420032231649082097019530418902720598129804560487678636635357374591510922953613308351224008556752579800809193290480463814076045243844883301660922377541682151372047473084165972204479089062302191655791689865618366219497770952952053849737879588921210990523181012396882068823997178665980335236370505554358333899732855223160124053851625773722180196175598976987729114200061128857643052646901240431709728656684105178082773287193174648163780126197458565079748695923544743730553575343434963497551288885672907237748247916142165795029545450747693734032214782582294178969178163350697157419042717227077181178854674267286546671468605494660992887005185446140048833525281492789530491673013831134882640558218806201324206703414162737238038582321029724607856726074015257243903004999301774826734623008593904515131869405046292963486669791695252645552312871497389922148836439354712404260543091380222983065102241469990283680620944730964465600996504821805981084641061470367628457676415421859931380960736307551517441630116008474676118638162514145007027133639951760481386120470999656749823572995994548825707270509800487392321803817130826771201619895162864453066590552710385637080709994398335907160067460064719864867862681478930884550761239165557566296165243437390979125154891962417375356466080325219004946728619638858361511625207425890388634601928659394954131299725735512064956876478456908454406089512909241826488279839852045764262611976080250694868174136562071657644176906719616574788552256081201248691216927895780146923519362339572809109350584008792967680558189371250959060409494366971372178711647427913159881742932891522050554804570106791953610557250556118173325418464962608312487905387091982772063835724555882995200712976958396151290562281809959790577349281559674244284329258460344938540049277485325013271666994388387191974975424651687165781938483533497867223816159125871172534474440268972613827571380349874804063710066160556263999120118682619956853562781247454119380767440239110068549788573531486782834181066888092872348230758360644289262928675128583667756762089505945232542027197306155506628791532847295921481620033889922266724226256484508380971020865911286187619529343660435897872325295427193644531075743120174148380988933059984801213071939557314285267037406149207058066538682866455658485673021908680393583268188822526334022024982340719829935713547973791010238458687798430375452928503424740393419594381576465616860336499911092356440501898617484114432637136222735095210863021122739980337892314583906676299736583458554449783392154747408575328673913087435332337013847453704686179733491929133190994640137751916358554665652698765231413915245881491726048844804936118401399832550969159286853172541946501079399506500991352301660347872046959508826944925830271958318592610627224444480758605252721284592980585072476167080141111827579620467755481119714578932468167970880154121060657928274168202274596490752838617923578619886279656989418513751705157483461649277797528552118879980000557940653383736212775250113142596698515946612194324371407728612443997142242923672168571037994433433672656505968508743001167987892428257954861291684402858763035174892272980225868040166269150714115335993458874514491023898705818375719876589746736504886708301156089712024685184819922003158136436186026777276323078988833146744469357455591961985534336718315818270122480995349352276809728984503854176169928321564885575951630264126136160904374422654306677421115152703545494691687678687412818954936848770617509503486671258063904683670134846373705548322612833925314301708804553754585563752312568591886528721066062037648719896328484708974465999903690584189994164308027849037730196427697581642465158485448947769819464672606742418567984508791970782644640196100154198020585887215261795045978681419015704400977499485023902448933290547403006374744401836818650129852867035749362950391987227919859402761126372693176728636734537350916977065462890000003522164692370138134532447562451114837779340036702383859241798443401451238838983021787248504510471490964178231107790531529625235439768738288510709813179531264757086514447411679808384852710004687039574381010357930031871456569807034861042658619193939161708468509218340830552742064292412254967491354614834933645270106219063760361338103967728516888834014158088465808474356998276354774953332900797288520264304798548928448790358978262765722732113031921822702952302352953607619442775558609954968981512214797587219781503194762134925658007196355611035207065331288023612939754024809653981947278985366284807898990101900622677608285284283892474686318490122502554228267266954956277277056283163620089164578875494061571319699263307999159385378084895257738826657706232883183591248095109544264686008304028085743596548480633727772644601796566805788880135458361866608272342769038130103063417376131998699743621685673706570582758541200088620096050551350902072342353145557404934276840522002447511508068124308492794888341386074070939880471558498148244862675059018951279618500299050691181436836904043695121256847544567904363636338217169707963498477271440447016149906869380316525699574698552857677629218948856863289221899965333801112476520922979100810335245221333094866735091931597314468947597998324507906408167035748601289017859724218953553907504251560966881676460597408845309595972353673002965633161328284514786248673576363952203555995708849605907867489983130467367761026616344009643497414571802579936496564072745178768675114455746657731036465613391795324808661830231839988760728192417888570533323683309318389052326661460632745166150669618310264156247542114417394685547947485031744564292324856007194294496189277040402774607245436051640687675767979162596133468759895967830447695856733562507446873930961687965731564395076098763096559501332337668300862583158771916705146143555955169303900066221589442919565187446699387454067203790477806471443877574527365286813455750472866227854864117167881074074439240783063872729242369422810295863956817858910110878165640759822790429196751770971876823194385265277521974859351999127135796446896787490095541900160384080657312231366879763251215017619407674017471035742088812080381416960189006180021654379723045798903724115142987560989354021156966964484279380339146234038887517500290759534433027371215552468685663611641268258421813413011172813495424813154142387312904595550836529389473904741162621854365874892701923600966335007667063603987790864495241812515880833544419715925484327271648637139534053001110393535309693959026129163622341433204265700050935208820321553212426764005799982422569921829796143714311126772589804253791540676223987910325117542493479294938687359953518561913653848996994434207913109204923960869431775663588050580962928422956937346252458554742823393439678094362064920463068394111404205526285598196676640185500315325763961226197635473777049504549087691752080752116392790140949571918259058277631391914793309475697658812264399870908344151083993718066372711841016042264694516133803468041966290562348688937692854311238518317911973157991523376617318610268031853072708508374438984947186131332263865492120300509001685742581564408995573842776288317948067235625620803918246104360462786681998616728030206201644449357535444012726164692051539747026177238477106507968607959798992171451011016006466716849068636326366428745287300768378387912208084332128397252849130442602310722274204905981475574311526793141199615382177747335270175846396914712379242580407620404995364111144123551167493483084541776392354802386330873426464031602547956033726866244802309019391273393759916538994064147012923127162330553561557922122852993244474469853382338082280155849881169979818831906174453331733290795708192705369053993168473124030913362405106531066225852746863925182266364496335692882554898798482166517814004185634491604523664156581393644586576505895032067094242683776898199418500456232068332531739447167542798402235765264541365894739667036578334479152523699969356850262698539727483453234523973326645600951435506656687221812754091429650793715522615259957124494827936233632323089144167625385769869130156294348332386024896956122710205365923384284033808036241006128478356946711588642993532737647239880700647627462944270313517386258692719727978158089394121678104216745939575577785470775993684415203752926261150322393876455322548082176329427141201974118205530285692639301096272121144546678747961333468531315173415041669512334064098310689491312707675048309734704262845188434597304903494375342058099480426146851560753170729281494690675194822696428040093715860698349389593052002216899675747448367633485535567776702838398091260050952814389035348470549895007525619594351444881569012698966996397197126683486331464245676011767256404321871086611067427794523141269004330466709751548080143553918488319652266469869863373043252711312143363589935631207743554318885351877353297991511459691439052536590922391304908041472897692395923865172305311751127611955738140270250457972588566403443195037083176785038485515463767065751844059773020430025084301816386482177701973274061475655679990358345464832490538163083012441815032122421658421912943856783503855343402686029717699100034018274280982643702206078012494359524237920064573099410314291222734699171112840877380939415263114198099510220151156428254332247926300523182172970976412991733851468595181970682181338595166438140333065272452115757729821168165959077019758990214999950538558795478689517722367448976548634212354413327869782656627369926775217430141928643723979877302230380290310698485425604955567054042788093302336518881361380521093440539069915826969651766204785030156199141487533399571159124681814953377264320335374374853313606573066894231925678664927605066037297428400207505330964494486580359448050703664157867158144530881992010868782338770820343973421582001894923892977228697875617403889940728107046030523322526864743818618856495062219311414848970280802236082648813958095056989390953500687177884193248664833778357509618949005154672126983540099394507567234438978852138980565724314114079133711015660678110146645086204915817967054961056936909562324994574024372470944271621033393566244541269544494391395674824827727041196967797615624282964378029932058822924583796229108892992988231837179775973090283422757665462847959322235641929586113855718118093094070779863505450151567551264329288647673468996044575366742938572995053559066634758387115448709262579972828993191528013828319014315470701629977787916235240186538627440271183222173065983299477162725559916382642038455315641864289227674360443459594843166901804209140055095598068066940619158472263211662055795036015476643661991897954411948692488300105792692804578650657340331537257729877049287012969959245526341038781323205864894021886203727240188654898382467765577434750255105360806778861118712789923735969285768337984190799971464769036047216143655460112805409029919590452094720345868262520108750372279481578155468112612690131223294932657373664905040480632038599309834052354138223811837831327734058393162659207260324997616956629630770769616248254064240286499823626645461442802653226463600685929562592291591775028879785072155818403783696692930367571437643818926440063324285904630604155598871693918277235984055143067799574583571694533718687591250594552059194012840665040004198215627383944858641757773853894369391632147215536955598333435292791652953771873902199609695308907657617094838831546088946818766860532129114077759615849649957364435808299821616946221176690871112971517744686630329948013638048389596551538355334047436757422715798693956367669982566089254474831320060312423675761226317498181999399229644959646225977056291362435964560597186715050106690298619519081937322351685871526685251626973171535640536251005042419059856761531891394192426470601511630679998356299000385452669095517039475843594480065591777471561756676608007415262379656611628110937694922816139864937727480522579514187310483709951105446593605511071109391735840531720763132697757392080403306337420942714364762900285535311495250536718088466631920538454198175641220990072558036989729139130558286532769421551167002864271074665219811421675820047060377656910933185444594595178235059934205343014672947775878950783645594979935317220894182075938225839346883994671194623864534988095307076532262954055682705011787381689266819571158617950092831463025332925528834931869950625260255929369898373656317637597214752159867002578299711383861809290451669501678237641003968567360408209581583487309219495264567230191619380274489149760840910226528013486694622637763917690032202841278015040344986383730592512999066197999494490267206669748419411569411475285071901457545241335327228260844232390586402628481793672685746238260550573328913501010138323717914266742694010242794940606022311638656172977935551047452335137220736022501205725332639256152074019584106473495696469878018182880527641464820157941438529810347734276135560842551499439593979339409405523680901286194212354189346597323504155647462490977469449926870164032687645169685581225196289507557183634734139965439328333094785716594453824572038084158064318599128387314508617828473401107631830662143202163962837029321128077789221304115887905990379836236291289158791846431087532207141439755127535502671985584182272952223132391544223610847515257329750171473650412044188246148844246734096871772931497442815926290758203974410728761324603681850812512380275403199362912282270940476816067860153164209867588412573219376330221936234774472714308030639546943905801415164352402258953880661977423565562640174796612955073614746875598314120514581697151535105756159997241775926773560885484989438299706706249187889118714558049785960675421918691044478475344436761341490572992290107208316324186765122287648200067684641442833469997599141405128626595579254391644379417141126647641239299971364261283100556909072588559608147908439661320246860091503689837858626826117218536748082221852212572154180470406279981420741261978598440035188781938686406759488953813268468811576822097010741810064195698963397709798683515045461070564467440597838602891231490997607127230787853766467263589363462686902410280143868693818597800166956621723746524260857397543276436563041136412232879977290065546434118719074183223249781756445930844533095057866797826022617955054708033962708751593940710141049095877923644745995327217276495068047826150080936343129967665627001451148021294362591877516382043536901509108720768086156607169957380436164906841266680738734425298081872035325961003504729967247905101077008891111075043943398646944030256350917955741785691451420522160965089141978102859711665145534882850670967531569867626177876517697779952628929578466280080473745538220502858437123398394632638912034973271268423584769613218191118403879832044410889196192105830420955639940131977513900351323570909054364888028013860478422445230655033352684770603752879240128520170520636964102149783288987932245514963842360410050140365625471339526995412270750093982461926979923094641106923348546568562233765649997651355875128247541957835799005997859417753026190013609383506678177197317679003966113225818964928663400400549925986840763538783406631960186617538279872119618452912206546606560377879407944272219525234035659047442576579560309706485799502950515373399929352756599697491444217737356098759725053525347333908795510415794967169332785025262641648014785371064512351139748601572809851126917375041409910849281542068745594969314145944112378841615024551741816346354387928972791928022525911483018915116127355514382287138914330857353188157320669135103530578082691556591064141012083572207633218949553834209367288950387838591345138369367231532550786160898031323831851459328949603848837491077221806422290294910954234429774486891347290254542813516474338869345064063559520035864952065195105093024322685598112947385082452168253396618244350516484292675252488437371894553407491750432963567366101009085322730772893445940744934276463399243060940010663263606864741343929883962837113002535703458891581606143883826558643064492798181701071741619070331282721860372240115317180101412757309748106971780714713086656465886007707249745072345841226205336910788079058065930355147228188547127362812784342392550959512798176810142427282573754055693857789476177879032873744102085134393944904393371359228308171787872846920691393384339350315796705614242718225433679794041825939336661145433915144190490260881606805665275507842060415052384852255698742081279940838394774635338536543226530454887713183291500998763574942249835214899506777223192482274950416607807473501206874606758612203511262723464855702710330782342391104286815690441206873761616878851960482778600099059856251398709214830482687898339275749028012184693703271982199690143821494077861857035904302249386218428893403730207305465601388970611434259649753685268047787703294572313733402386987873664219852090537883341856725147892627982922026127363089377866849753068953759463807339820671981475304667791504557439691182894500140914926981782870933357761975195459587629741104167910984444010692322924581700981028749882130426694023470886867995187857759826631281097928416794621274348407784516805333186379922934364215032495866980056804278173351144981865831715676236901999692792048871367600630190793940175497163889200181644813388607538825607968726134157550048149594974998356116441895663712709205362821851696813647740837066208926195172399601573546422490893420919611183723075288740910879097879194918729757539963958484833700247534810814418110850239831048235547917404742032900060565320347090194206451064774106769850791486950214837348318983459793801508751269970485047266578360409058295809333846199591659328220002982443220651241804106329082381390162565493732465896620639580649588974536658173739323334599978019953496736933499504616112658645052436363463328309549475959983355028449915283371214106334362219609095725789619161944919911984457494778067896642739182018627725845771823497957760110485557188043562992424295760425116046411809754863767700705183626418347424148765750540040512377572132069176568926025006788052528129964708048252787233163327561845386649473842436094265953100755763180802451982724859894527821327421819672613422945006179027382625500835038272187724285703961297870345188014723486097959473087452738112296352986323183180771818166730262036749820951488306489795224042061296260446278468170400721894221882304791216028777674694611864544243403681147719260498415648628463105083043180688853492821536466411387876639646436166717170946151814809838275963506105071196683652638916779404381482038857444980914596339296142770854821886979230820872241716788659279716529074806209270742821366129515055100210119350864843429903361285272578304756525309713057136540292571236660619597996022630496483627758204962496610288289954203290710032640380458193493852234867364562721011127209171904328662647296799876457499237333305253937370859337783723082273815553245720049781292429177845025984886806861984671611955901753249359697808795294443306426411323984807656511609627121824697190635148713755392124131437780313487396380734173319136523192097700726886929238244238643702847561237116783611827696183922233234961598243233677762812463584739035112971672638106954519616084732307968960344878189314992963069411480032495517700121277083122563495536445118179021748861267153020853064376456534715584416500920852251491781088877299406799935477736606237719120421213734725338223358862238276322006537962291137321904314962462502530464756641638508383979109324779390941761514489923027405405868362114977301535152421162857646488274280280540021846684750972903179092329086158693032458868608730808352198891133236043008758794624699254441692642313656218885155335350613213444565209481609836449765631263188981149587076532997164043370763594356498207135982178959288444945321080995511568932682610667603751460327021010615722191428185431817322532315913885274886360145211820444157163856660322700007570078757140917182973484915024320497137038046748448419900021730342620147638174364207976423037790852079609445042575936564441776319391933527515296523037902654292047462341574624819062416663700348442115800816656363602445927768583744117766816489056042520088514017238462667901429293151188458172592490832561739859973161916300029971251114027586126312644545952712345726624939195365526231643994528132968088586083265348531887439056002171678313505913988462914081413066859199099862022004476607938596140495901490523816407801024938508149275335065238338170626425889768333816279796152976277266039857142899483357339851991388865430931733296757716838543685318336510749693888612584828156651056120005457352150731584109633945716476577440468041438254665368545002874719584005123364782630345910664531322527796319511603809544372399807816048711995371884686259821696362162441418819409927309927954863262435583302374041068403422286699067061465734052083037157533663847876618706223427296211307037128173208099700645665228574269058496257737876922121935306031073936465011782277271293600443679489015000118486950002855510701758967993703826180379974604004211636579630978599828123635442206841257807484034708484919982397734689122295359260809456886311559601329062010411428037167383694517413107191199216786768351115804932423455162033796432141257600521183506975383426283897023081576414810442691907707810624721761998627090314037333966067050213963650258254680462515513395422135428706532673846950301358704914724455207015521967308345172514157945055357069842867688211451929603763176764183229431307973546906399127854319125460250977928896355261061813339493304248571126817736060839824247987008904619770024023655401005836052169301488448354811090042435804226167378471595365214297270825192593558313408579782103631386001836232410350381834304058062985623878512847612038150346323656115137765926217139730327299734986314327060997406695736880341256842315339285808530582025953254738793979544593496709144445758845232415809058228774945887703147418181127920221966869511151147436672650910301661341087675450190401388096779847319620845901645773929657546130166939748647351151936942697346476988219159234937444984296689629564556481579318098372660187896584649808258839861884431207115312839338617822937037154773799554940794308742270766182007208009454798007264271393788513877089751557168618482292228680942725269707962060745704350039579250442772497323570534189991752888629650069942550599104690042012797555010184849631656073547815762142145184410950423402534497806598139504276671622375725797246648925962166144110338798740779527165029559936389308954770496724902473133448859610220953128194110609047290232498671995380289912510702951072138717984105290470355416170672925405496177163891387949139340311450622010080704816970918687865919515172621875098653101069959006809005307569884670728676190114124373119068104478675664201220393348826598672702535350498780273469936592802392891782146773674580101052977442010244468588899167002158986059820027452348350616426573940548949081269172213849124092719668054494140939884558682377809646082751816794808677818713902261057703087648077443944640932720209534749644375415466942519168961195415686055077378268565667812100381650902633473185414518331814996364628571121179273095831401466471448193582779465934524796539354848203797935022509136585763920676105633151221999888185063912038136447529584211976374713118287538087644172729355501437113351066602792234395780583620520249956587813893079762688142764178135972373227127491582233204632890954095202572090578768857530729045087444324766225868567490039050478910835226225093150735617128572460795690169110524459618773752471686287140090136204836963016828987233992585898352790950275235524909750725422139956795215822015717014551576041753364525479982157571771200606611883909487813679875578095098264308684224997830359505389989258143313734280022482939845070716554606799584828987744771315211106448986207514776563091894640279513257133488770901801430383425011986857904866319503103571561456585010839072603672901822909612964159399179104670094904421497668142899203941531711425191315942898752273442661842506201089036132759612820414939126832647752823830136798420892083290360783700028873147335292114381136883660817336183936794418710376677856507970639415476701323516238456903049129742123205098527037301651087623346116266214981201349752268108422199239695514087253422183562173080710619216513801034114823038909696855847900474333811030258123524976524340245365489098842261533114980544121044110552680354747002063554474984102841536258746645932648141604289147932174017840968051980844480917576517519182100650901412224636524274741437009064435710419552112536337766604203903593292680592701844137516545653896756606835323084548658743013184280500409696090471432550003926478295425505719690315149540447829392546957174864643181594430816623351140022966793112913521621491753942675660266159091468261278951071056191054948238098802395138046745239372669432602161142963969093165822562627722352215941866229317500405287463973122102034844565286929565655695618235594302276479821865953502920878500069427581947271459707949465003667736524392384607821376060375828263993631909597785207268974141318988793173176764278267951822655413263195237749270799699648870761190432598759170640594856323987185916317133053076857589420031889147364136904364802768802950207284023886077702282704956872600673178347384716387908050379725064022544572068970522090855558991901427295369128895912332662507634837231344603640765613126546876113632279073157175226643616234688668020682409400237529908779062428288858184170555043174565122169770693159731684225610625173629085705127951438090645885628938476413474192691700634081631308589775966922523351734420880066397279525080303884962789727749319317586656731826484286772934206869598707957422160281852784854473319978590201611918824114257751480533868826024401158974482598842910917947595393411439639271925737364651485427902097028105652934903645266620833794711525037490445353223514391133751196507394020962718477598487025939389517007992618546234348958577450892531455001587549575058025097071203840446798367183390549339900646064017785532947264291416169131369325305847737607683944014566417881572977381643174568942555192807988240872562400621943605186270856850359338569002982940034371553734066177383810904482580793526742296810548078927751805965078830798297520520018285608604400931990623111380626454422172946795375876793798520410678074867738706749207822445903707714388540739551799072238931760238160283367322833831720180944673059694900788876726477740995826217104711389755909205986269520863028013684041050359622613874564373365305663383026587601717361545466449174708810698343685775478752734048371092540561073862807820232530470819163985497639484521781458282984732253424296438908510405350248189282898256283226736212324756464702402882709288289748847027128251539187273400933163451169011341240421624096823092844842793333308314715495191562876346920706636967927547659235445177880573185401256481946637074895498685669010026336415171996202973703954416321178474474542732078108083082058283276808580599117043127207341494953893575957957182737698535694876845672198469048064735650087371858557169452851640831902900801483204453378533901782511090693236887356886556925604326596382614592431399377612704812719490626596080823777071058419872133790739518644658225461647568129130048420572941654630569629001871785753804648731736309286068416025570040093409084412431809601238273550193402703219742801981816951924470898393227656577895475650154378850465997449773452171092439721443618086070780338136319037291250778290784700979789170696259092852266549369825403801875674841649660330143828211597193869179359146984979414531140797537963645763530643558211310184212716969294603600139132610893187062487613633773001952447428890720473786831866816094453587413159031931901399358277575143757131419027640131559998073314445391942455614085718478136440495678415778923360817903415187924087514957565846714230117671490216170329278495498240302459010654038839130528251243491364742945314308145553436757814271710617169608893459741404867645357333821782964987898211637277377928393294301980740445033349482709646051667621165876581640162770019149456746673880921122245398851480275596921915701624711655478801664884716081772182541842372921985519657037623217094768558376340390054287636522903041697169105949888266807754244837257259725047194362046181866139154869291941541822698578959876490484797134840035287004475786187042749934771494682852755562449600981561026666888817167978068149741021248160785359998019622596125100327775765939030138526162486424352693429537661879030761729409694097060193037495791191266364381831683568458197107579948947787934801421765714419770187757060592681496437618702412790710791750661239835325886502392345354265705168475996901046874241942755375574362863320725677410624698575638648076123099593513105816253615827926248033365668842118202263842685912471751648318398245538970730176352521127520275913631032181992801329864903795190441291336569535732101260142651239182317488638845556015366692483584457005781985948902982952461866743036700243468024040031994459194208771784932810770845938614183300165292482557375316236137565592918240422956411964930344633257099647175071409663702106577256811826277300798246079186637213891733685357083497507193386182612392786872703051690096423308242458721494220048706700870414493867512912951362477296386861617126510138994858220910089188591257756075891943975254047379411377268882937952853531105781942871410685016332768253595504811192278035826786810060702170944866298497135673821322795734180705778319937010436318279413032038630280079348980615359444275507373310215653271149835317193338176032594136873978035362590628423186176247877029348300155704016958452382295270123219429562789059809677929720842069785317751874668946980065239295332286126623180541708822152447504614889426749489415832689427406301120031599549602309622451299801137731983558144450061560630692772916768561378376716299792886706329286176577387229308790096313034008194512229610442040316369092164678100233894580587159256499579088298857643751688621461449093356988393054622969311549650165484481931871327535805494204179048615876202763691727594099845856877650499262180142264610855825115758469890147253999970593030118152631669265093648948300014545159065960583445745969191334076987566426247205557461917589163449403281103634989143375752798460327481012135495605019582666615067590886004623564766685318206901854295605595968587574079704613965095189049422057126473186014948211720059732120155907703735958944612427043187706994688395588151828632733086490743017856121778278790916111363717663250268593380217740603027933892303312510755824089941721542745453930407939806544913150154546006281444546983530816332557889522500367695553044692932061468277692123805792932444344622430749420368478148717204213688058962537765359988068014526777131313190908643610139908999914007170328962213111343578541655975586166520492402199261530174614520304892299171116579621439386887710861778861646488142258546965681651030401849546059017711912825425865775693599694285350839518818538226814924571064926656995049876590948927773747376097047097003304253548094695072144126689499327217600227581820407630036509468925457945959533289501355100983217987768877050464622954283742822033426591490730407172992346552541422825200002435460336205154834932826402935218558412556132259866955742068730513084790983569581530360422161571198768163456715762271443546003845399345525494952092934255605596453534731191845707158628363028220024167128518782757455077627647009324526300966864675947841331393204975420319740042274621690282720453712644131237473538065395752039615004263179522801460884625618693418237343510359242336347644885277760046606120387133365527482809405366643816756102088116565915076688150876419645887858477196562212360131274854483211743689756830624125900008202120901668382394622253886259439583153454795449645297577916846827791008936775660461052524616154920345230697951408414044300613873721649771063709068139423439575812829349895875345981603659553976044237247786063672379080831172108321373039095481992611292816523632864184113125158871703615753924031955658000847722673164227455148647082369773066581735441024306704335610378132867814777425636880422775042645499224791601025091159503440436686625007170980416253187762199719130795999960265734882962299804702080345088373244481279388570479125225637450953463809245672726580058237872183135981187452561539318544085671991149716279771383874017724271040773264969384143677488189376846514102739361709744715621639942261365255304993440357694307693989003835145693142242329786134959739969888719220515406394136695814951172742315414897284464700992262602382906807225057204987984026260345981763946684212466051784015779662694566831008977431131204842828662249604965035914036244241184289164331985176254519016165209037058103961350272616264549309937592733503107154958900386060574419801438315558666544984600906211601064599340652897737513220273285271391305079932142923635345346821631601007088970237645335101382030785248164921425960666304010295998735290568869707926523916972140488327105304046600609258045918627288645282315363257745195092575816505829748090019199483505671099782114010099419639748150091900388805050015429488075464138125343790738742872838665239007683861285175273508638958869013997982294575422327064948960862487233833120888108091340526070803925772377997759905710026055600563646328715610778923768874270442817710035269501423573226377370821723856224815268926609907292942210068753415285866717749224887214949289616501594283618892830815570442312201831978985663798000014182809673140002686919339496593664792594494488227589166089047368968359849197050229234776689725977770967653587307578918777445582260830578240082612690012183548001846851924701001373039910703511898862403398462332687468703338089987415266935409871460530373257036721318854528922455824651700845958056911060850471936115092686327456442887922774282556398959694494841884625308888298521436340115771181781260240504640215860466442700856594447257062272981763061030671424343005032914780954197392945501407013921873236487311070098711264898674553909551358122493400137739574447670401691451455838813618608220486252586065761929428827873805926297822756105440799588714077561067473659316355096777525288303911179574959491693124518867035742113178773717134846513314962137284699292704475513062675610200211995622486925949884494331889650088850044509035050910388795355986435549882499427062240292511134728584504568578767418788910333770210579431731534135838590900406753424296596265401404527224156568918561147400215540769508873581684030846540468881457911776496353495250231662545527038387148728387752085694755810983713460041779630041414904355188653825730997277938855854922453911427610852999329006646480477932250062057123421833318397366987219947403451213789136126924002691535152392459017573069526181997354944790613971426086603947234265818253677039824566390930764166376902767843891885427524533578437384698836785100245201898795697655828854206848557469995168698463271275770140746491293892773771983159534607869772390687221205545376009048810817506566314426947536776621402788405202404566221200362196557062150981462611680155802525900778375619109983347222281204050103800335909689416871763985052228713416930763151707144898037073088250207647404362914681787692761194441935046033831295008970151516661760699104517395730337252966719180589272577063746252329521778657662063669492165392612603322315911255547062120550770618004889261533124717073768012082805607092083762642850092533557349835565047316275639902355169644494964165012952043330889119488297504936906390189446487710981748260709353068651817763908387055874575305002444143463230377352679575344866375718520051685761366605811019601652147613496493717359657127274511181176581192890612059305480962979108798115065140873623852093937835346074102838539169648384724246981946308877025510384605496710275242157075691652416310772300869800881765030809558838564890959150835936478070849350623740343922598646761675809047755483910624665243290254541387789664541628320507692509608393525759409076495854243565320357447369534416668675061119967173774044598899386625281504961734837363005009392125949697321829956611061779915521451143505957286517918245885317210663317541054205442383003446333767550159629680323699053609682874092503899288489161245435135017939711908285005682669628087910791523896251318073906226907965116008606859677324672793831906140594794439424970332175071558210216096470894451591797274179904789045399592221047281549396334337643769016197136290260461125431456097813493661908300386272680299110891497876407766457736511353849320065943203351717629093809653470878684219226681246927775434658330834670643852583072628943721103898334897629548201882941473452916811193419254234872150698817945648453027908472665320593950115807768726515940933099597522952122188711417498293306864331344941492791178657786752199746064898507942922145479114742082383706813724518237932717457033663985274057499642185371063896033837185831914438954509046978308335337840042735737183937563597304042790423078919620601527941179183898794432140705622045161212598398911453950000699250292514664068937559077865491053368148274804133586053065939872372352279603313169386137987030267745517731603732569555004040200583978525297375326801923439852738731442423519504338793236539060497563466203643970810169417545918604486958760995964939786610497521262669285501725725728671515467768778694153917192386607859661472822425197254983318588956198276392410436404664053715189610679053529657552125787782991468501993133749399594268008231789858493656973265996198487850966921989824517293032870392621074010759721311448350828332713762034649260951017469554232637180306757749418532306133227054077185674380512713812086745351081360683279449590623150857288858262012993897312202604316263926188264927592436120372314453566887559318518768882357723957466286217101770120668355842071178669228018462084588848982700228762875862050723645365631515992560602832668964811266108933175199718435775145526847397727706128537704761582602618682695271442688043935365903000395821928840012533899267603357440999791852851725558170155689915276174751334351170016393158756817834764558770992123193129312392209279303249009504649988145162366927410064424946496881609184696709836784596478934027078314273625595620285171279772632136951584643619430847300105489412101138563556478355041559306997454994775926999774133773785559959168862487680465975700966012860065037027982641012136523465040340332895453311312439158694570975670151236273400331866159884431978873891569034344144175572341214285661910664544917037735592949470406579854556524196392491332847150792716345982979748719363999481317647954078316471368935768989239052622079761101619267938482609338699106880285019529346782264596611875990557775785277292819101290840017268902595493120739787487291508490443857654666020546254500884798765839307179179139930343764233323173388476343616111856682289260280681719455553694285746896628519592660945012794596868590836937466053941466904627310643830260313143922126144367790681507772363339029339961648223016843399985041709300730904358105850931648211492929860194573629741320367002615718524975751942815571287238066929831369124610111325951221992001010751832185319425194834119263895524883622960157343375234788066641812505083526270501493721600857876040568499844976733340627520017755690102435540371552469211147835233137946491778225757643461569838494055028644769739194598526700975752741209754659020456864800262522140988908193134585463775496953324579027113964127036179084848342800566562531006470430282304303148317506902571601140621367924979237453904808494877073109064654450709694702107869861780519219115339575568587987505909635834483297125974503512948148088860963821758380437210873539042770657683302296466183901798205581051145911742687823329213493510922868224682512279177321768750808593305809815049210734454545473586520474654579387320318400245318918224823969126619654455423865224878538815161477520485353604212253061760537504367385182445355754352987223511858893368573579337526164540203496185416297400214022427491418407343952603400688118440133050611623754448850721904511130654960517444396365484733321183554297506267176913181991484024314861751404563244049443522299123710948706538558644340853360459400760821807068691570899634502933699357462883030188987950339003295697029510036128493883544591323181717056221512610067436996805773625452398078404813773690571371740696418706291312084716193844894394710198255386794301472034441453456560086294420609001554873521447830810535191388238351478889103984264813830346018488418088544874669356935863235697903941875358196877961565664823197086358344433130141524949067984622028869018552232128772878044468838356616360868548311693845121689024941483512146167691425149432437266612620194452584372208790876356989189528472854218229618338700339199789310549676866806246007720494681363524404604025165814898574366146437997029112091175473965121145399554204755331963574321054281659407252055435330328369841214837033594865412805115375222516483634126882508387845733353142209460446985758596501958020017713009810143835854294055818938967895894063083773059559484943756712064849426480804581549443793210931879242305497697733698551718140181686669096409774990978094807976181033899751201610483759029657235190979293183442803404778427634461304389714350784341986917914435276689384581557275006886451726663600173891265778991156694410925121991626590274955103878123603343383377491780197655918756823755571121908569666892370533444341638606308277198942087349614180613193131765131739745931918742764833545454693294726335534087990216185866195792842023997050828824574487401581405149185414671895184281086490460890146216625037832308496940665679315144898611239967189322562226367362934884671405027514806732621729026823057726102116358692015147097629550759954924822012169395376055312520714395587985865590392438605551207580865275666146601694920523115342956379919275874910943440380702056582268627733536978820991877223819313972536201214983384044902975171171365951367886662825992655352225851633495168305730022572416331431089059123851580523764628537504701275762986965066140032245284540703875752282037145449293314299022927825649007636616321427034456797603329536920610683923824615396229397324987164886298265602968856398435537311577609406485081925863664990239044071615276540918311191079684641544127803071306619, 1, 2, 4, 4, 1, 7, 1, 1, 1, 5, 2, 1, 1, 1, 1, 4, 2, 6, 5, 1, 1, 12, 1, 4, 1, 2, 5, 2, 5, 1, 1, 3, 8, 2, 2, 76, 1, 2, 9, 1, 2, 6, 1, 21, 21, 1, 1, 5, 1, 1, 1, 1, 9, 1, 43, 7, 62, 29, 1, 2, 2, 2, 2, 1, 1, 3, 9, 1, 7, 2, 1, 6, 1, 2, 6, 2, 13, 2, 3, 6, 2, 1, 15, 4, 3, 2, 1, 6, 6, 1, 1, 1, 1, 1, 4, 1, 1, 11, 1, 8, 15, 1, 2, 1, 1, 5, 1, 8, 2, 15, 3, 4, 6, 9, 3, 1, 1, 15, 1, 187, 3, 6, 2, 1, 1, 1, 2, 2, 1, 4, 7, 1, 2, 4, 2, 1, 2, 1, 1, 85, 1, 13, 8, 1, 9, 1, 13, 1, 1, 2, 10, 2, 1, 1, 17, 2, 2, 2, 2, 1, 1, 2, 2, 3, 1, 1, 2, 4, 2, 1, 2, 1, 24, 3, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 12, 1, 1, 2, 1, 1, 5, 2, 1, 8, 10, 17, 2, 7, 1, 1, 1, 2, 1, 5, 1, 1, 2, 1, 1, 25, 1, 3, 4, 1, 3, 4, 1, 1, 1, 1, 2, 1, 1, 7, 6, 1, 2, 3, 3, 1, 1, 1, 1, 1, 18, 1, 3, 2, 9, 2, 1, 2, 3, 4, 2, 6, 2, 1, 9, 5, 1, 16, 3, 3, 1, 1, 8, 6, 2, 1, 6, 1, 1, 4, 3, 3, 4, 1, 2, 1, 1, 1, 3, 1, 1, 1, 3, 5, 1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1, 7, 5, 96, 3, 2, 15, 1, 2, 4, 1, 21, 1, 6, 1, 13, 7, 5, 6, 8, 1, 9, 6, 1, 1, 1, 1, 2, 2, 2, 1, 13, 1, 6, 1, 1, 17, 1, 1, 1, 1, 3, 2, 2, 5, 4, 1, 3, 2, 2, 1, 69, 35, 1, 3, 2, 19, 7, 3, 60, 1, 1, 2, 6, 1, 2, 2, 9, 3, 1, 2, 10, 21, 1, 1, 4, 1, 1, 4, 2, 3, 1, 1, 6, 4, 2, 1, 2, 6, 1, 1, 9, 6, 1, 252, 1, 2, 2, 1, 1, 1, 1, 3, 3, 6, 1, 1, 2, 1, 3, 1, 2, 4, 2, 1, 4, 1, 1, 1, 2, 2, 1, 1, 1, 2, 7, 2, 3, 1, 3, 12, 1, 2, 10, 1, 1, 3, 13, 1, 2, 1, 3, 2, 13, 1, 1, 123, 1, 4, 1, 1, 2, 6, 1, 1, 8, 7, 1, 1, 3, 1, 2, 29, 7, 4, 19, 4, 6, 2, 1, 1, 3, 2, 1, 3, 1, 2, 2, 1, 2, 3, 1, 114, 1, 5, 1, 2, 1, 2, 6, 6, 3, 1, 3, 5, 26, 5, 2, 3, 42, 1, 8, 1, 1, 1, 2, 5, 1, 1, 1, 58, 1, 1, 1, 5, 2, 2, 5, 1, 3, 1, 40, 1, 4, 1, 4, 1, 21, 2, 10, 1, 1, 1, 1, 1, 4, 3, 1, 2, 5, 5, 1, 2, 2, 3, 1, 1, 2, 1, 10, 1, 1, 2, 2, 686, 2, 1, 1, 1, 6, 22, 1, 3, 3, 1, 3, 1, 1, 65, 4, 1, 2, 1, 2, 9, 1, 4, 3, 1, 8, 40, 1, 5, 21, 12, 2, 1, 3, 1, 1, 23, 1, 2, 5, 11, 11, 6, 33, 3, 2, 46, 1, 1, 3, 4, 44, 5, 6, 8, 1, 11, 1, 1, 2, 1, 1, 4, 2, 3, 1, 4, 44, 2, 11, 1, 2, 1, 1, 3, 1, 2, 1, 2, 1, 3, 1, 10, 4, 1, 1, 2, 2, 10, 1, 3, 1, 1, 1, 2, 18, 1, 1, 1, 13, 1, 3, 1, 1, 1, 5, 1, 4, 45, 2, 1, 7, 8, 1, 4, 1, 1, 1, 2, 1, 2, 1, 2, 2, 1, 1, 4, 2, 14, 1, 2, 1, 35, 1, 1, 3, 1, 1, 1, 67, 2, 2, 18, 1, 17, 1, 4, 1, 5, 1, 3, 1, 1, 5, 162, 2, 3, 2, 1, 2, 59, 45, 4, 15, 6, 2, 1, 2, 1, 1, 22, 1, 3, 1, 15, 5, 1, 2, 1, 1, 20, 42, 1, 2253688552952589352929278981081621540310128689640855401891859633114476261137870503013211481768385534575358123968871325351823590283070306762586112551404579234298880722225099389551588125618205059432509594369868924842619344379692281782458504986423567495084364899780833372559769465210011463867715255749127680839861707404475506960180302912484439209460934636830180496802509664676320730613350878987008954442421051294035629526992659427131712662674695873043576245185964803162126407707526801100251708602873497036371074968496238191891692111262009320371821207250541150135597749945917884248122362254743724419765717129677670367942593717605879749261469048720568219537722124813243960330276780922119259657401732953180652015076235898656536253272045703417715307477316657113081804203101374993528333639768872305553405730761899393710041843672474562248595287711040700771968763816784318021392195546699926773410505787055381039059989402279575164486568642752009869698228416648952442870720047296928217289854365556250448572821128831910588110842168900894831859060507126719384962635333846151984598658994067636597693906122852804390878831973909155378294956212387344442814744401923456926112998065326666466177997747460551278604626468240623675838028001948850850982063134479708907072863082522437845016362308856463211186939883065239197240383847296075529069407880949575057025925139792890606558599718939857687842741134557905605517031296256648290408549277123800404973048909197434154760525593415864032545692719466665265402375223415275503021474584820851887320606753830136097675531840728793456418947642997812511834577815915563725243426075139857879867179089250648096643241281125954342477367699946527678640505387397775449244730397721409013808333324217277914879954988293535758786185022904538989474921918632348946813470858226038730600919140948474354183681681321225013462606518507728494767425238924207521138391000825571912475242323156310751103583934107969719407862420941827027545088681742039522257472277357668776300167683203528556569742570477013250634794267052009058488949968977706264460499012488177391474521298365839699578180052848337848879582115496245037941103821083498535320616283534605966394208594460138527073792486856048819828385007339175015690152724235493119691294909671348246053019238844842059727949401819882432120110557935862102894869867761049642268, 3, 1, 1, 1, 1, 1, 6, 1, 8, 4, 13, 2, 1, 14, 11, 1, 3, 6, 1, 38, 7, 5, 1, 31, 1, 98, 24, 1, 3, 4, 1, 1, 12, 3, 1, 3, 40, 1, 1, 2, 1, 1, 1, 9, 5, 5, 1, 2, 1, 1, 3, 3, 1, 1, 2, 1, 1, 1, 1, 1, 17, 1, 18, 1, 1, 19, 5, 3, 76, 9, 1, 1, 1, 1, 1, 1, 3, 1, 2, 2, 2, 5, 6, 1, 8, 1, 19, 1, 1, 1, 2, 1, 2, 2, 7, 2, 12, 3, 1, 1, 2, 8, 253, 6, 14, 1, 1, 55, 1, 1, 37, 1, 18, 1, 1, 1, 2, 1, 9, 121, 1, 1, 4, 2, 1, 2, 2, 1, 12, 1, 1, 1, 29, 3, 34, 3, 1, 2, 1, 1, 1, 2, 3, 4, 5, 3, 1, 1, 1, 1, 3, 1, 2, 1, 1, 2, 50, 2, 1, 1, 2, 10, 2, 1, 1, 3, 1, 1, 2, 3, 1, 1, 5, 1, 1, 6, 1, 2, 1, 2, 5, 1, 3, 4, 31, 1, 1, 1, 10, 1, 1, 3, 24, 3, 2, 2, 1, 31, 1, 2, 5, 2, 566, 3, 16, 1, 1, 3, 3, 7, 1, 1, 1, 5, 7, 1, 1, 1, 2, 1, 1, 3, 2, 8, 1, 1, 1, 3, 1, 1, 1, 5, 1, 1, 6, 1, 3, 1, 3, 4, 2, 3, 8, 3, 1, 11, 2, 58, 4, 2, 5, 1, 2, 2, 6, 2, 2, 4, 9, 5, 2, 1, 5, 5, 1, 1, 4, 1, 3, 1, 3, 19, 1, 1, 2, 45, 3, 21, 2, 1, 1, 7, 2, 1, 5, 1, 1, 1, 1, 1, 6, 1, 2, 1, 4, 2, 25, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 53, 3, 1, 1, 5, 8, 1, 2, 3, 2, 6, 3, 1, 1, 1, 4, 1, 2, 10, 1, 1, 1, 5, 4, 1, 2, 1, 1, 3, 2, 4, 6, 1, 1, 1, 1, 1, 1, 2, 1197, 4, 1, 2, 2, 18, 1, 4, 1, 2, 1, 1, 1, 1, 1, 20, 3, 3, 2, 11, 1, 11, 1, 6, 2, 1, 1, 10, 2, 3, 40, 1, 1, 10, 1, 12, 26, 1, 2, 1, 1, 2, 1, 1, 4, 1, 9, 2, 5, 18, 1, 12, 1, 2, 1, 17, 3, 3, 14, 1, 7, 1, 3, 46, 3, 8, 11, 1, 4, 1, 33, 12, 3, 7, 1, 1, 1, 3, 1, 2, 18, 1, 5, 4, 2, 5, 2, 9, 16, 7, 69, 2, 2, 3, 10, 1, 2, 41, 1, 300, 2, 1, 1, 2, 2, 2, 1, 1, 18, 1, 14, 1, 6, 4, 10, 2, 7, 1, 9, 1, 3, 117, 1, 1, 7, 2, 1, 14, 1, 64, 1, 77, 5, 1, 3, 1, 2, 1, 18, 1, 2, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 4, 5, 1, 3, 6, 1, 9, 6, 2, 1, 1, 1, 2, 1, 2, 1, 3, 18, 3, 1, 1, 3, 3, 2, 3, 3, 1, 2, 2, 4, 1, 14, 1, 1, 2, 2, 2, 6, 1, 4, 1, 2, 7, 2, 2, 1, 2, 11, 6, 1, 1, 9, 6, 1, 6, 1, 2, 10, 1, 5, 1, 2, 1, 1, 2, 2, 66, 5, 3, 1, 8, 1, 2, 1, 1, 1, 12, 416, 3, 2, 1, 2, 1, 2, 3, 10, 2, 1, 2, 8, 2, 6, 1, 3, 65, 2, 1, 1, 2, 3, 2, 2, 29, 1, 1, 4, 1, 2, 1, 3, 1, 2, 1, 1, 1, 112, 1, 2, 1, 227, 1, 48, 1, 1, 5, 4, 2, 1, 4, 3, 2, 5, 1, 1, 3, 5, 2, 3, 1, 2, 5, 1, 124, 1, 3, 2, 2, 1, 2, 9, 1, 1, 5, 3, 1, 2, 3, 1, 2, 6, 1, 7, 2, 35, 1, 1, 1, 4, 5, 34, 1, 2, 5, 1, 3, 6, 2, 8, 4, 1, 2, 2, 20, 2, 1, 1, 1, 1, 3, 5, 1, 7, 1, 11, 1, 13, 1, 8, 1, 1, 1, 1, 1, 1, 10, 5, 3, 4, 4, 3, 1, 4, 2, 3, 2, 1, 1, 1, 2, 1, 3, 10, 8, 1, 13, 2, 1, 7, 2, 3, 1, 41, 10, 5, 1, 3, 2, 1, 6, 5, 2, 1, 1, 3, 1, 3, 7, 1, 2, 3, 5, 62530111301399050635961195412575245184315182098822979572224417433601487916721542076160196115894658445626158990165632645894398502038259130114420012600018742875927451339515146600651038015462941233542306734443330041507328764421477727338169460352365471231826732579437402515183045450976694220904463337923158453601653216911554943630038941540183477939302677799995701413539996186578858565320556346915896831974393343340860599197600214236124857235629563262240478425360799391546103977745740311528182564119300564435889323473717588622938665613055507281002217470497015535937131127975583604330653184306525940733794317710737506427081074393776303775365753781155678519835603878494397648917430882206993077958684365261316831021557733403212018772825443085168981894140149342954624780813981563797381960729508528282561579986835829373570988335271416460568405051148816428622820966110694688682040908490331507666257188324184771633223533220251559968341159091016228589265146370638104057359695970437999056266414683653054921806065931531343363487451419833459996116181964065939467201888012233907265573809961526454023340949180409138034092219672379726068365001904033912597492032341260523859640504916824135293872844678689740672479326114333653467057247427118385159077904499557762953438787653257791223716421023730726075656328576138059108369840837078201533930215604928736171288670763076362609738302255086404143555055827139829001768067964182528846588963221667853282773539079581526823290150424350945854944488078914077065109711215902336195789335286930449840783996927797409214211293354930746148710662274277247849733491972205561927526945957817282952814736127090667426397029768340918970194667396420799641120836293400514852753176418977104504812023541861170667681064413914842900259869461911178452491093139163447945284482534776440222666418219283173014565806417503255762283137735458642742570967484760796652635817968570539248184451190933173915281350535713628109777491430073708146519090875802554817693278274451939890558115285403651531292554549928165437730608614851810480688497420144195635194656723952438262184259272298722866949278069658591526254787318614595235022009640382509450378007222915984262100034542731280715894084821518133477110633377890603836322451994767169385824715014349746365109091764222767954815222817186870707311142698714133041491306899001154588407330829473906227285533298027556580888876671916379414376344604163231827083320288573664486059364324444502763836172558388181677401169918474036479746461692004591379954088894613847293740316025659376915390311192011316271690120137799772623322697544639662603871231728633222548192266580632321699655407471630107546915805496225341098114670384517426847406152263419634034684152917299280781132797391819598709696587069211079531433281466157571353372258019115888538122619261457116592212642188433353876489070596294778620725995253962100853836530950753998260651112378438794352683758652606374005249292055889176963573907921895404770154636150910473778382414306919891709125219404542660230518956812004220814914047590026890675157405447816729848575027547793405456872333528081288156101506335842183354551249225863365162741789561430131677057012225263286542313321372385697812268366778787680810764880567010534519701364524910364572508757442020964487154915763041228161820432811147625460731854329498671403745055051822272704277724759801300374312194291495614421400490471897541971401723427452098151180357662118835850652218964553182910482547484445013842054697969232829201778299730023105163195362393920595182175812140386089720200547896397428446205066278512860541893462339458003254687171608392121482980423713337531692150524264205183411539870086627581676038319553842353129523543273335724789272430804519231506957463277966991416224986996003823518972539523332356481405829484198081946313758869744790329037842879846101652357134623408005044307923681992728271036191655176760358416111739880044182544108805835703017576831572413537690619523854351825463862848932517296418204890918656411941115995411992365832024798387108421486981888808552528242187059122989153204775495123132104529096891684929195891905961330447491061728145600551532894620511614114563788717916558492504739886228902031865233917539019999942056380687866848281261924012957576379282362936527760658617864370724039401946639017691680987237433230052929272742067490902476351482978406864560925594746616941628372016820028267400379982802408905088755713288856576921384275268798223839177060518026430543429545834027847215094318495961179558858345196491815594802081230461598737512102017550110129367944301020311812419213686443989572429967328324222501982022294960483040227250000186990624769888698453636075680164877043032701329704538630590666227157024074477237353934009092743782720663098270950597208663066382430074152829989480741253848170134994932178652545496075285374856422119164693619294295255858631258940732514058510392645218364248310031299041812235425579688752134364118313135515055605661927646619493546140075946858730888269324674638008676994474438032284806622829395268978738278179142056978179107063061394306546881148491558845610206376598384675925298946818467128731399115666729607059448028313293197331854806441848093015902943377504899285143195916155364798611315798511933696934061949911534244369059216291700022640599544710760950363966679729611273097438495121718656238392161568273699880959822988133083122157640801549641961381701940211311295770797171000505824339871089794532797823353372083243010514234059618667067722939433789972186553732276174607606279703351664313197374157949056376341390208504225940580140221510666013219336529513832289156408137037350978906010294557985970018774695806108536972908269678560438322591389912801702175197486088320745434949206619606868845819287297046055155055639165981591351522770325085699216560704182874614127285760983765960363044623129611695690584862592854843152024217659811170989315070404028002700684173128535988041360870243160941603889376626596327207935568801170760550876772237417611259209645659444936142412425609850999589810744950150473997590118751217651306165868079623581646686096897928228387612513890417847942890415457430268933619304780511725730617444573818805694540446662167673156929603313429266001333372009160023370791740863766694198207792302703869897302175001694891723973178210339025349303341229311482012633121363466201063575074542199612581819964155393579047201592271811504901899336550334047225213166218122036362626491669857537718087094008850752596435271983869839074354143152664488390980097120826416374107515053459135669750098449637503507594176250977508506709673220521078111063509322599508554231780109243089337563767073812939731844267216222754640265989994881594478369967720537316291957030556529609905773672042189486634864246699716886951328197011549234438468509853429929756346595342515208639170550414398126315426534758443478996833817273341622990331955313214681615286174216186222273874785915420013263480835214191377262282351723854693660473288916524622979650702271468920032769521317953732100688553571796654969799344776873973601309959188685387091189903436591039658035745108155040615042226180715503504368299464019451862549767452287320004405341624091362864812269953304541930495145643588992701187847521667695693809886071088712033273261830259523097657981795761230727579590454551014813427783625870612086073925735747200945949717695222725146017521328930516330273498180468312987403071324427533424392300684295818574318892297034417799665653938087931559674629764899031710039838491851872438917900210243757249852938378986138136507681226263668757312391905713150119434125009494568202037224141319760684370456710083061729530148643858821424584867773878547856333162327353409467974881912328245616996960880870155236234204883179737014954049552791033608417846030850651252328075016805951112885081994109710010856832003440024854271568094160897753199903064650311657839112447349927073265812256701631244968150338176714890556700175428934877830891085258009532410520634737852536270031422645125883491165147396043163972398415865282437892769477573928302323364179015073076939245663092548027506376344885643927551546827508996876026073232568912913737450211226874103973707721494574784771399127490790184238067438797678389504088403152313978932792323794404214210502300329208937242191876667710994074912565408113706622829252650426599454406689768545452825718799686521778575584064770567019819771043830920332789154512224923976551841981826851676456380505453747323030153702655200338269703215782574513641797468569998759759994701663752083768179543748020745308326582928476143006435363408935290281291039516593750971238656586845165521345191035275251449933155135707858529767751768859648230930157490249853033375115984520567112750813832941332364367117256027935936989697044759542223211819182494441209782918718245117889273844078511609594996640137551599328242645119270835801345866547429914259555711484071258682245038152254636537697600652038940074092317861274984640573967416960916273854755636015184858201991270625357181573188605255359555745998310746495010144303215068490153978938974914049958249865561583322914044268745381783074664874962455603276184114921151133522443621310619377435700452829641680427810988291827097714250516691288084971069487348030185465918893021631499868495101834125580131709342970390467094414161419370258503671931951521757955380254353762723670046628710395035543371809909197089787842065090321248836167768504912780903140776279248772230775133238246936484526190328793360232476794458124735182590054764622496865781977711931409455619148150548454949649090756053878136664088074186816098307367767086348611937536667465819065655900912489619245368388264747301170635885628630600839166859433686424674274935881709817218525672257903562048787527132434603497818040977641754869706079472824807548662876798205962109870012389531940974848846306600261482353050258455493868692436369984359302397680249016322266208664504114441222676329112883910754407519465537839878862491805554468257439067646715633782506091196133619134091395288873912593798549809682802794714185215125294352708446889671527644922863916006342832448329811312480534696280648958888289490206678968151479654071600101574814145205454922372868817220894246892231950725391935114866769747047974998153611121858835713184205809732256580991258732039126441218329035052009029201405227996741744982953039969455669080725715927881825108814298632256120130037640121084387002446987536499932727570160325335418035690746298104415330685143685533282822241700954508864276285655182706157738918879503555155441439647137392811726338696689886663027760066123866913252977956030459841959465148233912710294058178018014014474722806974445174873040558728441667006571178112271366789093102120049017810787771384125775152804728696474019014152912943053672402115234777552262834211000013832371529558957214944643352531214630159986848544578608073373406679937418560673329392646797407665443397743285655589766225528621724629278698198151497921835339945087915407383329511573562816702682840870799437765705107172844718709615543964670394655535276441144872494734971651262886867817934446883045724455796065168357309605706000622806930421124459775455614591715168795792174749698954183979785933497017449153937089031227786002189841950249938812422810132797424750076204665191179395072053579405362362815128636626208336577300771147871956761797117190852890918376280918839431351121716644826589254688067692942860664270372683595121361414189415519213986616095283002046896296363881224744776390729569817147234217700290519576494452575700170782404822540152122486231980411038380915764175837913625858114384192039110456662533899417651411325379614194796556520484205020125570738649919599697512531315666966671714269385393288652502296580662231890021078848193800922891962297879651196366505663225929520819360624433075634814658653858266905263978622876530525153789860285441139140308802869143106247225557572155189150487650200201540619528466002545107890717894737457081325872427798713447172204680809878249205740060633814022047401650203642452818800262964062723462081741263169821843338492119033767168543935999532503846532080248659331024366761880301386676694089942727860726224516330374238596779354127140287431525844290104019497422490806849220294296609093896783406137230136733825313001236034807332677336951560573349863573664236543894938284722234876905587427432163424801756947771745528799074575483542298641823744864266187904159815908225066807089263278662969532712747104614288801493798047255903094683351868892521015601804396363814967647265918380473447330853383465752810093124487390411836396294759890130107924897903146951930435309826583890419394161600547110710597280756059820446862764413602331851786499176062346255585276563960746478302029132226199321542764569393788565085245860899688179165067141186095970055334488803753464824045511173453052421021311589519379220679441466378333007760825532139157996634878432396973692253033279564588901626784513625381136137088885565757044916831167047523489463089770268841842393341464175237966588362960238643784656213235670115624498254914359981921314749642699696106381170705462782298736558039787298300758275221233347382043452918812868315482703848885660069445657953398302232545788325597593006304556833316458245841357221389948805026879071573188738628620973931335241333750266521694593348420740451175574169216442089460422072826254383560262384989299951745113532433312535401059137542743885202374483174821119219110917272464973651233532861018594554892101992241721267909599901642116302887975612277009013870241380443677156164779064203443993081631663656398616324304799903717834269610765572311433828536644914345209657449782360261502891719449462665991431203745143863716648171383480411376935250986640055095916671837470933163326807707516455929801743063922854105610864779388544175440426237933156212316629979397799498340639827731541311330195446628688133232173208750432291210945654672145941174015855249602609156910977331635511962608911449472530756469311712099677750180576145093174846848466644837014970253334545179091698850260623552306391626249299903973638426516215057739106016503446195692561820149992229157897913907745574322604370183669878324898831162865212803043446953279768278242412221652407002337164874963326384624520639589274633346018620184452202568955202009381282377544543487671292248448516211237188538330556536970303722782385986533536704882986419171144261280682710776825081850858483055393351902022200196512553896213287154251905181377020381136856045026087176746248390942778254611263793750272076812813359859287493495844417436097808449936305516711233366415406154550859655436084622235019735600183526683199314698518080988421179593738939546606452400096611139738179047686222646246286313681268715161856925264550401392588519477006816764070146735016505555852114525866245140215970064775564222812138929704085351385685287307734261668671867755298647445895664402569609388971626954087059348572705163965241118785205723159715107460382095811266300164055396314438579910222399978342801040970544998816134639238274976892826634294156835522642001378630168244096719058731935971189347125015587581198024655865336415247329696788952004407104462973737434249547398685689227773943280607487362789663278629638675334911715135622560624171089773400623744052919269545873150034106796891043304687163798121036937450084620388289958764962268643418268929226892882370453077486471338452031826675905577270954677365068176840684047031348440639180526335323861866733567849640613553718514250233429423773612809576420244315324428272909726811511008398188374968437699865637392929880168740513415625420293370746251192533577567758809682957952377730609596471591203568150910293918982587705655909855181733986571441293361410618357043528523276132774323401820511693256071761773908259712933652600235860289432948072097538630048659149526947182035134522734048803324031574128440291550126775532168104981340718537249236520715282170404650637381335950570377567883947805749919983264628388163836209291776977077313733299056328630677033990805036206568732096644059038892611810052719127837335223392039222388312775396216276818028474020697966916661493793553458143591910684844869467375065977727616086140009763672828889302241863998878196870053588526615036396119878858818795194901277801096814495569460071036690741256283612315405510001919191838120677735450697985533119096492193015541791363911760033980563138930676748871087967405992373737436871335068398563160739693698996123472522236022204642109175145667418720830422639866023000681126857076269247396157242124235213347252037358615475898099561250531498379687398171922636866857686572898254049603337875877851595060347161605950998450082044231453654700107546157815386366884685550245122378084743673219559884502274584426478024252320485669455182041887072177381564511668515562716916555516165810807614925155990781710042172827824047039677489733380895246487718208395643463923871984856484419127371239207529873281506353500996301435796861261325532865412737569345589282278763409579154253371385266180925953864701662437254870052829826203563203418241399246618677467999699063206488619667085639101427079733165101327899429802057863375754302523356860889942153175082462496008813141266181813843589682757127009419416710449392679998897408244222873933185848257034426043114217967225684726123097462661609592142585456445806682064797349141463775378800374549863760649821205361655442860001684878393249832689169685412372455109707769529177353343145924370671156590060588991329367098410331797194180416573069761788991695801322684051713180998581366902120396496888478678238196345616968268015276241381351046404667337816507167125915291551676308032889656796184156279021769149871738778392098166578297415810779524644290184617248531849692854990241048700433624814107049989624977245508052631203111001248086354816943542426490675806874628586179455612566549350629827924440611079847660934393651360603423978825883971123729885904986509235295909546687300929325665927697067136754497032055862907898672441399203924863324301041478786335941954557139466149013501269071038261060041989464159229540533152118897521841487925223602135556368039461349020816608363342477459321379854378068842993841255793694835115699539164560512368134370527812652645876651509238925187384795006425461939126784129136136321304938106099759606818301130613956244991484262906153345154687521135704499690995828171413840102352071644079750654333920730014159025037529045789786164176531359432920774680137826138387811385657686654444044724865736827039553236804012070187975011515099439593425975641784025780732491630020406493741397505214748892646622408459119229325028608787611330664301922694211132127137098840657122695697144742140399683456926693029062544526543997914676585830846391846208116089425807734576003423147233268545012402932398244061797607002209526193003092336611344210250925719857311194255225373482277647333088975220648925860134841112502518593313012215566646412661147241445934083883314176553899640128449985065812179341538789053353320021916783744787407753174287071782494473369744608452766829512636134682626797117579432493617594971040312757459925015026312887412151184009966277508864149438501154327880655130360714319976805996608576909667934274073253157667188749427339991520706003470896596700192277278393451153275990653166169154838800025543538250781492186078377998706954101816365435277032819229897028188821317447804541856217192491423918369422232171249167654586486780786105903825443469974433460901987521505356025324152439545932842759432640374400756282029789244497065281822631848041263144699485691821143073379362946919823264766523740104220312669021976377380209063401275958604372696784613866940417561542596026698143796164110262167754498636884288535242228217158703997970751814545813992454177841621025133965907208768553565699502373582510595156411058335593481193814708155654030665037833979600718626192754651563585250794583362037414815026947848865764316838929064266867722498810117971491370605728414120935025816490580682755259578731209264763754373890009494778500652403119048909263692385052493196492332783287188871906078969197150630103558696634510763804280040666030259911504432232237830258233145858234234531510583052731166257058188656927205367744925065552069419575491879950316168424856622408744200721517481696275506125434802420859271708353476686518656037797290164560948907353803436631029079717160006213301389588639478732858943818229182389309934418475799995777233755631707225741274744306054244316805995328741406040389144544013802459349829495560176826623896297519479115643730126133764123399825267418862187169853223256581205598379253368567240448558110574442692575771843218696850458529554759838993959564324310427372327399816975273350014068226874024328469181795312462609618690556151218667345265330016593097193840351770082566633883445572869790152251193758830050266346677084835809960696105535408135356639702036511023486251112839022559231691669702865307661244948761336979793759372996384654736879737166157046579598152230066552940220713756518947035831840893569297527679508611894037477410154665782151370051133220036354987092725902422636434307639816284807115826550981360294913625428895339389532314398184369869100884647949347646265383322815491731224419300474231720072207609131289621650034595501424603180211928615028082089519750619421602089199234464657344550538512047480144090000032284845090449398909264830626733537740706623141819386245771868551540862992118880192278221806247875414619435475832326766048387784134060162046676514445067855082091340505106507712431714739847074989201196131887437735177015359892589627736149216525380368237212928621449266434137722109933719428400798463300159315195498012094237535536392418355759996422990680534751888918221101722096091326703770393606964577043188747488566559039234471382784066897312093603464293972034738166274571075247361744416232612612353508226845210338530325331414860027245398137891005501022385265424938640536003514202361221272778172266640270591573072890374374702711016132413356531575274701269186248793911004041794350533992424086351577740984318599207674718585939522878444581474212273217197322769867414961999301800816390606950458311786757712943707019011628965107554442806444840668800777301926379439249764645244193118766266356756026096733719457523583459281722556413452670775647047253420455630192639060343859756427805556358538555254487254828006107288044965976738022936241358229612571920788042413408635552549294098790739952196149713648564121324537445387866366229107219095640591350892274039045986094799226130467555668689491028103120468469065478914474374169082681880724913140146002199900591491982269301626962768907423522765784594482952376805867069492088517639906847994114676766818035796355261146378406123790953820369961541457113614040244483660915135947089297786903878270964276594702473289712406209091562592511594527603973802879193616379387215456071349918866296363190922685749681042864272484891858865092694270213256097188732526221876109870061339023192631258710020826338800842475535768331089257958139615279742009621111452443800621807139017831307215220200615918414505207866293813322075979226627422534736345018498516809828266557428454761457089786483833018320459402198354880318695004093898007009719139424258222546555229653568876121037147635291444052031935309734212156142444726143894507458426146623928359753254644448312355309226707853120669680339029613362505338915843984707377459177513029710456701489061196767436043177830620439659543644768266391620605488971468562953556240159330689935149357087360454751539258778057000167842338785040221087230833969973387338118515762292684558197435115755479844822260933044698038875354369458487092527411791746364973145167271219731265522094462387594407126885011384402926063208320755606468934375936888749668440585183780377499179678198553577381436471290764246604817149124129212854560386861546998222604509586772939384839259503624433312933717833680341406455682466126380437145030631477361890429052969521110819154988177947961458064447036950116454327078345053868662917516427885854748156821047220407610048679475170711828633955883194436282992695130214974140961453649468557463727503223730197199828859841188698368893517461333959918404618647032997660208073048726894963831476301752363654316255642992114907486377238026388903283451273477055357335997347994562665389578603765141603070400285810293490831642947224803590468052847123572966813129915696764011122597986833435299881597513494445196099196057876375523149118825739119444274077715140242051930220080209504215834022937913943333201658086104994293445938017749242100180219775020404228135330791972820820148632734040726087226154236119225264868495911395510304088898112466419245592484958083344202026858581205331486006217967367196408786921119620932312618880829792739537927108967791670931508709547759154217398944297258022645739866495986035036090067641862152907021192845808520944306679243672898283887365387298344002212523028266563989232538718848901746743919575324422534209367715960685200953311389361269389999110364178952154166590256912704426264132572647935732344915307406159474347765319498346732760546119008163440212699809028362927677827781337598295101934056865992296098260825779300497699722661591487664421766281856793370411234876860407793291062223114134366143300927627706099910006127567898585972742723431544688650376043310328382788537299622561430053602783728420254098028331376386909061289034586356367126790215077413339777144878047877266984669660777430635859913178388961327103955291416194568090583793012459444071937506023896010894600855171935060554239369566535689009382564838463908517045195923280439391646977151319695092129418884524350690371856853469347102068684893146208759843173155317959234092425510433347594620132658724966183300638519839810892804777541914058758187052720286155735763828378307981554378333886610979541141417471557654882796620458387128981737573011140514011966981728141052135744210963749938394498359271746654970181383632016624716541661166831266878620489957405241290569483021026405649940979876793015037899216289712901697566670965298293681491950531771073366234073247130342952819068494153272202148478275834640537221021719030960985690639841985170765996570953245314560862252766294030105091807514016201108608474943070075381310917828056648775518888074255597194650042275112455501582290399189040247854379718229237392531093705850180587448937637890315173206381223167808058657837120808435112696222915299402528331304615405364341380951633419857847830870986086008695622263860479292268790549069935173407782049683512088545199516511290562076857219965397398906459889584230231699000767798547578656421495008979229909995631224395913324322804423366250922788324906621808002280165665108523745706659326010199606874088157125432146973825248153060944299726842576533501376876746542377097955681860913565734173044323224077115353102946562935537283693895213752783223162316103014919558038980599996158111745955240794539100865173515359939958740816652436067463938588774383193089297703084958971935049544447931352109401315157883719284143815719340920188289517906525284691431065070229567563091635975980346167361803948238715184875870094251435873843742691484713213056929299882205985506442025803765701105191997957381576257864980610707908720255526163568331476885564236853087973559836618138295751676453387451710915912175696256555460978475187148335006462977588211997220379696933061312302470613016780778227506738311206166765889776337407493065354169035542509181992310416802471480676996861182526851194275923111145311084677817788005036963680606952862535487304794614855641005766391970052076278960357974379836505000384927872593901164959815007665861753680199164346138802871155489116756700016969376120698135079358217054318651388229184448704959224530245956315065137722060730926306083920116897227321141031353172033765393810047876706771515850081657299911613361605656489590522926389493759171555403743904527416779349423054873951466950316934229643492559042744214274209687538327008677071990862170515126772606546712173977564305891671094009953683862149479798515189819810850255161074000338767702007942400216963213696604363997912604176755622932964285662765541796292955307852900939511161449445423004373081387772333171223989423157367726024348556697284708154862984952749143927953380912324123606557894711977561905719639251681849324900524751058440039178470245532185047175669799526141380505134402545537639156997642604933270157446041268573868465223144461832887194203945084263126601914823642064515010617719930759399192531028664317755351784571830224334731773515048130465532715091870590559159289010351570926034700978730006502873836592324953306584740358601098401812812455431777753658536205956822132771446364858833207732985678113671070111792314679785077200156614617560450516770430446754011903824861767110276842758940067496419860265298334466767738899491359951071508505007219641722078557945599197662293172183059404826263108882010444248595563215223143692715872098255420348757625609470657517433290152279925140573424486283893752196452138358919561859637861552443187913031851287442150359719411424620933811916572799892357702146385235700233608431232138155365148366880425782825813021980611279403483444829440915097746948613857721656451305153972780103310352658874607711142420624138523032868635709425452456546494423658474192562876577632138351887967584830240702116134308255276630121063907864745815653863936796125663740647598671384477094945629255804532808495863119220581046492989075509406709379460184291946308588155301196976929324715328663409872494420399348055905758858860854670843203550617562401266139617650437058509713771526162329503160910635967602319836021417057362388779902581183213523067586273729237381458612070016601420913218602178980717177767558224001547448394674635854951346831283313976873018041114375538672432480743202762415248455455804600124073797868538540546172916580858056868064399030148875426690883736154678522166793876989148826517583631542526791131189770276165968311218542229009870149822884979826193935670255765065087391380357057793491792847095129085347412058955823980530179914087125813379903455078543612689671523056394480274754226234967344415205291185474362779584712585830882660456886134915879156742422223332051229539939731539584668906486825395522011776097621131712703754778411594792896644715122397333540787816777636497572142472058958230171899276262194674091323854757102911854142216958625978137838711447461686988498547685280784298121973651945176915031567809830470298426785933809513288570660161560150724783035513512653005926016693638598409782882420411950639781669296883478699860759541378582242792133908013325045678526203050002099571684668346326279524998742472419301804250436996397259027718657435870869980795112209544194534913627568167161376520824703694343364879191867076296177774436545442532266529263816476667567089900283065092490207846158633451810025519998748746039776973100598907902117189934712686068865657847263641977811085357134425684872123791337850520593441912262618450429884634332885060180570620668462347514511906842412739106262816955868111424452084474368692676528891707818642170675538950782593054274693520703778532341083745157265554707677547588370653880905987346084637861240823066370118073978103253046625072537123200709767275402473493165545657546896045448067984084814171437713940938973967073342136996882393754203246394896972784170893596836346698642308209599258300035585078251119150104808463175310973992873181372440974972430361867596409888560802494091048283367392104213938489026542531060916405878617843378924227175663386907340187331140038940256578479241850025497988234826141012171022207762177288681471866888007779035948492685078151834853760220645971562467006540529673132722591514772965395895859333573453648511300059699125499227447149440590984090284342265979761148769370429751786369111039005734072377249962552209971420696960546556736473712851559812209084613117340682667304081190027710794981556690638230203173306319909033479518940606431642251735669269636616537227830069986556175819235904074025785536676771354982427547485398162255473375485626176096219666604258208370163337014753547475564443974875523374792416534647924068887597723409139204991196930848934990352078859993551698984514944081381031806023379143803014375102895723890298477898394268639091225844665580863186773820357208177957606608739090678323948667480290074783179873312662005319964682248561883758531027941505772697191769949012211043012869659818435370770683280078863197068234124783149442113257358273996012797532574857211834908485611429878006002903180195989887832147430983742661264655000530198739642961760478598811562333089517175794159445303646575631458919562868312458499464081429019436840145838050569886473131060536144270526414597155549128623656994266497291117912447323988961291444647055559134680265382345815817479593927402515778879594559019964084098661563697407320928928374430090485757198421246328344518441643966227172923141217682765268240504453386006435830972204880445265030723843237161187540909820864330307319207250333925336166023081710847351426335131930827258391475184054035250662922084154457359887311796668094733120747484026576215305186816773889605771094152193106201737240882060577882354385974384120955345008538419382994055259919407363911618292249780574728686338833918058478947281584189878538068013432678355986615212516291022561592577752653493202254835418447648782476887798831110, 1, 1, 2, 1, 1, 1, 2, 6, 7, 1, 1, 1, 17, 3, 1, 3, 4, 1, 1, 2, 1, 1, 3, 1, 1, 124, 1, 1, 1, 8, 1, 26, 8, 10, 2, 2, 6, 5, 3, 1, 61, 1, 49, 1, 1, 3, 1, 3, 2, 1, 2, 1, 1, 5, 1, 1, 1, 1, 3, 2, 1, 3, 9, 4, 100, 1, 170, 3, 33, 1, 3, 2, 16, 1, 2, 17, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 139, 1, 1, 2, 8, 1, 1, 1, 19, 2, 9, 1, 1, 2, 3, 1, 2, 1, 2, 2, 1, 1, 1, 1, 6, 2, 1, 50, 1, 13, 4, 1, 8, 1, 1, 1, 83, 2, 41, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 43, 2, 1, 16, 1, 90, 1, 1, 8, 18, 1, 4, 4, 3, 4, 1, 1, 13, 1, 3, 2, 1, 5, 13, 2, 3, 1, 1, 1, 1, 1, 1, 4, 1, 1, 5, 7, 1, 1, 3, 1, 28, 1, 7, 1, 3, 1, 200, 7, 5, 1, 3, 1, 4, 3, 1, 1, 5, 1, 2, 2, 2, 1, 3, 1, 2, 2, 1, 2, 1, 6, 1, 1, 5, 3, 14, 1, 59, 1, 1, 1, 1, 2, 1, 10, 1, 1, 1, 2, 13, 1, 1, 11, 4, 1, 53, 2, 1, 16, 3, 1, 7, 3, 1, 2, 3, 87, 1, 4, 1, 1, 6, 4, 1, 5, 1, 10, 1, 2, 4, 5, 1, 2, 1, 20, 2, 1, 1, 3, 1, 5, 4, 7, 10, 1, 1, 13, 1, 4, 1, 2, 3, 9, 21, 1, 5, 1, 5, 1, 336, 1, 2, 1, 2, 5, 7, 4, 1, 26, 2, 3, 11, 1, 1, 1, 5, 1, 5, 1, 1, 1780, 3, 1, 1, 14, 2, 13, 1, 2, 6, 1, 1, 3, 6, 4, 4, 3, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 44, 98, 1, 1, 4, 6, 5, 2, 3, 1, 2, 3, 1, 53, 1, 3, 2, 1, 2, 6, 2, 2, 2, 1, 1, 2, 3, 2, 1, 2, 25, 2, 1, 9, 1, 1, 1, 2, 81, 1, 20, 1, 2, 3, 3, 1, 15, 16, 1, 2, 1, 1, 1, 3, 4, 1, 3, 1, 1, 13, 3, 2, 1, 3, 1, 1, 1, 1, 4, 1, 4, 11, 3, 1, 3, 1, 1, 259, 15, 12, 26, 1, 5, 1, 6, 4, 3, 13, 13, 4, 2, 1, 1, 1, 2, 2, 2, 1, 1, 3, 2, 1, 49, 1, 1, 7, 1, 2, 4, 3, 2, 1, 11, 6, 2, 2, 3, 15, 1, 6, 6, 15, 1, 1, 2, 1, 3, 1, 1, 3, 1, 3, 1, 1, 1, 1, 3, 10, 2, 2, 7, 1, 1, 2, 2, 2, 1, 4, 3, 2, 1, 10, 1, 10, 1, 2, 5, 1, 2, 3, 1, 3, 1, 1, 3, 1, 20, 1, 7, 2, 2, 2, 1, 2, 3, 32, 1, 3, 1, 1, 1, 3, 3, 3, 1, 1, 2, 1, 16, 2, 3, 8, 1, 1, 1, 2, 21, 72, 1, 2, 2, 7, 4, 1, 4, 5, 3, 1, 1, 5, 1, 2, 1, 2, 8, 2, 3, 1, 1, 7, 2, 1, 10, 12, 5, 2, 2, 1, 1, 1, 10, 1, 1, 34, 1, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 19, 1, 2, 2, 2, 4, 1, 5, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 3, 2, 39, 1, 1, 1, 5, 1, 1, 1, 2, 2, 9, 2, 2, 1, 1, 5, 18, 1, 1, 5, 1, 1, 3, 9, 3, 3, 1, 1, 28, 1, 1, 1, 4, 1, 2, 7, 7, 1, 2, 3, 2, 1, 1, 1, 372, 1, 15, 1, 251, 96, 2, 1, 1, 1, 1, 4, 4, 1, 13, 1, 1, 3, 1, 2, 1, 1, 1, 1, 3, 2, 4, 1, 5, 2, 7, 3, 1, 1, 1, 1, 1, 10, 1, 1, 3, 1, 1, 1, 26, 1, 1, 1, 1, 1, 8, 2, 1, 2, 1, 6, 4, 1, 2, 5, 30, 1, 1, 2, 4, 6, 4, 2, 17, 1, 5, 2, 19, 2, 4, 6, 2, 1, 3, 1, 4, 3, 1, 1, 1, 39, 1, 3, 4, 3, 4, 1, 65004594672414536323990294092490815570482684938389974794804239956637026220856628300261425120480140572224253383777008671089475374211092937252427456180082880889239532906588812846490351767947259099467473240083026566487952157462889773988665336887333091518174869398809111854010643229380012891607457546772558627140407851621397169208215041861592979334315429915988408803753768902493610111345428055088627492280790402150863293297311071912798708191458967849817787740982407715014488400828000832022034267125149531613940041096970243999864946954421467139219034258090346225003668649963680564079338134468259736173210471736947586295229398060064327936518341659865358134335395243454277548181903609940770524219407710493483100746121646765647106108300991588222023428950176742415864300561330494629002487243210821150176588068327132907333751203847530661379022380478277705469470156491606737546665813037602990918422468711927415836978267010675692649791526297120564097399240512451418633745921864778129174261094432012839896611362793488465346504041176888645210979332055215104890592134989688425840267863169929377048508522072845185922314605003576910424537586843783527975958602275116053751802225904168680788501010060984730106159313839228839536784702855099715722662133760175880533954768143047675429340714498181160212214747027078897584513787698720506242450818696102478731421349215211231550322838623132452182992469483243404960316342510292670237386270816256600553746009383889997684983878128125594529221107354277951264290342115181822072268750872259265978498160122230543324369728286083502758581848774701231552996633607648800377483838180000588202476775736969472264679407458915908597741939555181548701152571501980343433582078158361068511927820554628887321505006037165789060622458675008146613032708070487657522342630980879842683686953570307697430568351433576594294977568875182906669313877084399443238873540089288192163326907653182652915379947850719773621231767354504612955032623988751525820151186795703405721262925697401539888896427851368764402911520840054558136395990178220531951353200810100182795216962640859236286517030923567717276602342172350818490642782133484070197783557359480466863246828174032720486426616065959349518542145061677813184773990120534644030101474866175735300677490325960115635395424825369925338676405152159433998669066222047328870163369481170222002195893285635828083233, 4, 1, 2, 5, 2, 673, 2, 3, 2, 1, 1, 1, 1, 11, 1, 20, 2, 2, 5, 1, 1, 6, 1, 4, 1, 147, 1, 1, 17, 1, 6, 1, 1, 35, 2, 4, 5, 1, 5, 3, 3, 2, 4, 1, 5, 3, 1, 2, 1, 2, 2, 3, 2, 1, 23, 1, 1, 30, 1, 2, 1, 4, 14, 1, 1, 1, 11, 1, 4, 1, 3, 6, 2, 6, 1, 15, 1, 4, 4, 1, 7, 1, 73, 430, 1, 2, 1, 1, 1, 4, 1, 9, 1, 4, 1, 4, 6, 1, 1, 3, 9, 1, 1, 4, 3, 12, 1, 10, 1, 1, 8, 1, 5, 1, 1, 1, 2, 6, 1, 4, 1, 5, 1, 1, 1, 1, 1, 3, 1, 3, 1, 19, 1, 2, 3, 3, 2, 1, 6, 1, 1, 6, 5, 1, 1, 1, 1, 16, 2, 1, 1, 4, 1, 1, 1, 2, 1, 1, 3, 1, 4, 1, 2, 1, 3, 5, 2, 8, 2, 11, 1, 1, 1, 1, 6, 2, 4, 1, 4, 7, 17, 3, 290, 1, 14, 5, 4, 2, 1, 4, 1, 2, 1, 2, 2, 2, 9, 2, 3, 2, 7, 25, 1, 7, 2, 2, 1, 2, 1, 10, 3, 13, 6, 5, 1, 2, 3, 1, 5, 2, 3, 1, 1, 2, 7, 1, 2, 34, 1, 137, 1, 2, 1, 9, 2, 1, 1, 1, 1, 2, 3, 2, 14, 1, 6, 1, 4, 2, 3, 1, 20, 1, 3, 2, 4, 3, 6, 2, 1, 1, 1, 3, 3, 8, 3, 1, 3, 5, 1, 1, 3, 1, 3, 2, 3, 2, 4, 33, 1, 6, 1, 2, 1, 34, 6, 8, 1, 1, 1, 1, 1, 1, 1, 2, 5, 4, 1, 55, 1, 1, 3, 2, 1, 8, 5, 2, 128, 8, 13, 17, 11, 3, 1, 1, 15, 1, 1, 4, 1, 6, 5, 1, 6, 1, 1, 447, 4, 4, 1, 3, 1, 1, 2, 5, 2, 14, 2, 1, 2, 77, 1, 1, 163, 3, 1, 2, 1, 642, 1, 4, 6, 1, 3, 10, 1, 1, 4, 2, 1, 4, 1, 4, 1, 4, 5, 4, 1, 2, 2, 23, 1, 1, 1, 1, 4, 2, 2, 1, 7, 2, 1, 1, 4, 1, 1, 1, 1, 1, 4, 1, 2, 4, 5, 1, 1, 1, 1, 2, 433, 2, 4, 1, 2, 3, 4, 52, 5, 1, 5, 2, 32, 1, 8, 1, 2, 1, 2, 3, 1, 5, 3, 1, 3, 4, 3, 4, 1, 8, 8, 3, 2, 7, 25, 1, 1, 77, 1, 1, 1, 2, 7, 1, 2, 1, 1, 4, 2, 2, 1, 2, 5, 2, 8, 1, 6, 1, 16, 5, 1, 4, 5, 12, 3, 2, 13, 1, 5, 10, 2, 1, 1, 1, 2, 5, 5, 4, 1, 9, 1, 2, 1, 3, 1, 3, 4, 5, 15, 1, 34, 1, 2, 16, 1, 1, 7, 2, 1, 5, 1, 2, 1, 1, 1, 9, 1, 1, 1, 1, 2, 2, 1, 5, 1, 79, 1, 21, 1, 10, 1, 2, 1, 2, 2, 1, 1, 10, 13, 1, 2, 1, 24, 2, 1, 7, 1, 1, 1, 1, 1, 1, 6, 27, 2, 2, 1, 1, 35, 1, 4, 2, 1, 1, 2, 1, 1, 4, 1, 1, 2, 1, 15, 1, 2, 4, 2, 5, 1, 3, 2, 1, 7, 2, 7, 4, 1, 2, 1, 68, 2, 2, 8, 3, 4, 1, 13, 1, 23, 6, 63, 6, 5, 2, 2, 1, 40, 3, 1, 1, 1, 2, 7, 1, 1, 19, 1, 1, 1, 451, 3, 1, 1, 2, 2, 1, 1, 1, 7, 1, 1,

"Y",

4, 6, 1, 4, 4, 569, 2, 6, 459, 1, 1, 4, 7, 3, 1, 1, 2, 1, 1, 15, 4, 1, 1, 1, 1, 8, 3, 1, 4, 3, 1, 3, 4, 2, 3, 1, 1, 1, 2, 12, 1, 4, 4, 3, 2, 2, 1, 1, 5, 1, 4, 1, 15, 1, 6, 2, 2, 2, 3, 2, 12, 1, 33, 1, 23, 5, 7, 1, 83, 1, 9, 2, 8, 7, 1, 7, 1, 23, 2, 3, 1, 1, 8, 4, 1, 4, 2, 33, 1, 5, 1, 2, 6, 11, 2, 1, 1, 2, 3, 1, 2, 1, 1, 6, 100, 2, 1, 4, 16, 1, 20, 2, 11, 2, 1, 10, 2, 3, 2, 2, 3, 2, 1, 1, 11, 1, 1, 1, 1, 1, 75, 1, 2, 24, 2, 2, 1, 1, 3, 1, 1, 8, 9, 10, 1, 1, 3, 8, 1, 2, 1, 3, 25, 2, 1, 1, 5, 4, 1, 2, 4, 1, 7, 2, 1, 3, 1, 6, 1, 3, 3, 1, 1, 3, 1, 3, 5, 1, 4, 11, 6, 1, 3, 5, 3, 7, 1, 2, 2, 2, 2, 1, 2, 4, 3, 1, 3, 1, 3, 7, 1, 19, 2, 2, 1, 8, 18609254464292115782635590080508138311680325125583430358, 4, 1, 29, 2, 1, 8, 1, 5, 1, 1, 1, 8, 1, 3, 10, 3, 2, 1, 1, 2, 2, 469, 4, 1, 1, 3, 1, 4, 46, 1, 4, 2, 3, 1, 2, 4, 1, 1, 2, 3, 2, 4, 2, 1, 1, 7, 1, 2, 20, 10, 1, 12, 2, 6, 1, 13, 2, 1, 6, 1, 5, 266, 3, 1, 2, 1, 1, 5, 5, 1, 2, 1, 12, 2, 2, 2, 1, 2, 2, 1, 1, 2, 27, 3, 1, 4, 3, 1, 1, 3, 3, 2, 2, 3, 3, 12, 10, 1, 1, 1, 1, 2, 1, 2, 1, 8, 1, 2, 7, 2, 1, 4, 1, 1, 29, 1, 2, 1, 8, 1, 2, 1, 4, 2, 17, 1, 1, 1, 1, 22, 1, 19, 1, 2, 8, 1, 1, 1, 17, 2, 1, 6, 5, 2, 1, 2, 11, 1, 9, 2, 3, 2, 21, 1, 8, 8, 1, 2, 1, 112, 10, 1, 3, 4, 1, 2, 1, 1, 2, 4, 1, 3, 1, 2, 1, 1, 12, 3, 2, 1, 5, 1, 3, 11, 3, 24, 1, 3, 1, 2, 1, 1, 1, 2, 88, 1, 4, 1, 1, 3, 1, 12, 1, 35, 4, 1, 5, 1, 3, 1, 1, 1, 6, 1, 1, 1, 1, 1, 1, 7, 1, 1, 2, 1, 5, 6, 1, 11, 1, 11, 32, 2, 6, 3, 8, 1, 3, 1, 1, 7, 1, 1, 4, 2, 2909, 4, 1, 3, 4, 2, 1, 1, 2, 1, 7, 1, 1, 20143475233328356000659027628082687644499712816845987510752100669400253932109288848529370044406985775523258317525500006098031056635164566041341999968088588959733452788814332991579416427228546769073924422137401718503391033876553005333549455534122056398345369840560283721745261608954168856453115649198603064026022014932421570664926140713188746125145234625885226980815803784931302060010421434882702523859311410571780424060849294202954040001519379924939387396956279246467531773675580003842953483256575864597206476164434324947372084428595533542771769204329690278195656544981046504949576718868121138256088865443823199364782115271355975903538834555848273120540492787175247366555754145151423922015040451328741634086664667080193781145700734222661127773990429289938618504471875645384787317548656235616671317932197411670760753842902206824034272867014320111143918688479873796510411488083642106557125844253811819032427445553759993489236885489809358533418081979810950704690463005559014690676006193990380825250086715929639078657531022038059076950921587173061797135407431925919414407861387033701951146532319225099617372530205169766623581645192790270529087610639439986220655294070268284606078569193989000286379921821699691759313371129545593039842708092819356869583595233417413657746945476666800627273537278278352438625581559272701547580127714943111720802229155569405901875485364102127206098965705166250892990350585074106817928795782852157711244639707389892557673194541326150725535095615038153014840913970273131642129623472779222571573860942737319069651151252340760007255141227311030815140392921516537822681985765630149840429421602130142801962847632248152591450581324338950451113610314239346086526191506039073452653335445411071756077209225994585727880005860257927769892619825239971570446465818540313490391786498434168016208306989582751906679155358162159764436591178145522904291795364497438237281990391374302574165531496175454368412715393635473802621455925541353572071260666475636008440010141512749506733682439290992059320328233280139952571240459047442783055513183762893031254487186416484449115218046869636443945762952155030787369912240611641631832183822230379430046557106095316421773065539885800187578671873412340382774693428784708868181776573839823711110762229908315363039791489251899382509913024524963295757651020698895352347760585809640249857112886520987187077042310954467187519239017255686598992531880027057, 1, 2, 3, 1, 6, 6, 3, 6, 1, 1, 111, 13, 2, 3, 3, 1, 1, 3, 2, 1, 1, 4, 5, 4, 1, 1, 13, 2, 5, 1, 1, 12, 6, 2, 1, 1, 1, 1, 14, 1, 2, 1, 23, 4, 1, 13, 13, 1, 2, 1, 3, 1, 1, 1, 3, 1, 4, 1, 3, 1, 65, 1, 1, 1, 12, 1, 2, 7, 12, 1, 1, 1, 1, 1, 1, 1, 23, 5, 1, 1, 5, 3, 1, 5, 7, 5, 1, 2, 1, 13, 14, 3, 1, 3, 2, 1, 21, 28, 385, 1, 1, 5, 1, 2, 1, 1, 3, 1, 1, 13, 1, 2, 1, 4, 1, 2, 2, 7, 7, 1, 6, 3, 2, 2, 3, 1, 4, 20, 1, 3, 6, 1, 11, 1, 14, 1, 1, 5, 29, 1, 7, 2, 1, 2, 5, 1, 9, 43, 1, 1, 1, 6, 3, 1, 5, 3, 27, 5, 1, 1, 5, 1, 1, 1, 21, 4, 2, 1, 2, 6, 1, 2, 3, 12, 1, 5, 1, 5, 9, 2, 1, 2, 12, 1, 2, 3, 1, 2, 1, 1, 1, 1, 4, 8, 2, 4, 8, 13, 1, 1, 3, 1, 14, 1, 1, 5, 2, 1, 1, 3, 5, 1, 1, 34, 1, 19, 226, 4, 17, 2, 254, 5, 2, 23, 8, 1, 3, 1, 12, 1, 5, 4, 1, 1, 9, 1, 22, 2, 5, 1, 187, 2, 4, 4, 1, 1, 8, 6, 1, 2, 2, 4, 1, 4, 1, 6, 1, 10, 3, 1, 4, 1, 1, 8, 3, 1, 44227713799632726253538294741, 2, 1, 21, 1, 1, 16, 1, 1, 2, 6, 2, 2, 1, 15, 1, 12, 1, 5, 1, 5, 215, 3, 3, 1, 1, 1, 2, 1, 9, 10, 1, 3, 1, 10, 8, 1, 2, 1, 9, 1, 17, 1, 8, 1, 2, 4, 2, 1, 1, 13, 1, 1, 1, 3, 15, 22, 3, 3, 1, 140, 2, 1, 1, 326, 4, 1, 3, 4, 2, 3, 1, 12, 1, 16, 1, 1, 26, 2, 1, 1, 6, 18, 2, 4, 22, 1, 1, 44, 1, 5, 3, 1, 2, 1, 1, 1, 1, 3, 1, 11, 1, 9, 4, 9, 2, 1, 11, 2, 8, 2, 7, 36, 12, 5, 1, 3, 2, 3, 6, 1, 1, 1, 5, 1, 3, 1, 24, 1, 1, 2, 8, 7, 1, 3, 1, 3, 8, 1, 7, 2, 1, 1, 1, 2, 6, 1, 139, 9, 12, 3, 8, 1, 4, 1, 2, 4, 2, 3, 1, 1, 1, 107, 3, 65, 1, 1, 1, 1, 2, 1, 3, 2, 6, 4, 6, 9, 2, 1, 1, 10, 3, 14, 2, 2, 7, 5, 1, 12, 1, 23, 1, 4, 2, 2, 1, 2, 1, 22, 4, 1, 1, 14, 1, 1, 3, 1, 2, 1, 3, 1, 21, 1, 1, 3, 19, 1, 6, 1, 1, 1, 3, 1, 1, 59, 1, 1, 1, 17, 1, 1, 6, 3, 4, 3, 2, 2, 5, 1, 3, 10, 1, 1, 1, 3, 1, 4, 2, 4, 5, 11, 2, 1, 1, 9, 6, 1, 44, 1, 1, 2, 2, 2, 11863511830525419321381469495904875400967586474791935892791278414435067359724567692345164402663117292350949804661607485118999188295844872691427272664424317089945888416152008677596968397264339748369870049099848290716838212317128895042132174366177087395032826676480170100580123464307708406719690923255771177668760814628866540951374172955664617633438845689881269592293056504506763246977982893640653959159881103350073184667869396383853737221690331594334363669484113558609264187194902112124062827581388503112781705629183062496783412573529182412991746435652532198229831918916154328526712046663437650847308884884699653810068637970658892325719591379498531323446215052181446597215855385042334076445645604767603482772621027281054979347283095381965547093568523334241448950432946082473215362739365112192143303775290570779923926925099742065548403269465595223978377210909105812316190585136877246121749759736815223637919649185915514919675606649759558693915521960697471287510686038713825417689340017193442961216873622136244350553558432452355081509298618090267790528262124862253666141411861023853587175826210353573611632220238745271888649484196870096958488003544240498535536962762297202044035903306821871315920452828099229970837642867492693747328421997929466235139120434484431372889375226800287101562558336878040901226588061630781188662420646294289068986056948232024179819582082768971284890273455599614171806565649262372325155062936538939569016047403643787242496766831060654722996978416571890693227000141615154552970207656536522662786591253707092003804298977482035028369693163955903410908423094498138102257303258609815058786557333433481390385732200134087917056291628714795022249344701196613095630068362343593961659446363819768193745206039708818091066921076695155596321914743129043709510484028420338421898128210350824087251837368884629741288332295654106642539071426079762743203098259697020116623831083029011708350257542233114850015844821825837358696289251352133478247515878035711300685938323547307557204133181875193532159601071056210524289010263149500726725756291319491000588856879188323824853299350274419936774973902679078678628122863670168888339818674841141571132758083340089019852118541875072709342806326948647815099345350708171282374512990020472121304991911408946671903523584430921562840734459095146969357072222831005322218909101856887452497905334528257425577162122131535786409913965082854005312884222536512150507688266780987983467809384133699692299922733398414522193872959222070882450288583938551206693844250282236387884719140492061811681465161466195536598803357712214179102132023177083040705340428591401923222153605871808151753372626629451811419033115873464946635283917137621516813775013824522168163075704141306238821361016671133517899508105297560978676939753460569720791508881043981014024070960723732197390553037778079930039153960587664309693924243149693059174654126233164597135222732922931691442962710090085770454058956354344432932922963462798937253869518287688344537812516197911552373840639177441776039850627584958253425021070886254974709345465824379860480813321450271303066914521278960696827494842382209956387213658941704987378034214039761788107213906942342553472574609419296018784436232365001971350027308802312628863492076452028994151589968304308846097196439037896771406513380462198224254954199917310960559459826949274899777828779961849839105701164389322862849265385594146926987024193243166370849630090270151628191252107523149755401860486703705411013713301539517937106564999492168125886343946798485652709038657363431495694232979163819972950153960563023052539283379237599083649379975952828295046578610391342321262740457232881070994528591370913894275717397727380726668573731398481152944620772459041976344199223436884188990435066623117001835992266719711727429831444480231961165853644646743277154745020008039291988466781873872056102983280988158436299391886112090992427421665597558662043334049248178957376062118245243907225958360826861189036577980717915116101098771377873897677146239465540966532184760035584264044412893362988626849255943912175910086218898940380347733298470414510379590073753036319166511364999816949557212258006413766483545831930361039824842532624443914297202174555225518359521286492974721514639735689577015237884747187653729844033101922316457964870354681447942715436904320995867306264456522757614749249123683121038714924517499874030276979504078968764885685294989949813777224744304960159103050715379239017982501164309036653450182618439589367402133975035802344320028762450200638303860044110984255944261615983470076306987141965817376781904528999623075666945804456408966442034612559414829004912090580506666195669421660406194469762608499887505211809262382500636091093754907005313710269817667631555307753320749089964378602528066956530220143603315946868976055931949002814844435490789442081354916277224536313269936216122655349527282190189601595427608675705517209381849192642181004775446875193088822803870258495068091590468996741338498144413778687894339578684182559552224614579205159627619307890699719257056767647923212673436798713977323563553234162055672478440891411464084546110134430491955222638318101155095889557969863266742398359575939358647835354861873968637401206785459988603863728537776430568451177370379959367818846322301532652316676372076591912271159525891970492540850939119134410611648969163916352912664403258040381865077249668655378854261825137289103619122094091280375072275526767232683206230373829662652484276893128186208375340852087867705799330603726351050174667355724730155690133855901124348746261423931895040528727803499041004788043186574756828235760065599246024346253665256623786042096586780249427811573542643095672738282351117727066864990329993071722872463876599396287783969470217962528096806560636169174182542456482890165555764313266205445216923387117175820422209089122944656551226441114343233782785049558173967418472770612982766309033093411972240486363440179409440175264710952119401471672582550226456070060777705281250920695339269426457135660903143681521147853325742085445466951154523355097723736752646521142729789696717788925964586958507237027451189970442419470650315970644589253469930668072749516735233347241736755730416236645582835786813978859166687267199144777819111795624098738349804634900086731997096648805574861848812401466692615584719622924552671162581629215046114680976606756152283546626137724780383430887851363629957867157582556916410598805035644563013544349433676592574819595406291792508790218085046650915014556400751253009296539670307095365962610343522244963285241997283544253016556131171836893796411107535268249714657707086915645541792566780363851126037333255770113458153748746870389797461157961138076039373496406966446393267378793945712742549013738326871412233708501235045212064239162739256506371084398265312257149475829497661552451633544623521606826557535597836387624809376060535861412335635941836698425264498149834675214996247594293844432871859038578625825476560311399618868788712035045051503868306005447721321997125234937765163305538454132062762922391822193290997986552626991277958566286713869081515207451426819536371780698239392120777621439615539968413145996585433711445437786436159792721870045668060250318061660040379137494241648514626561684123873228265141195618852380398757058779313964138949680182613566722994491496675329328504532254210158216907133667867638105304930648287402459546935874612838005018218681397715832563080959549247235813938316410427744637405210413318746014188310315009765563447476513743206093170554920323351197885049116608602761598848130671494557002509935946791576859731667846066897581874874021126828953082995887008631037442163231971634038660884142754074642071404573170677635650770019202947311559037264079825914966135354926100023854399142880459902005753746688848490685529613929717418768642424653602584272677749030824328586135030071086069915689921769108143801780604204639508823164709570317400365333150540835507184825986149738354687310429803187922322277187706257329220172952861076763023554257474150209538248526083992624956273211241961519015690598036513714495883398004184013715242040008215533536561980923121173187162872473774870291411050025801305137452766660888618370895811082610844865188077165716581861924230182145300178059831839443157047290248625265561595857088129041529456625555315007793568093051701123574179988632964847801492505566281869749223640474765611349034162176705807486861898087605162955294761997238222432223106021041649711817609077582803556254306199913915152733170405146696459108681943206430394458506387937465795986881123601592521952188939881720052958421221255465265287799532095603754367586619898416408591027380105557001211335239155156427794600574134370268552546913782001775138326289950756063191969504001661850794689604354165658960284548008437447840375329120623529338140014494524935225230259908351269919946265107169982242212342350316922744843281188034273678102575790007189902345532746495131779032048673743410763996257512498172444942710468655078355249237908116863245081027575339333247531142117599993005142524998950064753503033238804968565722941743671374276354104384981793263677756786198931847120931167225082392707996114344038304011170684151487072322649120547464036068026408910001800077922579657171108844801026397196610098571984623108830421114880933804026439661238105549403210564374760699989365444204195317253910585688144861803887081314144504537197537563790205149101636950284070466914234562920931308338030305493798337964278234000323948452044541674404670984386349875767187352336264579030616592544478522306854483895648138918870159105034452462393724771049283411340935592595811590427563369483357123391168974241386398049404951294271055800278622348207625554224798274408116716429142214042873218142251460652716070338345072908560555729624549399723411469862654984730417603302869943350816219751975880268737816756685239395275528845068841214934580938360563798002305087945467632157157132889630489483075281015470542934036888742348092719339027109890946002150005240712227185920152291528819952733934332364793881779271124425199405551237498116480430690190254104752030222026164584799300190572679929848188492693454364628138140579816709812445132393317611185797548683426294526242807880035379923756234236645417322125470043395179432758958224568586699812946877327558266829079645169993234710441343249583130252851693887674696879975116818345062823023325263917866618125951013385562082766612197890392571632075677083446696184789844424608817786564511517151663341959350417271521150240128746319996509023837324313648382586248554329412610046834452624721489317170192573411030506000436701865503701216791902714444184631728268936242214510397533079630596986287161143967075386066954718389867422414094289969257838826778881781144492790217451992335930892561388297188308402771362812461305075170417280327016070012731329116890543741931891792240120097353136568127917543595778058473537682885553963436007877021883112635868413833590942657923549373470327895419289877886729581887899211347437074976828027420307609452017457116690779939136739953180961618287220410495186978769340947746070213478703576922672276415263690800353937755073579916351163376820451192638649204940056782417815983133220383986166716869176233354125166514093198397886966536475734999646152585802367182782616938722358844043882626622321233084833030706020259931278905866999643840151899963199766532261323471685620559428699912058114716512702011770048207169786371728043784630488587678977515797878240026557659511943647744138880539614834360262971039218610960907070610691334431142398915046155694249572877135066000573030277172044262047399158302170016119716047434317042043534226892826348280572222347342122073635088392842812505029904077132393228292813018685130673451066826469881784959464673550576533312444666847798836735980980713376620066063295036446446005598994666822296860052842941898389435044083982343881857690517248337841517196682804552050585045132154274125792000523909367487112134459035130783723643210353233054717447409213590634819419226370457954472524874132411638656705985879365410824063920638127984359949014558784192426441070519569756393650811476432240826821636076620876076264852381564390678420550755158078432641281418217060287888833169208335333562480513852140936778628875582043741434876750203275575763823624236945746753753846866116387591832298607289573348939481953668601200324998868658273289725344087965413994417596638466339483937426576806041130917193348189477863975553220164961120653768194008223413213964387939145876926229578327032113704635638346584646964707998163346140457248065874400630221263311335964110477583516736483558662462540976573226827388214621253391212768066380180134433235340445253596981148536979032446936419014906551753886031368627155199796681198531530917980102697695885511652867472845843037812873583061655363224714117587099051622661982334260296935055542903636930045542435465696109628270479530599774041211866541114435553889298557129362473445349261232274143964634803572130020189613400953866258411970480411272142732859746298574321295140207694474497287451312345810269347574135103581484808548544630669429923049806760609481033460699264620297128607348229956566751593453345546585499040757188322347363117013059746112115049542006396184306877466743201751473009240806081905608782698826699553272460593277684609904780182778661741140765119673470446975176784971273542940536175410510360979963655684268892290539318875180384279190420252469183528161660777054211127344354774044635263316820672559648208910893995102014696093918818877460420761793251760613017200021531342476203349886865195324241966854781951318876901489220123062024085527550726654658001130080474703780839290950014925631015513965055624379639448382522535446289727153640482304764918860715127877087747920403422168639626802786126433348547476387986219071258701316679734697084057948511532834672928757111750367810417506312398249317344815861569023632735081774361189371166884335265184098219093273373303404875535827677382778269829880310698915508851648943616559819157633615543083782169608501441600659197966054486538690691187012642607834525603423574705672955303343575325193785855553399840719116931065300779958360688244289868604759402847358829375282888019968414276329943288937734651493723431197222012294852581849751390709404302487525030703591789142977668470507427088213415113936474846838402479868269784054935791159106567673409730853253097024696208204495482707807816705797548839544530125776918735480567662632063335933586676522700111417595296344267331052316381260577808849002660712712660177510218821339708065581673752176339311832582292334795642201225868237827688867544704196342507497015244212137426740540709751510633981629331180587623240411374033103072327525011303475746500784550406508873163448761431600449408863530806771447171785825342082119598652477117962581827699799771481463019051407540213038348467814774806367605111107916510177546468246483838300545520788451305117580196088373515280131310563969685837676676120405696950473135026098970706138063924935840658720522069653097068306509916064909110371932138567489781012545114651275432513634687400442454876834386650745497150242181320615803073718390189060948720426498930930010246286964431272947960069586712434752812038010659011927168922120922773792911562955165113437399532515459373192866886583394663258337436950275500843565779495272374375983494651660586531876892424254855539683055019901594888250988502449191310865701370132404566473982118787795327471975596518511417954665237688153574573247107102927489610946682949488550602211794895377929384112430527168469906708765115255390505702606686865563331990238349736437204795265885256302674417391250554413219283177635010645254391935910521267881060157689327516479029794691459314834874407132728696872728683899976709990294192029148045026089874454887159188887141872022322416576173083040212050360097463400279815442986728719344744482764678842361995620295096514872688024528107611020197209780467757632668386691496589756020719483389866001653813163028710364671855735285736401849560368295061974723427888811906369422387838961144716372817116027761319021934841663850449225386544717953042284115248987878183661549653077162506954508386989756769408835506771275918411370032552562627221323013223809042952141037478730455634619971319549358750302209089713631241095887065137940210568001023741976130142337084051349890086235634877380285140800137773430642228412996749761132107459506963522914707643367221560461239813246733885705282832473904747990035872612129536065775587337332045127360098947482676707616003962378664068851706120343329075430685023785898606519677872593246690960121880780735763243862569103828081117865328076684607059641528335535194121829644110890648097033897833456330350220343441933378682732299937267703724656047103674236095021366220824960160062132682981577215747103536006025559475033126012902002018472157413218361565202058710099080454777426437799885837448536839592255683755880908763658099623685479118469387910854485837841658568793518535755699978306693679251438465139681927134278946641707947799257973064508578920631430037486262632417651705849332587705332929744199354627916009966555735571689299379832073050273362849181566866457557435133243408810430605949793562236828210411774181764429953348487491775846250532605526680410373443760432935856826520340814088212614901372665389814289937088925422186409039648873882304421466022483073092463013008229733962402731770915802207407147946668477262262984859114167651650799530670361310740136086849915936383367778920002703458725636376356061445663345550828348807262746879666893165278071180761329806918483643789369171430299412930972504297178243134869105051543366668016285519441045610821926883584196613735098121291865393655872465770495431149610240749637270573568680978097556971342570332383367937903622346410312748748246984676780875395343072529524598399398579468098484427338665266416239517611350308927216639162666294116995598570223275945268345878476852674826361426691669205672789418450111913705447287991025056553017608754104926291680254031997716718825865880235958966334307489614796472409941609588533579938960862395319292157813585800628867328133099612108008842836084977145082048615957218997692534201169731620250630783181506796256232750343535980385664758698171492684296726704375188398864903973114881884138420072247419732407233279135402179485819347846255032586778960801651141767017652837612589087667306376496926923943528462994462732657041430827419640767811486941417351537106702504490837317222427958287361189724424341658935423039483719848003660765392419169960007322317621522068519192309354977136646130552617352536165278031444594072380559965836977681437882608165261993290369363213748700929757105184289046156613138740205330986546967467371837759842458025699950670019051056939567929229688444067137665510253865936269831256850093643745588850884950231956896836429024884356627840643641336068117492156472608747562244625404171755922978236267446234306436445291442988980788338316905270124327420732345815332854735691868591194121109115273553042963138259570643805602773121660664738008455083310765199749705579086538182541259677705122562805517820900435924304015252687149158557727738647687706052430584686127769336122955007121655166668659706027243517456196538358473579063746886618478790853891005340036711301646751609486621037949097336606804642521137551859875792068567133404210100066235481484505421937562265408519898787441101686949511168638981532581939790638922941456241720647827787921988302783128315632236213874555289179257012644637432802355216972592794747414186738447145633109240096809197730041982700047309727165440857230710037497072308660484705959168429661842762549292309031691761828936454588466298812087897639289963567277636178338334347821676616103494260786874654899398639243062360463327418417596615059008477717730302970999962348373157488861517132118900264290745410560809925381319898480865462069317090616422654294284315037982013624657124266986365985791257116381728724320508406959163348523092163474893693838876192715371962071908616406970442762598152380297543000023781508069839278549511119283986816551298077146603650223561504855152581386259956672112787421674474131799800682907764757965763748917108469144399045873744253692131026655149044920687810488667776395154836750459310861523430877155092412344672424721120314661109147546338849272253187938819890086309875875779636556338907713228456185841980407859175120217582859062001769975569251217526457553647851941962340529032242667531934336200389215203410961353489422134313495902144409711117555324877144995097649964640619711034936055245051582380728839386495898256387186964888072860630400704497505532082441422615881787690909796956794397840212092754797043480828263061953226142996157983008692387053763641704350850522881142488422683728329378158119450754277791287141866742489960895935732182505725905686422379428969384324564668264379128764852594533695999330294216377082954694955690399509425611334647292702299855905263104325095479882179898354977126103783083492668586236528019134152270630524627239207616247182759361101600032352454753073104458916042867379706880275703875233987063713686253270792930641415024420469159316770854120735943126885011759175547832794643343676642542132857348009689596593088739177845134382089695002077126422973671008318052902764074291689551963536797593562870748994237435996813395006286807150373693057294551592387873728094051650427679823102992272119346471342850490719984572287114222502464420299629249583682895397031486613739154000407439742155476093868891643623119086933244351164971230041115151800572943018848984746023933090144281280662628630096554639193739536342220318960608412985749021820504566126214966586259334654770459295048855949679900506915845063347938916783788582253678579924052966517865242512348058666121891268178889209732423792957105045986755729255248279442242424744376752896254641483329696585438402712829726014237318179750529491403285492872252370783386997837052570015905871228301960942084277394111384955731193969454690947225739995561340549497815587885631221430082702973411069719361176376408584125103903654286208247144070789090902386788440509987102971494440788158549240370771244622008354478913402438282747140593907372166580184690444981529548472139210208505073692800776491608223267414942099142280544770226757922707827596250874988011260709143605447966174741966507848729454751775565488062392980028797024716444196594653437491095149264081646189213411394708661716704754863682897826066057491994642386924723764087054229439206390038362230683002813555616035177436878318065015247616299250115804478235130086358169456740520794363711247224440421664626371886505874156883938014318813747075995096218721842412082949110780605157248905526796380371199320715611733177903116494062292628284876203506730057080860643819467303260657965004371660843716017926669983007119248727464951422295632770534583806988559036247444788546285084517615139181605294965552025506205858669409963291360533228840517629997819001778260423333477136262885384496619907157966332340463778476505021761979450603283027617626195908220277511212664844318929593059138202181092876843323501235531295662730891325846470963416558038850239133715575597946599952697329239235630882903433699939885046812122390596096506237661619047017093870875075395467988912179782238034674651266686739945394777318065521592563765572608660965331680729026154305334295677920633521647510158282591864644062971593867322567767949089932750420872253970453662812400497612979793654348568788050974424743936325641104614732700372521239270282076007845968776886262231392880736680357217007107641992543339246096710961529329388694856381700603601175790447912509489846456454646662537370119450412640750577617353223167338150750438863097783329603130309605713034020468016477059245974049904935800483518815320497514866158718464406266817959750713710845236758282026976821514481952444776948336797655412740280996301785961802410765600039620827443321690292965531150651301147615047880336337331031094166857177105167309103521552536674028789340735065075671080543105345843015189244116009636114263534957010237063383601680273455499446585652723027530752452816782257854698872924495597030783828663328117170899275033236431717320334958153229069891546628029664676487089896490201866913291740865829533592071420417135691096931330258982466741626642079821424248515576566329534627506901348429350718048064717739497497927854291392844888527587674468109435070915621592676527050107423040973089987571959624903161592962081794665292782604971136258932447133873901216008429272533421337989137006369550001061959574124340631711516918791866525918477399522182698369998741845523551939475265590947536479439627728826485517383622013205627113274774995565747547457103228974874779193585570111641608199672297528586972787839833266216117380318884075763523198665823977747762058666104733859767939298172173939753736935623090629872696135937238953813484979710870585373968037838992124826053503794539493012761661317865274266408956634881928017450230501783324270761739634989938821219687307252902664656848241246663762089624503494626984732184993900681665086081984881359703017453531862735148659902976412549025046801361742694495233516474744374343405079473078517390538971022850409461594397287848452750502292474983177029120900991647859832944051174117692531543646889473543717251020570534133436790485104808447832668749145919499413138732826837715017629074574303664171134018067218910886930654551631969542212318338410749123752519083811322925037626779527914760858046668743678114639353639489466593658451682322540074509922451951627591766869209743062888170003713330775602866018175190213209661209871574971311793312951037835194110287788000242438748730094196260164762506769553572730871454115591389758507472750194462046943339435277715587772767775857149237136008447866869871382363552233257137686586542836743022903604359151751576897411529437684951300778968416918749845210893056116921945723747033383366590343525578606864631259541650089403041206353665899500997944796081736040033802279454887534434687658015480766248497991031781204058935071646907215318901798419687399623096552073811913815596565001663076332108912334998882225850306828439737306409287827606901569985522669410721208840428179459678906945898660427089914941184342304316698389905500636872690409588514936215208653489405847023481632675653405655575087682925834899758696750334566905003915950455011771161958333953970923941060334262079177064413279164557119211065200975961716940553760562468481266810249594538556629511344278858900017211615246677732478611919365762747819223091035796899078022023063363525677126316026267900070227857506363313622444988443928148895869127638639756502789176331316823493932143354900902259851623233124925918382425962077682616364831423614911868738396413722566296439145638539989605420167195191654420069111298734271989466446672181492622428040466701253320305354933778395874258380841873273848897358361652266526499123955064414918145249154501198726780425213312223174432982360487028535113116508347725242080538323273829389058871258644060969319425404567479786826763326493804708634644857065619847060951997559630082239568933911296770082284155555148750457730396273414833336564022505832892102761267630974909263188394038587908965841657094969729904463121128037519516126323140378995099587773139694778622525872550930168672909375900642257592423786923741121027349109645072247783243082375292820809828809978459038168659400742328947149039435013640306695707116622967311376715530518459815582693534798009194387371373288197751400369982803736706903762223091396260157192471870338979314067698055571447684247836940261978439321350177261649596526277152489231331313320423526690404013933516689745601126601224848819725170082524624493842213873949735498248243392019008765818688018020989913335687756146507701651825588387093403263733896645326788299235216241377166105074427877559652476257766726214722398977962772253048278320380188060609085696161991248951123196010301631809203289903107359356971944750501457911330452827623970321789945619321745725167602667205108890167480740648625676078014851436836347899098625207025740963360608610938067758121358679816950657903516655502369305428255701894896128653893264379425753541317820094517974585990088367956797067282645807144420150496113016539465909629771131350702593470150048148576979871144728967270926576516781344457123702989512804909542227643557460265770546881440155172322268473757330057639283343838828650689780410754390766943539701515131998433707424653929958602313859280609863259241550670316581839279680458527097946871066946052417834332803745153649528598015955684855623758842050375987214978236996334691268111000991577599679136755308808968861513555263497084266140083203093439537702280169021225623838394475418076165434708541715913518725858580585982420431053268602330775143849142072716616785154597925338946664603877951542165344128371763515253162084933253280162322988075682622376471618059747816799195166075477271431919193986664534583872525097669387922317366009852074116106333293371258500704121178540736443169143160172770781513670001664374599209570174437429399722878225890224049184887272825970075966984169122962560619136331761376103607152768595113678442590979325076656638420675840921150461764871407213142732117754777649836798576118925460153727645032573597749682196155495420751198899278138498392569230251020245259658966274656639404483165586771596864008859536226540413608289013932087766798108520647231683383109794845495784040691742727476952962309147738822200690498932924858794873940931184379989568208495889796973094450537690408191469444966022967314348473711683164131804609286875614229881239053940401573438274618932031968012782997915377439043754435856294001596340617727101723758445119771835041066453856613614326396751679794811063028506134024171562860339764686478352173265914458770565937295133989363246532128483648331309950746017278695816610950574663995223153404250295266791482292506514754673574744199562967666469907325934307377986813363189599743455215913808975913341974332127616004911671800147455167939059964038424416011525407671585332301276637339463449715892490332891068719381636104140688192675487148282140440139365461571439133406406013105439313719477815612610308403612883560177764056379533019655799421980735034746842982547975646641780154605852509578494565891352709641567308146809668638320186979863546934599865016426996368736287430708888111616730465892509574161654752498370695164146838890164011867311708161410784090961296736740194885274127039503173511793451425200049463526933308633880839053429144417255480502914809966779016679049661952013451257093866380833869123373232447149388305583569838674167361145761870018765496772654296045395838247189281532873768757089674717206214056958883004087065803229177737597503456837444586436461801157060194461799037167146166879658783988791580493181436035002643873874633417940172361014075524183380660429385517228703064898305766666151240305419472179762637306321347636599497127737293157363466081184098711642428963932070693173847318790081461894190899313666725237266861373818527740932272979359537180795153069739270180024760543848588662821551868437663911719522172474679748621496631890504300996806137078593519949998406606225563975938003100831983857557312973572538243407805156461496245360858895138220788295409173120609968171959070528857753465763412526629734255422412875305222963827013298285353248406328075403498991997885927067349483544002409510767762561419349205551531555356858785221835761069786505274804896550973243480411416839661465792903859521934644756875195073433433014323301624930520964914831858982400027767358758444241285609976614415630686548989580296541281031971668642323801760388613510178114146865788020617319698725982303487743823861950895055019289392909224865388207678113407788961897082416717568204979406017604170887867121204193794784017321954313720647150434383069097058502234976559852121424455698134398326548606497716485045488278079215299949632954300614146760698818296424675388613558958230941165906574882868577004795322617630533923470136178473546201428873627429503761196219543248636867306193769661220973078085130586306025774344388103485325959253816628829248924461944147949410640371819702164629428328240329072751403504879800162305409468107460202515081017308887197944843234636308603255566532816899382255213058207554267866403839336094183885437204178317098457287442291832938106960015696953715158197279543570924623282876368047612016969559197329225350563533559441006837321836998760325608526522831391365094822895567118252782467761672355150032170498504534683890019181200501583543081351783982931979606119438293369522522443424627081391344355948309211256336520352388073635623935711176094985654961251094245852784548650294850106253988696554419758413602842919499467669282588287189070086549497425851074071578808278014570452514013676513618198656300259157251431979531862634408626927793580825386642051016629406915614834828858261285174842212824988048268347542390801280791632038314841926698135212460679672260023100799984940234877657942990401876270534517866180008076163116051182704174013469061927502945405344141833983338812967751103290944906839603471807397148464263991544861015765152180178427894126706420849258286568762707823453374142687727496350484373387033651537058508567572840882124654629852445040826419684419274556416427285950798690393401929566707579022716335218587995907156481145138658, 4, 10, 2, 50, 1, 11, 1, 1, 2, 4, 1, 66, 1, 4, 10, 1, 15, 8, 4, 1, 1, 1, 1, 1, 4, 1, 2, 2, 2, 1, 8, 2, 2, 1, 2, 1, 12, 2, 4, 3, 2, 29, 2, 2, 182, 3, 1, 5, 1, 2, 13, 1, 20, 1, 788, 1, 2, 1, 2, 1, 1, 1, 1, 1, 16, 1, 1, 3, 1, 2, 8, 2, 2, 6, 2, 1, 2, 4, 3, 1, 1, 13, 1, 8, 1, 8, 33, 2, 5, 7, 9, 3, 23, 2, 11, 31, 1, 1, 1, 2, 3, 9, 7, 1, 24, 1, 1, 2, 1, 7, 1, 1, 3, 44, 3, 1, 9, 1, 2, 8, 1, 1, 1, 2, 3, 2, 1, 1, 9, 2, 1, 3, 27, 3, 1, 7, 1, 2, 3, 1, 5, 1, 2, 3, 2, 2, 2, 1, 33, 1, 2, 1, 162, 82, 2, 1, 7, 1, 2, 1, 1, 14, 1, 3, 2, 1, 1, 8, 2, 3, 1, 2, 2, 1, 4, 4, 2, 1, 2, 1, 125, 65, 1, 7, 3, 11, 3, 1, 2, 1, 3, 1, 9, 21, 1, 3, 1, 1, 11, 1, 4, 1, 1, 2, 1, 6, 12, 4, 1, 1, 44, 17, 1, 1, 6, 1, 3, 1, 3, 4, 28, 10, 1, 2, 1, 2, 1, 7, 1, 148, 1, 1, 2, 15, 23, 3, 1, 2, 1, 1, 1, 5, 19, 1, 5, 1, 1, 1, 32, 3, 8, 3, 20, 1, 1, 2, 6, 2, 5, 4, 16, 1, 6, 2, 3, 1, 22, 3, 1, 1, 2, 1, 1, 4, 104, 1, 1, 6, 3, 2, 1, 25, 4, 1, 27, 2, 3, 1, 1, 1, 3, 2, 2, 40, 6, 2, 1, 3, 3, 1, 159, 2, 13, 1, 1, 1, 1, 7, 7, 4, 2, 1, 3, 7, 5, 1, 1, 1, 1, 2, 1, 1, 9, 26, 1, 1, 1, 1, 6, 1, 4, 1, 12, 1, 7, 3, 16, 1, 3, 1, 15, 17, 1, 1, 3, 2, 1, 5, 2, 5, 3, 3, 10, 1, 1, 4, 1, 2, 4, 3, 2, 2, 2, 8, 2, 6, 3, 1, 5, 2, 3, 1, 25, 2, 13, 2, 2, 6, 1, 3, 1, 1, 5, 2, 6, 3, 1, 37, 12, 1, 21, 1, 1, 1, 1, 5, 4, 1, 2, 7, 3, 1, 1, 2, 1, 1, 45, 1, 1, 11, 1, 17, 1, 2, 4, 2, 10, 1, 1, 3, 1, 4, 31, 1, 5, 3, 2, 9, 1, 1, 27, 4, 2, 1, 1, 2, 1, 3, 4, 1, 17, 1, 1, 2, 1, 4, 1, 1, 154, 3, 7, 3, 14, 7, 1, 1, 1, 2, 2, 4, 1, 2, 1, 2, 7, 2, 4, 1, 29, 185, 1, 1, 7, 19, 40, 19, 1, 5, 3, 1, 13, 1, 2, 1, 1, 1, 11, 1, 2, 1, 88, 1, 29, 9, 1, 9, 2, 1, 59, 2, 3, 5, 1, 1, 4, 2, 5, 1, 4, 1, 4, 4, 1, 6, 3, 2, 6, 1, 1, 1, 4, 2, 17, 1, 66, 2, 1, 3, 1, 2, 22, 1, 1, 2, 1, 9, 1, 1, 4, 1, 1, 18, 1, 4, 2, 6, 2, 2, 2, 14, 2, 1, 78, 2, 1, 3, 3, 4, 1, 1, 1, 69, 1, 3, 2, 6, 1, 1, 1, 1, 1, 2, 2, 2, 8, 1, 24, 3, 1, 4, 1, 2, 1, 2, 3, 1, 2, 1, 2, 27, 5, 1, 5, 2, 1, 1, 144, 1, 24, 2, 1, 2, 3, 1, 1, 1, 1, 7, 2, 2, 1, 1, 9, 1, 4, 1, 3470593362426793545919209935059532848259442010057592967963664019985280632489011803903373474226592750909720879077768781120615579859781477598508979249296165496148336122435809171813059757933063027253991118609274980445983606942731962378224333003923052688653909725078663468180397964707254009498618902849025235462595904848948949131291469787625026003175501311919992315368694112915353313130785610779432983405960054698155071189138768390978653934194358767037802470815663698695400534771392684434116525288101676602699794373445656424669014497357983293457039484507783603954839141034933807056646552194801823225577304190530535576995431721081151048779891154760068631260389587296471322009974789713813186440220168027824999472386994712572495532669730226411525933180708188575367694078014964614519712692404117610127712600170041261094254867233219218483538497991394466352031491460550885860609635509362297913357360069581528606256851171532550573800295874903536617605636950155158214207072080028642507048003255646527342880715837181473119557466740381892661206691229495671217290341180515678177365684497475978302409592328911634388373068944904333197801632113690963074414148388320241983755297821253400500448784865696208666411254027431525744346976759895141542739293926421812414625774164995237447289576866778257356896216946655021093491937139400458316349739882190396800860863999210967875596486252997333456427999072794766093151039327117728833397885615073115720404164500464781481682710108872376658529501636353078351492771002425764199700240662963920749249605869594952355594395818022443023972023883420182550278455549534278572415241972158615278432380203076452709516819885506180457480181694581738748792567024232055897189053510683498860370972763225073593944378554061635434936379731992172821880155122649998451761207916814417544205140404497954149084933665892480407631946286014692758424570905843844670389891689080596746708288290395364233229092253290347786119206602717910167121754664113806847941463875854265654185004151805928658093564506297345820894853057266560322609039288518292622816370739061768632322047029935736891725302376992712037978168084982726511400324694919436721987748932572166211328559643069936937302598039765161329797805659595199009959237136153536918108644156072247159210536069976141538620692042861628366726089195930751685210962598401574028328981855901635388279106209767666005509460988888245301, 2, 1, 1, 37, 3, 3, 1, 2, 19, 1, 1, 27, 1, 3, 6, 3, 1, 4, 3, 2, 2, 2, 1, 2, 2, 7, 2, 1, 1, 6, 83, 1, 5, 1, 2, 10, 6, 1, 1, 7, 2, 8, 1, 1, 1, 3, 1, 1, 6, 3, 3, 1, 3, 3, 1, 3, 3, 33, 1, 1, 4, 2, 2, 1, 3, 22, 1, 1, 1, 15, 1, 2, 32, 4, 1, 8, 2, 1, 1, 52, 1, 1, 1, 3, 4, 1, 3, 3, 4, 1, 1, 6, 1, 2, 3, 2, 8, 1, 1, 5, 5, 1, 1, 1, 1, 1, 1, 2, 2, 5, 10, 3, 1, 1, 1, 1, 2, 7, 1, 29, 4, 1, 1, 5, 2, 4, 3, 1, 2, 1, 2, 1, 1, 5, 1, 5, 3, 6, 2, 2, 4, 1, 2, 2, 2, 10, 3, 24, 8, 1, 1, 1, 2, 5, 1, 14, 1, 1, 1, 13, 1, 2, 1, 1, 5, 1, 3, 1, 4, 38, 2, 1, 11, 4, 2, 1, 1, 1, 3, 16, 1, 26, 5, 1, 6, 3, 11, 6, 1, 1, 5, 3, 2, 8, 3, 1, 1, 1, 1, 3, 3, 1, 1, 3, 2, 2, 2, 1, 4, 1, 5, 4, 2, 3, 1, 1, 1, 1, 1, 1, 5, 1, 2, 5, 4, 1, 1, 2, 1, 6, 12, 1, 2, 1, 1, 1, 8, 1, 1, 1, 1, 3, 5, 1, 3, 6, 1, 1, 1, 17, 1, 3, 1, 33, 1, 1, 1, 1, 11, 3, 9, 3, 4, 2, 5, 3, 5, 1, 3, 1, 1, 2, 1, 1, 1, 5, 3, 1, 30, 7, 19, 2, 1, 9, 2, 1, 1, 2, 25, 3, 1, 5, 4, 5, 4, 1, 5, 21, 1, 5, 21, 1, 2, 1, 2, 2, 5, 5, 3, 2, 3, 1, 11, 9, 1, 2, 1, 1, 2, 1, 2, 1, 5, 1, 68, 1, 8, 440, 1, 1, 1, 46942806231086371616569200, 7, 1, 2, 3, 1, 1, 1, 1, 1, 1257, 1, 1, 3, 1, 3, 1, 37, 3, 18, 1, 7, 2, 6, 8, 2, 17, 7, 3, 10, 1, 4, 1, 1, 5, 1, 1, 1, 9, 2, 1, 1, 3, 1, 26, 2, 1, 3, 1, 3, 3, 3, 3, 1, 3, 1, 1, 1, 1, 19, 41, 6, 1, 4, 2, 3, 8, 1, 9, 2, 6, 3, 9, 1, 10, 2, 2, 4, 2, 14, 13, 1, 1, 1, 1, 1, 3, 1, 5, 1, 5, 1, 6, 1, 1, 3, 2, 1, 11, 1, 3, 2, 1, 6, 4, 7, 3, 1, 2, 1, 9, 2, 2, 14, 1, 3, 4, 1, 1, 2, 7, 3, 3, 5, 6, 1, 14, 6, 2, 3, 6, 1, 1, 22, 25, 1, 1, 1, 1, 3, 2, 4, 5, 1, 1, 5, 1, 4, 1, 4, 17, 2, 2, 1, 7, 3, 1, 2, 1, 1, 4, 1, 5, 2, 2, 2, 806, 1, 5, 1, 2, 3, 2, 5, 2, 16, 2, 1, 2, 6, 4, 9, 3, 1, 1, 2, 9, 3, 1, 4, 1, 8, 1, 24, 1, 1, 1, 8, 1, 2, 1, 1, 5, 1, 16, 1, 1, 2, 1, 1, 1, 3, 1, 5, 1, 1, 2, 1, 4, 1, 3, 1, 1, 1, 1, 5, 2, 1, 1, 1, 3, 1, 2, 2, 4, 1, 24, 3, 1, 5, 43, 1, 21, 2, 765297707812628450416720154318060542310026245753687546724181127379613339038380851703053002244792930054715752281895321217943147289210235413888922540867723914238887539583003215194157585055058423120378227705642270909826290036931215393130110404412821018600855783561124084249696999978564704340952319855072722855646723469994074877424921252396927477553937035529609234377498955908202888323754749075231004606744053149904411121189676495167190216232575117414731187296675344669862654287382231024790960130632169017271659993100367082446533764500866463169085507847252244995598946004160937637379646179086477347096591669582980929889011268315772023537207598465840357496528843569649879719458510340805379532539126306176529898941712148745484717791385729898171065621579751494421096199916085445511693548787430329015927032784833942666447410139666797741886212933188841291417863418007856511688118480036386676057389528881620147965220941270872559029914693260438751517199326162584922688364106897200289094159208111245401305071255554582903427722873754135566798859749477381118652656912016838803797643667298686367783366732898241461499064269815776739664775796944278137444691251663183856355335297227487949096127120528427619714241625782042114441860188873985642391842643307343968222910158556930877932898067503338032969853421952462806540375369744459326995213759502967760022763697444687234492007086018169798908984696763997792374672158310923910800721759348598331671576641319754395132844726900402902732772275925995204974102146613869340125336786466948549863675612490832399354271317840619802122976020235561438142496126685168617304585670307794353626590947144553727629020007604954609642069068071520860353711785901229464400115830309562351066661017323025827058498054223132626582596730231046354901956075269102228858208192304778242952268565779514369106000064870763563457962843018900980831443516967936779881104831464490770612424415415086959033625761899853843392984991532120452266901102865080543956455032817365231844703635942388040330537317619409303353463980826792673013640372542461909307924937728002551073427513515173567552488009140219051366923224415376269557269850670210977838541307804622251391627200428164456763409247619087990355823539448501227682981485904210713802808447853719216120448344672258997116264273420894656470567768762628362964453601310050654197809073984778206356110994259582083220275247738495966986654523176605117041092733834226588139229903236451186731857789523047748731007366120762320041667425644844954924959091986511092346027648283759266259473210930142924792300309759320097696239566159170912029306802244191431046799006027697964546076325869596622391191880234409794502374551781710940703044673707033314789496685318654245858346009013479374443913695643520876847087365874697199322199562600378350980586061900538507959364703986315090061083732136634525185957238265856109574295659488535570328767476271670766377304253004365810238275518049882975151423982170248877506186021480209548028466251112412666577375658645615511199522834085936226426468287898740199399601350906976965455988186657124999405920702807584221386915986410823847136086379184998375993319199147925610778151374681313637656514165771978855633433059791638523616526040854760733418742651920266366795794029867384333267168697197881155302211124042106292658601435955861067612202841167979990187438521874160835814750568238079751138460959535653669783032675199521370439258585043348833498762322627655552645062433895656037157328048007479455919738309046967393956224992630932987569247950170470084875040324915100821448674028620164078806362232248825700596973249838783610500238563911050398940200340540683659328794629730113620336235622153028175679531523166148951655162200434723176707946709979327851091739871928769038326926629760331777623228054406916515437952692524497441624448708412544410816117773546279726687142433268787108721475395004793919436046524865290959683686553656980589954348052278325076881810196090222316237593154563708817890226722261192884690402676842036500832647571596005213413628416165478558116218152388407814170343047752900909979246431363432967558165193452544766544214150893657240598773851412729863661681753309205085990918391242404999569129301340183852958585510233993036137861764593754775846817709970013241177886609319484308920255927220758454320587338953705375520240377484059157356241360320828611796711287280241247149879411973332373939218002464735238722571021997060959805597597365332130630606715743585517193072265094606099435959797538303694234575016474010313770896951521354143271562833216631915256989854322712985853522830572868178773568007761514699659729091506473150655585921811326590770508174806861707749040465958454044353655214300363891526741071364639007473744072617815873773231710406864143257784050951987233032767329595467931964321990960895720436997731001375426088675373293511852245131803539476504128067018871192543434100049947622420539938916677946074530087980366945052852385765511383926342935655186989744811581390121513084604320861513683743287426230794610186533856779482078814364608883508119158333907657440272516325802834682326863488592360040596928543382221135152523055966389568124129317400835568645149798854114180424168322614610313198302068779116996901671076940263722775063163203304132131084186423182897309767640664829085282026549434613592040468012805962552923895126067439057826739522421245741527888114388151958092525461118061039658498080438646412871227737585714553845204425982515091198714449616649581290993267836235085859420670990573702490150997885640129181843081959785218310360228368814066689936545037967407070926833387392525259923489219963832541575780650145638119171135190809939325975812903929476773351906034974653053664387819472429437149033306161005259137537586621206845849111171059535400556344621687686009279758844318043673475593484933160529877926720321674894778548565568028429160261625398795742561434632915726719173858132488294656478910090957988830387860943360778492638959673985445231793911076305722559001615637929056251612215409659168311717976927248694146402888863768097288997570398199815803646356999526961786497294640292253984313598062355187602916667369377646651802028315845487614171377776752020904856845481626734122276934134985581364718622082794740786872684852890087672071917802319852522820031693828909535835217922113626714399733474454823654510160224579479060831603695147319811070862302327606209518762727434036956749185094547392936370860538425295537694914276415244633776644871028483918120071866702576330074205487555149501928883787824116258625957370589684866078168928079999458775522267592125536766521551847231422608791844580978328245562726377963717021067909357323895558727558090738227418412823070972249730983881958902405104134163056953691928461600075892494400488079273108045464173991380180879258265182092565980370758797283983504162625852067846538294540151197044733436454596373715554880296763732163540357083906279215086665066256825545447486061654888150837174735692445172506569950121680571409665974655551486961864446283169149834451449206030449147685723316392413493256827457835798030029581491710406002178085637072490040874873369883092787149855803209959498243388922590832273220376618618638241047836482896657864428982439689291526061194029432330245509343344049298618476776836959045267110085897715136533520011868267708146132162727397438281892588639445601726471681475238301314183124677691623319036087100343809226163480548614946241213133812330649012288525147606138617623016135476968325360228828115830185172153935473860000371521124251887991558363192926271783160046470348024950898421728469927815214892446464732352498732506153040105614570194425540703113626051561832109338003611993085747528695894709236196852042267290263944595293516613653028965509485087596651070902166877522084642742587916535330527210946159131716596383627961114385268180725607938459784267253326597466762149716661466746732556423392700091217892305871682410428896356212459776705654002406840500805896778324395506690194487851449806868956446254083867519176626658689189249370653588766172467413234155885565971753344084796277169387162796179909603209981417915181215607310887329262280301799786446434292601824167346529020379075492681921273613121189173464554255026547411915691880277075306886766575636436194552043660632676002927666970265141220268481219573345271309249125148206653293853530208756740399884202952864195193395378968025205357587424485909599792005588726680251325490327248618575775172831205277975825798527059017122426949668310499865320853758210666112187791463428593480255389503763881140493771147588816052717951552873007496587221061368046722237737507742633855379490688417298730172782572959378817590614730525347272035133934015517411418646033798649667872431517210536359510761722438645041986147169631507503465976179366814924551187700578067667901180558704719528943941431652321822771121970953954430891771438868413472828962400081752874641272623463453606213878674261992387702471677802659022239781577142180095446294565787640535868618676057403943607761995283136762875934503611615485467252139172478581326543908946881138412222738367379184169373052583957364889395705413459791272688944399978239133338893160857240263278798571121112529626810042768400109339265287846034129768068723129250892683196049750827773348626678468467372781039943371734248061516437951802732043680409391448128896413083878299447013857698276470365068171830832637230654958756612481390379282353650955967304751982657711315452190671342443786293997902330055526147112750355091831485122789905209634112240722234882122766540136477552697002428891194318650974232847218318992642746617065453839319056502835235121167712238382569761664082874745037541845875824974917668984078987641932469976864527899478905191070475571424864140961868301726310066924082251370172442314218591817336446723222240249229453894571188023778442010259838339232489331370015996953310334459920249797172529183025359241468894508093443501520876805695357082642854271183273856800497132915193195920245656905629574996158124683350148532028481621708241478315323349016008289627981005379346388600938224505534017223282013878588283640239818365654497936080505775735096827460243754351099880567928625510599589968899254339181264384871416157962956937741956323446324639873553193140073966278559757083220935881015694572878397610164160492222299627399176047310883942870189787829336825062567580718594791943092464901853465118196982700982992795262603341597174052058136449762622474539306222857037644194393052809535256498359542731221979479162811692863345034698684951832656454774533304317770439841680533346429865248419461363893360711965790332501776246991982976850598873129348316011035730914977505043251617722448090059135356503734240509838971875056112335789851620839410145661961061491061164387305242507016125825989079545890236702964289115220625083330019636214654636114659191053386150994972474106729374080601875206421795705286904998258155145329027106525480391369489703793948613651930019051900024497345861951293469268732343865198355677722693205196031560404258891851357525907895161315291524684751551103691958852861863433927966317644044314644231299979954034392938593561362578977206872834754590332209249169173949261749820522335820182597896005080076702911583508335049974591924168193552826211904477495575244802881732208228597670688358680020810401341843669602634767549524603475128310121735816768238386471282881913707108860785802955589883658293515468981819898917582425901070098086311825585184662302316855808960220667062450086870294158376790313041477175681502262675181747534934800210909505794587532834049963606650272223462660222093756122697829581451655101518552428105578899769938374854336720800409109315843846873496559439500868355006966787694470943812410178965373629154435084568573983321335778076567888290264364468078590710513829764425444036445250263190156315181840123641657872448960627347945753171167923472336182354078500046579243068816897917517543418023947690899754284682062121415327414203644448340234657002404100036429024268818729162022637577149344306425947721494056248479146761062520614075514461557897474604924811011868195272303998949742992069690616098495848196360943206872142499669846129338296602887376679101590823995816485763051828597275498842972828243773272876176479242971152438143349796291191631215269960729299070921555044135795451463243411893774558301797456993801793955824895574995127962500492923337924449859004096787397988580987833080317554171492064894204446480158400178648618821369285906420864453065762952978051341859142635050112873753560494477358736267043408244220678689110431943145632086649893625165128238488826475290593215549546809474290977992869688243162065235951500948807724463734271116687699168818631483351891770614208062915551958857633646665811156317694328135200241084001526677738684754272286506917894835108136086828232444630872917707892766843893339106016157308005720137828330935585417411405138226852853410538802903024967130029443466715700645212825336555291563100846807760576472169821634467228412604123223852357714284643186753858775788682842466409930582929267009111423794664781403719923737899778154075681519086083213972669174806812948906516105984027299378805778349422008693152232432068389106828620457410162899643086518719136490815417642989307244599916759859697406415436002743854612363280246785838517541991357388911053650362483617253994375555523724486847409518905905824938308577007528584538078508498720934731596701326976290781121057901955929484024986826354596383116809615366405808549142167298636026726973239020327573242269161332359549725957333534485363943327169296140672458965748007401780577758060564848651532800840755730944520849507793067394443716839427157542752394574103138841364291443461205794279902330882629204581396588151149739321160784615292965218575645257263533962385671064531969413858389477875309868277237626519771148272178644997313410352849911386875108418261805302090174630305437015753435803898165393278755468718366340757215902305688847424669598795849183415967087629040985712637337041205230809984607368208204342034143055238142389009633970280255077755882800317495492897950733458388679994760661346005847614942500630961244299845818901410523381849991438525172995403414177873446260446733762634371219489371714044488735491871571834768215495939145793267572345624522903413023629331060680895957803921683441059852972327866687352385353471109530781768863963458107637816296902529504017490185950099849925141616571084507798629317060702504964251487505381318241327712832621616935615896464409610092385849717954680936270507766011352418072028274667399629771209069758877098911505358023313028109869842764061859010283050249276999350757993001514164661609404124960980398117752894013335056413276679246492137221903690277058885151854447179864326095461570617259242282337354093782264409681456561231119594852241646181053499558420723441810337666591331118754965733074283878148709469790684910202722786659033871786702160403763536907832928401207361039587423727820341347287479600322185253619667387445975895945051964724067219009568909830916298034126325497529496400213496104947545654957163580005250785338940031656524568769833078853882443473597095301849306443607402285074308068501482498997050825486138203832128936235227294385924002828605530454381180931474861476064045654370911866045924153907264992793509048973113157054698595654115460154835600133467356675634858768059246169829026143972739670794003106849421370804495222707423982335904868037213114169134578157014861510207073087228233263425296584282578280107778329787113611909496120154287751313431894959542875937740035947407116019564266815624694080243492965132275857972009264520111830037771007976567208277950497816074236195190744145266467165777692042279187688037651181600129011790709028102483369814866434252529715820135072769298566836121629738626171592132923459066615137900293804364035246903986039135757503561266964494262311624354604184804964140226954547091070912249219554558759151253211403322868683923168185156261388267173490088108862094535610700384395339707863913541830505771970446846195655824806228339765507393293533497900745830171774898731270516986376246379026575502933931735215067730279212222092878626157476342719622286715933455290130104139074316905452380501943095671878969172048538490165462413910750348626239786236802313344831267636569215251830887919755612676619557724738986932495839059742630857856146831547719236992647452744192633360805911253952230746263016799664076590065295564716008092126309866706870116316725425148252647348058699738277379167671480961215548866646964653913308026100136829267893564507319136002320104456649670823691991829958726372645370112962623261420164047869934107623608749341694648451761180476345848773126584054267966909150966838800765130233519707104367162938659437169784955583538896218799802064767206969406160448076438125453145327682113527776827926715082619955051282140634645417231862595070257390297139608293023780187878401476844354302734076712076685528396165174538997371122154645571513158393762675954338822942917491194263517624634209636456150694424740727990606606533887451081729482537339827781820756094398546838382696892744317014526940093163785734774370739914061675305777847513754509118039120225712576255047966144649339257562276700000321149886423970449162259139913622101984356950929077225867406921336298906336928394159639575377097716323149126317644658514199385731813786477279225354766535852602571748703519110532148017845652626109924264414862493486557897957927264256350195811882208996134978325066549363171534566513370186158913084036372662516347098632980718761033783170560073919948268964391264282989887790832506840871121056740803306409649267050890109386446532826731536975813613736161733067594780588507665859013992195238162634069434812391606797215952529619873503572124078823302224578640283010884883090534452006397550873482860864647610815452133099633070680042081266314506252702017517105127326958770502595181109318988309180287588636439571511052834764923973110998838391392416054088882556485350619273894271841173882956992007119051199852079561239317812706890079130791075543388038108815116937726780831755904652680787539654635779042915701700977685545287949073460185533500188428025268405409465784222292031871814125706175102895497811104385967872563357963232397698471794952800339925472769576122061809773151036167717130969623677573613732679021809110837920416553244513842503816569786641660175028776290625186749165736585479427177215739074316062154133259386539121959511451232008463597837620418288246262741805503671603909523957509508762166433102417409406098862089421405614910103153676324248258039377063557004739158152324542233689505084117690455340589733500613589801908236513425462488647396240786723674535415942447873890966513803265521340296884089175482108587043290296537481755978093670498778422383003243529312714892790871813450303753624349464277928320272042406576719369140639214764980888406916330197272052964579460853105806966418324531432791491967780866513530266877657064574971867146780879148038322430821186054110956558879755553736493337650945761122225653604991286710437346825918403862455856151460857218493620238013768708155452928133311020346623245815944008582811427611729489419373662747723452306041830059243705104190146795480263321325993531289310096784349768570902812665223898394123059981301209438483023941544298969711715060136214451919955516696590836098123061421690088278243074558399125347466753102976029068618661514861311684677965962411065346800826367075647826470524167680110529521977484592037213243473910344785533247729520527392688204448557533736909314770515731181482292362314105181228953333255515960914097860756104434136883499671185969083717294781156166452903707354316575915748318651473899398354622270815627966616621504198551395960286410758554809939973901113203732959060034355038499673345670374556387514622591345638655924721619339127490463706604002513773886112811456074865797246913478868236868150213073632329199107356156668382420727021883480987097443193309656877089446099101546691305934915726068501465698645332821930483419351104753142109221327998559289669472895532528033794505019010065138552422421974796925186703907028872828959831589363806278679481030849971381960833248150473104914463986519712846678457155490409652164458660924093669490130943397191442934109619390242465134313473387201321082735395404965960130731457544080633919039571003018645277950815047191885431343600167115248824558328541380085676650529423011772282389551711779546222335341381928295133093818896012896041305248554688066806777593669744051889763198841842243493377344220442723214066142234498845276632971367372745778671406685904151252223592492756278821001672139761751098333281299241954412934716821873614917650095465891886910610495071751624257757749567169786279414919238101916873852141379247987482576631359597712619888417168325233689992114867721571973775186752837618700500971277079630437509070246204845559587899817949356744005337267639594488142576896450152577779516354033934766169310201805134087624062362460198823613816566050459439698002130372594008734385502093464494581669485114222712928889361980451172004154209684651309510847310842287808465170806612401081827312810413215619541044273841415759432964074578055614143659639837112570545927360290334925081734088501939087244499034292270987036887106722307858774393909334066606907144035931907782440062876822856163948960297622332253935333844854364229210744449027166964706329994719204260828272666363934717543420793636942428990418032782745165583524510257851555533980843921646884706356258790013793496401426623031347236564630744241429529889380568883975972073342125729716515507399837448280354946050302723304092785495633670650851646272881047997803653112448265691798761547015948569416860070310428142026079129073058078003731094673762480133831396797780964779714676850440984253849673173116619830854511021136292391920306552809829948774561242652661146656472655246246143181389766805316442597889476980198822117035590836980624957349748067113966637683635835328847761683806836175206878153679131733244973174857036488420022180348849337440913337515797285198328612482566505406827494303574743967719982975139538175649647205946478123606434971205444624388990023082139322196563803338009290747974758330896775185796744278355470175684846831500050946190839499662116612102696730388606080744212819640217724049772282063475177335015044796811969782123807426401790619026870045501024661475994039367475465216991575151264270793134156578360320208914701602547715945165960565245313981267073332564520225125706121518014008345863653973405137879703594023082930840280795589363684465896602710446034265867660265869160048747486565680764053481410206544266341093679217596325417152064384190624009738972775249135730190281304582735710720698427923880281845680651498845302979467035954451493416775296466523127177413795805800984182459486291068108413878134387621556760936336124923086133004177867822694891684799745331338503469445540582640131493585735291963421229295229566533504847537858797608040664807272101584516169264772760873526471521505584156744019868776245884473067651968886797877122753922886581405162182707597034942040676061652286151789492385662192569183775694593902102805877287115997430290068452204260179110918071245595384814476867079079573342183213126247247209621858768719458909719870024235944388134106773283867062290944858482585045571076080042196023226304236082190541338078392358137393559429981529745323884260816427375643698647674297862988538060144193299664272921385452307733124210579214790291163398914955617915317243459502672871798369829290997542006204373359853589660915488861220383521160421584169696014084386185716681418938189274045332637994130376526092045181778754828088455427367044682615321473227148872126194695303177323744544452025465017472982072601029941782160023016117461662299173137677461738531514309709277213395936462009613322577672445938742450793119183451988308853933606035075129275258683702801625601277545729317120099839281246406556043633409447881833759942243731219558299994006476694538058052093611647568532344840426497973164006386911607849897842390094595960774952909230666242661944274313289059476999497821766426509261257675461653459237782059015753720556617120814311569241198442033223867719746856309744392051250133837849756122686918519652178661246413004013727707282935321322538993160071157035460857461147587446077982123203747107184649124673605901648706313471986473017148984406162641382261878551662179354372834905840974405337943696319793103028633061449708330972862576820987355499699219878914626937363405820015391095715862033423778823612906637034524322093849392300913329782848791801570774457842098238281388283936106690457694332883124552758134205795039189688824379808813671762770459480560773611827186449445014773330004172383204338261197101081808028568285406338129383848344446650380355074787004721472990324478000362899665894738715847039216121726084795194964906658919905948061484580736817638574447459626215524662977482808977967447745068511780808954469875893693526039178218367135838245217677271391368015595036752777386169816490467009595107339185458671514759849720159482014355138274923273247336218921242053878011715806643354298218918012263604033426718083327034599931586926845328873465928161029556414983520607292780034921953873492162302884999068086964174815512110025585780318827351984009950472230593923733476195813176352820527617997114766378540311754386806188400357710076453867691065104089942904372230664206955407420678342682909221484250982309520820188089511431046843197668404869273738698059235457862427265825428712303953560464968512169492186128129759526168327523309476516087948188836155060260056929045015860914672295425305494040929887554299433904948753618259339851553989298653587683557080995048109042992765154796564754660705997232685195492565858854824993171988593057030788289691665291245350475491173930929578718015932880036245238330755083454822734557519722405704253730056024820514931778677901285340026753690992657271021779084250234748835299045394790858846731622315926242338703162736236947139388906185198698037394701896991349845873090639127994311249933669486380501385014680599643181019838662419495104558495372965233914335034251572391677398206389627376853459024654162103379661917149586575227262174495311847969187670084264467907098490460259971586614069775886118406906711565792342969157234164189104471663517691470454311309565373639611158558117761982273985122979204049899785072560065348950331830104424891300686506293579424385199647880995385818833816249440179008244473296691290533933556669597958678703035082935332209988057086858661953094327815351194377634515163251773807312498170967821239353488228768743856332361097160563734971840351001542095168205816894351462303053563172871720106079268698224558462228554451612532103281963882729282248314475839325596481709561120167582122078078417762017921478145042486661692335025798597438673382216741710367301306064739431407762962603382607565116262674028271482454436145707768427120949535809146970928370672592152626069801363162225094086001925874868878747411385539644135537607108933072619057193756517382541077449239402552463740131657700510071967106623696000865952267810211041683199416055660914744800898010033578106412112786713309978894684138645901227745468951384388724389581312581276753381364639924185529822186240363853473982009732594408537509840236249677252911947266679994609518920327592383237580535642764618291911760827783851233598688447538725886795232007472433245642509057357137692293403626519095974489404130427933954412003292995930232410463802382978763391655244320546493073239718390056194798272199134680932987942989388948757939522393968552625772748059628387554874448216563843541341179553632068968942476480823219104841759520977427034471931683210004244395261289340016059395470737834435650084277585378294331544890402095064568020966413669785772399379093367120039489185362348780955890696727235766088860575981079725824838450215511181257501646350486174415092027767273478526477072120818503984101691062222936752155689871381541815056007044674331147046059258801404913346537869097396748074858379566959472468337041752178759137861425443880145254002499105060562770611071589689458961256629143163156326009283744019923773638808643393132910689332619488873651634239925108596564441480781970879564852437121569103847326686407611359444108478492079060828693462701305655507801963076491700273891106180791178399164868642487734913445641186325096259055646744497392478703086752094021530993809715321395528366187574091701083421817444707129280959908591994020113839416867544857312703498773411073169595472703048472139000249163256483967284285762585269443354521778609448984156356560657769931230201928522656178855566197540095994783006086839327076400784859704519203173449897686403080814479032305087542264248111371351158133597538843287564645961652252350322431664732049259681803964309723632460605050751023535425006164190330395353099425987535789954731330520783367830845160195018298550393256140530012252966088271534320211983482778359305006950789710850176355404407761634215590441618920357378604499397845392462717824447623453607686091055150188162878409577029561933647267974024516934959850434463539577699557276328313543338342555543739932226797143716789889650477537227155822972150183359808040729916253169333702472176733004602695489870883372753936654928457228031783801618557306974923292440777063462797414430193219427902175564145118317545241169151856231255317538523533528400625543983645799083229957886331924571906545252223826885897828035382489808937519222683989394349282960458796306512390387336256694890938058572617518481296815510419241256034735930729609476988223092352510131932545692685118504953925626804496134799726608765319264161560777630602417580423614964359781001421161413208976114441074268071661718221226035806546194647782072186904164659360656134077080859884443661059677250473195533019818660521405891825260983734379633001336087459981131769105997015925722353060449538010289932166816782592521054127609046600056251223460188459933648392117101268368778029447485934539631165635506629647765418738854183559978901566895148760601221593561021808183429794591039961978481896772731539954073229858481512380993573617576349736558811252028547512810633156840311621120920198109242197801037118120456815076470870150886276893262565001170992684855549015090878231740770168608512911433850342416462929539407229717252311813038164051867586243795188703709242349151355095026531952175747491648955650812378612312844203258845988752979680531772191629459185120894731945414110028443518935413906656565122402909359582968852496300111136741679722766253971719800383026035610010648739431324063800413260112984895133787205254582311737060156629277758295267954959599605207565094211768168200963916402329289652829110384690814816248345486481600321547098405594234943354950240237383637125377745145870315002198127775356859799407261782504327807060690904493330533574739744520616504075220553739868852843534224426295333587685096174923837077714456826449835505449913149648091307715940929012210908745790279441449752519453818867013433365012393011861716977890433311999706842033693511767903580661310782298711625030556419818308715425289553365337905987902081728972917012252597510915210103096042074718169807588164286198014263569438816944739038748949297432190570363254740342977159759433972810626651556938364677243457737153800226502696823203808302694236090432607991049557722929690241188722824337982332157744433135744016155928070043603271644914013495878520649945941772460635997814727522000731530060892574238904590675500403834056866126191597916253094019632986909565650732232319421962714989067005461707407793472165421658899724270560446291875536010821422590683888368861357023746729256957477308819793333767566348416073024098884453087384365776820035157923818916224225908451211148972534259805936165945126009386472469373778538736890667375709462625057192243168798338037937502738713379791791095908342550459341197985401104053275886475398973086027526890023232188779480886260192110574558645989029343345918022813943327341748073316068008955968107668322304028776094442740965159763036416953764888170747441819674312887344660504528930599649630993415536915408978424011108876615162732077944020509836949520555940649717263484842827716479029208630610932527876194342830974593555062914051771564045378236699259175613324029279341130561208229094753375452238171247996708505569036602509239317214006311867207056010132239359533805658750776857568842336050734482735163857797637621631170832983886812932319386026378347111631097890364889316149869981494087593463987966767623755319985403028061738037477350868201418389271636971916989518603376963096871573104209143618417297557515979652579846327350045876240040536369616724632479177609265735140887810925734385196166758922374320749212240212505062886466684740685542248523423755818335430189274706537621234871549536697566872695356495956988000582161784329198858444365157409196562671223047835629594677123333029764888566805804452521198463130433855660119763442682661245394975305075668177443296686704093626462922320383339841285555133001355991966667841423844896642345356071258470128369101412195529112173612118806040284960519146605070420146137627030921108940512797721558022284407349372484041523437287709103608300298575164101781513192156676953040826490703503975747363687549471925885751934609362629189534990646070547113125253595146898782920509672323289740574163011004394691087709632326931260148034276637814304335031394046493014245342950148352548818303549491716070018903149980446111750451318908757234470495883324696538592873992083189743534607008721334580437698049678201661447079547353805341349657615985248828070841371817023445042351964886262738730650755297972190767681026715785817625343319970954235838339729084139335005508314124849560662093849845695769539549828635617645773613750017239590205531352751364660116434707813479535774077974644641332980771232437100548497149809234979815805089517580563553020366524618868787891198155957665642853351367985423597982139366670012946089883967582250542921841618889330886247645960284295183572433720715660892479781269392832943112096938623529793772841681367090652407647195082445022609935268321049225054260690911458186683250672110857190965128786607043278420803282266350819407593694780190591760495723866129361775052359105288998704950528735303911114487571032298768864738957419564422663458674194920934768369791683059550964028939502529197293806560990897506695975578169733678552093433475126491002337202773998783991377183459152912172848856144057356833099374022017128071281075711769223454574404122673569232981000223932907893677023389963698727897395880811049951653196003822660676587576637734799801270452669624912499384943957204236435545564547716759004947374328635266376046037985509534385387923538852165943999297608589315311813828545518133532532867464415488214065213981019529027754211075769440798220918401304136549821644230637443885247230869561325668260468587275941789233236146773402241313071405101430827292675843928546095271952518409539765841612600064223960112433176852646984627520011578969844721444606198874674837475758202332534226032055567292916068157920307986953847815875715135980463025021639300051653228484839950515560973095879534811558992606258645695258240013868548816515357086382303758219820481385360797123863106720979884407344884235258735858305640283533910896406754556918897558346665301743382027128836652686508107567729508844446725191473231167654206878134171591504808957613299710541458576889485020522460879457318443637954731186421472366047822572884977402203003282680102349093474154803916730033645166866230588897332887353400223172640127713486462844417649477699740873997790077186767762731338655251675297665676388678895809710879808084265211467971833694051794696817559966139068129284461371767932487635150823241949835405209777020546862627740525231005335790835612236284084958020279976913186852888168063482009066744302269816509377169160233880350765236522731021023618462175621486852999472607137631162176849224637932770563033961996754308476168362046710126313643400723644777710575168292676210006287868597649077075993015170788472830881557572320351900323106690207934841230657662311204037472885980641870453676754176505534011192044349314999309120031425505346490608985310913650349002796269019961047835940718273009013536040364104514987533863341211903452777673317490538003871378212665922996077556843016489175762612234957961400311424784427822692373597514426143975453385077936930419000382415735707596221297282406002985263196730512864071733827001530497431863941709777718023839582028280088778507700228660416004199261995670980822140228186692249899644341600963376233033452212570379734831097036521739063564888816537576265482995980684504149974737679712057487695774548270616608488316914169128207324941891244155601325286818005695983733274640913085222255083124979214109320666315735295070715645495571467031306244126394410241227792008644806604563153613080058162009807167791331545369397368033770295898496427026784366246603280538820198235142266980851580676331700381769995131970700141411924555266912104688642878559693226933550551529593275205692430641207092103558092540648619908016764910642590036793497304506327880689220403546582521464374047178920967132050836347115146855812591612986970744406559989052171200008300112472144776280971345257227685818639960523983447233157070961658982556735719311297325330664539809550100428005913766385742846328872609662888081230611387474102793149944151547193679003692866303608791709500376757231244910749126285059070435450622264085982445942773470800270083310867614370891976116195215047611739855028227263511795274656342374435759878884088769408251788428589371062854463718432824640081469399926326474291148295730429077031750550290950207881720293976884302643390822421783303113762292868998075022137129910969571202550808347876339062957475928417635360223494299418224003937260830944877359030843414981675576069509963436004675213863779845573607087372113880158150089592074839800016275588216947293800803624375116947661259495464071445965812018581970108539680542157479481077072964356681122322382808631321610799874756720668196077192950264693517769881363930710017294332324612463029757368224982602391425982674460883141603699282421614476038331029714281915135610187433239337012194231570683606691582976368465913696326117303377684658037239348630434538851628747470779156312906917709894594677724072058558315656719886825149615732851533530349282749975994533833966686439245084511498647593827991315167534106911118357340533614535914571917239487991655236706939905302465767116100480085393583170236946455796247171359399235600017733856917990864826558328796497004257314624403382740828183739675192757751110585685707379912670638579782168542523930418675228367404320374060846442905060376523762763732813142227132155738565816514873839543959607947029752396246216594115330629217311080839141838142694117276826695287664627108593942407429379165884703492250829278293810366024891813112438088445503850936744545396451183262317817371934402776027755380519882128433215711689169610820962764507027659824941369003390172194500075258119069109008689353560716400728129865486360368745867306712505625143549905762195925019700235238375130199480556350644494192464135248810359210177689160369249669281278913904843133853862931801574456024572834900207550694722745412246106704283411351375595256482621953365121999146092165963969053677415152003756506955691222316914512673692223218440592951582310772586584085621996894005040110051427661758871827138262033893720964133023413730836176182278640105015458812931126138078518449674072491874546861111833282070678314765689177460523074166158148351932292836168213748897738813809721669813679660683071343987288768052886071054877123642389172425711874029417060717883204756592004538834242448061334702731714251691170920737994058931239569526041688095979959016090368121942555929676362305937558372674798019318616893973934677013455172617497070660995021043392116478123453130936896850579304765447759328373671525404829635750795343538085087793309992344350591177823161324238454434264900890435082122051482730440868727710655824488856417764154197900552623966117652590089850302144570083208671723213162856820802183702785944312158639434044105542032021643606089597252435078457563051053462298266240368971609434655334805710679965454814398681555842967557399755717839735173821891216477695741795497899114759723499206760607099484062657642655764124674384648930041888142799737220111685748666857318843458202260800898389120682105762663234158441431444757810686590760555041787300073938860285129505545643225829611163400461041772463717666024827657694464394374709927637356887837744425521376502050425419500761602119949783621178619537798433701100627041584368336312838713314758720618045747859493573981117747616127172627571028207414125968802603988414403830251045542039507977030032000999196848092318433719927719393613778551873115348288751180718432027100494875277171669021113574561863762639203527336325623151313113189486710168079408784737105515891784256035761428949508878730243034086844873303566544288870215769573493782769915702225467948741550379828537387760189280005291299939760936991473053634985753894775006061583692745220846161821875521491014589777723590867348038942918129102429779639275128495478747670328106791229065952228057500124721183616844743459535685459049179613907580563768041557929722577781600329371574805671972637198406507494047211493188327813351070286201978798390731193283119880199477035896885077170185818784167786357700025138144885406099696953047392981662551364737556053086030553825927464727523937513994629502910748325959058934101556023138150255770555427382608838254650326159593632612702477614430065246543421189823898100887545337412835605499019220931047123247189234118208024300950967490233193586563624333135006014754182542721802441858790298290804606650380696783736425188137214383133975505026806882365714544651220578122291450113676755941343814068751737452487603729385371820325655522818498066961118286828862233235278533710263152612015714149428130467231604381704603652858643252192552058131670114974757344792540177422652112035850731973342553668384436608691020007403467984354806203477611170570624773457536179172964448467392848376433600967283841311462885977597494907957825368018490812823128335818466088956615915787981765241976401602126209985906574839707897546052906861506228633753499428102308279655259079425433261700137000640761013827347119310862586846188974477955654249028509760665662330962245824874577987760110264889951531405721159454242440873052116988841684400444390364365152954981729697203813039678073544024685498577019393635345612693658073883126661339197514082109871460360901274645762032452877151223657410791277064276374576279328831603632555899997169229140250144000198733598231985319487703264772852452910233659975187339735750089136832411394555412009939601626946998766178343844268748644926954835889347069494571736085082150796459155084239864411460798881219250825837339168518063222245486900775878135209439638152775773073132665666805951599026372081365754149951706099593307775193019442679395604552939158258070366154496781767308169190782492999943215306883970823287555623797906684103295006968498374398684139587591310326169551207429573306875497283197599843520938280229033016920498445654035722095041872679987695985017696130355287805117796122076941608925958493880415884374169508040323415760122517318057247338528543506445923476468009413403556851866557390356479551673276937895427307223881724283151475710672047247362889193155779685788907446408766218199217384463843534298480061522861644619733722587475271106446800242836289404213798567222599399056630235649946590594403944666072845259120807557484312311355307495703860244245542247490914787538879193854009952114018336459419637553028045302571684119910566044406931067423187578501558138058886958151627558206559718969246783166890030706599088197139110912687538482384046888263498635153831995414610615965541357573689119218001241225121611807098531481227596276871445879574550203058986640154771698868937133277767445848199131063185629758607889915312863760586672913625565010084133875162782565265273463488023774580100637357087050924425110534378421912891384387972164860050403297884997939031531758747017723957929222444305421742675027382884262843196555247161369418306932736951309856892372781361283112862223238477302720724271274081684307537773008979247669334755123705647673903152667505024943127765227899497229988043246550047886227103350941891671942388936068720601029974258231205605992463721414471283967001346621797562022924940914469250434813983892893622142523556111157581333836107367260475324419911711515615856031929212703368126937667529878673752551164259269587692749134006274943560446708465037414740064576508895855589843146913589710014545873410600499769065478409983021842230455344881024217203649540753784273410535846325566647387483780264143217261652615058542766729537284400338477776089049536965863396764807545998377306706858425891808817826059803153111011431476660438831411950322404594222969556792661582304724369818263293519357418528419292795122940110501560566469887094917865361082905340162394443578268285443349511970018981873211786222493557742609033798144404984736564650109236927459814379429316332607228871906004540217130772844539938419593214943163361533772240434017045761572666293668468421057464581173239932089925961178054411125329952050840478831377845686414426270187428621594128610649464768284674805112891618688011954303790211941302041829265911808536606304211407263556000293012056576207614714994448324565462868373862654041195319364929045063079356189200391778323719672384068107003562238581234553552468480264889843602774824423290790706517558982828158064203217959216846852298021979249134793059342436646290308479195601530090947400341501294862503981689580654926245493865523383225891210083185179818864272087259338362784255264418431802838527826953461513212501303125449471381250439294371149967142444485912318706159296172187370618138808629695188095277289842187911265192226602327804509037022486077302037748660268145399763591713034002708413559641014550218622501250223307011133437187693479666052440735214192035436201567989538219632065576230447270775661841307381498375751763370465810942703033380423111443956919157806962703915940706301739600919445958599700045024397757229116098515794844122510260914986316950320437282472369132667279685881763375751482385848597072792020807805583375988166967903277308303106443052387062759367575627293129390845132843727724202267048914741081305195840411536519011199303493518996365857572023999326956527604923809790626461963086341495056610883408260704966136132873775881600405398895781260529652854587932650319879369651878527827067255433091223030794674827612945958692288556765648171310229184765092739749170452062295404600117021987153601684559331134405803851885949059233883935376012470625505957976463721189020103358699777207304711066967604138377918863749284264717398215035137086512874792505355014167929614976805286522345692245982546847364598185560818964735074989081094294270446871812072730061216108761686149327844505748845043520516947563095350456824115032138960202928724247348132306477848054276086240433022813467310748260990158254310394421282066338761448859433700709697757702211727040258950305141274658257502716815418257565222597236487276298979391686960676241214437553199025171681489487712811055821315337052076052393067955867430246010109309091982302795540991496570019068545871977503081618197752667599537765136143840054692580498410269581708665936255074758855166826618233927590020566531044323013368035297141304379925844546471333994116538697090867463088289160755597677595776049703157573548935374358454697324293816128696575361181164594864667070303971058322878313329562331788337760877445753024283445866892282939051612624995117049726829618380885721326694026825026931300189377926060611854396488762471070443831241329020778328634558141217153646192908246573389002348925658846749089957425937373025555569256395984856720418136842606287456658790765098072343571608155313596379916410499409459484599409991663511637089807380754877119199682200954035085966908536420653227451236970400034934920515083291501153296758605103203912763698375732022253797400775253118045879503896681622542791005576916705746975104373636300201110488192250108930328325321695070975416658545043654696363546407899086999082695525103320715834967933140092684213991749786692520875158098519887129675739369229980045907601920250335125998668152279602711654072657180668587854620843901538004264256611336655280328758599504931521364174841181996506808759568791970856543840238570488427392943810461797167416113324342343116791727462946033649419827386710057096626979546871246453500474606214250433652943220555868464810202530138588276159965666144662366145327527416547464144520022151410007387721097282794293417019592962985096504417471198325551198755506869313723171954552517491899814315387761417129214939413401051679956115208615146774866346008694721501612081633014318688963095887945884906856582541143967620323812790828495045654672837476019021261943604971429663318675803219692679190253275850421211031222467178701236422227000080802907658209363570951591223040783764922447956904092186029532555091725891454651738537723784186889695688566381258417638259948249020125796221005708516102926279189124125230907307332668101714634092385777674848707855874311489237797382096379129114008719437311501123344963717946835777013596950102510024487396911822703852011640875183834730399602278982801912055582300389084563477729418140364965454681277811058179153101626726438420958370400467422651439671579597709164785363876122195565894988959912984438048952372782532275111718006014313433221296675437836953467130869310487772168786793373600941582052743685377962645641985970372378656304264962823373903293537872839940640884544070255500470064060378664708380027775671387964285352390752391964129158057724710670471758297139562374814242272552475141637396651314350571659039661674231053848580331251337745491901718558412686195330200059752874538533836091610389689419348302245320597784902993661145508417806519723846219766467181722016293718584186095962171868525725978375807376193747474362738761463968833036418767116952736262804243829949649030552577797120951796685041535538565012128940440924771176977462621594050327820755969364315938302748810871486509075890417583653612698630873015033083183130658896978912931249480289517383697088762130030407087357637750491826941207788196922543389117723071449986563053539177200774373542450190579468016506858392935851146343701722242910466131398784237201768132507827735800021233199084266897081908659725725274956669595573729483903360915510473594242194914112363570471430894634567298859680097518674442916551539315490269482506772260765174345224740720889407571785074430391620009650908772182744220362150870273905678446515065790643372099387238467661707370810714240936871670849980198633977133697847897230077617903490443831294535860409855953052915906459249510100435229603323368859374305958103024654062282443068499022605461552760047244514766662366138527524221744567210300011849278944734363026164349874326291019673547692018642400277210826747073353097902340399033635286621077382455958842611076218424698452180922286726427428344999425505490907646714469531474187305523385970154577726052298842925897305434542593521167165868491458388036378872545137890787967564431740053540166925451884357760740326924857761306728590565800791332296638155779119214217461729981114947398870213889540182715056166262426981381145788608753990824773974475277220646614398587537693319164957311749765846692554775303402183546751468953581593533390811415063761627710972464955849259941802036657813122752963067304408452130829809530760536305464171525546554619811777829444240554401062278307528881458176424963618630986238754688943354786035190355729810860786347292535769262144070225043230630936155551652744921626131796500645898670031588169278954760879393042657822471205871386163650456831331093005749396128501581840664893393330843315276925611393941044000641364620361078568508172622608832953179878569269642742089931069849819097996904928269267923546892448749841567989812773946174916913668626353749606889727032882504784885776199052197600103524216763997921902485673739549955218224774848520029381807294664153288518059558452143263870442974302058725880607795225845286618265913071887814661246159438765818003011153482515317110459929656095300095108378421665563856363683543600589346598832450231233004218749706252190199453128358787105820556024371664867189525650458504091995045671681782703773622946908360648648485052356749187943647275477231605804703480201758967302811222239400150001814071495062079127805775305745032373965827986946817334634632200794973825831347266231026988589052226750516318014577246421034057948052146590528533577790462064567508782152484553990940744255798097174251872000761107296362851334096075053416880221256927854939935442220585786054576454911958077913648716515886437804956170846773663903792088759473982702136641639919262895485160289714188281708520526641194971072748095179181531540663952944630167660771068602079488692459985091397288504027072402825808258443602880375985718607450677643223523669197792980073458201707718499774234214441018324478504240625167333700569780012794783497151536638249830600081323132143341501361187943367162339829288265611822587370548104886400156434483265622013100501673515188110475733768233977524848163427517277299135705516743709627207213824032742181071784582152285533835655826533428809644499915772273117851211333985934474022292258388166041959205950536147496277864855874259949632820421058414555313547737681256199062867583742535853696285915344306408840663326359459441360840425868897421111791474761291323614704625688791733694364470615129523708664280138299729729094911183099173958578027569634013891695548926553282968782283345649956134758581727233134847949687054409787437153222941537505607488274966463984852907197511068648634148285535226103380235569292486997482666333567747333093204557502258126756362270500205663562019149889583184737035342080004989707547572869849124128325521731836087304897458187203712478962158207398976237235868922420260436462150281559878896697070257049567545801907623400311464636204589854501712985079445942483158033508212621189595463281079443100539757687754904153543393505911434363696895862076613466850336774039620555391638613517771851183781413369967638659538841473293832503589900218942905456474037528332574488886024111728491961972093026835200358909227359008125873364209213331253622744698327389810755215244851567591451916462031679486443100741154049438541359264014790197514035966948436517458179221100307770483028339670797922411001662299395460501059505404510598289764862629024138156619170956111423909726757061707899294331458217408524313279435838789402531986756819977355481999842801487490081306043355223220855246153348218298736964008014975515155912573952861520380462841281794421401768305241507252525369211861786522122228391421942753876207133152252242682462256354515041851602856573374098463077429352779705095705747226458938393406471421889638789261159964642288156760918325782732884248528073818443956703933189181174077541746375537727995076128649800575644991866895304679927449280760861424298178811328587947654931778333924425699195623120012110616253588389818012387033079710350913543336481378431368512314378059729768315167552918215579665857585518949637807644687647284428680008965625214058735810423990461040463568870896296141259206433580052197208054719581561574790944632800981734643465446437719727620128228351983318421749394186128724170230349184632038393413810095185701804085969025469638584198749916974964262605127470382476573579549836931524773219928472545687860805056763331818586137824463834894555582734084872330314008404460097908599511815548767864091652796909363075895563081902296634371924971064406492605220883698899681092275023720336541992052651153478885539147637368440864766759004933680738409936636202309185792990209886907244835325741092139473521699784997107827397827684852109730729072371987297944484835801314744357474442741116730522839999915464833247732935075265683476819126913390177540373081867553994635096656034824762840490883509592364120682074197800372837778751608957208396406231209357263250731002688313048564017711052754213339131645151084576160735136910183766708189828479598304229566531516815614579601970584678326599523710723555166959969501387103607165592388720687816221580143599975159317419582535025487880286323851806725465329657050351140401456726236980841904992857485479912845082923484855898385953709409139570503271079527038409632211561682177190645737149264252435202715565880826024389217213457302279683329504015249897017563403711397166930680562008278157994921849536195613503798502060632910010240325380513627069178052027724987897476759717785186380066634731726427910817141889569304830082654819842925358376330906180348156679933818859276564077962106197574112488952007972341241446043901176962590275662243926449319396191470368105112219757779275761670427638427042038143598623565918252239814496498493699715625723787636986432109350683466956150683903240500351340907085495855341536707935365952340710592717703003469747727026861254276244066684676197583297992172884600679134366956377120467840499043129265329244759342967303859419704132654369275667950160860201514726710788512627459269158026293083394854714773718376890760315816931705852934241226109220059258957938575980312880003028584723930741720900986284034340183435790598037989269803192245645560125019509471551151882579445380913000253282559125762847722651396029479876864152308452406886606397784200965712799651215493376977046524218405680036315064916232892545913610998815597450881968748128887324918000650781565268715903927120816363359750986272527868785180279796507720952568261950396930296313542379143878745569950671968403696536657499068131372353163955711040760771873768339522522892171971717674827946509782488728266642363591114580416732960974716108065828364675137879207931466762882965829797785935532254954309586441603461974470991286255975495826435504823563852679060511406540485631926586262706825489182422941510097039587555619730102433079513743385056203387600677390506441146731617604207695776573629411905682106058015750964979623869183417734195797338543922102734183771572983465858580774013566632531936533257577746957529043485526657595262069829890050273849816735170847742244534071523464711999198835742553213802478274480730871983864506099564252285962911276816680015017992824621382612841253295680016675818285890241591600666277922372069444626512853962073892625776825120502223277124637552160955811861105628224214539140233686348428259813926056348478612086266841436462079993609426694944045652199782662687381808830295409282079035603615588973594113978195213100616158514162555639851261057062506839865029568520382072699646045496385766503270861034487272472282835219312927613784261258238835913419595295939978674359643226178845065755430163190150206018362192699728350112011530044031488241952983999429653252584341984804156547779260094746726640975000736409684112159751676211216325270764963108442993350481541266817052071317842486413743140006698410210912640743884181289941864286361912593000408551944726663035020393881864729539113795515413754372198071061669101985715852152459983791983249716547488699693053653563646680804480614782175129552865982536225702178031504820023379723756811298360241095149862330426405819443292635965338084950988770661460364070348284567523890684753647372043106197316948178699195825892899067715145493914998190574857098336824066901481801747503756418031196861541093926687315120465694433906619209238512931655109614231386788307671044657619160456247385262583870068591555928537919632969001915386700282828240650648809656674302962693838980141132540297736657685874956733010432756924926791851732083833870121481647245907542830368947263983051046435167124968339941319049816754510240422496329436760430988495746163791566701073485946197723252354798551922530331269848869289920425877019059149692886194284429613194301353848651364670769925170549086593686753386080372851662012617795512903606903021985733204721979295104768513795878026641056819897038732242895467538992804661975970010644835039543143399174056787635279431894375883611059670046408900259443856189729666711627490965867863812226130768257779116143245559724201515589410396392785712092909365422727207504372276249540213475475987590759906334773716249242206085555021203367424035671500397647347351908890751027680967805273899017132971573350760597447129530248331117603413972467786804520385436714263565612082678955528890156312903594606148278701545957767202055755192137535252322536396164943170844544996190555236787409536778880410030147412338077084949251337575849349188718909436523068835491250076470848563429874757739624405085422624054838096388555885517907917749106828870311997623314328234512322514497170334210012790915600433276624468107150122875401294383477772752429053924250119725954802125643301083274745836294548538625356341060198542351433378437988036068374428078015120677718974037479178857053726668012552199157431669462536778792377492404402557473132115496374778234802628128482116678233566618553440843707076421047109393771592519663640309653168938312231806775615635377537663328198045802102482514327975945983622876204344105721600989538564293187839291998963424831776515686429422160352799196691067278585308604147805538545061922011850651120208071380513069908273304453887506921371466294057633356364095199625028116855167127201468207465986839542505502281194170795184253334563305970741738278111463815248765747108228597315634574298169333496560869488551266073805747278188546518258420365828686045414985447587925418895579547462209450244455742107261646107793175436780802172078196100707771903022758590487483910685283722853678132796883682525487971829939874208458990563991270125617635538259282168580893545099090734768330932729104528947228943352566287978432549293944657929813284785274089217088031871451897089595588290537862189550772242339822164223724764978552960413544627876240584405892783571111765722221859026538159543627757471400424101585224930067586530546040153415533436957881503878083330703678888346715897213201833893390674803797921484306014605984186834079000804590763575347863552994234601634529132448884518897733499358208802576457222119811251617414950047618689211191927159885715476970136756900779407340234995947251052330655900318323491226288232190839448797301748319074957379193162060421999283292430940424464439316314658895492675154741205648919071819154639774328933377379524955503139500335212515285109608264575475014529712474680481692908864665426636064408124153051154333248602762182769614667444522404773633182748125292893513246883656833221434944216350812739831065204556479133155610272483747075966134744319658010855987548687750562538685371873309881928334407942379060091827346294948957717065314589330028221086676928652824737538774188192482625358081866644990826890501119672215588161066322817444282823990471177660484040788602269044682488724883830144686866707272340849746246198581670697206232205365937721900112929949940981475563622078323826242018394380854638854538700851024815401895139727345911761823196883960472806401966815518382002124383284287658504363724101598083159351962073938946953628136432226394157022836062603284449632774738009361888454656323973912546651923761018525983545607485817298640285531875849488040068921616773020050751529255123203153089824005866997719220205075722501003048620059189790741998438002655379857386165939439375586936577481045653063012786592389057426115185523245255098810922089405612430532010142377453156693127931499696813540086669001422173774779816458727093665473621823632412955898444762786766934582752717700457717950332606915141229410622484217137694469222496125021383075173948559732188727174153128151618572506583609570855580418443740560537892572953655546263220922496791601561238133011394037099981464800032872726410040235687884047334958809229794128263223174050427347497378522348200789238666699700762222432817320911121710937927623635031830427881505354145965157632367322581426308817543100496201961060527202383734042256201178397043396439602091574605541308618832037438785205913262400185863085935247176740651449502312927037314045327013834583530994513432588634823304512754752668316706743024505675429259831966474428416997813537895006021242699369159944255512189905673664647295941516699153406859925644382916097680592255705907364121807731907537039561157049338797063416096134560337126318342332528753009180895201233189200675756931582310240666524083274904491309017547505636774914508904047561845672048212640009106584088345682531591893292471589477628555758171730799280598712931166796143314373125300072060087955556273933089124498881938897439662593161497328541298866654162695900865149915560866274499745530715865456715105154143399690004299438692346450945859145802672515993942747528624939412543218750106991862691393182988472768006836610164811653700687025343054431685468246058027161790767898524519105619661050740348292007053063835541050330097468634132394110946138813606743449666664608849682972298805868964500643644070649868599142960992820791236020937288795251349164306920405598356686716070827756455996498598937864317584606608714484628782134719732564966797263101929671528858913431928439313703239965285330516676309960748788823908428110382690082342245193178329185679889580757068786816135640279399064634214308453701278806168707390404020162350925669936063016305717059148767309672221368750790162340552387969610243523301957175230804386000427231889604271249836410665228607372164256162061095601885332426682068487232586204917168010578515301588162362775308158482167089942445985128786234131228610058507205381058925117581071101813459116343956357716716466883770161747631524450583080181077892966528573634118166002597636591213842210100726958276390660157815526048843796176256392023340207756652233005525272676404193703063345141690892795128206451087239608743644336557334199326473231000835246576559252839553046715035668973522614493816677797213964884482762999999641050048272264181739723822458925554491938019265000688708355568169050296984949829631669160671391445977260950060271340686697734703717681888808022993782685268128272606206844884549984323437101084281809121850585998911795469902446502400368684393306340499338291004484570509167800424987318560162316488213690394206316908714277548279071636337773491910598862139961603556517374531288589878957682685556335322591577406282905201567701290665720677270446142523174543417219224547688647348197629698306288075470480727147943408634283954978534799443185472158920450888273469969082368195750027199898030304284737417145626796663344634276908730815612868222306191727470190805182660693366366866108854889557355798570091428002453443881709800097876332972536489835737130934001620388354424366770557772426452609950320819443888989375170882741832608065676385155984505846344178063268368429397694233318871440769508164871025625600646101293420959699722685544298780571004071893215049616814082792990016979312653682119924111953926661117221255958600127241150103099569529985290014627211336509306241989562550068750017688470991463978340621954570530293284411360808354346739739417131864572722222251878071431933582035282742579439326715996639817707811821169880874092006632858212957463644021424244486376175122760508660591392562825610636972401445553485900736451461947738413047668953993995590831496939412608560881583298646587528902242934250133948804019778990871939207354826304798382332232054355866529708761005555475356451333614578048925280626482785081053544948675069216084566608499904210463867135872307813375550261344025570459298722418069561712394845761002878790897048172991932382655559848131918464218561718585236079322598432154389523109657156594931844779044733556656787881150880602918751937239063687237195197794963059018610630200343315846341001495056452620933147269152019600651003763864946512619359316640372854998668419632654676187939303133077388885127815736547055620168515716547325361650061166497284568606249530607928888614688638576988097921912207502709403819377610019452266291679251783962436796866659236514515505803229881452863343013647527592954499423737735973478874467974195498591022580495362342006162053615364961324422968233389558420937460222665870513025541033685035901135253635113246483197112926150831177280141625002896817518274298999750286005879091836841856662664724048332236832372200950943047430194665669325412264679831157342751255206943471767712316405419013884186960837662959161312364643736612430395338579902600074673655649282269331072952347543682245107320224849977158866848570484156369678965789829749687968683007128870991449170865446459240787487115079835858631379842635095043862606813686971263197926872189371508653460277166059083341148024115354572099398014513559102384881207840916375098720033199632961909077613375747098921684878609019010798684468909695781373643027342522205368253209380745044815546616661465609982246167439792624430876012142997359070622269139186352003927232896846598425550836163979832500091743176934352942184241531841396235387587923692941085955929590455850841327528027072487440936762258104752729417807160165302701694547209711647744208989673287150760721284974747634180039127434928267652053337544936689701966781570906594430756100224269949648880603594883737473293007375258263708576436066331166610053756358162624801475749664151521827740774459804678774013409724047683859415923221580119067466564714895697107686817942946036355331237029119375866802617877160222135834944847352575575674059339572723919536412332484422995750936280205408843172549421480044441295748003289942726058692625799343812677030044213765805306631816725395072155650346427817239268980209756585684307883072354297113514358157695400598897914518890510868782143378851556918643509831613485657441160564571233763657371493009261100221867538400842065316298991875090431120825872499017450470567998090143580498928919605443273668478489122075877432668847866947669806635719347472734868029196459579766785038441460218675166933401054766407719324807638717532253498716178508970704102780322523540002880183871537695494070818856777679287315424029187916168013671188400690477386036894599907182558871840072427898319721074546581314542324024421688617125137759429417609315265832572354233772146575383872927485662646700089346819232515038044663643815175140096215785366704528033266007735932024345254941630427057962914587117819630860693313532237598926753676566560581403857091134255718135581848844456059682109367598557792118936344530801571526339607328091819127973884712922146094035496992136872024040812824881473274514865153871449944670609839193038184243597265616649669505028952658471277824489654674395330832922586393147690028492836823899581456000036452055040886320931596150621136961572740423926085794916785040769483059959150759560195476823686189040494282659391412226669579093253771353180354815617253212151700338656534196385391598502894163715604733565717150984404083522310931785276806375636856500277470709680519332502500566451652624668915831677021127919150151913895087446815090573590847695107693339625124978772403125323813799972150464945483673400822474533839097402852465043149785681816108313306233332768503618074074355511146515014943887095819499793258996655260098346486201492722439564860203275394765367290502476195141576360146364992980746821264127158049077220337773475865932204557294493682592281098493397252330449250387930715355235614950173857256470078928643872902590158681326231152651423762987698062785761810345646581947992627584974377666076417801907894464783581447663469403863227610350120879659144976822081559752410014410558830119559623136681782591748002518838715786326477253321790377508549761974000110170678332703847227855407634940709587302546192904975861654851387781703374594717135183447376561766862355431716238342201892856770606053984401305591081308735683461849813816519811477716851902270438447236771035371765064699498916362617112994905081587223345264929996316169468821317242885923394037702796965558605034703093079057130576797621947052544276731490039296687072115725577439964454701974760938727142959793463986370823401225687454429224280536172303317256716367599682754035357246028578385469058619968391518526710046116318735317078288091736178923228597820389829137746078632837161804773052028151897075563606477109492672490746524561578226118608266495987693073108486757407177775861820454778897478179699494940483534712906263618018366471239532872127153326891522482652070412286721335238254666258929352967590332187362637331195416630613526695506255974969103594404713607959606245996817632749930843739147526897988227961895095205867767523361175678433459334822155245586526678874426635905051732569647485526526916900096891168058162217023705452359374704018628431263378851997778065180835482050983157290856160108832007801739951099784190609689147233758147541343353112354670251338849935740931831939515264526251773138067716295323344761677881500476423021895279479638799518474839289101481469337908149005556609142663708398525302703582260018584109609667694650176203107224933648170538500902706385790703205029692635921635413685004391617847887373525494380886380177257315330303658493352187205483353203874813161048158157115701208817747849914680702454872640781795374123324984870037869196791051360769625024489447663661930711011246788774476588177857272710672861640209120483119865838614373803483199769796314694361916639695740384525081108096582869023423822389408132791542809486685873945888191377484974991472692062006299299425642564427561447647864910643692542060477879419337790766828982582237866260388392637818031404201290846273214351113089924294790296654483276926769789777001382563830730434937754603443627636944066425811366519091933304379507029746852297509622664468626448685750136881238169796234815545083178637954632633630838289681087086378710623000595163577816792085489925116434804338863183187554562163656413934674042806693071151771300421856729782196683808470330913498315884348153127884767976910079482294470070827174312572119219857932117076257668959371110878626912450861734466583328625498109385689905104753348168618854109352300145420240041566526116765764053567671938318370956084090793454066720681080681266849897786004835328173066701459438653895122112989220940738204566609916062857941517567252305877199373047037732739052294055541415292561440367249517022277705018538244692541387940118600509811019456174426406732912453368248181566645698747039961229564056840459567550119979170039727709408138111020773977977727129091966782527289705442682559846097107971265854671371707507379227950455580579251210308586406683689589168618957691796402085156809061054647067150319021665771670064379582315980961152083614422019059059939408532521493578792819054462845351569825564584283621917209825938471219055307526174749200705952862957814033333469834127056553784242110185098976235047462373931340678827634307466328551921959045261229047326450104632573353384661525995410233612690137551404844443251692004140353572046893814068728312035313893076418616692591084701965137419918178230420149188829646617473854207198740585388358569722894715916278723895807216506103278174788829782155663205159782983508383876042113609499287711440720780162932107746306971047764907955556889532674158646041376753824230741740950806063889847070738248830912886926625818222124461850335841469527549126510854371962749296994133320882847147408549885365935543071366035184621707979883491418174159468078676529153405115313768757183055310850971510829144867963181277207548361329263043158647034996112329736888422882912581207413317036550318091778480740317510057524158248025926129840875654757372618748792364271541765510971324454833515566829539864523847514086798256729407769481086996922352758843779522835664349558453797369577314863878468242715615566266224982796007675435512386339131082413784451979511397131703465769309986097593090316579553527597074003644324232056217294184510761487835126796836567328893555057979353617726992451459184262295565671092861237661175011639683204178227868115679004457001084794568757250593475894623622060819475204291078602851972127427359182967641745018884325418922106169651241298644694120140986991926842674006305928486012665426502229071750965839976116018700314553464310694082045994537806807335120674635804242147222577288691264929980805962534796724814357264451262949040676931242852722986946016608891337597216142348493396611826873410518790529581318517368909788234597247551541748460031968276353969920445374793846559742984347539580472128348534871091829436705189625237841560011595476373439410956189535625213395217105126655203762502973257368450168631493484166079427790616111595083230310586825035405448356103620561950776515124097989655233481735908284238740585880680624580914200524491291529960989647601501454657404181517294346159284372967924994697391606108296794966797565739052150031425419717063511993433834373967707875007149721494495317007012667393133932930552600257419954549965181230804176028571446862296879058869531146583179702739997993216075401733937290140121657224060570914692692557922081097800569129817117096567090716351071603702591885791637100462890982401215897480610710237784702604888331996359384584543258602843466756223873880789171374800710450017860337480221108111214415003592895461734984073115914004067178569640002816462151902605003024284777163908677467733877559111937586315661641566180750462652536107712046505950697605259122282243674049701160109970908477104522847020134861984197415716561609928950686428045411873071718264884973086869080078772947799697261466032891827667735430967035540531964478583284302245216694479151257254551215020997578009028576774892577032604668322459859838785742278002594448587134465130982403051209232438777011093251669452977193849531960754075863487719457794697351888346930486241308062184945006945970554141059959358663977907749981370433103325125717666735073589763770779675661258602281798700066615495843242481427159223099859929295639241241208878492750442090181739186519170710714037209080652502626144212258705303623221911597503660923521541765280741327991853360078862178077955954754982734552057029214202369293931013498671532705992565114984407434589552258632327545833561060407634764576454207011012520388542662984384685133287690556575363660867246031760920868431344239592755303682442071840965655887671219350281361271931938842486056317290675541880969785817972327870843848203648415385386440311112358100449125914752478782158102039987273846458099386493104742431686839204871950574842046669873985210807834303702559444746676897437314650723392256637766595894197541406925386855146677278847079736434377165476261981328708196053955746503145500180251140277930927229701649633819113219733790867377794370509495952289399444379133959201086514750189083866748295279877248599272110227549470686938987412449398880659968044555879407761641005057334071992228026832359349116658304653255220165801108173280333098331411796150133448887947626430288584897326550877130892860033195323665414000319135382923519299857232205773107972995677210312542178666193401096717913462370213523916290823053217732313422670412047039774555597994419272181473078338664554071353340288540387160321513051814040117703752141286355725128810664242488335885195163173974424817497022721473894211951604101373834506465298628910354881904266932422554568946918908426567409837695051922240718459221274224918756460872911578973313407050207620998888576437790718064242243026018294733817351308124659334955287136850574518405977756030772519531682294439526066386015388599836120672448780154578185920907378198342990113654529235068981935085821652262018253694102054683585989414348113595955926766903705471604347469987036096830450943231091185161195031690621812721302330083478812362348577296283699845160167805969826359608833916902319856183061578758880342934281128593561783419975844715216294143371564064374270797368499634106212771750692199580748430034006430195467300318781060199120089492580257582223185383937370485702358606653258634879077285903830969291086140234773737949455627831733130630396882856162525206862182767159814519550380044288035681663211928549165855367897317314320587668670038056457052414766078668302669516179287841521833568522071119905559129521015768015908858223882741969907646135388978816979481737770551415319313380445537273171002388405680220864883319740821381106186001851276284461287550472310538233020516376522533781770711918070020208849805586698444988108618094116826989846714407654296741416807455935699863718739177079350562666223213762819820971554418786511607405681639612168927606290224663415328861482744018358955338058484271190417108298338393957599197134665595693025292103294064505395541988228044559718750105781050493275709679530864820331081088805777819577515761383556733183590210681484619785704665565818965991978582304245794817303858351757007558107942045359281986845856868097787465460245666778831084251443686294917075854640191195810309856686278156068363992682061454981259087854889028837466781088639540890072814533999928327568155448324749129066193492778210126258712964517642053223118690166488769970021308695057308321107324568249817974200004099046211380091288702622191249324649960637584426960554077416426721326889930933181253443383114565131645449377140568041532814090057924754087367908278900767351981343962659037154515743945059577125860913120324775467598349326741895384253998696403425576642925159047066372598422587619061982455716525889682096428372329641605455613205150306001207348442503394754656324578763419098815119248011247989896021191961818014506596065413979054545869368188264253055356337715097540019664772147043223194395460462708164994888582813323930692738969380846987943677015721034241181131256168139388889153445842667699568102343760827538211732715889474799683370767992665284507718398647925796451037212285407617293325132918316534668142438906687655229701114276709492948332573043726048614396886995228193630821750083155301275854053043714450815135459032388344971547208120922086768043577508493015447301241650704012484971430926488514461456730137323777167640365622454426312510533440055041061806055410023066022383042696221458218488915902510808141451728621325964855679719501831097632915857386784662148515530354548008994838163178730874752980438061718313502685048957931189495818508953133775897283268685351437303669821140580703870201748573341093163742509335148782030084625317089864803601982849129654993003099485421548530396529034130365036959507294447581308768285441512099071609051145350080451823302268496887953709126321087311397325946719929741271357190843966225403526365130702984859448123832816540762852572519179340065084129331947932631488226411481418172859934822584226709084307208270406214712565400239705496012730694712148693115141929935007282143811986884744275273431931178076111170633894064554788163817690538706512356022277038384399501018439589192659946731386876762858549585165917588330696080673419100681193036526998869593507922640322532348916028025276993837574413437315530400743986259565640128322820206893562178983803543042305460492221539334798455840982938680248010302471509605199166168078254892750855325973789567017433196773111298034069433422009064538745111542233041634320925504487239823744144242891600571327140824941186478129435413668531926541263106186556455872680877264480438156911098064366030038879529600264110133655403684023007078877941915154743740770721951724646635158283389468704457759179787348078828297416449803263260042285059153141952233115786180808290776708652796515995972006394661732546465980698651068522924979821546715080430253815145446979108334256720961583866387945533135736437556367853583717841322568819639877559445899404244990395153062796666944964529592712777471857560400226182608107299280721316435589398006066294542971958451701341298883686889199571164943000670692205644593987350952738914504608795385845096672339779058808279585059129273390134342496767847730057271797799680058463109296848741345274059143269639496152303783763933706769513324964989906853862037766006228997744628323634888506447426151588361350532039756007392024469226738092767415528657702970650223293556844672922901175399740661917594838131652214064778187443777390586883431497279553048606544039203500108486570574421774005044635866174507244843510537927154383501328070230254877067337822129651699154578520776270122342644332236735469970906224811091733040043887452557090936625572031103188521167331820212383526334924747961614525219439499141216858773078977685342477090826561705051278305098399158544005125690404842661766257026662045768628351268960727478346807924042954093461531744772284201617473446461992522884656156682634432184844344290469834544167668807061453471595433630151273697683426477107876037155434625047344625807591476050777850959988130922633651868565058914258943000712481423325208983883085675613443964393195450832004617791456908921972045586940980888764783979330016556065415206514792898363639503900576776542775308389629321641765497845967527837108504818751225918150112540923384232971471319084704891577284182376058641762351529180010496261801328225728743134810509611716401785417852032404054600413822287122788880250750074248781949166958329396830722070837498870752118555875744582339604961894033106758091914316632989408971724158931640995401497229941768602027324076741174757543386286152474737251405389332700069491712008494674856238513810608288499254630582797058897206260822916570116409079013037470452644269874677829786170191985066350443323167511605538040937359636026321015633355730940887878828536122577297252499967617280261661286389884318008975541155394073136985827139282273935555362771280787464199027760142773724204238940724360674035602178910344362758772439987169545429401826144680204367857704105728091422786570422112493649225752511050570571185753571918914675351996720663097181838025675365766893753224941614003600057877999557361094279396082987637408070900430874322786771010157145744614758779666815027936570935493813304559776389211391206246752073883423279804315951991482333210601325834348092448012886328757828570914930216745492794374406871876076651577545001428816936281910110268530471117717166014136281019688282142652671701001409725577233973391566887768961270981539497517566680256479668760638328279576749142543188629034755098985799053494000728566338267528926338976244616870913201509376047443001257294355191081162340902391656430338105141821759742760706524263139096497639344898155837915394731877125109586370057634021079536744874423047753765318552441376782612441295695768171468263164361264617932582832691228339177107420994406015277405071631887485278685458029745546872549430510354345604215019177075898838600315834638310321056162551681069013429011055050017069003493943261154529057753377847858374611179876937006475306500567620350213865581163325712315204541067215614097024272205302351333232067983757583271473715404010142784008852737865283353354865519042395362461217344769149183265673886579398944550511838234309270756136903031427446358291956913507246925359576061969885605347555802788677480654702518762468529537249778823361701617719586520578381193612860721742298454469979982488426919610471491332453267090648095361374489282977436355759417006746278001676846434446874301390262088051346158367299142605307594561876376227054144857665297723911191236338999891258960596087650591987599398523573505519975265603864216960531519711167616924340922088061605547562960361322397322149952267065590374955240186136407307966895861157202770361228520757665282899803571885048440464488072484392318866713645398120301249804195426046663813696223346638065861264429877799814616696695106593629783072280929084469396174073887505067079070916190790113902738320866894836601920966815817049550588633659421067266400779361507556386766100166795764134711503864041789120706360181487738226474570913410520909531785458856666349951486347033249529347307844788756046716664007263874681388953628842891282084891023779801017276974483794687974164502924223084498930816706808157752818168752392855890525756288401180835547752477378882563673189885872728455794956203156027876210277720173078816618251171404770082167970279788630637175614199769322311409092066330541193203398155310400989422898419420206568850775989491359986911472264998521091623159456682083652276538211235986219709748395526917908097679598665922727320591678753401907881933151982772119861689598603320571566714782735758459123256911021935432340046614966064380836133500962230490190129108435070420248425043556454251254927449146522260051437654609408228022872766381118526161019322570571587725322126358744853735463863421446369913436921842020025201969957209218458980960650547966578951569902479276350151668780047534361620807964193036491669462993133515209228738929172725778535085907514783176996923459731121405515977703775926701544127107632598213483366410296329047479729349267199409062702087188369067564172279251276192752033372128578213114314606069682916104025704566683811316203111056567793088017382310363730686342849637362575476460568668275972498050349237148402217997959465496693123786640910871792758350704382281221600217870568895134767944863810115645276756511012175168158411375013505191549196119184726272973946662879490610709672563613631379561096876524637012977503582844454153265677317572340797530966743506114187885480435139663861849210382090356104640957391516290788933070274366607513205337241592741973070624291098663049612947840337098627592442917772123283883049020247819783983868588820265733232729585514042142230620939441075223837666437348365537083698499776587982832839823063874233934977586744240991418467390973189856324541070830681596547076986817811589045896699706761893435380461386578709547561609725311430355148670630592284427820340822324699152585605267124228232396491119209657485300255221218804205844183897928407944259240139806206974871884413159818366423845138133962977963761534234165943569713933663475345305846336670566736831596712168331942998085696206944597054688146211006021261996893606685190098447314389802027810608176956144677928540235289104622226601722089026204633654651790323362032429472555814236498358625167546678543586223469061750879302223774828513253482552529295723677661247893583820186006835087009037682069012505168581990676878638218420327338949317943201757644559595977412837956590121744079952095395055511740797059043605771183706620277633303311934027051489087705339962581413923898343096899578284078713177116103801271374787982240663665284444574753488525868270190762660222991065915001341237177214230082431649805305293846375134662273269991790681200137312855416148137338489101408450822227225287550808235458976314319634811018640183318582717053633455400314699717037296341049787145119893974869758111761139450221813375022959287820878626381228847072437803368197352428901712216952031488602753683483523740483954579091665047437293463428700809568355538625127666543946285563557074862211969375358398944306386172833345606318775061557943960446408959374067438254643950685101095765952843689993012079099414136239040309588566723138456425511602286411322669214008639560378728694808324644053757463393555369607767007397666940007527012996214919872010882004607149544851518534357372940409432040087884646069954140862863131287735517818827885902741642621122360536377139962017797730506711356216045908011531578510174509113132121117876301607069044199050356823241208127976831509963576036606343830609730602982771992600268947074454809223169109545624541529135664089971101363482421590860432768023573383926457443913301703013516473843542136541702150227954095240672910492563413837144538619739029070966662020132470570615128174613406607440919213219215533869448288026507769455345223273453540995988749604688095886718865067518339397544052168495003440585161565025137871567096339041739741050822272848959287296333951710712486352349919971630670560312617834488908325938236890743782307380197138845182083455600287475000496239100061665088797991764144288891818020169162999601587202043203836265776569475005400468998229464813947904344238079713718264180974549259746954458919337003737846463260381043041704652988396670608337514678381138606884513029333541666232490216685106060382255805686134451186632315481522432235806496943852841965426818889881729506918173072271714350395290827957259362475829994364826103433646029835023493979340231562273908521203424824158298671544573647683301716364354420875327161374921601056273961069207782133363137801134501142403561723329284174580481706249110139938915993023903458301285727916684685778886099554962450069591060064523906233274066499525288126069969727211462489918654135629440836264198044195114368940885555821969672167383223175308236970693252146020169122663050905635654838785308932450776165263948130030570562109437767115318691940712694514485210260191515317414459495597501649819185451600707399281783616494144070791652039331963987524290425126520837208209066272626287975520447885614299701081571331848764196152112841919181407208413094273025437402191774890593309415365019922887598198524767195254633298776035206727137995396116564521301138358759129898234515504698362588161750931805432296805174320328317879378426508440362753180203680540698914142999555487401680514729472127146230489157639388416387213078686552995080732337004154260323933689673994301179068096400866943977376953823902039330804109980299864679006979533862435842861461751733826356559587507757033567558281851602378483570152392398857064184336544351545755956195356836157698400848128463265793483534593576922491424377494259244638912651011512452280485946821367295500197857521793996102349682105875634477721714740452702113201854771364845222670800723418255571314936436241898120114976587243707119492034417243533167795294747945078402225294377134390150957377426247869649432594910563777269715287101731882345512557160918812096174016173295395463183029562068138767894223908047002427689607855003059786325313124359771981889065789894418327368993351809009016384191604379770639257718458902184523391049110081390411276319180513446450763281908303751476972059245264666219396080918060092600070501572494032030846948851552510496022799775546273571329730459010262225699518017443568376236324128511065825743090076702521209745773867353922157843625395343180076729030588550473329901030397099405261791447715020366643530493173363444825277320467533870894795317767828371171365409100143574560081178722702218501990572482322825137288108394151038995505040516557000401045780039040927888644817438693423046895985201585717227310400906740265114433737894746574980045134239067957599974679108838411612677355403182689232956082303716574842165806992062628203947258820952155794303919867704697621097958078868664299517176580279424197884051044854126989738285164027132388436417068771059563399743117535668079003527941346805833749682712587548308850453492781311799184912797563491328591384634429678008753331684464264420866889330312611968791435076563468958226456895942816055405740177239811953607057620757025212421466687716210142372083009581498163782164605693526913424187726052757626706446833535368699571047205117176862505274321042696503569070942057680887776479007298161307455064268697925100387410908416255989383179599607047582858662241931965507947200763620633044850083516399752720076129459805790179383517610730948062857592063218263043735480589512692117249044280083207972164989335434081144000709266976276915411436571706122837920690862719117621968955395484931837169173846839004735765152834767483670186974906569760424600579614651135960076250375540445725498711587110721957913363908787978799351228730605960156531247343062893754004987074278487638043028676820251539632350935570397951280584693092537619059674988397631743968329507144181165921364059139427186258828212548087627406842008968600908794083402811938549368662413684721190339681903443710471520284323717501277205562763538854302408499627588258497072471139744139623288852334364806533828186385603849278509966327024108276824862285945310587852909833505256139626229812172187722734913875836566027834267424475307776227410288712229078312109379700402736146472650342177798567886703595865731170546268944808756812065111176190111207278701375723131556107519167250926487814117138464590226670655073846229278653181619089003691209554118361594825713276623826174787217899320089306989446221639483430284748850126392442688337880078216792111108769896708330592494428499773044804986161224575550115651644868182167073230180851871403683560065822599068891123391867665678945352590202375411393106241740993439252934944050490279234538926768805108677562307116646902186578447814860029925127369771597666505599467430202444920202164968074107176224047283989844362187629825509792391679919213923325179716611701395539246148155918156020589976017245787316373698765538083683385253450289726481588059900470362603773278059598615464650909606928764126357536668156560760863292597077933690217838326387430359408442635005205978378746896208702963916737420885140999752129190649990284700275727193612746782656229099504283675977435640424193765646631624151977002490175557935519590196992210689508809231322891825928127525542996737913619350508050420176531914073607061660102512810201250494029403392369927374724025422225749773137992676338896090975903367083121836465369777774955028541942101031248438687782830044157285352113563057826478770275321030302676085073536841006457022782424047874688196601334923757984563016546089681628400346651863697484760086988794106909459673685176793860989319800273308290110194074685669753426847965779042518102363186393920542256364112599767129905340392444270414876282841347841302230411600346334350948695771463740867490062003941932246337576406188871023859754745065404069220483306170957211864022069454493836178255658988609943454543956505692638095166030706006051897943761377546066442083039483797606516071457674677415678661175217148229403930501418235143923287864598661921524436582840671084289630378119983375299134760041354638281651453132664554652749769595301259264037830961891117881420921078667755504164348277573871039116959494882671236289999140262958657323661382494638567146232365920863719352942646751879062810648320857003601551778112896566635254162188688845407568677095970435687242530218839480657508072511204795620492819007087203209484008215449648756074105715627346029733465083489166240477759651554335047701170962540938176074170044188175869995978204061783303606458116136167098189287282117527345654175302030396284061351795939705324187472162889653675992725763335587086919514530206069756908280809981491833404231259417673388296323021068328821431520637708638929090234941600227833743494325081876002278386501216740896646705901975422870464699142949173585816871941715222607652185368703442728880826525386372336479214278331029256430939680574345099839485138944378103063830043533728429377296856902503045172321150142823849518084548837188857552555991415927412795861534680916494307302620221318751806749203947292147968637322730901203604424537706836468101935856286673136662885243552905408859418729064091967851436100043207624631142659844772389917202600825972585735763656425699609495424614878053143602274330254318970708294099780081569800568378380136878886754316066508754841364067833580032494277846056661533127942047078257944599298331733154937044375832378808929354881552290212097331943941731535480316664110805870952851704392524814873081912387390371966612007963830987276365805184443074775483659776315554095288147537544556227336008869429753922588301183601837240940618955848194309583643131709843431256765523387286921251231725325654521156501994736155357292702924501247635708333269828161346430680621438565034817233620423252608927468207891726813601553301099318576265072836978716209061052178062186258041917874832672248025952709699133631927247658056337326500725171489850634692720185367365738190528221648969181832743186338041082702607840167215161390150858816961088783738352174351238864477226264602339112494411092143858219216065301449484374054502418636715292943634090059458364740122024179491100906934408530524109954152669926847541169136255288270127450868334058682445790785134492482710451229636568946371328253357720857237530836477670760504193565064473743200390059247854579696333125520742544554949443191867262757735361787327838042606050648063359303373327619019636783146884622317484348255774032994029892366844264030130298953101470116984204037155970046032308246408701741741581497510364363619779458629631449883017038986981646321689292794361874118954000561863502350912396043635188642914415460047012935412943371797061790418557318293362551659817058745113841917191966006649688656420746433606543402614290219231845926686402335245124217008064404501987818703504516726326197507494277456081266145061204046510148731398660346573164019296643653630802435336310994607792099110601212131686179782056428738774835979771477194610719584415960073250875613302721039508328597207458698065497576886689385799719407651902889418809661130410983627860009430210368189175197528737703802191528896263595834616995967873711105342397735907573364815103383525070250629216850273860605747706322463816667261940663360297546124981032709217852915517869623928834705941418142763257976969304293611427194200185890488003241485287134819111926243468229310879308280163291293251719548940162674697990067228920521531547263271894662448490002197883034172966932668506457889764337909163440781624935835900056594883954715497576656437135339980324963921539614513814130239428625757044357474183112983957272813163650217615285527033589069636855763003353825988221280678981578222548616438592211742400182394817397570431182202086257160128844988341553711688874202949889491335355955414843285917598523834484175437402108282382558955545309385864773545362852013765099369585412837371018605189341174569835692869385647235609240125119047417997783272841323755080649309871070548629549435294932898378082870162282864730916135826852151905938263540754648351753930059800198659755334642913498897955894781017054487252410302584278732092428346812511431371970213668602509038164075563092849401373504661313694989957266333213270357011823764340189581412088211234988653427996219823407723780526310774622920846963884580882641158580600311255014060651810308321511222571204568671071850927133406125864214986808247668228587060601350167334328410981523266885441651624272291438675638422567676668170534975943649135118664817828100962932572739634971389891529059380091879977199907747052014642570687771675550205496469802775636478618264565302371969074053286578205556633440219052114317368816442740420108484994011382063080547797292476243904427007962350331751781684717056139612765468959135899000746283334336398462889504136546475359999694096989595300175773155688707207191376822665247318182762716055139150913768185840489343645561391514539195169124536852902257630023112654629842687997464253852209538322092782723141813000848356111607869114308300818276897001126732087681517061591244700486059622700798137182158935067499707902801570038681183751967517718550616464711816203423274116342162669978418508164033182536604401256920576951883994018721137601926194400913189354945004532379217882263887240700844333522603581198487689808377332289865367931341312978326476911049175728205614906366194400375162180577607027078828698670832728679633673944057914332799325400332325194247565415599714183823463855195357363371943631537459463222603066090469082744705670302436908813318906993623008304755094615649112528999105495826406478835471108102869836464833120457537240087184080507326923885328735506153792771319363568034959840440061310177045862011816537285117059637773557970759871063175836819206752913289433345881810721985802756917789224789166418350830124139312840354243676852914165623105560166458903124581511433240155542419885762024535714474192708073645813192182133761473883493213368561860094586731592058027264411882094231087553856725824947560703651879068338031138087126917663604693032961958026677921558253201045492652245503876803120177642377655645777409966206520540452612401934238979124433889624284134842433150966487695094877046632055943040154212384561939568557258627171024550657107817297655154250228156330811949254902502988301792948971166628528096249498993612507641352188628924997214968600210439709203324857722060047943042257364683423482788369114809692651215985699354922603022658117846263557186565142746716748838865375356629398131157882661920094631395845978261708969737992877808666877624764470679196959796713804268869148145126444363246089349364745703779285000853512684931033873887953410936563302338022086788094728945966403677723431633010834204087163723375807520560276330497296170129930074617317337339251858216627059459251288847268427742934428497999480761768438573252220331623721503347249176456672882314417818726222185488731975864964616960633848800448533805627942517735535890295747974463403305008998099480121508444511646019776767629116172146329429115740115600157775356808051113471410387656394206261967926188953392060403615966717216002633956694825434988745815224458881486675730693167767694086619277495666510582583708428113592635568181566845532444121006250719454366157159858749181112238532734038985526648633694959048444038686411300201373204062210963497096667829545602462929198926044691057361599652780189567556465331450674608819786479513842710393295684829236644125332996725484194779603782378567478985468222987409724153105669402953395247671448702081972575870688271520903969505561654544133996034415926582322588146184550397601571450263946464830407764184021817552791318754829290280493962957660884026617628043866285242290757571509259496109424709868087730129129393992884397880304679470734070540200498890059247705835291032497503538493393477128766671117933773067756462945639873829597346324091260213511020429713076007660347221999783941124250453826457374107462992742055260528004727579620476348200224055936685057937032497886936160233368987403170789717327050965251952770089847441677384798832158085370791320719341661735778700615391071529748565822571965520471422352663654950252075726782091005585211320924110828762642351044373124062768321761575624390359679227684000031233946844920097673539945971821590964100273688594009981215812703204150959637802215550750278602812475290813190602070232465965722584527411502931048894623057129534243585403527053828522411270837564751948048182892289207751006240090775463284482708095801397741365291481217307734075262381525586886077664261771815285919341555201943254015279595353284925879480759174161333335659724019635226828875563810388923192891178932936659621947151188121347926296717771759742727936408295280340268158069505064286543242248007164946189284268359983860592014776761483532753376921530775841079992958051021449798776834427473821347803174213860002499593409331126938529957772064844341270529203715525311145408629826297389943303141638584364750282647172434273140839136356394609610528965705688931329011237440145646392426768323639320218738655854794862994837284885463310888217255178332921562029243049483847661232360903220675693847905756037886300760902317266764243773842113111863576678820241323470855744201627231815421965545659822431240151675938929554599097055081137496240885953656030845056085278854591282675140988500211646921409466960521972070784896141905855995334880588757341491552630421810063653654640954391397674377922156778865912379214387591200096890919896955710913705115538589495029159050797105960874926439767725146718914186135771108386246307533926030561259489692365564847142341743510359107274289612258420271070701898028439059265298361202880882408455657826646696258051415064345406333667133534810721101718902133250075717584819696970645975969248704706578867757052167219931861533561764637758153774855198695379754916608237842666797522750532462646471189276483109361742173182116432163802868882622957717523818430372245729615512249281006868651319492896147227756547274663110890610263907396399885124048625910819469670834330548564435675636237460166815508712216500596373056740886191165474160270966996527817820658715101771951375533494771138737221963448547813392446020975415573529208177378716699874885588858837704024676586603407253362703107870374520685338368926721087686492903600793284498175444720811335951360515229357258015507956761033652658860478369077134245366093728442892076397257113814333914413460993400798760423792407181511062285265159193714683601219736798405526166169072650525581198029541529819071622453643070144538905342458895467670036030394030646028272242491331575905025421273881499225989333858296939625126948922717252043020208721750612948869815950874188560184045520764054194534983274684902844665661055657440302240073575439793194876154838064419703422453272560327500670912937659823115231245246898335864187672773194125912605511057164778086274263935620243383606500385956466862269927205605982034063271785851043090067096506754062377678681823795982236190921639543406519674681511033852396080710276307991148887391238415191100908289272070375932858709669524297626715273246054150201882971077857367745467072600502924670345576605090744567331302800335727384843541133956201918042422308069306284435625854753233773060959419087783588684607114785182601149427791468302544244201502682736688748461830548982089981787524581162061052606494860722972397772303016559475419553116621692975417281617115674533753068471382684225098421755399548953879515950292671056535698516409600468237648766535654616471734707295388570771691135386662469824474616498322103547068657632159256871829609617222626677273861675320939784658873599429945785136437667371739828581317126183305818624900748270443212731645530353882768590784513300092003462496251927124492174078918628996614044995235460027183565169251855903766090606605885000481956488308395191993266404539909941910547570940274301717817683835039126353564185706764197894319524835939353931307959475488671470787660457804838362331026439329991229326956915133072379259367107914824734024652374965797366023721211088440964053084902833395119011687407581696749914120308517561235553502295310861961054022389691075116408344327673996521837392801766644716942107221967226414774276917658270908006286404787657748027504815720102613548685676122683054955355152524810355110428620146661834925365920755816984564467196377467902508403306712317803069316101705033301814217965234845769801743923705813038240789566612631719766798634158906480714758905016952235542391719129002050550845242818086037970955097321421513380266014134101010724513861549426627957655927847517809431288612017502728107448113368706085317043458920040076489844274683622815932458455141587158775810884751488096824643424452026551324164829265857979748682691613408606214121664979725334584957586440681840213188575450681571752116064259520675906877307067646061525307408827675605538450914748575247345626381577975365530700190517062695105648541504103872245257480241053389729364175198056544163492850218714523722024656163525268022143053898653237557460221883748495608301570861691930537673107436262419005649229008044224847259072700356951009720593724403818470595834972251095741871196700873448459110845172118521819723173831242232938862808443808160503920968655349382468511017973295498818674612801459132417222336372068005268757202351293387283157224500372746136660880406407987209950632169396960304658427490930027754751560428343545510419469676311667702179474039049825964065764592569469908423168354381858305646768126420265813422226091103159644284726817889550170311927239675003679385029193479656508387179618376909132191181474085268107328990166582558455079186898981217279642445598758428885077851034987859356665782144650280883574432361177194555675817194626942461560280675974276997030350805365341936171448492134856042572322155305429417967022771188028176459010048666121048326309736376532568738209946700560589094099713853225250304499625056033435860652358036141826004713157464988745746091081171806279222504306426215400222950443109975719772340233565476438859755957973734252062501443024458641748591121152359134579317842167976630074725522480641360182338366777910735468917192911457502347581088472396639855788114772349329163169981116402954744292842792162267580486494828955889683861215494019522923081060512929764741252336654980199984853865149148180861735453545686996091145214050357780342327801172501420237153444373643568459986760465625927109138739998276983793630391777925674023148785303984751065864387527619161046037391801522304716856905393846106095740821434347655596752277555149021813353935779221165854667632140676212918694262075879657701100151671509979992153553375203229262853297872281428601226479524794099854980467705408190754755808611800450280476139598688221980979679224717940151726824608057032874585427299860024603252572733917093849053158182855426013006253482236948625232137095740048725975277288371531214494484111740582206412476154422974032275342581246702959103598364849047451903016609968057285870998422577015199849469136087850362151899008426743919737615276629541543685824667550717374129154914901566633609949122426629157770472026436923035034243029082818481688608402883705392741623191127823779499883592263963280875407519190914067757131089221608992193213972080309527487389756147888821310983352705465817296628241975553403742130472486454077546517158692796241174965680702626962796900628349117317442854629993008523354293908062942623079156312373061282491245943069633535145752723875048570367064842358667703512698781102111723361508619009919108405174636476340348536171964037693702020446162405743939345163131855145255266392229977863420916412693235282794505607270814343931978807117556097148275863618744975928736860288524901144021000936089525576800668346651458048198687798406714439978048269769186772533989467004815594143395458847659901937697308201585909102184783152252873302143650966000608221695542428908265423868329072865019963895879610995149635903943499359417713358116183751399321889666942802379707294526409437639178163049944222715354321883106508073044806983253556296142390917806490705771194984295636136426767898688923903208234128303734038588702356503721269168302261580851308049679170457307183589826208082883766360054174278740684098431711275814928196729485622995492506965900242457241973592874914621521232408002435145898514108083902301599009465485386431001015822275209165529300414415409300685153798208105253887355248635846495132638892890922264937883310836767460520736478459059799757482210403759766079604599874270167496128229975987407052311280757034348905640445062539296514947144544349711728348755210030664267568181738230534365327261203557942533851816817972784619699694107954687805741981655669370417932984311296930844396267320320435980822970592163167284789942118488939759586318105375147535321101377697818463560874914985847276759577998452701323202097426368243379669100313386377747687529993615526463045413291248835315202797354538294780793193785999732797141441852376704452322064950018270186487718775762931233722595087197079459230361980840140291088732159804197006754727753298993779724197796229768981028195212114659036871557389811481180122325425636469594309264664920514781909607301058917046821715189710711650325074700815596010579804044155221915134439805965219594455707293362277951667608215159942770274693997273717363334306676260070909661723145766801384093702709039763453981474892033624690367717865776546596961916720022525832238494330612095338333115460802521442001320026408971885813456395854817851544705954821752343458975453173157661595309907324348942093994458387837428775569797211455989030525940406739150259772140913878266324488852288454473587365319317964439808061846319470349439575500050492621482496815937013666299199236740188371223104581633340056698898569523460643224559553651725145421549088505425537200362345508073202722665622001453999135180932312692484727524199425232388082560168018964208128818794750633353668549871279635582300738650485286775276695837162189745099707221027231575318910566965835582769877782976642102093519443694256063941091998152457664540390024431168528774759445081981797491303048561199103404438675945609281896659341225401492888055305410891568680515977774827976857737459653465530084326634847551537094657482039457051537630696925253770866563421546763847171679474356214644303729406854355729148530085296730595501034525652438862874640469449175432536193666762896939541474588180999754758134565906634365597616316780772804821343891815679705551546862212021045944405408666632000628806981514346072224667350324625768894797580173209520828501510865997148962067288623158919974258634602905054961783525946335576982931770360123940036730974804590522516683593288544711664691510679224129826047676382871419764256252319529223990469622480301984980139272563610713147343140900782694307772752210121319738018351399731164582414628201955721168060489916637043334041001223730088727351276301648124131990408571639843078388741091254156504518803840454994338549953965417334924339929874913118363570898512415876868850790471167858680493428133136807554107754695266952176007505030153653965052803506146496839770245317505137956954665120364837729280700544893562281862763927416617701852837028849701805299216775687387703568693388662026939082459686594004466968941344619100737738116582514430031363542116199030790027367879873297221376812465004489703096284846219008949575777600243630274486730226648480543230243010496765316344262680648651972746974146147440902096075460838280322451240743576092291530547267438344089621622962847125395733782875553221538210909897700451324397712368320895668866649881288018062851401994788008146210488896326117200452859181819301012397001335275129927001511543415135448350901261993605393020635015506943452791614620078934512892142967605178447166274412167505698553107108957574557443738544244714473994206887808906648653826725543064115348628220381301475954865335380021363465847882455999410130720148285797581377435700937507603562558218897917262870759168359601099057756329459797602159834645892527499908922325552852410412856178209939336172762146889807178279274375188828610505122372344364457310365276837257381010673790325198567587085004236946271582228704161896540862213385840651654041076232562609752588736977812475050243065435064321958821906532125189831895657088982373129114464429239897462572777022154400139857567220798412129205163622279212251053023606010805523202858806275635592162401113190280149365942502860009030756791803797574453362913914100385621062001580899708974577664626440821584391316466327909771400851277566392815351970580656479185851049273913024875128674538384455624182108196837936733460345448905684679161850955931822746790803274384961092952585069190331706463816349693106637086842252552873615944776452578948664396192369462662303544983517530886092468628200721205642967938439372726838031834742535586410635331218415263634919139109463937726096870093308533532042570577759433201939070655386796945606538256076364543416059537463931318635077606880073918967678019942988791402136704259405631691421196306419886331909092648304872341429154663705446861421996578083606637612025433911041863766950042899042911540910360346960873006894993823991496832402377353712487443886070698144365557092106330632443222879346407388282004932285649643978295626478949159394362622455743241279079463293905931725542308519876574816951065970453537310794922009669737833209674758610983655356151328137494931889682282923648750912326263458229649728443576197538286103677132584379769477844206238131992175572918721682549675839060173150071041395724003589311590730946020969229580649660345853166598698012363398955233338859735104381778187371670034918020362169169990648994957263057263317707536532152486060304429112677127652527446199934325987546880334974041846361939823094211594941773125489163811414999762464787445822942691898683092406992077362634287307310044466589184605038423182885956088135125120670162875056713651012613948170817336019402112902045085201484732319738884386842216963419679088428115853246082480084034676078591748770553752724480096459619484760719212537339325889088328271727907223280762581478103669722269480464297597476301840859410048961679664767238328387347651134751396873952170080485779985685098356952764237057547612209411128503240623544855032797485944620851893124192468592939991981243329908425934861067186057622396665812645045813696640878527985780418157045588528374704513217185268253332592427688187045096228277669006118728216084059975594438646443950832216900078811440923961262523174029042558909504192000064290327191675419539933684146439263797112795256552048602592071966883853918136690235477747976836578716936874871228220019164054480357240600171183763765670203684642158428081140644368213001616998613650839149423770500375231456783981924458100763446386699395792678479409502481926400979828466951596733781325345621438330431150073600137045812447365721560268125218819645267896189075658029808935013245590838555929381754456841439063039521120791751045627282396089276666167801460360976172561786666181503576712781640430798278349644608492975393901125729567698682796209029534641781667765449661812616599052045389536706433841163614533115499697809551385347464569837252794955819709420103138740914396601751323220635996375225179438642175572461932532822431595368959839744715109222954263763588681708330417775925816670525803393833048315032382168393412444469228443137516543849058972476760031157825673266355081296846802532799558450919605288878095066419658110743215498847904784758729357344694298271926221797650677092727958121160789167004576194042312800454863591569804416880929566449149742016174126300973723100959119844792553600366977263715028568289177570671518831441891297551582437975534058335962769572295891770564569264708408944823095419551146661448767782428954687109091405909258807198539373952121208358430297366739496236134461815021903507847806523753962830002344951013991676812716259272027772747287352647941365047669131826596115984404689187121064861924809253247940742316627495684571842548376103091705813232525240460828682273584575562915225700394875382022335257120366749510818363569977434365236306336027314483318858483495195780065100426788274158294903566404123560973058773604431634999045446855484483566832032926246743685518363985731045654268889757142475906191917199262650688678616254858360157958601421057400249144464741579657964178897902958290245653220116522268020693560259650284831256365850331540152373716315916947131564127103365620903404437966039178948820321910758360488566312264858421595648508489402512321647839648718697102640283526461918703123203970410530784826274412822138272676515893897062636047958878030856983962159898421818801834559929972921429849733589570165330892497652520984822384352974747737592270077116374210821785732310894853338825946543552471841707216298768346699547641364650669437382081255095333242298421338341963519702208935970509504236553209579650881289250941058467989089363409289668622771632810937915164326564604118481717092237415765289505264191571959144047643173370490263415720244571273431314485835359395600171211326620527044539598693357262117686842522865497783199265052416754658432038007075576675480962359320268884717124597982433388843425499629714459473121565996889152827526580359464382548523734881358793723932346556264932431463059484432873329185903829786070792966481247123747808706358494258058726660954980282224612001666426055671622516585853336254463153840235921619606089758687630571041798518794976277764637141373803909442012404707649992322634922382127976698770333605381756206287888572627050151420612154328023731160253088995178220119079870614109573859976948115948119988243370674584067140672066809338929756784124805802873363145410145057212771928329226286158698925382790368623101106790121131667814457799162474503579281205509267898780038022489046146388423610516447272932380592095510175448769900014416105023131927797110960530608440445978585732064639185974065317128394758531326057572614101709270408580186405364896628527880276936967879540860768510868800933532599024565951641777435926348649709583269282280322962090544775215186053656286138505216238707442552147282467562428398327965782066155746700611162500120174785700671537093272391226741770152273904138295569902112731496926122863983756796072676390966854156486024228195646185375277750361937952224676871829382845498253199182421650396855633885169915530989206497180054466445885265444013533210808480000846194740102254288283307176975989772115346686913694125910945706510797301061171624590129774497852531817204724074020466889630461114692146016697082727044644724941795335026440575853955695180132471663250775808817294236407071942924107034771640038729623423568513680069082809982853284929446427070194854856737467752124926612921428708249150434013169165897380018308418758740394399352171416456480024755144804270593220844521599532483266768527592055738398950426622201828664682096274619060079518572822860658832294957145307044163704313646512397918151949445205307407266154081494359329110609065426351408548911177328247202907312926283576530716706540562424597861680379866720673036627976677540002378297815621441262805600532175532225625243738292364051895840649967491377456180632250159151004239892736384390574313840246588356904994457735890652712514780590789808204744622274219789392600030784260114690060303722166289449572396586782225361686529996415702305485918035542552170088302640603542921601480516812542237454464429351946050146099056058592091649168921862027073502855941871699701994481532381133338256292746732690698125052010070214460196683702511656372597804094496063867803013439061555755223375938759947861456644796227008154312198539296078393528268344392600677195282021401174288695871706517363028181186937022894623870511331749556461816384752009683601508182490463444754527802855577754285950239987196037643034962766122959272247356499118293465097804306120878762085834104661796810317349887112987800571823588314613617518373075188688960351248650020048251471980920306753635397849264319832442214207775106917224586823818686790846243374601507420683845278989339032610324979226508000341742821353424135024523918408538341268963757919913495086601657737632394536750054245790652609524267438678801402977494576176973112493663839236128433509711367454953281732050114819270978794023610769064590847052984445503613925246001330264272479389447027228422823828319485274696998098665444604159432876629555906641194353066221680744407149870643500789639689307732891669165512875596686862989523535488455118567484837653128296799505416345824608831210887173678755384925893105650954345548386963309395636474280720434915024836649761084177692221719174237161287763853460889895354099128900751235207578969340467935843710429844603777416078765219554422063560862794524721460965623760378379871859278276434178466677165841687533227949644269232188534891071090934612586423013298593036819357746428276069802859044569326298979422501440458296262705275957227072934811533956874255019033993210152066608315411114872941259693061550443649737652411019174702230822177882847992154665544771074934827520261165901667834114702776640101132540650174396920981804012624519538800973923378747495872796460857528456935378284375346885994757146799827072455527642086346345097233472022129241598349962980478779707472148593271026286037819423183221884736594008271569804060608353938999322563010489053666981315114635196185245417513630073519330723290956046376424137201699918065949868544534389495583478940935490921117445273010135303637484136760272301435913579777727882634670933087181408847217154615796369446996554306052026495058449462027832478096304360772158382660572365358106295102454735203977748400092978230044045517363079560796170215177136883460968484935538113602354026570305551813554740195925253868948114119914979773179818056026457733343048630418263295646513305055473521193633481027570490251555814060373479666926368808629094604548465603311847665364091662591227341526245006872362616756209177665715363562736841577664421679385878225697241056094843767292549638298530392241166424834188030987998278236218197588023748116495204579338534389587213414408853432538064353883621512178416906803806360260883290154905685512792162715395928979073295049255813543389498341080159610955719904082552555727854664420313203740743560569482916151087826705471217506867969720522977112569416969371612436743319629601540509315579135658192280318449369109486453378766277427728838510137829208496649067391639733715803937651569809408262895489906250069264737015824523230514371578493877543200970044446975427994955837003835275021935227078405871723467094621857330897353265705583783689024129204688635313160155416709352735381659170857489414952067815197123920766340683905486660981877145222034134972814024643175591342730792370617647556477804793738673463041050920852954177911801827392587938479038901264500223039628154319550068864004372014782632065795183588608946765789805102332132982510837388678754398120153915170173780392408388699527198327004117693095730531844079352534414199368863822084764051995470287693871430530597699181936166874234056253650834157254456989635783137597489309566850807114806537074537443404127576631513650091925023601307453406588308192179737753100571868585138471582075507635005901903877910199367011816026655712871265907579790558721918952451751993360042011257911355767273393601289944415054524126520376306412800690824402892551160243743864868375579463508128477209240255687944493886806416392940978180549634080960501647122500843295613111973414703090976848646727109307928364177911943828981358668544189626220127957923980279202887992141366190580786143224257767321235479307209055573615233508859081096759722499163504255113556676572004639462144499426756935203473958235164779674350260813901761545282919856192185222632786092173608706711499520543548320204067203188224242051737767345149148170147879797063353853844911593679067113169239581896464915510296488493239671995282165829759616062489743589072419396452289318971885654245200687874189479207231594585251976410358958007544099337068078763711738806087619468873230025548359811066643435608362043958937986269192514662193622711320311241977684874598740089338125303344735492722636293527691332183570484574330070879531285849680957891060461154237780398708912679600497186140161604175209782485560653401182495489620586304152448036207343548464028040496330438254025005373189522915778049541051835804679090459322784250146476340318144246520180121137661077001965366461077848587988084242700534821285502237735019266208384807306942935728361710377662893044424950194675501718398235444352624526892017912407548960326109752725143279164750040450716958324244866454644582395411492780903819739702920976217284633091553664776012431889610091153677704638131695299301324847667925158960774119004808219369864067453330219925632538748517224224003168330294637971732000037498016272863027357202180616448900082821290100187798592637039425005289873997580052080481241321777698202056760064622908000863163786733838979721914957209959859097916853525266108744687086660952974940744245029062897202916576484469571217468697626840858530876693118054443313077576457761595123471277184715061396790882149275295019297729826763876510182045803920446714519157477722383151297623463863994864830616123516454753021198947983186723919853914869112438307546984074116814185224936934339738436418987656964361373523625099883009233285143350804658873106496962685288600235460176260618385238298751535952552321260100376413413192311786749525060104909472258609662333216639446696216757712884785961358790345168379272798798441401652106077851361772127564634328321814908316655375302639536478679731184591115423484340262643666436978697718616189702377414642484488106136158879145997023009764373437403868156466986342089923410560258961954568871452834923212497205056849906041205133051480002106575919035359567807843089985987417911348368844811185179995955333240992132713342861138941188449890482541892541640597114697495739825783521613742219221043051990093219726332975324813297137062244167770710512616524203077536186524491340661906693515326683890382136534124441133245025453590161378463912560478178921990026199721683285241754589175329716468940396427807872817332010421320347114170044525769649595813112025334624192822138974926993167136399284284826634039216073399875414003649243472550263820564141068570352093157017901263694437155886031688966535101528427498691615487809837722555557118462611432007909982008760258859766934866231023992743481977147249017067406859210216528811998805308321647438383620103409920402107911353203959381100627122936467929514066575330637448886500610088965397103108274312095596230506925700779800707139799669107707026348453688162012925371572872845801155629989888770970315366260127363277245812502808229126677929549107967995088454073373242349909146482004212368574847021057023942431326685694871605853395078943811449623038544622574773488804025528696162550978887787838015241897358487322568195026319082909668570802142920549157207872639232632726936632555055995609522109271661770805147504143839399878080398258354290017313848088245498919726186228505874408369503467725292595238322091969198487831251145862652918645497361111660127477985510042904649339788440988871159039781461112416129869213298965278032856137920964936074971876576761829308659197738939666851539820304252476921018741749997009680975860507464227790231593536113508729364529413077947150780725347772558867538053069744993396107100442450539233796970884625670863995946317065074488950087747986539153340942181620514545827641896077503869403061307245060363491115171146378158448719231870950860762525836119301675705310487959681439881036381989113611282733245151614541845485688951389906118112772324391588749865603360190705624120857075452721680203076989477831474694014679747418115748718735689719973168107259296914632656503205609721663582200008388118404706781349070496974827956614496165770386349060022788554616713582700149167836268368669278182678706873398576834751331234883069137888884335227120732890917414287620470962941935098038012908472547073230904070992732056139100839174685530100676614952800918920541306023895452071328679346576548679261406730145883967120705849956264300637556572474747651041373768055379353459753697066202129753347126966023193399007552105098661897810275655496618899811394290465305902267245987157908768202009977735684779517187304831838481115777947457842612386301741812080202145045632645547576625595387789202585510439332228015112803007073296944524977913473450496656566373945214013340831923518621078999979225207715125193058831375105181788580915107661323868215706800051314004255006841428432338078054841288734499882065932977470179128667318167153019478678564089126084408483597174156290772713201846311952536317392841735533481332030391086925373066006478502058398201101665262905806669244547937435780580146175455900459221827231802601552197209759462817717481070601453508005902510193297518935855060965544584411904583794771584612223399416667008096418393562305614431455889393253484319933450013627256241755238661937247908714079880753503445554682821154962403084394480560112647585137395679758602369092979210829989393857598568706531282067749671092235829656994189606367069786260094580803305594796728592005449495737865726410107284167442607541766366965679378790111668175468693709091734085532266134901183545394819582641192420204336711107410272106893453612851056311063435036995577436820743284525555585748190109650090047496007441202431235116656275535035466837027828666774826140214427063196254464068662812105008588057012602041021477210216101627006470106882442699568536011457649128354275308562708486930916372168499595046867922919398627915093288855406742339596249469480995079058567983195574332138947539813967235674299360690833714182617602646128610219442611344532208750636157708067731287356862914851626661599144465447912832325175566059089785392769850476944409375864004506333325090691714153851872076426870924596509454910742586655153441652310561371172719129654000316467712789621231499361624215881069142614860077886666116009277320301600724808191824097626924659938419501975524350225203059446408770007361259143050754805912976739141594751505974656237901945648160763629146552386526023306822287236036241767000527191715320210209421040797863772129242700272035975354714587538434000412812642885504804414078653042742041202709070689645463983155356173666632223082729239269866190098008739547086756319400939000521290164649653607889389226130054642144174313718819672953938309190108881887581343429571777309367613617789837930330322695109782683823415892630745186173833043421902005972406681571703879088404170786687344624193521431101125784581633670701194002105735768872546351783785788136420231052284058792481962150407906562378283616766114112587650077329508634258661149919693903115347399261509804862714675393585851571385364610022672882948265513992894180087402700319447549231934876578757683536068892145655882380058222023239407324006754346750063572327213912158435352526433132682006127154372067101066826969469352410414808276465375030585312959705082181947760579696573366011366144573279879710180034589203374086588619000871542703257576035100514262181653178550307715710831251192792917791074305019019924335907304668767402315764087492547643648256624235119587727074091019492829553843125756364899522954108956404316180300023008763366326599183671635752048471664762380777505274257388258713195204998424055963567198172506193800935055830740874632867172708166423796662448172941976669227838442875879447971852401878921930410119860996281422317710925342885105621830207585219841451960851159371138421877227533442205548275911753748473979771575443468201811000125416160678542427993291834181345920817277215909643422454488129423146492541360639585346943303783453714150832995855187016185585844282314207831494544942292821882464860632205093311885551442386851391240503834388473208842580288543362105714814086961210022908146020225020171788927104687408039264387904875476401563945245844082958132341618082282026380594957385917241572782810005893400046342655246362307163356125437538045623955976524118145639205574490986304951854268407364506755099839924092574092207782907151957346781202367991906017161989840274788072229126249494386569173958940014440767217270496326844173883795535900792043159439330925961033840140007318248970286448439646043034978682716464071431223438383577738433808283594605075027580245159552207802223754173775235431808014207140806106449951000495130250856265279974435779372544845088086306324652383754149787656997292434080060209040982216046892764690862947222011043470608397388496222267794935616119171204680096892948348125690208166757989683779383115629151046854030777183861499003895971895779175365473268500767711340492283895370904217851890956163589117382205271067471771437867563946575482804272388833421850015687014851590084539468091143394712265006096212752782894843500097688266202193616559771649200683210251720545799180301696765605315867648135485985913084091771301622286207441595304805789400570207811747719188006629412723725417701690186625775119843184731234428017548811306827608618709546813928126574048214053325054330662627213429274918617616781548655299635102605881190938640622526208588907643719119623993319494824144350871380961538544377522003415374052953006979935433694875420387937440877980319164780028031941037317366840404581556258916759716205117004346620219673751718092184780517814045396005159646152172095628387520484054629440108003117518856715984257334975891885328226255885603433811523558130871918524652274762888780421612117904393648277918053008514246954254148370592133749965675236622945945763771871160108483583931061232020299040891989739402786232290014214552563276881170125453188692286354530141058567010925601581090312564023560324828366412223523003152228890362025869399467029427419205148363917427026212598632123788753914372152024157618352179505882202296691218576828604157488023094644265116142365580114151522197252615038213785300995819210198677889512202214332434121977168804149076843433234252499136115008927314927262518376044156705762717319279070963093486623839265985415927080864170154895387731158496749594116144956919280503840905845347759959084960973068430169164323193058676246707740825504143999041738289929548087510393481785010234613869609983753068139438777471120168953741145042256584386107799680121060733290684764791104480733986003593995023307205441692750298164858466531900490330251974886819933725131147639594733942875360363089460586863235271704757690865324434370875277012897096328108607430265427808985816236629006652415910381392311050678641888879988278932001140371417812580288161631252311447875554985164274580658397969883922862960354201250642152332997341193173209167687994292988371392912869706293570325141094424848994893108366629378866933509546532532853478940257991137241223128692879355515934765617369919643368855564946876598711602303645675037908625066582965469429046800134843438849943167207291247048783119619273162172592144037925224893556014349716355487385826737367153374117944956171901736600608681853315434773719259860346479932484832217321644825779839629260187465071679039994160216724270294442616068579417132450053761101484454533381288417094043502383531189676696353786658787959192417036243016887860983057909118062047791792804681701808081169873140010486583122744021286862058589530402234155111304749752696228006239435067333838022375998789353034628545660358739524274463352677167999934094266894843773576988075720119786249669488681118448993989105974965881819857615242447108454386621988052720965497345663469137814489839198246399068692281451410161503194026078238065015986780737995611852700739891586046912537996310637785542542495390652031778163245771421723945277921332776143502077472689548845646817779562977147761599591370955024629695977011908506053786528780133651735509711404561713793540910637845952482031224031993939921814298383453690178883124845868855426341672437127343460870653465455347979865851434301091035802625415700234893729549891495319041917520051935835972163286472499153720700950375547342911534022975532275829821754918075752669892324220772197499922006837083808525117948868143416685286721760114704266215105207398241741957553575958938141535268934648548906705738596104006326671201642803801830825886423617229310529818421034386657321552939737341432197745452182124811001242779610985014790849777466555244705351612278204732697008656153050043003460747009605196391369460984164177206334149072760914351368107845959282417775396232914869067001507644989914106016438080898677133763197119360538414032577031211657613763811605386470738461262997347707606840754598895953385802777619863749416877702576023943121655525992045417603400035439485740054628946987865324647451310534416061032629588020141403702712253837643983335233621073127723543783262161913992890102418610580237305785532580023714089009477696965446560668239169521530618880459830832135983260133179255337964811773856251408174036413349506427163980818291484476338967311684540948771733907641027974500802285310568883342131991737090143725438329288161366851110857811300380012701103789538634186462961024768859013413150063042300201343799148901674967006455361144118829464106164029554945030889839162342197238132640975436061135966801869417368755423830117475949910773388319904928587852349395132003054417019450717329293336602713082848776582096945897551450280608634439188401424014029201152442661671634092792384627477057196772058995807023852673042919507982192348510310185650758734980616663161036402341572108180315849900976377105029567752322303741245312341764049840118222251062168670685984138904307187989063220201910600430727183487444930473226449522386614070453655633252103733135346692926308428264814485938881028991179424091450993687635410492054481245591834497797740186989833160010950192926187360610451140053511488508763679062337278101390592601051735653733546273040170019134136473567612355665420459330674874245293316718576174042410790647546621435330313976419523848662219753514339435265260044287432695333281440060434098047403730425618907442005967434754279787963540722302235166843104474979742224331655246114916414745674824288620111180559462204799908332387963975422368227777544287329096849394277142825640289530416649280195692745752549697751632056022691286614855304620885318711144714704862259336419040234497638835900186842396452637952766207508820432088669457207519683343282364741302767313753008785811223526277280496684724091174231748022533550247947479325924283421383961507791370677896958352270751964539532018133860913611290857281627429601906662143971469269031635274812947450919405397341425006835419041783313910162498799118615060583822993510375213850095089705416464665076665348506493427746118694845484098018553659387970881795325702030942955901264376254214966538718608790817249737228970862611713704828818993795950955528481867327753960290357541890254430755377235467637931269539618032208155974207971302840742108672667044639761268159405392679021348473156603715877964744386137995320942768618698092679695059782249664436645512348565558909748263855227818333520569692065117750225765592874004570456026072605358622454053857999001278473169895180718522096332959026704690842958209256129834530365218438773405666737905436529736247757466525909512817267620440082562873895629009003289244951288370085838249623079900633361485165194713733330541444819517787335653855317288295767012761986345462398658965467660688324426986139214525441809153755614227492579029267796768082656301774479669831027415846396124536267481947751692553989967805143980906327697253463572797898444369095845749798981175301560127390417011177986426526812543138457026167608754731897731479942595493800720876632862514900663655700194141237093903612925348367332024732925654111437180218040046809706585786271534027349440600028357540520010410265423094690595007017353141878030868271687654512004890844976003254261485086156927438392744856880061514683754344073289912947637236893686408956082034330421642411564101449104480417863319787045709745783220669328009100978249943718582799571403591905827898982492956671366414677411088394029353368083894903951554935582732397087566502249917685071912216421169355059083727491524680258652425585902206473610446735601991670330583508016082428567892539972083270399966752552303182720209599858478571966248527221319719647021700678595628909554374173097603294504963291663898660656105526248490421173861990501054046701767200101823096833430271394872096422455567595217145422791608970469499947987474299286937150762067624752056618530384507389736730309967703186543976071135966135026796102651083337899875399306180198225065813994030653166430345002236693927219288383698729734939239025272306415703538429876581711370817239440567087935694209278806986243941596889176629353214269480049562524482188003367597656510063475672554701729098994872877345884461144418418295832870641188453224292080260826746032167794603452734874958087332363523076129909127250319078813544772668476122256778510739567784684184778938794020810609644074358398936125885024118385717030671266215023673511327973712012513784234346408769229210525025950582553635088057228810803230721752078185093943254172394176454916803389738143135031983938592761820575076235857567701139547855501625730621654767771184465406753652856853672830264231712640100897320614627972445498083053166824611107136846491820257797962267695470376107342586993898325852392812821192817391029767532026817759694470659427294312461723559708751664933651809110654049189240357732541780999819958616088099244016031008081271275601310567979928108340410859261893038027126234482454080528847734374091425738050522463278823295063087480926749781836299852761068021221731467740733682800682599415119580150248205059267789080601166341181737498283303787575695626923781664595514832923686197068990548067124450440886399103683870267630644637908390062469244749802223294503911918617889236692467915706115562746562037386421966872709183133160725858487530890515094362774389129876976871399941322837876990000019184500006534872503814160582627410375174954589322125054045983466732760739377982043011821786366207339749871695354001846519253275150829894806884830025755593345342855288458010342786736032585574861502329265211042667370655075831379778507041221460993198449195637945516336402737989601198092146519855292170764504082153863418965713341286657970438175490322880107607409843971079122622284774353595719304226292075227722660244341372888452836946502949017028053187882239662580559489252393464748812705797176995686228976936035338212888877535854339648608936189541263513108545316478477394954680614487025727548984542769060873913701819447291729415500337721271602148483098553164670298104829222506146284834007158614215004074951133289889008174704064037023568611866080062160386145863929423201117801783371484374039680552380168230905191271420810036778305044167353404318565675412495113016770367772759091248184942401719605238569202960987320340055978378052822414985457137011271057576845799063163833935704289272828008400592399327984758318664858288635905778061302538473080522244974176518218579010105772695787139838216986905922784502212050788936068815178898397528421398821318786690130944172683099134096250540624738657826734439502461058922077634451257036550800074276346222925727023964216994152582506755204332920604096416240137664623269981769785851587604564330857474205697869887124551016720158135588068502609606925369874331753326500735015319416394515254898021772590798016084478971826257291965751737837357989265443771449870367260748064310788505571270259010841859049518889744669168748642685798196681625104854174635684343301176977352260888080111202191342817917144055447783073835946306749194680312170551934032267091778075125135301049189569168506615481910505405416517244892889016971785611943234644242658959650661999929325156364497901643338299875053964966237198149398207297965927288907871093935711774835427345820366516177797346901318394484181547699514203787759772716258456497883892618991201572357019846923109713496906282207667833046053694471622178962844196307253035769054551162986943603206000084364295885511502605787349489771292418144364517336535791578200346574470952407697714845316550308691464784662512207989246034109364953345882296881425668409376661054362484198621535659207306978956691461867063992482402393107175529023138592814280964352276890901701664496535328388188777974044801530198664194618533463035944629476603862487288643777581499466062959077491197474215704853233661482730210548705374318514793860106887457452752169057657652958828623213363447518349895757897441148358601749454424270157410346358160608090286317069036907277370674274703894276975045418731943568820978822616141138646205190667466202656148039054248635340211966861537103420977564841521114386459862136114912726230126823129985960303350083656972454289350561129198617373082281793565551982988082951596507072280886220321776501604620248381402133338264969192705118518224429623599052937719015585408732123087934240342189199493473510120708976852000425619192959888792294202167851880603777573783773815870763444813557510134381490883147432599023456943967561770487064444891093082861436857378694030371739348655300102160508277855619746490893918022619351327790701318782913845788791925771475232864211051764813027057504131672196296831174637306354783425279330482453934738870814193892882329599703465273542470711759491640026276914047501412447252175529940682055932874851186209309109238977175674760252793488799671693395483221909989716357224852319013736196200844882139205843792615494497574501872616756954585895958199373213777445626301518984638691182193914979201101182665209077484699901629959343281398166039514453752400705397912493980916242234847531708207119002776139388902039785182840414908067131926072574968348267913609462801359079163842715067950037081744185338400829387291972940999000298437719931463013694900709546128522155267006784671600098578457820026402797414119977629881306699354839750707808764590924063870414263983936174676224587370964748405035776030887079412517369504165756722818454690681409028484625315332007971989865918391205963970860703616388152519625591946905576159808562134775275796307696247263850910338992241345443613550417520600209681556052804956091536965269095643455716353633253146940615383618298569580244521382655095318128687158781555666189116820342400980851907652575717034616612764723622560290669683849091122544462557701978114825748417224333883873376121641434078536525152436341896352229602320213683368457790476355842378826317574667267529719681511023805587770934829584170872510242728961915245505448132348208445871980311771616251710861747506302230447207671584664534366147051298714381955910338757958790628668854731087483888982005931606033207029367855845341451250737143206117314314133383439981533010186836441003335165271683695485558906577805721892518121131093350865975672102453847927313021285862354890280692271582537902545016263405531919409010158924780737964834609428744279740410382169713528970610012813671830255268249229222542296068245037305595892993551415330800364803653136583823044534182751714377897202597010584338607316508516316929815958654027625713821653512425421558002748697218735192437551190799819683452356675599197023703538010689821331829862282698889751375651293094423730777383102289380354155101701152231518049164261528917549530023667639239668040997032133939026588058428708557846667694966024602655512791201414826283428765192596349543983278073559586849961585949108604043575179475688544073663994510296299848746532404726529049353133126067657450336101828914192669965465680611304035826268226351003006578234229925007797530855900411558276477295429298018619922101352802775731446748235069374301485198763130102502507316465887006723508405262764355105523585050043084335746362298676673799291238125506448147782794233640347966863645737403925860784449116803575509839832698289786526600570901911128519188851826420923294627416067221001812967756769840736510416609259164975651949525782581350471936811409913232538952968584581445887551805393212822654648258529638021419352456166692166715092910674362036048188181310022738016210869476267865493431579549896465184289247741412541147318538404459116942004374537470714955040995519494039555140744231877761984151006021760628919981283271792086834896261973602117700552924958678481552202312583791881856114412718953215680385334388294073020038778329001626587077886061243629445755614287342245655237399086096918509240865163947923581154874335368638290116664671736419513701970968448289480885342712689774119648755388638970763554719264967597405159419912350892930965673278128564217872905342484220048753013246807229632628378156389227489628380691717961497988020473996839086561394708214696764423039787555242707578557253152374633096170937098522254507501111563986201825233297789763277576313509081569745101543192168143098603161793594709602685061928203454311664020112248912942669445077566277498385117496992795320474299275583846000391361190211217683675076714253887222448027569672546144517414679098195528641567725011702751479590489787168062865950161550003024097797850613595603176292642839383807206666614115234947879933264555727609403885757263791028290709141610050769346316985756930724482153814619202150637859932979412853747685181637869257223317754331599306358746379735796407761944898898424592324274291695222224420226840063810134315310560917542924137301775351843249566327740902708582312364348464106462597692663377696262100959855063542646039921702099956942459162091281307225668747573951501070567856374687124201228270771889276453210485158982353166449604123815903095278040269542766831896602432732408563103031756345651929045601368349103432573659291711052971566257005422516691905030371251770119377304029422417280280923911426900650532473746266961439470661788087844121833707782103345536179807110327234828335520441370397659188904589209646750556034608781894853878895398382096593468354553826692270844808418899118980702025911140854678056525861650488366365863441233959416925342341201602763771488482892353196650919249928650772121885689439930412549582190351912104584679223650667879121655483769756476340093432088565863208941497159102055121578277424792039891347123262081613353310930813825750357093821939847341398173749772258502981407377245696860304564350536744817824599774067033455688750635374069404868440566570207743148585832746189284887562369542852682546333105532533220980243854008208709881322457777792596551432222398169547116352531178281169616980917754730857580313546317565531551799416684164820259892794460977152166118533812645214408137897552442127371473440971620935731641285689570472057360323544350099428198796704302334358539390999955875158714010478907392440237419930053482509195571149833210951446399784802204936491917109934834395189079482863889569248165675981990436382804746147219768466896805380760386951928855059165720975452247368899932946712474818145010781415924801164930250958183506934391143720395158567603200705457247529983309873274728308805759736851024014215752883363299376489702327525675195710867579482901162555297676625202915697754120332905157195002759756166531511265564799780353214203648426360313206467412058696410008097188193879774371823009906533248789430942842655694110873444521002419569963944177488762955805251375531042276934393482785282396471630578100078182009231160716868377734231422432268781012738944622105679392848954740934805105230832371767153104163122871663231989392060047272367449403823217322662831952603451076733529946334790397801255986310491736617351919000264420157145849402819896551934035054331221938118311748277286860799751439029739936369134561456060317911096792847425371343214545807659183414323545664070339537361610481136929222636481372710527319814454942435232187070496747874243864453978294719097689122908744405159599982611386241645394450946900326400960949828047113924743130339180805318776164511552994606031002704105327449097517029512291173042998049563333845819598061983596683721627581289833585387145735505830260759912159142417234469929969973212706402445005753133472941266545545595695069988110290862138321650580845197145824444762255532137918516743507045035860352681635382028825163137101773507071026136876998015784651612351476743916147982001070323813086749049975002398595093534884661637090919176346246222060244068667291243502539484155223518526160963304952892220201692704287662070450983202788789947720504220284097286018314532632166556236519673439135055510114654148408879640336022010460189265563071759132154592588300719983995977249601240137161329083189919485660329489106616173704482476068382518217497923059403945355847810190338537845964200746993052111483242972809298877311393465080060427875197808367981742214407422958126339432123423054081553801084623248281152061719713195436461246276470774565889519335881330114906235025170026820981085309430103578806109526817628810869135914686226758953687391206476558202380969015314175062723187285082032563728047930726522794487563433527015988888237228077582697614489798381302724146289719020596147508613452610229453741113228713087932493466194900576495788371893036085713485584790712709540576790073508543929963818521255717283331997763348065450556813559891643725245330202094009934583351848424973798136758815102790953992992428432480077443159119338746228480329899644889893609021131470415349321448630421148331771715936262127141022204934006781188779872521581294709327870215911246602066643307936678676459037294601670867509983661441531739669690066529404862885027795024972299634235354290888067083730287287378771801783285137798530530116934583655345491769616919935919819745757409786512792254951880545730482652201849045494002263864513916219772573889651203994958878239179338011359417747548701531748553885553276803348298681008346916115280803460065859843450306066556931411458591943793433516340697815455485470629616562009627880893488459538193251715793067984578967971249854175486754624905064207289950056072491458749319958577487155562778238276431045379574599013529363099186103219341197830292352262331333928126720216818475897365299454458425787825555460322141611724939931361582384224939188377931882856563405058265148616604428007204649892322727135014209050711941859836626365487752796377868353631993942831024196720729623971934381356084227536436973250955176841252101381461449556814321117643983032438993413350202051053737527778718362145480905883921337800311377053894146139220268158951479647480911318090791688090085382930166239964989442377928102374260623706363887425084870593393777775206240535061330501719512358453945197113736465171028680993450309043061548343780648283723101032084147612118730684001945120839111881251446252420890424872663164375164844838497659724193860070082135953767608675163263303354233432679420726369053747634034378399958617676122497921437569889512190504405329219312731800176597945874331172803162607208092498815681547003881339524766244354994555256129397902094319317363828644561938993288506657853221364427686224647625457229914583453280712764836629052269223617684325910285860413399643170392035050501535553377646651986232474142740080640285193025610397248181426197998714009178189136799758280916503175386321223054792450302534703477829959964728804504006244455172150205628526681210469751568371334943295407800952066300051215478755940284341048038876036096379263329378906945511237270681717184230242963243451595115844553484587777345443148595569848355760069293742712203642417768983113722448058812541030844579455694088061851899636275669756558580898685702915735455680975502610100460794381210184459646180529307099237338325766578585602862862391645466037992865997457520012544107028206726316308484189220747066032333557362591310297225314448505135393954176532525490254080426126334628739128195286942136683514410719575100929665212656615507458921758139242245949101251187761161346359850683285204918620766567740923335161062177207963324748964432711078136695709724777628551282674894075108728454841720560457937599229163771586619944927518213436482446532616851976296278245329800433623610465598962082518306122883299379357730438282594131903342320287367910617455260313900020156172409422088535307017187611127980104300897100918550115566838598853208125981142679410113989390597777771891795575362816891311283091463032673020927135376029555683201899543050393680892209080850464908427750779353575441377396135151736731276231880213956074436032227854315775462628539211257277518356919356069977124807419735164584997531027156968661409976060528851205248711815752204918924489811693941619340892874427058818123204656978766721570650675179130970499038183074772253961140054886035073778302197693061795805326608035880083805815127684954498665135193243375147931920854841131536752261911466295214809447184226570878089902788103479638531717335476120643742029914021694356005823170820856681994649668896309654753432007426879443809027786611079188071231910928187030530191776118222444313254989010713611338144717040578834935357059306688712420509619518796150905502625617013479860434693219844421795737891673847211948470779552625720891951208634007881034767540771176833368476288296409984012639120505057803792704118175547992138541112098814165897588143074426397527297680659587727663421368728388742078391418565158742436622046670467021402442788914384648530136261213363411781083748602871679137905404201262490562283736195176561419032494686818486083138250850872911138756969112776444771042297690508524884961191249456890473464438947053344255535473123209392405621518601739551549430973364436566567549716520775234434395970646086334425152423893524720070097446502459380488041337211455944989226944892084353243318241878993639433445933623933978029774313030613746637640758335158013051718323502892062381748037200151954758204266603506775260297509563097908347166216410348745762940843659805030427917814685087120280203617258959919542834942000527522456068714869995834965711032726194345926587895591924082583292743098810887013624770446530208945219679334225231749699630843182221587967232786569221562502020233096534802098134903917246519941760966934649987715882712251921203028937184623258966217371213425823073546018507329056957099846760172736086684742580533556138484671205952300852681053876646986755447498609210508399615818409886070726853390999026733007271872445171434675864075382520845372429910590413801939994810650450252456346892125828207316902072364671241502952621134974985544944994343113572013021384290937584263365298235942352568137129572426525850340754266065458669308603458021839720872616257381501000527284841188222756519549037986137088768747333264050021997115743053432419578210968161891859670361255942759865398517572282611798640356102958332405326922065464427513061063495905648882597590152219482177139347171167905068753160315939700015497355803039827185968331195400925697260206781535667493689024898600063957014507901167724873742978498346756392639616481406458575915813450201234187111482136738876720883761065529952101305859095271399580304990353745593575330037825941686794770728860486257575443173962426642621167812880785854493121974184152296581529757668466246665441339368927045621693012318322849844260817897259545139052324027816488462743533112038151134400054935072840890269036203435003370514036461766221247916296391828948839477287717449149735489216018052324647591728730528696441478400537409727437642872829092118546169632801954122848979617170693815772509255302630222902994966821563474148114455485611309045655670670973071475204740638302914136677869721865643082050945431125435989160647119993423368467266101346324558181610055215861506075459416453029568181493610100272936188364178707231528140911848948693533027670432982766278875715759102741067413199883534023509171214364342041349710126886582805533834538422267842880694769304753745247002130349656551132109846937912011690468558406744172879498954984886653546462681563657078859237913098619961714636711302146418953964798070951497298901718540908678636661232842888506699470505084640524026869881306767873230977998476931073156745047320577536198717155380820913317849420232821173114652817443093296571690227211986687735537518806564432402826029517474453341594348326584228925952479120030560869722461276984416418168850800917706979681657194503020206580477029587238027442603217755037976619317324578061646701877588875683070190011031527553515897470950616726578709206977217215092189961605058287917163602755950096099789022280729590794227977941381805283009405754101811649792429427035978641819959021903666681720542739607884973665403670817993602594589913730797281462804359597062339000524133286509621193373594749955624418314495053932835170531288891532559440663467473062156556587472514594538729837551813338916876407400616125980569753865008094846307434445073000200242145638517656302739895373091470594172323646650051017279344249995812142010115765433521487339915681308117797828444281215348547182572442743374299691555105817415377165619732386161486201593654487853487501159744493481085193079290808612076792377654882627795953761908822510157772107810803163282977415805335661208694942069208368983428552430207434389248749626363487682141756598082387190830026403473805461979676216891026799038354513846382828743993181788344935820586560074371274711316975760621348228857430326616067799737801868321416409137275600166403686812811629699612655557103382182010883785554927462422562409151504610050942990856922015328296627841019119314896001128438774328285870045882218312064044082100113512875326020094881555244345788341676107104724641582494405911609744866869301702696704592692944679381518441946032847573753736264944193645807441399629853535592363280018559182013844869195657271503322663069983396010046840724362190519776107196980121451044314295699723065448973853117276784256754575947426603901704636932747263311844005422763094921674526337636346520565133612284538175263572291874268267446291177868693952617767393667305864450844800803377664578823712082547476096379617096791812390258457769532314430740555404207010851974524577893968098736863001895638736583016905151499904331503543964504632316975990253980280475092799793417185709282951500292394388408025470654022493212079342816158885034032881586677635802971866565503630989007737197289187484619003334552399056788754629510112990976109493232123267951779801452593123701781643924785336483224497173109379958728399842255732257478610248045138175572175771034583105570620191944297740254285330584914896051559477264382127086970092158564862343807515880340478755895865614455388052930269951053787132210146556427276313946815779763152843843114386322163858115645857088894187609501583757225428656803415741973476149810611603870280714473832344145058392149649962906707559661843648114466982891549512723493384753501930131190846377814311254193874878334339745815371929067969857559387606529520619764047867381287522982336826112799238945703633997874553035144228179592214015471460384487697595869162843019752958475690618184036052366357210454608221685068508266956325402312688941766901629567243496754157838584042397515087527135399822172144798463455829377689843135222363327846687241121143780369033460660780973497807145792359198111630172630129637225250232159381277639324834513219622496682744480040132755728125415939233189776892596294888110788242224613763599612733169563599496595646053331089547065378344456455874777845696180121105940655088792573525596093565335347062567788285310305482851745928371761355649781944586692460256864145201664025592958971018728920467853978752884544291006959417640634159842597881810695998373369549632556824515114632516828686742076427099704788049610299427162651005111308494983383324462639612191720738364381457961085183436750661890603409041260496628360784326051709750894340791023253671653781990679024182316832369750854734247988802752559089226676083401906356649909428748022465595276797765675943249958479826281017071263858269599790109446322507998222022738224760590257096128087580696342028022576668393650606709388955847355983074680588389185320001917422766047335031121042445695452002845803170679461303540867636797997611291921972822104736809308261423426753856762873680279731137706457288141569393147526040775827353317509241544262279258569707009663974051572944237091434176484207304148149655698058963918712147668637293491904444927375628515201892207478823849432401263144029886324103175567008591137760058157320750746584176902846464750044873607555140809466773062253998947437756897372796010425811182071813809408597677572223735908124417439664830187088704749489124126678364899119723719335310158922764769185392857064911015175668253120245645849257548234234159094590195337545926550010809654491965384004764541551793709353656031705458625603255827065177428845269307376166656282696739306806678011580391304483668481289614745611025202656295133939441677255849731200627976561180489057057871810107862336530316097541662438835611005918565755296861547281570944479357704771321489062884709778170507294972125286575295973281561016326535716535708629954363610688090486120765583078538870675076271389062412018853962734231566290562906372772577083920395433435022949329050854104760968926288814377150060782968733855129823061807394419733147526986295388981526175970347714322045200472510003215370551467232810917102750479151476059085557897873582501104135502010130369380844150694990782793912872360880873075364158664581610585239402604550873341932216470866379297980736473207288959108956816315362985909293576070333735924164790619545703870713389361881611560801799657169768000253207212550024099251702259860113182328957590959555659128804174433783478925850463509758849996357015633622414216586913247098963545456541824379143706944796859185251877471808550143498343522378452336682177799280958040018801857334455960227498250087596022582353719871811589320666939475189265984266247515072247408891772598777620782775672528115340215256615904005783783469631109636262017636885275822261040903426277302681307766915031274755415350807397141366011795816243247432812801661289053628485902104375504360253119399069613332490175545757684358837935393759035159552800005333477971939520293496032009031468755739556376165107993805592992266795104302427458005602714896251188735197958686301037427495470547990924301497796448418021062973531131511934464934010416483320422822113416316516431252496999102646069090543081061962182552415496234754911350639186557600044549707785055968746581829226749593690078939788989366851697826747663292305559186126787787884634142122076001158654212645595493322097511496432463170178416588777734834903505374785292851634130821413941116107757882224739997391090937844919199398157954365328711067435371269729894990044264350945749422790273468879322713866002606369936023728053246906028854234864338565569095332691450742873307007724142207296695842802170731461593340710160225026782219634991251014734709220055931654089040770194005159430609004346691079515941120282733121645223590211204004680520379136682019560337463124809083195494154522119554376431449799262092464388105210568275453899049008125035050294117055319594509725198531198600432428944565355177544554710486964461252181729746413468919224921776277775048225165945366261433562405036960367945333566621505329219971594815839700452976474716529701558864191440702102895045452418371350195460581555623212951572068742988032651613997973894679560599279657781475662458121346212551898104145406025911911988007279463111213652662551507744270976018698205905260556480975821735197245737509993420087241983778389560654622088793100770260255087745195812095199095979093999298235654122652315272211874011912908016136312478387187991953011195678439988350242757593453791319224095433273113245059506448768857011250745226026048878051913515408625485645189666705368737206741954174259446379527610625246490039874509794718673853368175250402229837903475798919699560510659514358414741230832593907804697461077820331177656870359436591455024271021991787909142942045901528357014998334420401019986027305951372793446269828877007975967148765918670716208051300217566222997698659712451206808114196583325622468645810223421639462173398938326218940134207165889334179074509677019288979916863634061728783160056573761262699977172439940242659656495534117441144153354085984582442953182653181838186526313389059143513196173606360715012963339587843752489991438523285375513137240308514032680354941607572079836235023124727497734258025853743374377511828447198384127988606949075452038264363728306770638514950741472348021243982042826517856637927367586688768560772273559943998964835294126598394653406877307468527449213450912442835093589074789369526687797815235383127519214275529162730404033517693640938263192572594808925146758245550257837737893573225548658097259502470749766587248574478892972651503031867623356077170173383929178297057968127869795655983850752929251462921826520071872295529296532641244630641544748992622989248423348335382676150569742494417558859401816008910132541978091048433461277372752700021311069651485300248273980209365078133108390192096141549820076071747313767026315642826788562897426638349954448207629011356933027509104948932750901808958050717878801459366318840036489175214556074104444642394931566698086735728576898818241717038062218308017715061570153065323080971854242903542021218218739104389345894673441661515403614270698431614542267350570426890506542479401442229311157632610216854711816757748586073304474054712100006035809804347528495755048535852327210764920887370953666885556203667920594021592830815865603217336115501153505471029172623614568820105044703546174576401196002660032579171321730084125269779221407525582354618228848368048900291076530025578039217168882714750718345971216835003970025047867295747388522407758461883577504122008146161948368510133689996486111641158228684367939028389452032917722435739560963694094612132549047460554327198013362871699636716488150254355091102493411118015409231325446061068239491606487992539520407214995531024572372705538114233153780759475296159975383929998726576064537072666988005910562343649217628645294574449198627369553718223488438878455368540769010392468941526683499327806898998757637761956984795155000028517285106275518858273219099087204945035902854850477406293963740630576679768981630610295381055646551158229809335031639780844770939248187862357590241482488231922681935019401264390847686440690891916840655359911596456237866718230538415747028706697397638451750936639617461010035818381861471055864387000927231146026802811879312501074048113068259906589955025253939581790260541064219502283641342452314740827782363163260844356499050611384048500838341871705322632504404828659434195999734265918989884582771268340368655680762162045447054531034129571922399463926808442494930155912247275883410969766243545676890206106270439708463884717560902626375923458973131480194902659663740275841265474056775925299239724419383698036504159889577702524803147122581954339692886819979685920152356101671317223734784235633851644131546268383533492375156722536112378021459024184064621382539343206254208689942667439765122551005577745777108080916881215420696960247000457134485331262350320420971901654979258224177996913877130471144632723094591838655228881121623866368203017632015774905155428703147649388500196715835121871112383321931258919452057118853888718639490873061712746774386608495692715753311829166612691228976239153453777471369201615317477269678712562035151286468846352592121126971029412007371645502123363588922878640690354810016799346006465080594977310217934427581971710585859872158756163343373077032720397207769721946402973141919327688107009793114610208470993101446559382515500166964611491055396774841774157241165113553291879685705298450667619831618303017907773514077231057029507855120288518843868893646689982964851432080272090233502607028707801333080703642871659630546323786081735654690344134727739355104622851806420243648074327522361203695835399011219888762744140495992885252101850950677267110325185314781760081877637693383835063700179144727880625485617181239448113218392423996012156075376996357289904394784617736248454420485460499205998657368448345352361000501473164508378908199638900784403467110563375080257230063737884655583433748174544121802056832234316180626143533651516030553420080831825354258866331064522646503068887299292315879601045801557514496498982490593222733372997618051335738406985323795960115743064990758954126213369157686100382665707394559928359280887058483866265333541667869285911600005039578808854070337135062467463926806944194613848881180199556643804145847996220796396176087604307774837389866342493507067007010863993580952470313589268105883771686108855447992942745862124289812377941508196449318753799259774253796047339240508628207369748683437018336018404267340544162998731300416137786412852182871662608673947705097947849476105503162368593390712318421380364927100154170164414189026379971516987319998252237771615894715113846688923775911184914946955040108754784480381870890564044466812285979593401926215531998671261854152110895969361485806244967559306791285890840396297777151609877100989327872775160724561820773940659444729127406275996601835997067909995465511810928685934689074190827296099760113264069539429168908680810528763892610052179952906165886691904378600810644674916534131573187158906376632369089660725433885812575422210264790706746521747696302315075126793238545098396453506305444372551726441534227610250925489514151407139954747124284831007668663163043834442886639509401253714207598638606799118383069959644089384022063152698381073509400252172644177764759833466492989506863465896230921056011993481335221126557638081468847914196971832369330619588018677348581471620102315847097058971677088472365652230585384303754516224399420202041485064844330689781421836875119591104514165583480425071549354413630437850417083282219768398794826123799046053773461202657620876783024538659056542806835211632774412830110102529512400249512032142296462533431330816067228743430147112902676328138376791328105700565066088411662424695986642304832214467247729078905362532328119139471519598228041310756243789815835710925502928113338540693459387858093336873527790750855074816102405981176012738272244370866738316775863586357915173318390926909805186099883222740748865042523214639581198126774501972442619175311759632784098558332588121109612753391825768432839575715044963232231907074597090145362290718272191752215360265506816505173107784106033392345411929718677437707976571222245013923895112312362144453432663721714738682349887715523692221471330952772494853244791244501247194323310338842015919963935916132280741593741426539924447552777473968384263688007176470288859265636623042263015604328446034953744169191443930049231248537075473287796931313821840092652200964755469097708677045106314616498460811724916154997574238641193206501853438002177742782377550369875096697893098442595525173869347490426676182474439750140287853014425809127947587109697999186813539329897520394917026065119910141481391978001804714876248547095384115097377800680513916626957541408034401229660442709959678762253122496500490379260767728062725072993359243176834958563564412300941242862423086993098318353070517748956318328503865332650927837972096441357625321141109568345598606219370475635253374076725721584943386505661660175413382425030653237434791452245446358010177599710946112694968631801725031532710221131168053560635450312035249545924386965001861323742124417045859574717508051856385746015377874975161864129322985487434915591956191506982993659481616306354222260773229747174309877557463951306006635283398366622553304664308753644666598223275083945361038239218839512687600366612297367375338160826197090635533974986512832360986232641293746225239843831354008278581887160387848579211402911200639145571488756956917332356192672424432047652113255660636463021319331998134243803911004713429106453225729801506783081535393898662210371472502337087543328002350712816557282176976903508952285325446158222552386641369321307609396080697847094512333960482451395001142187935763621473879101399813333173607230624726714532699104503935669231604233043526735150033673310617207427476355184870993351084839997125792430461541172324736268763350280617271294328970677419059749206253640630645702680993166591487882664133857547557797047206923827849271971585304746750522754421744527093983822030786829240610553399638204322898672817960761528699584920276021108716271155047469705749364954471091590028268043820906977490584772291916814924001998766877308854691152770180127442097512779030839193286248813211747589284511823479308058941791647087632007328072795531629042963950091364396771471140672375377962175254427477824563257896654784961835690377272530458043131993866431206698376787883475762697416228012763106247863230934392962608176215610353523786815201401928802089012665250528694205622468722716530344633245971060696893525828631276564016669560525956957958575227992479052201239248539203654885552145473279663877263425777189775655779446363093429869048852562241953278560335916751897711956320420891486816805508875781203137556162976289738498443605316580604405492902846146781652510890033030853582690741456272689816387376880107250056807442599156220058474030717433640206250678193980933081408009280434490901037014438379721511657879159910734560010806513098903003416105264458619549072664306675887606089018576395012536720050307118543322108536543512978430404528440305485393656434818226531909478507020788026619328305764835182190833103926213242759416393703495600752873729907503796091186461179600276394331051263789866760263285912978150731712672131736361746522035941183472791810566417965958803684013463025965743444163948734374701453806328709458475464071363240525255042487636365114261690992852360094571504394126333943998221223281550941051144140321015108866645151528827246448993534869922875642499510486210524658410512604193037118902568635020968174862936434504240282639537173498611581783340494038158929897752000270640891721551251954458354677614268208843441547606734529607315158532232463106206149247831817583961940988268472923545646373579914415245421140511511415036011715823011087662743035952489595874955675839474455034163772922666180372266906970256353065046453378828105061732943594643047210347923715579003506167540558974371340424425780683348073541878187847201336684906265085367835641002258254730392786293236203715408741644782207601123172149414933225318929128816209123795356129560380447078161708079654681722838799570003148876940264195889877769445861787307181536136230652278412154072904846724327546880271499646338670767096346953125674105101942140158654353680735438287451044882183942962233518354231723159599153914478970176485876436627300588355095606386312800579242228562290102636982553782287430026888011826962330765871041507768501862372351484486290782423405521384306331875488707067260627174455022298006083097111215743585285189787964246842311385170303045903027032574101542581130294435461908707428773212502889564470194854383008191741273827526294666709137199892762411796094529581811098265229380327221572298918045889895357512804437853553147917726320222171537922505664605991104889402867518596250827691907647947849482525625043740233238613110363234919934946682788338499564611878051642171915530407707504967863501194497829246895042127866456370752244682670785598657291090021838031772585751013459173518359814701841624666470582265627294558754926922283714962205542074687475752057697510421588774667354641763450803971718813122362042576002508779403579795562094882505148466332507484709621783343632756826639549863883084787841103588866673900151835022912202551177386482871361766477539894464030914053427718023872592553107130623082895077565183152491713860063229692336776347525484475007252524972624211151979182792166916673524767902858790051161614845398915426285727241835821460238717936732668800505058760498699060447462529669010465733261509028533245290457631548302156412040554026172856529876897279106829290509983072282792447704549537422146503731489993070615575024930278415524548185436773798669732022408035117754698838428013576652172207866806742600272368853266955609278127233906482870602521507512340819063683158277362561532681523405723303842925695360874310724736661888190056590189108169463631882917064561060750114560958543817777728139799108031602988588475749866944209874541604088810379157046159754212654516829289420788296356157356222711620090653675439215606008716641378661774580417003104861350771557553284063455261993226308150718988861954861729761552217748787780708022596896676820525861304796038647432043042535452944041288562045335009336442167115306549909661398326277891813636546935056429376857885071447681847755324780865730344428700338435568847768641937788358660333162012828462122586789664119910461776676131254713834171763427232180621022872007626690708594554216424699040754502255597969389268638900279212770581730128277162708252294013152282468120893280964710452928775456176658416102763597911233112431268016101667323307479713553040964773110448018668348179611181977766257824320171772353429957579646142305616829168684714625709975419732323443276805627490456646425270514918242871474945085709499286948948990394891578996151673132203200575559695565024143111777656543860638807670459439391731011832075469842171664089429654348198991978741109061722533918798303207104530952058924960723777888806180341952545472197708871053534710230984582809043937006127739596880089710454024201872469550420511403720603969278501580912026193934634580868359026943149826417949360620195384649647090924813996938176231571277156940526190098120083272423536804385721805701808768196446459095030293971080959617577510556496843641532670856457149036332458511969891965372497008613352839369333114816992987925510905274112447274026413767701890341311616000690518853269631062219296020112222046995198053222653966574113088660388730475359581997702518233724224239967434340889670684164864860498102658008819861707852342522981369508461972349054219449548980495280755331560337993414830073857289150749469681947271056182938210122132406744391994025292574236978285813459952650745705421591689913578401801674728885967792898708961193660500706570830603882970691558859178429145962683151821823175187539177741324188981153292845129369217196953415628301449457194730555162817320481503467113261149782670105694447306530701765968569673241035106895264808834955539196353773238377920027319500883686612838782317311552222284455918998894945011024806795088736928805281717512340852856685331770049433372557577443694933131875047362062222277843149198129302770435558676578714763976574920030004721000279703156892426882249631232100781076611249233351344720337975712638232085452030248664316923225863257249530163554502294386787317384669514991715347956206357139470608700076329251531693534132762428166857620532751754709460046148969726520470135858460527064319543819487744380167192169993209748329555185278109468894709599177771147885863795238650928314662852991248027878752790631861640951422515820682955537394809227739115805707916357305751010003650728725138473996087277255471412361362522203129405317589284615247102194048729215163471072879232770668470153365935024445740935117456496507876533264388405853993961446151640058646734887114808130931889082813619308826658175377964637730823631016779133731157551666894351180337879678467291883771559953796916352112117157760980669594392125617646238331741073386155851839864639532039284712914464457098581894258446025389792795150903103111749359422409632041157773162855527870940758234515038126039999375127992597635527339866556872319538875453064153493547166435850004886213237220408036401929017648693268674037763123360951421101118930545566342604932399564802202580390534896021560437770828849807840380224969591091843271370757251728629107962210902341021193529196115456658484479266392958099204619866345299325014152644786643519199524779739431679177896699760907513138230104282497395493531798170411626038922341330850731868793651273194691299336470467352699549479961321272993681954528064458792477341611572625458043404918526161933813239881622656371465989078296603486304203190566154357286200309132281836941537066025591859862323155145048935346699950345897016384256537742002602223982164164778605583754054840739592238628649545874965464255053469301924065074064832077621798899159612554266379689376265504796651397473834060046350176443509648693771291210461831092862101909145099660047071849590368884182762284648834141386624118985732756331933379709557578587368930452600349430422442876022647593579712965777626371267136963470121032008472704014746464324849177438588284996091902864145114684474522825586068849705012475407121254969743525011052217651235351113884351190916927311113422877532179198685587281048525485735369381370354929273580140237640771641572432686075844164151762036293355358322483624090317334111895917731536316930961834362052228360405414960186461833357764912412827863069282726738366220550644695073568842397516181562153276358805111578276351778139766915323939628515327706384243782559135042784003780804026371967610035276603363683044976675738650617915959002926526436496100147497891436954119934953336021420484039493278319508268020345532685130254368241991603950856263062037676995114949508212821804450701961712827473129694080269681738627549551867243552300067120747482086939426103471108805175651299566438705491857263844481621148923642352763836445978547291661870921854668198363937455320356377026648397989797717362221054611575448745765027724751449438380963087136237835812568268672750739477143086176537831914538209055825873193053924179184184217708024942687607141450335585344711742319478253380942744405054800730719073586895234243331657245781587748262063773340871973570656714761740476138354947846231936007767648266565979552676228707558233004179194811908111575848516800514990827492957181899745551339897107118900902026052690543392384807854318787182001684132610807291102033506714432541933005973837924861002862182292201756606197553721626765702362735938568373660908421189934398043385991927164579141459444291429368813388489021020029991618464328381165062444179208716493184955901668320647747334847121197091415439028565986423796269281757912087224364619074352630148225261951449594240098800763363399646242439445667983479837746343244458125833388903563467439013198670144607979162855247797199243201204092239561567154982166128668891568310132272078281325233045683246572931591045225403123340241649743741287786706940092349793694359867862900414736288275290476843102159955539244227547243880087303323975683268913220280672253097692624838404110959142861412520950500318280298902184818208705486902315405858549266489838771784193771433243933687657766512941954465681659132061200744126698891122898934166728159127637978055769246078643799890706316828538542112450926157685941248107043730651178407152892111146045795308464374157898832196713643396085252893731865502725455584018924200263151844547640421749173916816746074890343616740508036290143618005900745288901117605809187353238041326741542298999158146716295026267356784122051374295021078743642853677639291780702952494169089142762991232134325833351209253216083711034838237066684263931086434903001276050310391778911046538550194455953960021528919226308955526842938808891649420531021758948185451697546028435495052737936824226266641909705088600325551201181181087693132194004796178167781858538222035816287232766091311071850673602927330945512489919955732475656282442758870123125188053941561686773802005216443520712352069700394545718570163856242567611933074495619590654873638405142300145605188041611053945997536093127347131492474215440338984747130765374162840055630828683491414474491920524671159736832440891467003271350509676100604528008613397668419827226596088822431097749747555014405852374919698022922573504234446656670106453128272379764354105819340940514203006422181043262386611451533323321589056162139537454764133731923338422860307366969733622881354004428013455777480189654186594935612040111522031735344052317716996429404312289851527537635119403419020930185863750732162343348718277447997464632329990727942731415258400710394123365794788305745537875241602308606351562241536825703990602286079176315338919802086764188655441201522039303239858647669231131858969259943182889258406853522421517697008833204815606545903940728685857659575728625017057844576152986895952625402944857828327776666792326716255487043374940549974249352238760277721293854716693248689109562845607451110275040741111737457823117957591653443324890374121816656353895979328243621110311286366308142802070607665910233115995565150711523241979008416813437210085067645375610604684307491268054807379526157761127568744069616883385119253961789266315297948241412952483668216914595199102493717977757857044517050909937387557452086327078936848544281305704254511570424900470432385707716764953038426707345511906634076372781980169139450201772315487966875555658863821836466674080306055985884474328432086663998439369979212634639204147193744091081918124007464767173285696162212533280411344743464294592254933529962802213260572907169107177068055909897490982410539798077280385394493977692836484047317262139877134478361979952074959317870132411009721516875961540814623625070849857758082585114032919230088840438806603927582662361979933216905365362867501915873441707345633335654074806760259770593535299556865757042990458975275227899355564782873123964726833371599716907263082513958761785768851892209714466969953473580843345094616639071884841271202041634870723072033152186195409915135424972405385452298517595262720555993476238283359459955868834786329453932615499230468619584469298748541548211511776303217639998578362295326598456044424417001151681901898686047670794547091766185407111028377545516269547567303307323300102971640602339713813534484109993354422551178004030485427748770227267738137681323193376579839597852532418990479519553884788064128262431610094643851723975342641418498236048285672006558337726779302348622539456880069353683085024879207354108053084226527888261333525496001958353745813418120345718856516148563663819570249681101852760137960596196785767426139753832165627465116408596101065612020130076813587533594860622967423029390976441693596365486117275775866841449703805290548478423092650399247772490088028234578492233969126305393877153153817817497160737477102446230415444897525090671127628702650240354956926126301257434043766792264335337136481852039443121606223789975182757143209780624246650412092306832485333007759470315526614815922312096536817249225622891922474324136989281226695088502815007433491403915130855318753627218226863134324034614883522122617057634954041788508906880154960833219170052047644498121324421820743668403503039486238409511411369435552094042738146568345818760052549002102709457892626340585064618302004956080663688967974788508925777157781653013747525617359286373196865059037374653508343431102477175708044415437929284039943289630972414871080846667237522893493516989569788967482952069537910249157167195650731865580880941617157255904567927813148442391622420353891186658300502902970972937682349549067643753252265698332737268038762895392191467859804906884283068977582118777077254296460757703994777117608347886061516434145951978632030003601703746292038637214604824438072728022208801873168118322175278200719755407536896317851289383917481995294296225227269493575750792314871781333224498888274864085990038260642367830347913510702648240751909981491502145742006841976511994105598667445331583841204962764499936001173224380958306643730354198892164840009968943853328593387344891674302453859227029748212144338802782265513354560848842513805845792875754251465622420829411630836245555133139321487714313270746242321572322970398715708024428991180821426748993810594008689350750293199255853816863415682062098860481653121516010845791963798082932431591515609149160383686003129873247957360816788178746905908283101948397813015826380039905524853808025822562712453285059693820792443920193464237493258301629943650717320960567432878105248538482506693401929555604815402281573942376733544506956557195287570518608972155528551762033259601304876884326637836979209038417970129679055420287923680502166390816266806040374642770652557083429814241397281679294626193079762392072510738550060228813538386438733084148604848596114716875165227679241190121229107495597578897817132666756496268960715986988515158106451865604741079122349487085199683220794905103105132658991323364908967252419351009459884247440903729230015768447185087782090559308858297397328146859822350953069490538821226482266638356873074217638720024177971349563986343054388264548117042127622282714803592952741685105372662030360793273286976563248538170276914435211191049048592823248484614102563244109061185035355997405482645403124793250356382662546122660284892433758880482923960993607400210353280402803582832539822983382299728279106287401221624093114804862026284819881615923006242946663395224556323971322454894793325897110696267151343240880042714132760265171136700611345430848137500026214496099160029812695118410242824526251554265549453437721935762848744924749868904366144842316735414565010260072421934982118647825123725795432753710410008273173703004271191583841130306498516393858429681472146133027682346146078146199319919843957115002211132267938147817870786923252269010632312976327417391613091955047604564468975837892090599080951980901257775825824633422360204756986540267531875777136655188378261267213886981613909882231741054535673715195630951828835195810445188192892110464820163804919134356054995026853592440302682500731014070547304842286309593656152782013728222011444834901875353119693056844311175551540366227870416353689540001393787382865595911047645574555019025535725565577882260000503981213577608607354653363004015936307848021481680238568304289135516881482282749336410849148622281595864796461421509654237132484895225533276246431386445470541269986448815812591846021923701692069209951604896484610884293344664547781600443430895361901366513146287345601474491255201712084823519406202551073580827951810753368720379457643580537376500028377884104430261345493342899719911345501550717802058292208544213656672654390047572134609077264850378568117663578294450752832468415710241516803342312031962927436229175100038401360901981672871849093012065144551528078726807170495951904704916297197512716503207772282974701269562246884774455273250481577218865038101574816207219675176377026672413971564317602814539671841897086839923101753027545315178233441384092768585975480519620575778245212180022410110786427602092217757079803280745249372608012778341855397721883263096928701734652985572805942711550225409730104049269068146947668071663672945447171778633550528412375390430847982730605476211838478125807237507528663107259508559757886663262929623315872725345362347742114947233731515574370328313389163075087862522230409073519346160071000244970688741740668136276572494896878707897273026159319972921806623850522137186848838384405732036975698369116655274287138364200631951528095747639451291408004788475333967090522404362857117974734077496809362727871739252202491144381234100041386400602714478586118130526797315313870355484124703982833373224624853302371965757876675902347739124680692749427377904271309807239288797283478622595468133500114938722814955446841043948671324567197282264930487665383716897483509678157929950538694786497658091550970620345157358139286973560035507563696866244252272428496660611894301318901518163128055918103268906812743607801453491300363716931653962012588760714247101716026003474937859845829654598335039585914922688652316313282824439788647608880927467969651898349373814323254704792099578084640383200697751282505635990467209377106133288710714700988201892163981947298760178112758456836836850230590646694796417012290402226547557371807307128287989091346502875427424854963054921132437581925269908604693773837534679144151438045570227429421714162585601892624395450383818772059282304985328642680734165009703985997653647658033059636370261302310450933544409540297794204025463700005727255604829583942128736362025873711389052917988242288471123236179915458184943754800560900292378904794342099188693472553690458489750785376712806452498402148103870365404263417326076032021126562226137106852018184681729662169705580760893651138912132924163286854152270024072203884815627707260740078226135322869820683551574810008107816704425799375412591977762791046843110954996469543430004287918324198700032342428349526127943123115481884408958740104824397995672550170031572834489874825449264227494004034393137858705834349402240701078157965430783263503987965039280186545672289232501309710393504593150975195690468980561696346831282991796520475603200144970665712169482324918319716668190413806530892539353552098660735217482218028951534598510978678996831444321180097599686057113666804050658690693294215392389883119675901808390948282257272759623728812326404710581940722296725713614652530724160503958617315397458996295021969886039372820726977490668820977796347852014916252808708472503331028852732774794363687901649206276861869422101256164458028652444807962923212887638256228190946896585341650344301130099862020290910485017164877445173998016155335036808430426877046738490502240701109432734344976534823684530333909728708555620818976670140166280617036346122266576672960565446515212218697671992051033643925919915423608880664501182541420539529282034358309063986280853084201953021255657330650125480987975265123055741202159793081367273343171994016458314698527518359316388405626617346580222541403133394103439440924336511612596543755596680459302160864105529709906484523918339709855573455985446062026424687311247691728590948275269505527416259760426772420891360385823267088669575568682986913774038542741844510708732441881472464993525947734206007837728592114715616733783206756508483322884529112855791407611519859326170550688814994220714508998615027068091276861135060581640280855240793611897943561870132485287317820735881688858224052863155748565012764220571110187494859622445725754875238327898749283648953089248765630055665779988141375053953441155842716384735497663604486236439428854290589524995354026867276525801015553706625005324712886363663162624625534839195914379196519215870180532330548589352001097187055596602514377288098771864132786931441750709297706976916095360506777274686485554198896985268382247209983532051038293147519861163843042551826887445271269284410237692573109466569665098962112806574462104192048784527645152716254269618849711489091394967998410062396871837295622759348110051499023209298824204014100447568796704887313869668476706966331141086768525819430359572953914334891168436827587107501526950168056079440375660587351260968848591678331749303968308686807956274497991054424044902720005127605368832126081840823213704859103780218893793437539761091997238235745460672523006544960565263920204299277792056379253278719843865980056781769615207608220211833210294265218614412195432890794508235262277964655066903415538512849417492125646724194175743580088364972451614006571673212386465620460231527121897236813491116418558070432278850917539429096862631356410747059303091920152220240052788717823833881209761909045618840042882787088446955054443622263576991293923087043412208551147151982929550477474911499663705393337946504720737930878775984623199168233159779388422328396620561526171568176668573139851687152916537891448339458643591116164356649482816792179951751140980980121543078185838573777274195022998603305661027689456291210408102945695714321449160977083940960522845252914424852412290426978766874830354410692531045928698635703340502122508914000465345579055968089296015888398990636218222461538169670817419007074093979374883075737626443324658750573546096668809839755542154616074718652119182856350609670316390547903079384243982859977868135653905803378116473170064059921294729418417486255714310281696990755319238712682605570397902824699485677650211906277073143453062408954011957347325916400727198725230070781725031276523139897507846851626059262862430726194056341700370070375465875679192657074320242614447186555830212987649235513514327333712843779487336754744941083885586492282715272493799583751045599399438692225652374463783118910187005333268619185961055119520981212068298212118517429416883087812829410122377914807813887544048477231239008140928378217176336294331006435062968597191082110479245666725570493433725383724977744733095918633311728797743371948383100912886956566439740037629461748313868297320613342827668902139802823175903530294703349436037988458375288446049158172021194596829799292866293557120041617415650262690234995168091559954355764169115546830302420823931144573967038407790561125100960992511465831819953275041939952292969842927218046427056026477931209257087077542255862281970039950407259488175066076991810225554033932598299408490065294935553926942672789287432622748310776668083425396796156804331073858883409207293958080162856093354392876247898905268593055775481414244465046953260379459573942459230383891228440459462808545938295171079779895704600243076579976497536326385640062026971068211075582317814081285027074870656157859662130724563050970731514619933379921070187390082971987692736232023470630655754628359866441957305769480711406057368350018663158083863176110674771115640049257408639613668038364891552577984301124389254129487381573571584903741991757575336346410350353855956100145240889614265194362197223606989902580499590892626175289154039462531416062627330865045946471787444970190913665931768553992841992895959447821362591584463789811341977034523270609581563899957370170731168816917337898480885671763613395468343272391090838186553097588224697005233639959243407276283065601199901861345910202508314668644898593653376000637647376343810970184251687313073252821477575387969651857721000500653870449442855912927249302441056617211768223454243376425150868199745807307935514393471583553964703597862684263356128877567341412433981006554711309809267521478393877754705020365420657273803094287339406904693713977436483286017345208788861114605528943283401872355392355288619359644829666167467066888569035621142189510402773008854986531265005890132334170486245127532393720573183748840547787029287279788163065365785855941315099073644584055488953327822534497922508781365010709002603335017593173939115334705739824425440455323938442979068765595878516065160241603804998313602031009183292350485248141879559730747277243778170555094754650957823906267326098977803479474763296022077921887946422573471345776248844805765342667742481583659122743939698753284176147907300561383325586628932556303051543810169078801946273980320173262316716459581008681497525042782447090550604896668021701525997945994799274672438848963452188120251161123980269664743519351439416379772226950171524481900285419077604677754253556216917465632064166390939547044313588302015200276537579318447240445050640124142457076681783190503865696633055089132392438955228959022650125622264985597741904563680747585994710584495505000038415606807763397479335895872580859966576544220642861030427050616457600476618796110647447132166445100123141413152351211119246119443196225421680404818364023503456774361564671175537307485555785852922804546768701422482612865230041704255750974198157140876859096691225702100669441148497908577873552083344996023987663636169292765091254938533841914384501770618977234888259955370492127516167476473237591506791630850932795667226043349920131049884365828716293493992915951295527741522038728757343259558134214529946884954666746096887843182976901619610323204514381326134536215483041891286492527462861276185168130871238777104009167901209080326178765504884244215841723999933053123556287533339270373588857693440314097497979334425064422174500254586340669601457730356530596405097804184951283323011489544610255739479901647608097451673178459847620323395565972513133351232392316856831957837265546937241462331367586252136311327610489595925631951970552235162557446395747848939896201554848839240600979685143668307589871486465722277655105485161805503379411934632101090587181840926842779812326828228441784473857956485238596669640150339423803778619048243005966204817762355680393369645160572000611635526500584432622980787743915006305324097592947345680087337918173783198066688759778799696906819585412279557086631683246666484420658413105795782214002599641724086199685901683204349773647205886431414406196541868325597189831258751360210649036584539363998678436596492440202336396072916815000471133208757972713689481516521377959515723989741561831162267834364817244514432950363249575619733128664111527992155556159227932646739330362554752973741442725675308888838790849163067640105305995661859602458973418173595613744869280237064420665212172314887752141727507414236333514368033539369675386720817619250841834492891317108577569286037694285392155768632607954302343936409542657170770076878673131974023148984685772341199154883811129423934827541870381704178224167591457875122924840246389509496451997175248077187740456872756705423529196683541301982663631589658267214576533160186390729035203612964134279273789260300338978581152963564532291655207338069292817590450787015846907310052251273447849153458369756904876768801998184477547348477453875101450664381614192620379742074129048538667753391805126830160309964465476591201393368292807265008404966287477800210095837607735528402349696392190017213517649986847716815398516282498810065965617323630800240716994825536206303710901817138371861869783287398087062334883739630512303381093733538643925710979056436234038793648202771774383927371697150503897781873756028573004690655760866998190868883616230986468998349591503616274215976449130037369950429208691249471810383508745197394272645405080108303847742165258875488322212058002914035064760060266618224508467626955600161674183773471985152815909037427903709006636148242298095771135114022886632299200748096272448665243185442079029074231051848481910438036059321341117978791365282235109780279574945668265060849601263721262188241154943467041900168295304999005219654118121416855908142969932246820180909988804615594921815404432473692253279974542837489679109365230574679430847127228267931276297527020337404247330753038649305026343031258109378342247422465513704294207602774351843149372192578286641712424067424212429266631357949479555268998636748247420329384544608333638615694771858543533573847947915282620646199259914381010074464556328124323796284693525227554389294617775071197531807512478257995444856938995672433034361675256892942733872274234019595703638055501333021396565093510107039326186541584249179428262323901337930539819138155156471949819557588349532818390290298995887944693647480548026148823929973542470405809616422659318467477232744022356534344518582983754643486479890940503567443340457405541646316352587997081197552191723004361451615259693150363670250731626119421272397686954541391895208257495937951686849475024366662111373584962306680405877147409892287528937386826841623417821910681230460740826912575203247432215885170306078522487151520139293604532743178130650416473871517970448931381228621700383193104971040611362448946518385025753631367907556753558011921367984497474398822568854483957304223973060056692510811361905110809286008371930358027188211972332098601055528185332154193412661763727352657526837864569456697605547812809385895485678186649450530023677088008995470808859137458494584744525655685508090341255120445568776849029814596688139952489836049273895056675305664377417625253095855006406788761070564557430896684407683425080699268700220203068011007355865764374973943660362202972103589123777965071640653533598767646398367918798911105869743878423826347189725008048248375107963924338479936517660603087025988951974344223983194681036476384473831954241873746950833402847668485658029527682619128505964842390411385016587085080747202315632790532416083214833708230482071132269537565509747386620518595712957593965130022859547473572820297255379680105207128136898133198975612489445452790509525153356221963616959839986041791936107815817760927928712265016505347814073985561485136306303488584556005087576628243161000414071293545836579683502401190227267493400484123896647347525806764445428375371433229493904297216642908753802926334097159236589394786662555146851062706347154362830780866990510120321932041877947813337588907323340936543273374413892479592796528074237234440845936439771266392409052569960651463750426412995716888044462887988219154495866902543241673199139617620026102875410818727137779729548255121314086757318502158284699924002341308443117974668396892038773181596371369819652360268524236729889157148051427914299539680539715557721986475788451446376713321724570164501495068442834159818885676249562408160176775638255941959614693341139572529611816943946665538486166040523089601542447505473753818552941656434997966062379774330820934433784266532979179598174878829329025627515118727866386534680097974491211323944069524503535142640491887707037717060653241650434117420792993313479872354652002371667514356126534342877824788529470869497547385774914714365869640497666034041614178371910083069057668668244248539287553163630759182933214762236716814405380240549612259476225841411358371828809178514045812215406868214997989447584485278762399518980706779369412133254517330481908267283249964485011361967716017190837999043383223429957920345217254736457408500526122734360009074064847220539320840005067715177757862506837401942567971750029815897733515068233023431407425256863185786635722760059660345298283377217841425383840860698610205274487897911131775321840445092414639316058898558229386635506103478072199515845450123513690546298982247069051918845357572600490247574735916310392866295325453095184670280297066074364370247990289927495581741271398659869523491101871174515677828494124670060792687495881448657834516696972226007707658095580854055462805006099977603136882705033694025546008490344476590796586959657882081197722583578381476425672800760215879589973425460222501840128590851120928590528511288475042691042861210057980113517922538999459667433553719440119540146921176205353417161168406081745404242952327495635350090855377927726364386131130235901010559255931298864533351219859008771038909839846336907762359160874734613614488634436175270638731973973325447535581543274053665151693954162340162267769262581768996201079674272413903341966155011929968518743134266451732644641785168648037283798283863892227158630819317370732576517260643519595607900092882294390826116264055673603441743565092845628922653153646315878488186692410667826132748799923628192079245201208817638394946423884199039955590313730554228219428834371084716193492363524342339589919190950944733609627743033215161052675690239551921237616332019217627403863897978028359873140916258986290819604537668683795213877505253097766491612901685352225241755378659850150296405871117882947049355099025408830410521213008314215032432374058249361074015916677566524267128424736979930226383766336336761277014749099231464345197152003374357111211593261490528509290095584111459918884087213709135149198610772450127346145073828782043968477541151669920483078937680364498677169599220467253402869299593032402384755274522700170530331877262966430259311614262795260055602942076666318795972865346915052397770968237406505236980471934076315495359791337032998191085631600101172451996467631004618047811185710274292327696021579039837073722478521222849258002782906046987407672326209156676240099987332438080538657172748717924613256387566251201679003292675807687971935572080733580678733235685475245399439191980299491462849283875923143687649529122483761158435925735913256296017804113919722284706558179692980981185864903282732854356673846659675629335731907903677972166784026069098163424386706471355599206518663603591612505699490680326898618037129947249351729377566494900721211903749344037605942013965769461130423124235098653747718942083185075850097159578480934544654868333466831810665117220197545537058520356102800920340180659224742845929126465405331419824684375050442561131781665314990639845582061833415891466162951769754438261371321403422487150981828402339071345555525328074410391326493396740960270394161738952340635664450993661476966003501037764155878527314041045801544425651489981336335311417993897180044485678913065584409567295045033455898135240872955577828156344472182177678123223393772592859445193805500898187057472689792832451866804313482895660688059974622442588047069366478986495427167197451413041980784345242942510336049386955986599951234329727434796027392615002279368211467029780583244933095519698828677899682199727459698375312436585798977290555451818282095900223911989116302148260312157200990925011928733550787257653227729772288267933259147060606998174258063063625188101420315239601523637135024665699575734824470457376584971541801474478436846858326360546305673349851519162868101694723729977899843032293931830525469320088058380598169224462168160923496769505804998393845283948040402631364565527550317713824801858349383790064409643159993813034015198637339780936180661113289030669673641965685168422815443553478848534111795535351818204384159427801534718994046578891055896566152722788829153025094532726022483105615187944254143476482932320766556792774425172166277872568161286271080727891193709694290079520931849815234792359800928303273701531619892167311478026471353989433661157367501691586569980818803208546016527796258368799819384204211061822440274243865412188660612894563307784266429821964948367201643556786392177009251018768172510955260350683764573255366124376084451046907472116035568706570443229343479267592429474737949817006839725387692199641102647386219526582983302225654187124978998073905860024997875939572048718466789898985274451604443621102304430918752785434055925690272140965226322344536678471777199851150254456188895511049801480760529301518921998438049610199184674227734087139209656613754619922710686737715616226158330060714850790879359469768072942639772156410820582911580774777883528685678309388268261851485688745606407869580221159307261131780111271485708092505069609731270839217052676809706827967477232438991231906671307383506118273150424564743407040993056635058764940709636495318848603292015248858922948563052251421251653895409847131719374946259800652865325000296328816575817212478798993879765493222640472708243555912690825773481433621409775571201306526969681244224180297024990656521297192697773147257102220173615209447955645831010864066488015254328406482296160847434976214534749039821523021706383379228517679616419239095263194125818496159258410445007404661008877382137352981203643595679040944111900375301522576235232662800014644075480319925674091139193652679408813839750763899082388813588432969163102696202670203536306073768567690815579756958200180088715064009320792276580595978428107215522792147479579016419456245718276651466616820937346818655381497246125458892554493667236134447366224481283803212485279208192702631720785974995007123745694934736054167467312465967009435777222970825615485779714144556831505559001369444623654493123757049546947520372923869272137899251612642006186336663366151018609687973601749074972299482046688852297254806810616880579616638759331486808444867321386456730293629972057854709910924345799348976087733802356478307161683977926936324199499849053166660339018643491889301192832341173801079165506862053323204576221795693497664082896491223503283401762662822341930843390034344632443016243050660657272529237841607945562819369953257525306472041290576987736093439138809187589000737387725566288844085300485216056407646374730152006704726119472657178086832793378694389283623503004214239117671523821729439843236738475753596169690008214351191757975861333521758009454306943291464432973679262073507682730417250751896015940909827969122605754064619756024311818271102372538044544677323076945753895052732977491631330771358299881623399040765322907915834821892296655635815358496047589993592528718965385427784680923974229742645145297680662013955480036913077768085779538445983416477324916088104170862662350834228795527798728748563091705315914224891716673578598532213272650806869924409869545621116773255029934003561237578741229795649797582856901976161851685038668515854018570325267045057177871177885640110329639386171478696159658717124980079999018052190810151753888259443778841308025671534070044538604834644072020986016251178079803224081706778287711650936586680214578228063232025415849581485204370858684175748451369957876363104300078923513963658920070618061436696162529741778033388261248102029018981088266218910952958030080844272585616020331556385002975291641990114156085060115287088436449923909098514479835238136478322059215528178283198756225575414144511878796181301399076262905393368572613783234210774896058400238711867084452149240673792994915375229828971905967274098027803239657029338248302669472586864348936674578412043335510219792599334638303367168658317001815852824007752046939306628294946962580818253295361816560383133047900392734840777005649389899549644091456890800716780656403259332574353998894309506906390849716107909492594342213877361731669906694577007827585662041092987470269735702497121975460687564819563990339916992143653664776350701227681366787451481618224744301854557222120431906838126555210965400251493211691475141929943961899058989585927191120001333173127868176149369867432933706504675597296847944640023080344064983374163918032781131944422003376457990548244202067748457479090972991246208419903857943725125624237168285324475660854058082603137248119054239605944016434899408602025563134508038303670375017821333403507845041802922953074026094952211528878740664167321316058383218841234947662885222945465041148820357987364991191765083301686815664846375738927942806060972342106727502508875586653380582970339287362695077596790557112845726340174305485236011991577013532662975987155542136297272239024975172003820375059063821587046972591386310363989219129585039935063190351884918636517587385649838129435220649737832280292496498462165324601907027998153961435359391497561055628480666574663194609399713036983698599286988770535700785252082117725661119630586266760808581267227238463798720038567500247261071776737611841668121985577893881418581985383494484536156058882034842961207008001886779718816535532821449798628445405611739949565581601212114258410244264136463760573312682608663821186436091589480475635402002028744882843895997491119587444590048943104004535744266395665386568125009423438871138740426722233997843743283827939327642373914178402981878470859217442962994341809281657227709507579625475841929240343647975308455962311044526385130197022170350202007802188287825822303073492453737539264638732585880234832515188303630087185962813776522390942249225810911584191764819181652434027364694583769255121082366705920239875507504903354956795239847228344490289605034698280656365072115430266492768385222577467161919916258768570708718663055935629874173408255332303197956290865144056414068494237276227959471342313760119422946371736115479447249654593384262788421691126673635246083850551340683891473733286644960651021332623322252173753399771821004450421765291161462855064889202529506436393975071939668133961076417656162984720038951245985492628898174021245652934481042453000902224589026500950338915529208987053393021827263472855259860699452800248283743733697103534185691631689427735037307437967061151238684657492080371205212066599635739517688435346029030338372168460634550492800127780011181418015221409067622340970617538286449242940075054870608487977016407314004445974120614488885357460983759385650794953082322440632161211247563379373344931869830919858006159446763385336157229317359493738767972340609332659072394436963889295583194762135145513519590181981125628220534900509239293484544761325492340310920115603518621462620345945882314458788295682341258317590141208600931159939319365164318398208167836718461120789397372583900950177270204204244799326505626774038763827826862726093497922774882121407330597199599302715237941580841101617922243346440754345595261468359016469198750410694730290644344136079262067340566114986936660669391351316191370271863369293987407686945519071022899521954490891373268829777649272375444072118931558258964376006933285103170737883729098400131799210905716420949367335305849255517354974626830878550802354549132243593298083880304644527062776151528191569956667043933978498419423502350323473021280446756652411638108274819025771244503881547055291250635916120861159806364504520190039438085068783189043522176455971657938110098524745682784768680028455550157300759461236128685097813603124293204598866512350217178673098950752799491339444846393859267077615999331463039806446069282334351956068087707258428346122739346378756954594303889747717778217049571520397817452834377324317682786874954171848909450319057045489856855926879663732645344754922653567433029244198151465228886430104805676072684991194657771458567541548351630622903935247771169038051011552861963175798636258553861480370697477697129365157149651573149534410087027520813169530635069212406004336493701369076581475969583272485947958027893012636284083201545260594507225782828463094285534831399944948140237866830262364473624988628036294213162481763986961055562817299387067873668617993565017637015527246500679520978132027496955166952433415825819529996640479310472537551854518568720170402903683483829205719652642846581186361476058416963812768661266639176773738520615102780013773989319331502712147285801373331080073452274426110654623325055550165116783350383131911466929458879798462655880320547358235597280415428076618894654291512298978117874377596706530050587515146066404790943014629891770264905648199877695151600952330615250032669407564548338701729887790034246602940015855148607088505040964374888437044717819568783317332990819238189768423112351182173793189513915279892085599600805733757076726380631530966844347047589250391633377002908911177492346256940752069297551278917915118541015965209157066471115178628177231352692681851600560515379002493512704397615136932556458808619373218119272217235859177275496826275280115744342815717148555399495757231930387500886564656744308502065770549240834227523159895571905378608384239071017656401104224940101690105677354043064999990948100745613344190968527998532337431693871863032380072466334511223935296000634675840513027164624625058524793695912453681847208397090803537759700933621334724637181996666798773254588644523733918163770222750721569479468243685827928608231691960029692679996583414812728676487071264008350695960804009747282068183842289583540622332620708613452138577969903445292591086986011978284211639345291468832251396440769265323511602043384737015949759423415485206036113443254362371619906466425382915502968474517081139470873958917361696801571695700622882739870292536657815757345614917269945470046926688853350775322602946924068845711766044528408757900682705084352990455746317677978775411766101377210027834940953194810461339102599439735332461458548779104823445190542480614401349230448616909710165007904961807033924460435576740348653334916149684468868545944533644866851550123475873538193202231076771803019194191350335672611507916336601533744737926996397563314967132001949666742929877635984705712096809376138308375054951505901990990862991935253567266068015208479959080405057863839490852127546063043865144449034780917287876300317396608941221870411797048002243387526646322405501507702316984835080889560505352202297293426334021925923508545896756610597191504685913820018067117628772663059321954037532530238211512954346478103503206068737904710731528732278663365895750469018651814011474767788316948940463370706141002022867094228171659183228954222782271310308462573343613073240664095317484104335394247572191965356335005921302117919019389757794892057212600978311300516995289232595912875049890223086578313227665719919799525745600918959563495403059044225669460274531676564719986726064226615447516930894181029341715995845696041139843762898084424600243985073598064631386179530023273267102967374103699752410617518484983292573960805551396088255758453588418330684889984836836640421821197858172318899331487713809857317727384251529632105023993406049377545681417418595181252473525203249097731836681939950155335086968180142524234942232793024973077503274152973888749322065602572361337102419325632598961575796076356816699694956892607799893599007396428693009160652869486020001171165153027794031226273519794000636939668185464525141445687223174882529443543887655310222029690770934297123820488497901001184916431676940682089565813225703262613160706647953814603094729393242038058369847832165807633114961590848625393174692429180412081577092244888119695517969247678723971980395589919450331243789247174711523228644510700547817443343220013596923505995671133622950738559841759718805841565053287663575898657731853190789933397912527692451996413812659163390030790128372249527788645566137521910582568796972101054950643045345798224381076565217564334636033669029777314005931035591897436721259803162349585119493004807548622457842071210206191622608813065408716236802027733183785197553474692160143286191100938740733108775674407350609875092689304729699451146559723241902798128347606272053561591571011178515738008025597616803138070893705031578399787715087963368555125767074441224509653991835215203225883157550899967427409639152463987998648932533802734186372131427474670158605370045402254093113669775399397389083950506621661407935281433962215902252907548420003375763604726080081571386803014782495808992625216848568857906679646675484060894973364450426354501885768689667282425939957684330566081322742541007629114947813638918749755913461455651117436332227570017410354750771654157924149894685517410850893076522733431142856851737127651285023844520187941397225114470494645781602946046623949913356665781309118742105824220053491998227183988899761640780567803142606088361549533436210004206005807319257240229729646406166930184772333638645829321164861386116682331815418538530543424264654666293039202665630347701665846598146804307474978575130323708436143693380448434667456363453915220181400907058696633232835017602094847139367494890533612395949749413203096476560673180668926010081210705188423258832562106939042836396664164585362517022087203615665927006655335357557399820264748664945487322025372097458046542763118453549445086707708972518054422585325950729524017730517201509634651995063902420704330299054595406985291950028355287184221380161703267237844618134293107624545160098546521993951371860500048407636501872268349963989803276138097938888354893101693374799927996198426459348342008735667873467720004524911169692574012802663805125374001052342622086649417320670547622714493392742787594107947134376219814514582244681842589778469098488435507979559501211105781199534810324301563527439591612399962796495352312749990612941259737864475725335353011355483991680599050578737814083953147726210451100759879080808345985146804395284000437083643936514125365575238338298614123885441395022860569564353450030014018112687202655208000153439191553990969436842424534653156138493799283653154278722708445383890876932959467941312223146595882882241913635169135122377268952510923351160010846957610006058652777154086210763502515862269495812557168332399866230985666082488733204550057355683170375911169334119123417044091837358843389246582157900880207187233816554245115652807976559144553445014422491043556074616607561009577753116658794522628505115039359846958278515621719927399364758988998713225606747878485780473519856856716289993241577701727230857614924899622847238605018992380451487256539682467175441275868002430837722332839871247710786714130366976614634016011899054528984598345527310690952452618065025595144608978656517896627124107689073857820086674025361724962489426038198499930054426284967980765440719152284902471062685707894996774648910477653243460436154159024752512242854555972105495708401381702278642054830912718924251585865777917944320133822406714115742901200344986253442995064377585436542567523390342734180052845055803353845503039153247568508078142345376179247760184460346242697787761449954802441559772605629400718817488378763863301251789726092572026379012362475903568914148483666599016066232985437585681490541535381978264708846056796151160307056892778912276542748594020689042352662087776207287128789989320568961176630708878898315402898342090628033277562051611388261568289995210744777192090526468477189051434397301831839240310775824937006685754073589701411982564954250651780003097190479148046605096556605351364090401159712699780200556088859306092943967861963787682899300584706065000644611980070294994761018464685537661119612476999662562544665755706071700491813886206761950805419827407552437357041787597149553443482783163347862108635439877731098485051007054570225467069899452148222112194953361073741369606925914598889408070547147006701154880902746169644603330042054690469631524653940777972558898514572405568108797223675842540901117795858651619694549881483112394023282866735403857534869809047007874810542584518055332862046785379187669703278642594939499715180818946672295047462428533699396770772916036931921246947404287477694859549588861268682307286587513241755582069907328755111781786816918773521887322139072703391093746034394546896407023966584365406697038750474493690809880071485704414517475303886275179783414612530454451276678078927437170298790166506096007728165228850287422881862776573064305583833154635908309830516427232245929111066014739486511103079272467202357724477838842283222159616272717323884274049460734324750498869141578881556313491117578702352336371433080229787300109434007629868545564462065028761830782339073421550335316048040724774787209885139864680733867538987214510183805610301021532605776846581146721082649776529775877552911519321853757893627615253015600383524824401073174111756715844135017137723738767984787110535028248944694379243024937026680184674538467399788752784564220523509439419704466029523574531732842549878999715964380866705324724967607219880171093490305700961687788254718404795208337537883782090044966868265642619523286814123694396660470401125798741036695808736265346209215047813398600205801468775883069922962471304758904971411525888301138605548052648380875833610920784467832559358863136401688472503478897848378876358400988961911690621241662097930359226720279495937506139549110887658109192444056526434825720289813317662038751878319739609749335111305796827805405865016530927979911256789194558889032576159433963591349967954755393879418845909797939262232719212462760414741095158595567497900187369922924917403411867075360495187881591247452505845154799538853146506731037749257906570612995832521106162659815233660181650187233067661138741920309453476012751220068159484612751076109092352856155694784338727454526142687568156256011544013490529213376098288202096361501159429663966368497511773109896687439478264484949487212329583708401031200189655711420707635823594555904982954477691226353501796556838722988206508524307672165330321168054983505661487797038556736037694302610974769052797899899856795593235732840847554586105333700557795658099588036792077091477451169534819662877677958247263436574796396819670214034709128345142066830114218101593106336982102846730410904866691869727161908025087836336262510713797758237747903657473573390448446162930719359727130196111892743941538251395543467534453613868001750880048116107343272648007666137528123716953774214773229504682548186605228105580910743707399723969624380162445488944587995367623548782998034814181913122570882944971504715912151936534476346134145561697153011440051320179764408093057606363320235160920356749664884097588013390697761877436179044140896914117964830551482824367396837793341134527545893967659891798514166707442479659022079151705757614696356241578773186392330397509067745972727562804959436595732959570003249358512339136321349475153440606811504121081245519978941539093632806577847126330127916316813417738123236255483510096084072391401771448773405973621716141783388367321630349901826952620621317805831565274818847987376362227433946654353409264617190481791659530979843111368134379705802581706719583889825606202688820977864539758169428987873526788855998174533484460803258926334256348365530358785900936676964836952711477516167316292779542098069507749645120242333613711625325300537196723821181823555361942287759711112031180061840681452787067689406796380701907304772869814389148826020494941618174698274458799292669857520118887187933015894090486412273151223223132993942370226491968163647649181633974294433175215237023746555539797359346929908737395990521468051718408150974568071272739293108169508150683470123797651848289183999306287566112635069409589463888540785478497336005127315123857617322640369954390180149950542217462237875442447118933979770840390768701395285455659334005458722861856172867849183507272272550047219774139665671819914170186556652562365456850482344111883660582022029164264360729083953727106218271918046382542727324159914476905417897506590261804467159923361680680276196288175888412485361486139961259199230654074275884503829157611702284453049329842515016996282500088600611028130623461553777553753921543770104185392806526977597059507425840706706932779785887425306532525043344719091234846713940236094591527058382376773126386546463071062084753693706557684886288256827019790213398005684780408498350416316018107646616700323438993487508679856392746067103455451165064305006334402883644596239759501923638607483428633538128169802367712376576749582456806132152056102475316152207098939037596189267962523911077721544126660755587195602135548957312272182994667232109951789083031894609523957817741314978997258987525334137319469602149725004761172445723775205422505380666525018964498057785517834493627207308750045080572016938018628327370473080922547524725098942222774509315215063596302768107651003579432220284549211078966704940330768593383933285819903772722461549739546907109697802417088699488252702133786416732073544563515118411994851072093281261378867270650960777149786005787256914587313409821283938137628774781346164004859060067701164260530974766299220091389166349959190954787443591749534194710208748755528760852717853701453567067798291834325726113068579934157148555258310078327327801600652922419928825230365194477026000992318370939085453363960713914036367201847322732196266724670027113262374902411053087427875682880330417844377303939073353061418220729418505916738388117404377093927711076665557131911336894272215749723510289862883204037525266224203977797667889087533535869768694534828563758228260912406630801036726141781477839160423919368979639160822276614820407353080605957739750697604970926508621199769715165939672422900690680136953238320948115157250905251683675690643565705343146626395975141614100386114277477073259440447588521822292459388239449465202012035085624548149910435451719414230376512598692727445074359309588406665517421730149713559440204554927126057007522658898143808021714570796009264632074825512476033423498928941799665937729976191074670007534217955260633760944854293507604953217640475387996452159651855340299067601372102431641938968774909618465512257838143530188929296715618234709058501060004905909643966271367378202647044181045433400670996143949864488376422350076764770360860635132021456107940776199867010642287742825274872447956972883153777455080272159626564803414118968639269736190773039406182836521079812065087245254128313863118509719976765608185192770087631492326147738972091367009686132504596811209295506594219687593889413500108691089919370169632049754822527195010257021847333901873014978130109301079072441054213293153057286172969506229361855997065858678848941101770229465465573324215646807031355458567645263111545365239288512810070538728752833902210044032661645148791384707065816201932617401554165233077087304241948101133360864561878715588468168275162555055688662753719779141391721217819640879680557163622982885855411478878113592774134317173414618219821180790237376213185666446923308664968238657918507540292386199846236860193283496788623864610644277483615910362931868683742705616022428406114912701063490322603285851089653409680545888449940256232566243603691473707334123617706005891939365638514372571699853022276622510077551339795473017251792969845839244730147144612875430080831480388246159962773832929096671179542933525148153775547723527239238679744578079778221384948226243499487890082560879423450760999422259802735617564388679279064116092506101097336661356872923810626259626545745436429699720834895012300671665608664925311296685658939586209832234617806051760977407748582966594657856491484976857747437213115829673555265808106593169983496317270708592517774838764651130983405355306001004153002949912373232140779640840039186246235184197418727674700569065351899945038924106320349795006451209158474767197076652946462824493261392659893722700064880479353526424235680013181102547295042512583162363060813933929421172730356741098246475001856841364210902653405026295219151273170614761309867583799738570772867750898718149293163218563688906546988674576617236876803965532486577723426284196071910865511003698973167594463130477468602204527543130376065386940389374227409339719674789560667231782462165162222784253868036979429886610988247235933304743842134569318853694921806783557355579333906537274757826270629729636179386549538674572082317249129330399747047536201022483567243510605758913193154454652697650412214641929205291113309573297020675321367683500373315918300540165414884682805309474622625558407817085836407955953568566595757491458683001797337581996425983042311837658183793492427979473921381109375817664108758977432077432035113438452575229102282152763780222881873966602078065876225313017271608821247506109063348611770179749847082557163316812964622764288535394878797101761026871201966865889308970514277321272780663363617439545118117288736746212373488567869419544708104637166739505184173662199837421994272804243841685002472195222783078181689881208554434997151059394715887071446592568474870538702498483326124978912303334590856209672786007745404799096537426801587900849805565306633672164312741931193491739751925464404915519544612526825854160986440241255832545568451796865989095244690445020428911502927181666924771954366000480807678359073906720339379173093983529238365517957466407360240600920251157775589308738448591865160791842331958021931879676531588829403092374190435135720554087388481716351102362395789014291386142363638775057624334227388212364719887091625724832724792789853282434048901006410370798717158006079675547894042172733816874258173988768720434788505202534044316471081359755226576417948773556678873393410040078666196236304749380130301339366493073745642937942597253716908763701517554510082296422223515398082191021137134479889029066290848555009382819599909171390407303553824130417469567134099577388552260443729483072912247255285591538171255933591771672054665580440666562184678207203141993963697619566573945610619523211092605363306693874542360080447144693339465759916601927741208468726418841780117727682620372034767594621303236721749733283453289872881131443429900914784812300041049569106604249208948299395485626089548510125623067750378354021252628838718765097241615727052539237764143877418055619201889758570964089728293892039622202825746873417106621318159535768288338248373067177338451466693716358230295220844854104531212953236902962551159910291281871090637721074631280989723239175113011999158702793922084713138825149189614467461752710103438578115963357053115184987793280073252496674816134603989560989737033113239689882987233317141976057823383995224681276527061704807896183370030514964395448327092261269228428188832962530163338992719504071575348254639483015631555828517288350910804978363858989119354016026490364329665844985371749914161596236127629030875367752620942278637762102135733323277309599869511807670234956695001237046507993442864979906622532400957644474760093786364355386212867002648140056020434637961644267927335136833254599911878423101539891589063360949451424081993375142450336536050137421544274165688089451953264611442261558914764965369358641142899539506094837912321854294596994810741898828244616474409036777573469405223098446607177546797295978224307080719307668402346277485294038678623044609195864402581277339199200434912226559616065165683430150820991761691436446919284085078839767675146261590241316055782050952647277147769799813457369015417828277183812953803424716065762867989482864481984821757108518324437878155358501703774423994912805599838674177785785142421306790783019229693880988592681434339806695623308317280039726346097562995991793807628225308989188306771723180254491390355454852927654248469525554490783779511837009205839728994295693752066447178051572353489189562569104510155462462656747892943002392891473506713973192330913975125830003083554698055760666937837032045212019752298968632082713490927028641991712118945684160545867802341590263428958035742136833828288384074555908594775035377111051944547475701867126245554527807330661895565602268266125634132670763702444501647576942151124760565804098462226459195617171032578042330836382383285688184523829031079325733832211147130609641622014602399179199373174887785207560815057080454331632533855288247650128344977812665800011768647350579329601244332451133264900714254307578392632884774217833679596007093210806972054004709009149026564234399369623231966730389375174559007655690827784835622313827756145822399707129619164950003249208866930086203012044514681440381210642503947892738971600038144557135998567807386969678308306883340145284349770043031782770958785518837244432889660913815310913802288288133680354220587712465082145135795176295081641747587237544277186566764046039815730052557965480950993594484613225070136082968578925729089273004109802903221437352760562867887701690022893647241295290738038496642366750764297868746583464759127004984073225231232822820356511460512163835625028404230286703684657202196215891467560973256411519236114164577859970598121293923864977441145512210238818760256838861660499739474999304134799091327182122504204887934021432767622180839681486951433728406121467190405352817208826079828580285942416307768524516472483604604618864719836044640937960244109409667259730603179883649288035589650183669940805693502029450792248003120147912186358339295116181031222616817266566150659003730855137324201326603814874868120839718256728193731152468848701172204561161587088727232845462021698240418425040596750863295911836133833612476548451681967793633060991623408069046274124335332886329956466597268914164346722128192216927354324214694296656653930356846608190991568699542887306307928378830126081251468878146588730109432385928385132387515785059240536277447170612996550123510268502996512934220501257067082708027399923589880660268141688586417173309946080816397022728828891194937625578043438973475005634234703549049353852764404217780276154957781892616374796228610043503010949974061825249334382649178195189843904373618242105697428266985948640754681808104444683743535056420493721581817358772307896096486364294419934277559450083663873552856318115231500000705211880413127004125171310520196700100106974642717318137427990137310309924814763883782419428548366046776249433125968468556020285939418023848132950968964512121238112931002961688925159738007026777146529235236144455784425008789439010121754708392555401949233682428554260402920074343734789590451875024320415737520973458257057311653784977177228294218129979060588525681681913071542124671120869824728852752490215785448723849321590487354362278231499406045384664617963960496050243879695465686191394612096030918350847263041409969042610933855612997105124256642866470436733074882259210138200742161123170093180831273941884971268244193846857365972325167939497344420897582865879584277944931258830089438452534398227630284523115823564446173332012232753309815708689855156979649777649081454166959839965796721874624190633563852367405106442102609080521657103724945588050996675977520437985757130293936736989447275881646585497037376341558515485350356847401220887886275178395034599614346897618112485461604074850352006272701781136024549760841507245711154659567084182593884748186028500346784991877100840322146154092888100383644379944539529318100676571095115983625759132131213989191788209761098699650621192366513339448693604782804128373379641685820583247732201365345633558341887929718999817465830737436876918782749580014890827776442549875492004600927237073483591639228621367136466707220961901722868443463346264165148402805347606218764552112784526735544326920630523696127310408593476847578081182414364494521003980015476057159093513978666195824061990774622425596516053231704602535854868444868007623624064526109937494347008721952929180517790980235349303225380691427449698883996476778585949964867292208641997452072745986271197896081085818176206177015723080334372374169169133051002451246700935523465061199343395640720395237173753031102999715979633082605995654625890456017459358949270137124818757457951724094267473223378727006360287324815510142141236574543632041479709339745628243938514021832479396732139280604135178568258225446051885281994285072607177648807568420238703144091337333021608930806515276142894219657280073147263573706893786952306927360301810166795353312690786617770082877269644046246531616183370287591216077515668409075254291846146854612828310559296765386132033423949559642606685128544122868345947741955354516904244468704781741834452921229489069257996140650246425046921128330048038639298249513620822533212716731018072284049129725288055269661679808929068942013434707701241039789677638293419027658082887633297850664512578953673556815831775613135341076589126782530348835821123997766848714118502605406125446882933731394621967101049526149199779392633239381080715297293738617763334665982910055199608946347649209539325663384421666852736967233360044311467404400681248300444168576966050555679152356651494591901300305763471079969672199993024089245097269214633998656183564603967462656864806943727001361962345681918045335658885736240157410342310653167025732499231715775242825700685077662141801536779169349237644061688063538718438738304349138378584847248524998729762540155276189727949778927548843647047214244103629602487111017989452193124763489993730191823326647677504582604652500325687770064792160975261990798373813139063740796001033625043438007550929608601171593914728223398662798863568329370011386018925304648076839427468568142847221119730236316537215091173442903687897746093263428167430443604276299063295726617286086657375795507492050744917873126649036753032430163871953122272847572127450481861630959386170469122968019698959329077948098306324015309994084332224834742867578712523093909585246785640508058399975835858011791385476808338377027059300557579141459224619374826055837786601330872718086886122777445252335136085380005190743030434377022813384364856562872615405148904555035178887689895903279359273505991678732607369247438787952676261344002771267455822656025106924122700933474591370477979141827740945932521750240984345863996581827320208961242949605037827593532664224809246682982353144968663119961081545765232841551458466219974724430132198928673139655266625051236564073888244272364296014696902266731048400084236992048305443497451237699365109029096851365408748975638542017042237192163161085688732897025958499754236673524600463880874984565430740781183132944642522963719164231970615710880714242224561943759930427855340310488092794988042741850833803459821210781398993668375838223841961347831561949280398066274024649827681600872630007127295076859215992697325234601671854461627441390108655437259015102910133498470137334079148897720864611853946344860794944578597208204669183647042759102407815805930228769537141587743091526062346462265232907605796028190802870018612252360400207673313335983786443179572232579130296696881937621823557263193973321289301015326260694413517743099017099938723374855803350199093037434495139037121011231839929527143445046104574287613194980633711681005403400437193416400107804745154769018546347352866248756432432101412979953256463066091226549301071209911035809103661651898138945618059529417667637132290409727445008315004785444151943454225680261370418565191018655215981489860411673610408098668024367585949720436125339842233330729644294043592237758196921956936476452858465516419872880969423780508813908806787389346221171295501569937576111599568100573145606418446867254743345679032857597082464771300273197782708317494390790481821824535748676488113595168487091922333369393743858776722695382700080349161423851584433347346935947090490134611139720969038836678549392532785169711090935591340789268013096656947749457105322795356707981551152630689653213610900748415007190135445518395264451117066865461936774978403573568223495882151328580846383915396606943463091642501680045382959228210827223414640821959906549691584050081160118090963151643050390357406380413070966512978377625686784083233902776358492044234813279724200338906828670352827206832943580666977421801633191815951260566049126084256096020538862052609808858189132327847123459001022529611537038574718963582142999630901835392605889506340429402393250869668380496520865206435296997892619332413740326799733413503768494840688323671621696929797704094733370836786186618710619841168081975961601952857771466053574942234979046227772535043072418125379084895154511160290371775116812433773920779186554465295971945282774525290859289060692483084072532164062126328052969692271907058091676852645770643733394059649817792174347577376851846852549367209997103603615978747967982655060586575758674043732444476875011181982560848826947885861155189706589617492012876388994238576565833864202393249576476965417993927490475127708435580181938943191484507086568952226135629492647326523430984848619025510813991023367616371489917876272873586234951916309287217029826178745283689743667842492433723230388677800111677677827240100065485682283980864219065035618757345612788906089920238858641478333996307082735218842122962847428532219764077482476627195561945839337567315093311561366195365256326049946372252704947652039258129050006183669930732145161941020639186428548323660889879893298878823947820767959540302617583025299140657799067260927958776536466844592959711800030276626447080144298353390170158130016122870965710232368059972389133073394956340562883283367097442474425723437920808041807883759756092836231720802204280022617907044928529634421732559987104747842089269120276438570925565460452105870952457401189363429537553919320367434072313354799275288193664340849895958898565245100360899490313464479054188721832799528563437324998705842426288375604305263263713978736847970352292830593402512626022801159521662539071366159278609572407216793589029642114184824067562686857831049285957103371992678376174597335130343527733611438489281459581887148222781678024904685037931324139597212072877285830395444139970627624641855975946944047815283953169273000652199178417037052395129769606806527884654688787814808137968726301858910305477026880065285574638066180446188104174821033309052707031210215577701607962442274531143093821461731669284105100892947030154560843990456818101113626527872579435554952213194542600304749686705955784477657933486574891036650371211555155339028382172769703333131946420526391889054975070223319934667760420539417325146673229555117128279511474258564276416185423507844981855975380732315750435558078642803903040142915077342110665235439408315986312542661355014818968061164292332581429423656963991291340462374928592923544759696673718808511067425116903854408333806113573637562195751064444925216380473021623682131721265048935059823658065296012361569461600906387421573946289587547069175839017754313667694929578157879640413574823330094893776771116600014947208790251870529863249338550523832824484266346503217675882844768184761788653027529130553040027867535399181474263188211069079417484248204688139243650037030901970049823942491274563773389349761541553400792121128170799131971278233357537782567974914278507123656096402216749222247924581264808898104327967483095571379060761226748973093957716066352341989852503156588196546505245298949860224689929474958876567899355545581967731581162859958828384105862675050099711411241327517981217045282780961457621565282138033651878637739184213941021398883622037137141366383137717931710158950553571599791384934413008833121098157170668174099555879299129770697096683965003750311829445182094895618468729356991066559949124543461370114709215085509928759011131593357419211744847345954477875742051536209154171405598424055902173639076671409726048455580348130032496232907259036745307188178548660895945749321145817399567172245725105909051252603368117820564768186761425150830863559433332680082866153825564873642451431468593590007142889146780566066567503951124777222880324681082686441563238750513256377328951119721552823199559964146610863033411782635388057404880980416091637645392449149481306950007185958355092516521712317865810659080280796432481972003833295342266788080889600685695429501963796773817570278619787561075297543463515296201049156012133623958304152924481001424596486080740373953436010670394274816360322163652098663224005399677727756659307627619384274688562187142351876106880554247698020620876082407473130592665876011899514145441669396799276323155795176580468474655491379570749172810823034254063324687252124153073077706737762292930461231421183784579963535094316492313727899870757575632222124754979989988239968801521175542872889289517529229617481481395967980627936068763613974428616921139002960330932529114014855587613790700225574647242527667433941533808077320016810443346079656202646548361755391817460136666528131299709505886016640052686175522728159733277703930663703895484912086303355967890878227431289087419685092849465128878117289019363642758200177615041111706269608594172576204055731339240810461411218078123879757496718197930627898210410386878701059894477794852555296039751996210429946509559575112920827434676447059409412502729222281303990595432964187300802092752442122375669120643395931806279928282126791479017269596276178385720618025998858042703188643072224145917118059663572007437491387418517758680663630880829096957042955879122042061274925867834604787671340230277880028437063770629261441107503439488980639511769025895709553221587285004790878087177984437147176576846846732589065121664011157855757230793812200000834486663940713628217913196688094244353854439977649359897067674138426157681799638514232812008507564883060092662054898187090103981420800665642624068839562206042941957304945794623608203376557532707103796329902826216361039165404111280458651233683825404069403785211263576942069102859605023148771292490310254559993096618503840443887659994920691480722822634784655678429468267757312159352485065912226630058738766925478522958205270325339756002684406172093200916498565706406219245576043352001868798322178684275306003663348211761394722167400222314260303419697444808590651533023261023523520084035411081407802646292175157681493038515372276940139766627344807823130956204503256508951094326908246560348916158754852580288791459022182083100392661794710517657313278816296926478634844345193995323524762091233416767654166212324687934094959234862822990750166580444908677089339424982202218125497114815081028309932599495741442587904821884325468023232842663951888150803182474418635665494226408666358215196233575603507260382187549308204731125502795323598845548398908400630464788340772097147096815842599062274954978893722232982667129208674353528457852085331734245437306548031604065980528855330830131034293488430498062261740773228245020742220234839943990893294730702035392134233585202106137592714183382108681496417503163145929480333249531521799339263590295085110832111706730954088012179887329340739840017887155115214092205482845168570322259601930931722317045131112707698506177733835735361509850822216169948281100918721295422767702203349825443805288959406411785998199397426283473822014661918181833209006221284401250640413139547814602861494918141373446605989537658516646234135692924982610570330839880656038258787724051104461219161116512177253318424968477843839995304605868386701601409452898621281063575687717840375826547814080097129064311612961416964950569074231322473730584760676795458779103699782900232939966156854278964022442424235674133650193410280951854595919260096409830356532305598291782129041128574397439644266272243901703496451458771178296150425803422177294483660827854291895980062567710073145751904861058928148908118918133258837971390889379693151462960109928614362186776559820635189311417948564907204815071821291126862730249962793483603640697184015383318578248654400072330936442525035823524183396986157370433179669888853337468329983767081180387863698961380339582589737483925795712706733937774435454050247701491689328218983040292886602753654582367424934582101235592922683784482984604086482190236464183654328422065432468049317991562941720698568349881393359918514340893981672896302485418058201986307917608931912823062088421271062335180842236783967561728499368085148122339789030347082046029647402148824526681546224310606080337975057199696817544291054002505819054497704115087384049884880920641985417285578060968671430969584675389307713035999997702430745774230275922222859954948351332876440739086759202699522704870049934416323474951284064610590657212029383593922618657786088077139044408330796866546205283000919818087562877059458254210594087973554425426347467204699350753796990247880537986013432127842941456261377579831976260175438323274807790424248978990605015807854070900102780457286360301987168937767250700189517262560833112543698538084330154905060243865366260938481874809680272784332649198623831763317251630706026784319705301201524284456839338598108415045289250767233110000154002711790012239318549560006286920314057352869784631852204817032461490288287047954049529365520523099581591786814320731593800337035965600502043075962341054061999301866832671768957230183216469667857582920462041232661769609320464807792932615261822076880964444885989401590178576659370814749503842235083456168789002918887304265842980578678366521276293451469452057363877571464255120699930202475413054025241885291178283292695683405134419436473689120158401325663580041726476151503006237519807018241425876363350692127499556514806246648985125706291038285391255664568845050877557906594970243313748069086028579719974053161020017880967806089914536220437933368858632097779544226088120914967491833640851885702881037085220724071911893236000473477524733795524241786631586255590157884414568009908733039173247358230412531310769970974919126486182209596551487566471479819818517152004821202209709523388493152757747222069665973806402909108282494703929401826679273438666909368113497693000209828551674907957987708097797691828900156979178472400633638435456184454254647410267697991195933624782919716851860858788134908047718504623481981202271926441626165344566960184542991266779263323405907020284789924979483380188690512351465495140373068396164382477591818234518619935003357025877079991937087400606176727317486464158960538950822153983133830846828040017300333841864760962027508026294224939407021399473581083276853211481004824863464225114913149611076740291629805246144679347387198669479400666092105774376636122761377924960908471403016475300337298008447497904948330182100183267913111600899733041410237783219125365675986100336373948771570224806994346906150957143476133532941078104377050679945658797049612111252840255101909998404330043571110981174928252316413225887953011160775495081485231688358865837456110581546981007999312266597769727358107757423533040885538842890303029607675269208827180914579978845488551732841035645399542661642935887200856558341914374243774477278583126358527250695685991424297923164698738573666982437085339102254633039786164886304531278431018833242480336814213762994439148447091973801552562931287975768473892703966839231720280798977812073510761071091280494676580231835924530398546257083986001358131353266869035000698017115469250554391280893829567614751051934305614344657749569014725129606017798568777347895417104732374312772164905920218785646427819180769901673689051260089034736334430669466060973944823506505220257101923229917953488085777004455437480260382268899907095224693655975680089675629855115754862711808482265376881086152610332536887315085666500514658777777307620496401133578198867512094165355262660117163432442755546448511778685443520521756641484764429638470418176861132487626760910295683624438837956829420433123860851219464338503599748933485306464623101930424636238932046761517812505933867949541553122234624036352953353814115843063531816160937591229112299661333858248009623168778490451062070400809141197753638254952375349199965416290179348324957726881887084585122890487758468220625716088779491514758788069513679184867592775211933515803374617744327671175496397950757933504819663374314232118424863060035325483362930841945992874007031670434852084915561292062329717039100021859523502972228082882225301765049504531043054605596662883504313686900303393765785802635523333199515313203267780478030209002789451102646263026096688871353009761222017336228880477662360859434506359489352610060814128291047216165561590411085238448776476367953141713425791790623333399267661979830705581840979926272435315945698225602016554123861157406075596398708503406496061132324796843731505746676488961071756881719781409092946919360920154608033025702226143234547238009186899728047811924912379023339027150548616576996913776374473842734975786370346179133457069832259111921697852939219660606950874203956943663461958594643206575285392934577511224629953246166389341728644452453506799616842428256775571053649492084923236906933893420088678894419141028724248358554427998558231020123908526070908631398003834010556408959605704510351522835048288544180615908286936619363369254387812550778232524271857715938936991163492191779916778093089802762557938041130296367208894307314542183937697515509638062618360899591421904100694558808882188122955303512378788829988842514770672687914221894166407411129646232724774279821879535662111315231684158029417947961773069607687848598124608337394575457624425454953680357372056947489163117556048407229992902791865678383177849864911888231675626548191534334034335799709124451345279926374944944274201337687642231683136150757845952889954220135132211440835946031588629351256614692362563696966261892622359552183064603148492331060471884303973029791614846235362450451091105731439356215638438417411005433762816647586792218498464286909632826914984879857198624799385683661560648880478885251312365675101960946635785326847460033233917477528879214131098393870654644846129407966140558685084231324709473000124568163226354941223415192180578913731526701732714871129666477916682566102700446282889241802055964934137152346596524059947661749756314423905388009257400592199375747811448436672320711936513754543423229645888359617859096062812802944285693940158834574675861755340067037897998384839306350101857271669454730401237340291353576092984601998567512153300206510546642663644319620068201674374228016097685031051545964725728757005004990089296437329560680146967606828437551053473756602775212123818533547403993799968114635400882539191512681674153979437330830746611642191268717403651927182007651485448270753469257488052160410274107446727689677237668468714713627086368453232822766662441403213928517392277890739449457082655472817962474790600375317874748167813553248732434556541261111785974442276550404455504999025595469105717063567353241203041945222226458475446099011105917961468511522245123449238162033791990928221855453089990750711795923067750560651319309589004490692048945091202897026190884272961678326298752892609204427109254158668695771274106776461243395809127639226328011885603746455525827556700031717688629062519363984264942594768215953945830850171143517163797616072197955695905112080555785617708082438008446495845475598889871003387670729489609733026795639230083854877690839723216198210560004463245161671080253195689907004220836900943398641287176322176738594608716489546789092595783419533443475892170261760746856851885248095522601979803935749114958483701352891656952751949667420542653737560421567333414096116145228874257299295830994819592268539846093830482932610922801553787747913424584027230337248404047901642910935277784556692865696945695066311622255609074876337604986338921687289089690297090307627312731461436913134126536180359792176268559277828489724334827401544825963669322819608174973182715788913428077980326529495409273249986951948344315644373710917448191193218676558695005769421275551415324698015747256338131149559972399915426225771272678332552356717964912048901979296151251588789923761003784269828054781027850240950554618226446435886408791613755448362272504086869618952042088092525773277686659584568710378748369756986567886298267945627777973985311589015336666364995282591398946311250831854476899216922479316090158804432159851850298537952328480046449502038003217808654683040176623187455972536145925216719482767914802575951755537300839691419169050432910397145071819947634390734587650344729304604943026165508743444097545683524211030586771246035897190067976723396064312640766303624388107052244686023837223597651551423380727268914707955022778666570894332984007857397483156658887708599938051727920546482014042166006363496286164262604014068957237135997589588950467148925885198718612981782293769781952018440632410772978856085621264554391911901446686757260625822963480224411507925377436587881789368392925482420680285139099261799660741313848982885601778057279085448438324422014626173032319737058379320082104466991647659859660283512494089755636368583474190347148289085035579712729423400139029920029959556983817412838807765862239582994032876078855540361172138407849296864110351269888054545641843040383157773858271555665652441706621564838299566776231357221387016165016911548558389022892116059698316122247850919778185519044255905412197281769906893537380503309859601719262088025220432494188763312494483640807152226626826478112456520312938395841064710786171543072061786379849367079415099071640006349343587410787148373608833003876174695606776959836670466573812842505935346346367003442117785498664872409365604104924911215351102649822462988019250144680727103779193106791576103543827665223793741381453015382431109423067393192311022718755337236583086805553184981323388427766004106543105354594454304374637671009186439933005911445365232364388903536575069938606237162422555511690955389585008146968353220451268432469726732511576662242303422327648284192725534221695039955532902039551568888606286783410293632339488825980346861130794715605389560860407192765833781265713542381268104253380422236009427438491156549864972672038886477497013812191041254479936064187613434793524773220398992555760008891472980296305060839168033052860789748840842673540825842624162797153889107523275009360586355311858550487717754751568107012602345934717480501844427662567984247389011414773017574889939701099115890937699030513225841639133664368978213931285985860559331947212916094290132172750988686552563916313771054012249280860088348288485458880497167682237173918260607017287343318607535239677130596351168609494725883625091159707943086072143379912146782408381163321279719663046445704022733822336315920230955865568252494579913858056803820618109549199295479735741361451950104877214146978746773917660028950020296137657259807801425138390578191231269547016797040968724661530809426022661305050543676648897877585840167055060153703498752803866260728954032803000560713303867542594963383849204923066681268390623961366419260981650369549331243232346033515934964810047238446252276051068097188389235887349425201964788426678493939415661673243106135463442915034193038450249665001014198994221017054044735775046389141446792925899503718620811421760504050572601674485645528384315887347757138395847328096972308943198238125993547275946788675565871816442120705062914652097115251291117337401892457691098796638072268356290757450637046208309587537727681359358509884449249017628532432270811399579160534310044113880946807463448423277099352437599740322448536090155912646723023824952404495958389198259264221863042321892439406798225883787522974213710299785113027528340985210299108856365428514419328971390402360938407337879567194432702757114863033858265962518532835687849206509495321909980506955245463565982742378171453796465221230194311467398988130855591496327737281006543597341248692754558190210141829003420543056958885516209060775031243052935312207919310937170726588797925572231869627543605644923744029536275288026720111055010457471320274908560651351127267604868487745782539624721493456379855692344869888356017921818286754952505064941962064125978987309043745722171842517799833003260213323873096151940677840467253436000431234368254399725612293817768282411095553413672534074508981795184933146600090521411827441985122506265160105396922834427877240955473970790884219093516943403770755655664806063936869031210395021478780229238726386362723807031113863124052869040137068524686821245866670901636919093614421224432776580609320311094247492668911507661738335456948074815572834852231497348430930428508524944591894213697542059408880779870585321246417366653255004802825943215113189348951182869564065607442260092262361145008965489721005921721601663308043297216791702298980780839315720957064854907617543378000335816016288633570823960206967308075553763635664805297236468646433904910255070300137348259719991180410488693742172912460457896942139212573155045480891995757318908302374433299756544904723318260929865088779158404087204935480782055875811668371931858994986117151720321969592125756334927670055408856179527556549038162025483715215077416407911726858674927200726027811847362809227382544094160778495935243494018771406035492149002853335787651929941241464986964808395050906462053732670587617215737591886228137727828082674213759631967354097665791558116171431015476799054538121577736174507699895721788653370259313664750223769439848060804749234395777396993921024542654398701689459088639854006706540737982306688669049322033133270155666118675543360691587571855534603539626579261208514224220671554357935402048253922367151761170022262131549642880868050058658958774853892601164139661502084781629995084335103018401938372733318474479794419189515848424841456011650664716531855288866548845251990216725054061315415671966358109777677510047356318978330156405593990770838442403906724344540704594984597981610108573913853208226020790323460297191639782510945065166459952831755882401821433129760020403118075217884589474204059538826662640666085044646756292962488866333486682236868706251628206102496166790597493092546947978045623686073709218942194407485859966723920539105277120219410671609120068416883736820243956122425863026058659315219193416184851461496050098235607228856010203787261115421886368308405429559155431515217218972490286583795159756554187570582287031695048180748415664555450505827153230395822972791919038143042738320260837856744876960862973126005407255054772594285868555901997884121606837321173056822136864484624726184964133065226666325361732440586450614803137602418984524459210945754609781724467245285434241698283265391866297086127717221041137505640324422281060285627661090448610194805880840590690863928697165504506722727891716704117359865934473479464431958933819586856100772913478149903917334492349816451978442522072318250652446197106699790014006450248392468297864523708622574549033355357178167964393761701602672632762097159645208618964178906511018719626678820827067865038192826315125032491756014068692396009891565661458993005328706044699143118828322862713306070873481333135389064245112701842861366955239371280668099388395098324835421043577890051177374843678070583670531650760933978273245895771346996974200103043571331626539503239043080649602051818852438732169793222851166325164995460567064002612032341260884524085830686757907085758699359656802261414068662617664393538880348832107874603297812361184617406164566609436769109100148556194642321679555751063477782456960809886422899972046206002535924899844029897306662705714111676427512099523544772734433315956678682473504370557525901929525100112041308807180999095571825386570927490744781553191752510158106840695155550934487111556155887236235202742451838939980203393626839789332270454226720412129481304393143790635185872138595551882846767018262379992422765783837491186596968425121441467091899176373364599805518611494334226902497526568407879954266664598929822841169954115347186168982736168482674577198038431806067697932963725517817309751108948971691147475797151375851483677681550699964865958655703221218322781929598324108248208176647573647446276741215549186984244835255522268900288070206533152669830481723792224319644302929002422602350815567185257508305549934973654253802194552438696345539917283948022135974210223511952924981194697884892875088054464814049666304592671550430668754458423477922238129055378401142580237699505201583628087687279016119034937048278676729263584182577919912808061618706130880831068740289102526027686223811649099415539392066203182647342580290962382680308204811969587160515053880312325686806795775854622411142239685531051906078285989300045310054856833186531445893970231758583968099273332280226982732644002529377918930006057228596940288171512054300671464801580397040960393737270801702262809081825877732673469814625233306428579384852663697146549661791890438234718602130887394196213469331287589895010865766346059190491583813168886934428968717968959690360697825629862780265280587231205749005079916654115820945755368294918629595220237622314782477762388870850451953095860070101456745938086563490269873618517187602608868727514845366840211431623972977776942308113234998889726209857209861359234498374424059117159640525630805075395232690782281530805166561053464959869853490901892880278305956950149275532730934625514553200464703050572509182509386495027787627974558750242266023167997558953383870821976050102378083985418671795822196673908437515238422453492311390836432752955120626949818367387404874998565775090787257814532480090974522195745263368455507124267085938633140447135851402420269536457063111281079750536691559247700146821970024678191138108537995768015516985944729860417795763448322964662497280655271262147722197968937913214843648147592313469738787553321457569924699384517497636238930853290689354514017566097553197028917169557196691478853166930351790999024465187051290790077007823478280313404739541411437488337136960497599039875000730567016759542546937550988617247025794238717820453257638381334950187002857785191737273251857688832177045283679761484218252323367620301359615453456422401798382519604158827215829286365426713513610796494037197317552336442125547855553085688158909051303082365602615245092803962242813757928260940574707282359450683090102831970325264622698790506547482004500417761121369857779215582058433553289428680832665882876620952988971645689620979818887978373305837050474215735500786837949594404562272558802616627442086607521106646858496498411649699801729366392439409174822567301855646671776371199067870323616851033467593051479211530445712929356772082704851074247689975855839919012344698378478618667530124624810963422044322568370320241881168452103459101320161170571838907997723491808383101646010058992089843077052533031971770906492547862720426702327339077962254468880065178575108479132705216313851672654039118161706098888215668736654383833354325424486989902112336300124741946987644454438082521644279997313541698441073848498985139322393097908695887791181702122121203876493807538135778016108039841892020830975657970300235743537866738314684706231937065608817715770807058522341735505319984820299413047416535520990984033962905747162503156336139623531192578612171102152038725396956616366432814143927116451140822946027751857139304147204942595562337246609885874083797413609345600170378435391044935459617854286114709768766185543557643771104479457879751625786535433509462665998318515504169716501068279893852731035478161639537868619497926403553363439843204928595712960162043700808767182199792493281499080240841871535069058505003564170976924560034334847323006707874908165659061110597499866807473818857238384553163404773680544937549194337359024995829845142757989308171720612844118833303609899404644739653537685577704674034209959679343100494526634879334293994065509904270791253413334103428833730844399230292891706880824425769850131509343882766575691455639378404496959054969542206208986741624199845311270636404351111985295116531795769571730162150312426801409767275094223098237385841983091181080217166578913028141749585243429302738505727016801046111505452085804912540053026914340836691784739014026670196470691063041322973890487640779315869837067345322480880167346705344068343147923047014525468758258211248972954811253329766613728317170203240615181274335943589244704085349294033168899462953029610776100937180592882115828638700392277929426306441404450298716797544089229342053717036065130835071203433508651087306527324769693947666508141099265240769927956935135399549494009328785602535243664219918052896835865809804814063214612157006315593963166462367393831123965556114097179930361366395076677736551246970407512436134739094504359330156013982133889373971447616767214607658616930136131145135382385599610142049459503097579631384563059127287841922965084758564254314128865721301672454233383603768910812188638339803448088166181580353251848867949961527569267386075547379867849483402215518247723837450297083379795253379372574887768840456931195143426693895201165072090815048426739321797263746046977318297106157463996133686902266844332242334151280790977378436485735204928521399180883320299396463355714703675028507104389404437727817927930393573903074530936815359807922343234229206408390235477054774562725849082321578682713134568143127347789108032788464129911745131871534636243223288246841414191287158149231104218838435532941603093242546717097594597992863049966483690682321605260588842001415146674066911945581033505589762321427397551465151596340268694532899367284064415882576676869739209034610930087767142823808925467836175620599751287629689468194948933625817053048133124275472336324855310689941156584801553439371082567988245716063316448405350148105279784329365017372778613008308530247559407967417070930526609169019817760035354598736279562184413791265047500196416957014170380465779466249546421571460563660220526915138679601123252659767082726109801005613542920445190706686314437019014355971500584837566980484512869223015465719821624705416134136018570648573865325598563285566185971454999898446655645817741627122183569898873130497217937594234965063084584813096584208425808705603406401648846961471566639238722339098059139930010082042190096516238273238724236774132873605124319740327103727389486513178965166756151201542982650758409506531754559989237274912086865511595329090431474934336928353015653671955273744190841789172119156058050163038325880068805907398585660530219752845865045266653456067295948838939034961426479581986479604929641723601163399653793055508267477614489647475253711932526240807051842202697193852047652004958121061418841063495389274099416365548525158094832757417222178271176756269586340661668308793159955651557067457781457414484947508869919108547324496939719968543283031800802759654009841241408070218550831456061065772903674817937937810522158466320630547629694945147425467552801157294954490678631644878885695277491236576443489771379418356768572111561341429736109139243219196069675531450787230488906867621269299202991979759572681148500437211801840699410704398772820544217529630119763768226229757356535781267074984698505119248588601946948921283312920675094589569166453817636897800267748706414888896592945652506923091740094921110841899314843049604861031442972149156877559181281772834274481386948426254382163979194688799669793991131746622412562640027982970532826510176322452836765587062962499986504088889565378407103154506153305000635780131930453006708517096683300846143033821932607340684308885642491126470963270720254532148365336841669579322115332018418485699526431353248462222887118240942740256867552948395178106034882089983339683442172669587654624952203599790779862360211357240211994931236631031461288235398106287502421332257521100981926879030292180130505735658034161794939059993535487676983759761192182756870823837404398287040204770903056164142229364576496512151286836210587023934707132750642172033379293520883358242344406164037939861318391952914502838585989198686581979587535780195852540297985410244300277198614316120906387888329511074492840785151246879946329864044836633700554787066286932991350710733830040160597288403840088917502053947423208167549342579702200989274561241703480893882318413812846677663314303722379163610963053387519383151502139496026989172943861375167876401951055583384562573368606675485566838497283975910057303134793510072805272356369465247143494922329607790678379460192306744179415773881792007045153159027580508064991120053323529807656843049105375056884929509648847207550008846657319595391418029307423583545259223138048831854863412428333770099337340338827405950284377559686977278862077650641518721554351399546227495554217698945971016355982264780148576418369735284108268584180450534376291031401772413184780144045440799629372334613131908822901775281579591689710253565406729928083050411490758155716361530568739471783093735782320056401305840920603289932536212978954147097042219726656696988845215223692749829556662564234797445485002871573094016437305707516212489010189418330754867359319092577168574099383311127930996753143150053259867378986199211221779199271212778844008907229160397465221473189668136155177326290924200962110681972568437191583311552155731291362050774317912760275990468242231716937200776099973176022015010551249370219109015621273263268993541865264522593139870156627012322726810207291798818738744046288117165834552441747995904900313120458219842356622332042955024100066649135990524111837955361133927403203152371341860835002650781149286192659878050734831139339190013282816429040932100799391780226817758235156448770906795746785872325937943963762059415535702983312925940684802342640333973841625373818068564998650403843842826543169653705694510919357963481108378195372625176403232452042131192244665111405689409460587340877839211475214469752765934581159425375242752096995947389321544328197644817544678029226351700678871971670412570306267246500835390580176351794229000005150911153723971097733535184657834037156094129212122547477851100131749592501106498014679480901554596069020393097307479502484729722100794920271389366886855762739556930820316919461651865265983530405556450808484305594780630118805862573595246212835102594064454668588720352464234663363881823691737040552085540564562861226954595132516521395441193883909480036268020558735578675321908266915116129826193701968929972923593783703277463613921573528987774253572400770409921636521016511762202406781918357556979230221396357063402251510946042973956993826260699772243097894737340203683844511854301316970588428598903779799381417272334292318504038797367876395060312954335353197307776261629224867597964251715670996746081186917632728430680246054559629065558421660554723905598324890418362432923196451943611018822760122766511377103598911762516189265979958792303449228386974613845238896376463386985234999279727938981539882642376431835387136069102836983030300299327502860692706404506571757208875414170432000144880949178387965004158582957565806129230510203501106733362581527152022087559371583135937377926097083822669316270915781692796488989070115998650427661383796592084308685664712052870083998122187290592014412278352548069616264081008892528322722239505053016855243216809019803599003170969397821908319094015735176657778235159073722540884613821972165525504055363250175615018844920431709282103436319622262991448189781986848549232161830379039113217050830449052533664767394816406994315095962527127031089615424488843083464619784176297898528566653024882136535842513013018905989500330572393820823154806548381643406895258176483096173029971605183930872101223273200421164884753587078760415995007448163984698805802238242597137768082575140032161115288767293507724089610765072360697061092382925285625431225025372132430184905406347596545168435745492809687971941228713153036915792677142256406172269086731299895206353377580193658315700279006232465996092995000303687958544520386999313311131061837105712813119427695447523411911176740438412960509344163192218315307148238317236041183000135152622006375175836145921194015502701296413857863776648213010597548271167191979780992022540482804304633170208231812671529004990556528068350588242386402714251192980082441662098445528505446422798074257504169680505554423517152246281752162048594155975915834869330744285987193552065018956350658069689162746894344664714080142936366242003619886110696577537833363266008835836851672112791625040747599443706539585830022437865802079822317159930366091946867657496089777175570424152159716815679415238972166934798529676165030018596780031665603728068639598699606301072099645385723203413050787967899404902597393099466413065252924647530993626384528595221174197611359422855215048678989400897842571239490265579405288700116401678506421726989292052932603092039799087683200224476663939208331020359885042890665450230992739733740198479040839695764896535232298600813408424934148348872594816945962182798424994955715030406035267400857830761992246697593036573151890339223835313403569335409374014521135313085662117546472855554578068271551306556966217936014918019419221339417700267908390172072306745832373368278340770862781741853443068647894122471973837685394096611731750247836242334200415620647792152007976370962880986072479045075500152891886787343826868679652099233960928896223322314501733365364864192561705497093028264527686173285242954402131611840058581440222765974303990733296405703167239981835840277531610860853911808273969741626812793634092555079144420364173378238630464207119792639704446823686286395249295194880199276906135098354731014071034885555029067917526862951282516660957248808141525506606464452992405829858566035679261987727148723859152258405387869889440575124922064062553498609784932084803535589604665974484896279590856024511618260863428143980481843706955916919416321066911663660407064078867282611242516980851687496235440128625690081022300515377959169288688517133087490812404456075042184291783267522137198112904934187596919283457046406674315041363132825518695519103641499368815213784955548258309956316663931578745347488347262642783497979785125368266079946781832034018839145875027814583299866529386147330309101360917256832151838925072677192875992301359718652952249815392445506651001051092897423064582770213787657473077776476695156249013832268978266432998643290640325879566560418702220863078868449709224090466158603888379503116243411769898643081700800569437885515723812299517199162908511150859530077516853800588293461860085988963455596687760610059861604047135737060708527535646618917650183680373395857340097116300695445105536222395348946045885823476342508094454827925687036206819328916825457889782336910768521641724941564783510715212724164783756279762517653931039050684623750942791852424666799355636229806631980035312698062710358154351722235315556615071231708511082033429691179819900696728455023212888271345970678974599463128685583336540000931387223074127387873625761025132040112257683737058722115232188397809416475193933084430996471664336596058895108284967947160783655846245093543164044057199878948299083089542488542912744546496284955007459928575786682483825174654905701635964994657525925109524021489892878633472711018091454325191970600506970216395441990273308772382493641710645097747689142700647895034839373910303069941044883462181658332934938460653562294060289731662230748719144414887717154514367041317662032117288208857298880450123927600420803252241227016415110287788857371454027199113244576141920844109081477261415216952859339038126347166412028106615516302354140211965923633529458411640557261324495922531095933068840874809328069259916680830129830982338285025519144268649522258167406667308914096433639303293512660597858779227418289756829196345503372440121909498188097067595465878454372844803944729297179981237087770458249335252335350721710569141682699344325734528479128433040704388547968636442680943955046298924707983163468946133095529787206736921214241347674347208489260491150967616800639352606556939832067389625975813138155375324790244675662450958953826960369942642068717917965617064545913693994124441520351748724637363689131890064058135100796732577183063168899158896694834773556581245558550145388275863895530624980452302760400169060987883530463664597688247008897505067610763556052016461781815964997438404721703969252806809770883474554833459686532147939000581195664820718604037908450310830070815499566364037164822968481144923791068266599757583216088867177074440545378599293332161394248481502337727804270710737600291328235184090585088502336550398546356956307344089615562595916293354091089863109838325575577027348840486472023059546048447322324663027288652715064050221929285929120189012796110664058210287543321771574881752949632887452742404483622817502917629904167447081321086600537655851075047872024661549644812033181614910043430783314194156742322135986771313873117604912252447641602922284344197443242548090608555399547432303311453005247116533651228078250520783524599122564489456014482567096393477087270488922608162343686816324527031726026805787548500811029024054214392345750495991006509618236897543506666260466418554027069823103575555480331254803796515813230289719357489843614587141685838340037308127795412378918578815949101117101896666418698790338899011632539519911119693168647907409746373026027292165451185447877386361452749313987981748623853933030519963005978231190634788979241852375086793487949955197875316295789347001931090118762133952730959602851272652973770043398081180424230439111033749191461735075734095191532453053170007214988187888361609660191991210881601212020417720610372400202287839867894752601772922545342633908688094479902339266436621351951201886326114201323554038814864471692024518547427500185106937138788037546843190393930171978980821286473463871645510633766547603408729454754619845137004923649437982080632199155245306260416726919867555424675727091638113077099986499109495251934036590948629090317667095684528110391521947971529521502414683379562112129981818001902946079268868630125425707582581822871388509668361049419287350783858486975883056564363249687098098548676516367371915203016639808997803656301590230533843050196889158271353655803945684135010785017938696226195352954593930540463073553193493401485259441722170341297621256421535089827680084839959973836895965582491224889373066479484995841863672823793504517878945179147573458131522209525647095195849961026068772777766114112831694055222126877243565168833554084558795132156961932812079374477415062133478516682348881246547415202736012392947439143204166838737806732686169330034444163109236855873657454506569002970249267483024859066845484495886814375016985278020328914882590085777868950031050119896777018567069438508794346060144627923058518460114816432383208978346717152386880238187764398866766797282770617652366641858857747294026958525565877485409985749866154564343238454273676164791051671442596171747371049152146209857195476740753067145041900666108370534980986337349866019849438991522931604579236739613646451928861262442553752190717238639886451582117684667645509139123184910329485061777415460394377266385581734172977162970260642528996272526945907128253383686462847544839290926770174725889751947302856608851856005814052948271975365895160031808139233523650198474505837724531494754351067856709098997567610428973829738596549124431284097231298097662905039577821813590160357602308413216330444639262967758397611615400934755595568476099488479852988489659321317338215302624000714294774803937994909298430805124705261286400598093162461795475098716897208635596872417922124188709031703815982166309841552598698924054007630826723507775358948708129257327421909216095506656154397631868359849834165535406653223911996601172495257277538030712197032041085316177685881846502262003639946140806927312986977185779314667517573166670306346468708130147262644490540521760736070480606234188476888410386311676496152181474086805091700359121941253112406595257582424433888396768808708210685499880909730564557050860342470272327557970910552843921011207380889576655795189389284423727484686038898197752173466160861746578727358520966251411918387518278246572596101849364810404686750477495230065821301435430330226681623973585324891944595548519221061163064628285163889879105639113980912572543915187573406750219290998792903758456818343826177399606184019395647376273954044688919231632574913063262409397417452608106805408925069814636165444909395855836841065375075738363651353624532124039678811238052603344672256941353494161642059712527193884197991189614976305479809794373595939042922766993760416399363003057585546207586556669218715663668138245788942027804750701721888121767118436925797500917623736185647016707309264779389038863062585371134450898398131820401034802819796647936828882210051955160189994813421701159036578348295558598139399553462290465358589605381985745266770820024594633401502281106540255229241900400784483917578507094296839781097475783283936478029517912731139001621653935429318257452632075014520833881819746778445413885688543297722637296820832604899164123251204209299698689893302219534292246862499073377106726763825464943087751936343748045136773856252395118105690560316283377655233152002983859239167111283663350152985146266188328886927020216435838853397871652479788454728557139335409287965852163610322280312837284780057085571274087694989551963160841424330453656437567733750457046482844000415978014767180137455023910935910346017356498674116690545094847826944780067262211344013787386296986854676443363207530980974903121669309424333131734320784153561213002272744663189170641280991670300668438651449670863568434981073483489411089791764350204700970261194382426905868864452513704454664800446899876725551188609043208323780044708561446166926574222326437197809911847190974639480272195337342479911328323768216586675680821707873214195640002415745805365913420515497506287968703647747055907666455086929320323521044992339487477739982270995144417335465150249770300756742407466457347840801607063407374451345437985885930427328843990912057704123100656101226758202367903119750785984559042820280418908529337420255410124766976691376358589284290409139590903762150531829709557715791595178568962592657460303058018306245532330462700668945389900509773657510253470807206281927232631579993504104991685846642485719349787988664203244326182300551926767753778959462352317118498871077466061443786190198473758765851768757895651544439505106979467794203100616462421833477650893343339140480045120431654153828260399775029609674838608613831476185679137323540350813754229225670364741111178152732806992027398820302645615890307393234701923252029970818089007863792306478590488352626014393307204692581500711396972586720669742490892838054445846985016743016983117382820475500424844997930612645954785161853213035717929513945745181898585637884988418259804613382587289961734806131256799406670008135677268173001288404291241033351331151369696954462060981699746804974311192151985157146666172019445642722153933645324200242350259358606691944660024890197870901849193093741736795644403691952441198724316438117653603240972727630878534591775022475888275884547077150471980438804924098933587005967076022098086329596522103913620287461801731071077175684060453288857270413288830452122284366916858499307286174795309561500174495936868651646573458963690466367440987209460732348692458843726468809840144865627386055799925757874203525067089186672812606945961212017677235262038166962363061080010475639554058167503845407230234901258996357224546514350337852689278535281257915114309540968547583318256449696497554212837517905116515835717110059223202647892545522989790533920027682269016427850976707257087269455315319246667608694956591825108498195697722812101577386878332858493206503607531786614504787563198925048340144262428062473064141283694210445605050101951368832111468322801799438556797917432321861107963292237407415184896265225557719953586666699170930408356561176617294835240216779757813718020219661536490547768910390714615833248509149659475970659322038206433784302211878425577099913286416644828296021114667567682877001606976117229025916770620157067646279899629808357316709366094418016307031028349339534107149495466815693122388527652058301184299563183464428403075472955448900531334309189080707839851094517453435128003732337114467387769898236137733807713357603843352474942133011874105492233974258625972602251189682745020147944683899116033981986730040635738604246903952295773245545653107562969837165408593719860605716307608062485662033691581027501085733329777758594192173475065593297386263487727202810415040766981019327835270707870196741662679413571026802885928768461775700011389682560123888824552584840867619806609376479607669385124449349673497497273779358532282959355864411283442531990970993945011659346059138154758563164419746508805104590755019988973929391292671924339452374052357001164472108449782604824976711471419909884970210972361831049131641377973127941645498865217238725362806398577205046639611523346665077392456291170100056156572150089139038638788489907687102922766662279992229661230090567616825120791800493297329592687898555294905249170616372603427972592236240086925213431628669185807673013103736788384551819496568823327142821148741520686117554511589609492931568991265672528235400002941457186363893794802807723857967657776060157045355931139923451242006489963228544709768593865248710504753557284753675267143911249825894660443938372485197505857670910601432334019342911232285751752387166841606145772939569340115412120948817752432384696337048938862611088779894338233694171071872931490561540825070464383381889110249613855093843669902817018844218215729238872380892232457094747914246417337833339767756839000894502928500985041131695587529003012014851509313350054546459845515336442549489121195968724584494303248674128742285359697655974521861681074412647928599914704183873877418779370878989417173901157736295285241895255137433320373959351046157424086724674671370470865081428666970498497441887655101826762466080508507526684894175573677347641755469519502639538006921660490530110176806393817110611373537221574559947094482534646065655635012812968107143670661921885091602188328794906558860903299759384979682393139028447465667571797404182610088168999083746890261865140218359719078060202611401067534927923272045115868266552376481650513523740704832684081834598071563160824992017831281497019542862829368687953150084844304548837881022438479153333812186503235410560421014689712243685553010945808488171533905897641264222141787522728234164336855180821316457040161164682574611166603907295860565862150355685853476712463760525583983131611831363196532243729618373083469624488242142937946986827640349540118617742135573062585207182953041237282681610916384808887433516013160985647797444976805082337926583488389185141683766993584395463230647415873184527926212030142306139036832259601135230274146234840122348305481122629199587585109642830724101599492697462082347820169557037689485669220281832553112256988353803499831828944574489914110355022786427690561779225322953761444715353330430363390843165010250014893950203262729132830821032925253535033061658804543375594577694839129267985983665762187672110081127391385229184210418930036803454332003722336556633323417137517707987072527922902219784643539214978596054850815138093778280548563119370643221315087083661465747247146734124115733997007164561326402152070518672436516701300621613771980025435853396129912413149095666719231971099295738074319713328953599451295099649806133360603737088878701906935097380136459426774051396330993235412518493204986135828177796169592648256875539473444890045336689131509796998051640753453157888868187127277559868986212978929585710122884092587771866809101719326791548900046344527868020491796031575970165415560394604730441914522790682239346926743448706846667975173017514086812368990269565909047912871992434424939608035884494882497291783676338639344327442424638832441012158134491655060585195442314757455808819749483964311878009866985951947796772873090368287822939715812172328128814999422687804086511406102060271260830494758944929003464028210741703426470493884120128886344510588612642985570224947644313976095580349842540782441625911016907212661173279416993349010536585847698890773237979849127226536627402404313352836119153897779280309004138435653787740981807907098864219587371695153539493174342326841310817307172139873147552056073127702774084780779591520326368778673082818808692645082672220300637853535999542879312621394050816140032343989404375165135533537449152925297446088918878631131786992663395736357368975847732799264872975637912276729594349159003383525110341973176010515632610370273684766953609309546120087565332494229605889451005352424399364315707380114516112490050518672944847405109770293745508852734519336425364058134633663569301728692381587121384111553946090752084601191550363307380351027909314637649902438574143335859393118782878011599928789097580522263609210882476387004056413184360843680390159106808479822551112018281389731653002276600997642201099289311631224746801573724450491312198275850830285815291933395934371517357496955944025959757673727150940414481390613759499561733922129802838701064199070325141103935435256832569730788390704453232349258571969830337719405048945152556079478241305372711513707476466418315878570768782595419036454981762373608913987199713791185448659587234589230041748288818720650421364267794330443944559664460269952006093012518555051319690660467824584985265653456193423050990946846481051101634744026770475073117075114297056245670209909415005477868569384815212369294121358562437411397873485255709636757124243761789519968839751464171849469244984547921579824594801209364522282524487485419601348126439890700607305674044815314279676842562036852067891964065180038060613190629610513363385065470075045447868589786857164017831462392750382460550207718058491401203310293424355618083805746528390262664410103842365100033316118243692453034306475266596941546402099270335947396401250458558174801253731428039927269969035899460090460083873674128099640453802348463558054984914751254625226865091559010415640557222198261435622832792023947217746195702373582290326019072151298142347083639308606756834337375684777509996746794102619346205906202415717055442792966449602629410491148802627846232888130400963601285478952658637223130613708047128446310432178392775679675765158139642391623409387108661412823683925360892191714442399044141666376122688192614562139879116855234213237003628538464613535398409089329408091179211553706457071986608594514598992200731639286010223555788337282757530645896927780385990354213653854840476582403990266278799093994522369740993910013528157501320105988980348926114821930063628231238732422609790225890901073284192369825033765747017083596794475590692399994001343806957694051502126670197509224233087538759761996323630874564400801988645309617275687337123961091637254042363460544898035025200427012369894894874319561541756718916040950322035050898391636292000222115515280385927930767762729637647916676343397891599664746831249414868674174252524672475301728486043039350013922412281393934515623140781466255263321577759287551003663292317281462719067800256471522081699111385304797298547650527461940625502135267933172526726086105161489066667841372170556508981675901285121293561503028560174855927471871948683381320850007158384297876284011008881226914101471628161252345495918104927441448321917784000124760281755951395452274659629374478404114405071165465433556398790914735715469983783451433833986438302955384306681361851048829269611411809337916620167255838930633863050215292635390953861278958267189746696817518473298237146667136634628284026295019264757938528110253937098094948644872228483790684512916918538622426285656198215387933101842698742623186494931890078127077434707875496154553359160327258401540032118531444236757967864785846815037562278457918467129207807388717577946620142438278958578062540662354626499782778757935806989631853344693494765550512500139584499184509748998984841739843315412246321292889205889242659453551627841608746833249376920983268546720942672661740322582004550865973607172041591689629499012261727867191317317599717892336259194413028526783004361854090325549761075181096818619835859815817550815264804381850856590985425698693814796657864725243648637642786085309271270823996826975546449602161495978611213869680346876051952075622222771039626622782250193604239224870500481222519008885590282032285723593165432109202572314149453058282232207842896531338358138566770699967177097048932207775774885893050302652367666769341341403382144737336750570226186680082801174312582008014697654613427333596016018156256159198406461315980311019547009065763411450671314490634565147548386783195338818081943259323741152943697158022158339117618422427292155273661258166957392493055478527142879098859343498302241966068443466367495998674921037429281604327580071319057292717427311452973733394563023243460731011751192300830246493606984394894028006140171993933724220743761009649882728789301596088873743921312540308144873202556649705268797495208397288184206779353775602599065005767077563255052972308935308243301004378521355400817406975493987767389875686695235851961095852146606783558047932261962550490070306177786104751043480612410575964248756487047021284563341985035573931562328506035802337839602446665819687559378759979029342022527256843593981514911551008693465891157015075436645133052030293545877685881093882269299193348266965356850979709113407165174678085600182305889972599827607037914086233283483234644730533332330239524943349235139197601553258823773307940582725329192279203276990950462877138367966052781027683099234060855621914185083118048361558215235044162089675868461502848628271657352655418378733228023465981986222332601401304487939594369199753092305769116171511363283609728164531904063694795810000520790646502338526473662429141885997776556108858595065650394984705007573104660478030147033316612912986249760137487633705915299361647224387590230513465120118319119467415173120772302835552288600149916298435242704410336869969841938708951102377027232944665128818872957954492309025604236068410704229016516708184972916113233411304409263462728017195753074475179819258778517527015849242107842605022322632107438988175777068048658131676532928201462203740704906380459585260202105313020512526345230719630116939434409127987734605905301684716806530409900456945597458564309669729042416323163784315990288230137456418854594794688728077497797845573370446397106414104779353747857552924545759258160196804634023477351629489206992718914361690357497734814749323275191814539903570066086963045826263511575611065804533436429775012270480698843149859377707897419255342281510756077286718957155297218966182845354515748264031221499980975231858831150480315887368585307122255018957632175094196148627281947993938576508371532253415213993786588388685097079338797042760379466753896023565536246201159044314093252466018340349417971838828002727609980651835425956073794853864928907055108618188573048767416500042421956280793676696798625314714529644160119537366632273045059363806280418073035246582733005011056272009542470958823825049548341207383733347735819194359068665517716390934101715179273837779043060101286417769204511616507124149352583378152691025867778504774619060121263157516350537925334174785899663608484776460768033661444262413111518748765894955862060647454134757564867239722407134700326563395710653489036684687288552540179645189164745492532997115092274108005721442116350624833662226677087447705810883437465395522483739598666145340935506587230831139722400778916086069265970025685267124154049093902117834820341139846330885938181587960983153562604868356782739848981377143409539242730581538772091283639334019459819453450555249855601134784975134422792438845461319692064688999044101565314330934332842336544277154656432205857390434722087853314216681413464990740481572177160509674192929131756381165640990842680702763039723291257417630179287708218267987057952321338519960280255348122089751944889384523600666958113089273343015878724433369056529063890563194684266028200971280725142278390806996798747316328932316334012356899530215889451537534620165220917657641312924053319351716653699803794444503985549405336425945634053226642233080222107681475451202622288296369153977444290870211771808448769665049591905396793471926731877180523719298960956036829139340101892098667366321483944023569965809652903654327630559417086084953988046026312459925766447581342705408412458485940470800025415868020599659623254528824549479876511233074772167658655271159485973322419069840483962395854414178935023378433390363279937995064649817267841298038009406828419909009847971139686838944311949063006352694954816409967027342787085109789175801461160415330453151632975182010539190880905201654815623544654732403856326010348066710766019507954259647977435789917653333997680945200747798534761602176161167659152999733378187927588277286396689176251358478622756170213964272689458998817261334790900779298390977532722952816093323976221754595940457363236484161675482872879349405418775816379770522411346212102019632219435189749220781991038731767601240632812674486577624549150244436335626299427440662089238113901231250736146825938984090914290351075015116612850820979390722391019213690204036980637659613343514042053232656952263453143176030937762496977587105234530481066579118685118051646277564013533207940110005705943480205571740974607235932927210479228515838225926123395779301926171563285836898739651202467228021428971681145912353703786498850520609950305875328036404888650241283658488028782414091101294120564659166996995768750852599426352876015233544350581637875872876054392209487923601754013474514641186531436629996082703880486184705032447061607206748898835542167685127104448074497969334819924856064872803064770187365716754038312425788091510873968087811305972671152932915574091697722951179563008415958358623231201202457807965002278208686458925732630961148156225359013219538501965372785238954088033659329693898363928866393566295812989873388887408810249292818712426410160160378438734930414760188165151467413106975066588852951839898551998268613298091302725113450570681738581619202729588730278826633516859286926077552121014154520190437592205752638721683671257653916497864366873125681511352217690677066508041298544980876292729966126233584837185977792108239788380321713784957471183315414661807721604564790206147807522102226650174730245835021043240342599426953926004278560237778783524965443049585184169069090535153090926139453840060011964696803172581999099039019066016718815117608048549665191165436683417156682809569073155550445524600483914694232801032825528218666497311953542903069809166943349108359368779394749075090355636685789571381024026511995347841959510306912412400867099042412678257392772086180759208106889973056556427831981583908376773708847153098270989267605831399745232681018452845908145226295980757996811116951490604740772831708161460895595157852308138406729356609899727835339794052461830014221198363114518847784271456595164175904455055156747102652835776644025900535003322746966565851557390661926973774784714366319019167823194427217554986172591389384522782119032891396879018886336395859331444084905812024866082889135220337232546579758958923487703860756451924077300508060285057047354999736272804630244470979913132388072768004736718579435924930856356762376031018019354615732757733302859969507081708292854649260285782684033435415387352160740057882393444721143828910795586757584080072610780494079766944478282603395748869474911555308712996582897145370859435369355576004504570652273209743609018695630889486566331899131930194376964500751967082161377920435472308856845243772305064488360695792758518332979406261657097962679270411670382357263913688096454397013934311096964983191013924345577354266553503156776661679645401842646563737058688632518542105604067483419964072351834210355539851024046244185943189379040533142804331972772857846102105907994323404112730623986870799959572512793531967370430011599916741405984453378736005855576085748529602873234848729670404332072259476813992815087335020929778425966900771104046710851146982143120449803727174744145682844836497663378419508365776653825509601572348382864288530427725968626253525988263161835548631024965546755132173325514208397274302140575681261848079474689842225424263497996478678585965436069279643435245593139318328000849050220009437153640771092080520954665965740584634409511637020440056706213773215793873043314194947670535585384222042669638917698436476651122987275985466761005729979074291585035291113096156812619119340610884051880536850977792258098961524487872601346298380739798935287056353764320868221723658670675988816671401378442052694832511313175270584085954353568955410373281913198774244386925071821426899649488994606478862379148451278782049560344852705401084819879373477189574009194257893847938039209799012508304122671863278187227904455521903484613669101570630457838129873015145231178064956715675151821198968719998410343108260822675054396117801969614294569714916781315616770991098706699638975568768550688558499364855002609049573207454764546806109605117085428186861913934763867458901416761742070087041237142358258295415128896989673983232201053471011616335906893627758553575598800877024240853152722568043144922568436429241316548028163403762650580462121842871053548471150612502597666875632939466548626154742556777056231677166138194240108985069442322229151348663046650559408841131620272907306493754365938858814455733173604979286932346869142370913287028836723078286519608429071037727094849204432239884248817077846099189361981401719897684608684904808351392489253194472857204503399286052480190626222231058912844354433407501196274978118594977150542117504668209389253703855466948757020507243561573052218052976505076943841365981539869712921537097648369060288212625921163195556893860121129502161616145870786543565931010657952926071491137838752847243706781079930397414968163079308260570673494047592053323904022219500725674687767807995305649464285927195330999886008835034335399750011818998240219414977392452909277308615429370180344088986376666398074689447529236016889494426341730199055119006708744765775871811708932098515977023032147384939553843985928223653597833714270300564102821875075273893018738288189843520748842580640733955432081647442554223630799568349855094566978821155574953194651699300872564183299233742865556672277464625702023669711477811958320117025197337132370693718211180829913678954651956377588451663721742736526007556125304879010499590601374912064435809806053475989006462451091934934223028582090438534927352941964431743420425092335766604276602630451555529574497774833698942584697867139061159739717665004512467287885410859215664506668310595797735171144218597986244910163191279324615736088902355672646023443787923559869782180562615593471814972952833499362775011196392451136792498850615983513826956503572484567291870995970419669979468649555488399696217690795932258357429298017120148240775763796391664978605983056018763280826490237876375000286365837106733376183821365098118423096774074748350213439146998097804500127965546941977746605253564101658376345222846979153841466133918750327819438213389965213963318399109776376135913089691490164966107952291190140759563276694610120796291006116480403991618264538133353939235341832664214334369981330843601986212933724535375983999834651763467048038654327412462926049267695014730703983971127049336321607225574997098026324949658092703959605068179376676884321831773546114776784924687407427991406442709249136669863411805839408649613868688262779522206185914244997778372415531548253421624352267650893373544245790285837526716489073887688628596854015841589879379145056306020857440660764662971797288971335864238457206857573425731949260279063677221789322238760039565949859065440476513551465518719458760704467085176400400136663644576620707452141321213817330767224894024253212631686925222577866261177795862831314053933288145835539465062173934253732004700126697760597740534832295427859274202479746388069215639052261426884469375787675065330990275677091065624922336213771397971643925080834109986772293045828031607610872275852685993557736432035997120903143807964334856934167334230594730490725828500582926148564255107392674839526091120908745009848625248928777202457018378016065739469157906681543948761221574230716524302838430090540349911026121545051966410465069726547437573766911799090186739736720636869880734889208624425825109085899114432684266462438037497653358051117689018080265853746333204089913034287720531727896505970230680662040759404069935711910244257965032810775742769882299075979533832301262116365908330737518240273849271124801171928769498646385036179450611066153614549237844805397908306714021632544054224178304614021855214198817521587118992045733341058076837388583807721126598994952532573328489977999780222290351196496384676987985271461703464452483330707264645225887663246703404570809988120392776147293940602763477957615225842748834299024110177343327533942170230080226944214038398652716135190545930902552680598968047451548376795843766500354709136268426422464060653341965092327878734729887613006076588500090365603831367642580334760491765999194178022265273276501770501455869519070177651662324630515601547908662414543251334849245809367660359629047590374493741054426478989567696447508192604022012030611628267207417948790726039748061013569450927737586750036430444273201911525083379127194950273783031235884649186221611550464481568251984948803094124417311104356424111842825123424841547900755615414928283406108886709010631728219585812547163337957598992665219593759614206911356585860558643203326641039067758889901678161658926332078727934023406751382919680743056320701874882864074835549301858746160923164303989161077553331375862111463663708543092718919996136616396256204634048496122019590993862869303139628144347517790201743033550533347175782729082260264325259923959776200379581265657729873181157206817524387595474420640756954668280205025871670669725680780994798821255686327984453649906927549383411398476354786855187130088338089514517140164102750512906760036810697818641656234282745186691202232997874152595742272225121100661161851542236082174684860992872733431472756347874794768458840078989112936000424332460495301340433162545988412035008236692359220745149270731884830958140173655438503205692506517318643768657778262582259935426142283899743045695028389846748379903357291083799876255515938061449544046021741701517869525752781823214700235303718541558356298094478618065607417622256324990936516036401625752260732076879136352537975641682824442427187932958680236451353672692538416626722894074441168446144942736573246765292349704321105653461330542683150066258149312661339307221337286966982439246403961176400833526336391301762692934542879936500679842581847056990788267118022858584777635374220294394549652633447129450345398664089609391515864354774854844337737352180742236356641980894603985575656412097621816203304663190890928560985333209092312675188485647733856084829453889373919896608809226955035672038810321530655545754314961862144914299193624089326144859911497246429999304228965334176178881216729011978048885992875308688830617105503842196796700707492875330852614489290328576170612200932031986248725055336298482864162638604137459749074564914893021229218854220016561704171596367152622899909078774961096987325161907682103175778264881797455348735650247027725180106527236186869786333475728414995217378752158238134745770522984462828547077829033117137919619851616531821683686301894619426049660088887954354028422439604653033782265928678191581933729834406131484246661829662919569442053614164338449898550970024734965503516431149013029964495361431785415731509681901550468781360597103133698025885216909523438951813048204428455546692004195952865377751200463024278346710463315194862358253417986328277663071099506745736177627223820155202776411029816610204842550716397653989249747431157493567251169829253994529092731151868720312279565454394867805690862002527541770413306870701690704106161112697525538297566889249728284016340342337922494920411201535884098475927314301773910954737888390355481749953767725994577013972793848644319673046115058987532830150152972529717342033183306614246198499772371056172510945759522575617032716465524147052134948789793912034501223770556131523105937865751841157084953059886432934426928422927431143996225758921191144345147498376587863606947563647563254167698500326811608873493669788378202776457738432592854453567589105531392462528666445425417002522230104298571542596603223753440864852934917056472879970023478110265427107013524629696467733246172518800242650790550555811241446364873073281137264526079523552157309694525237490140505580883838514609519860396045609817438384726673916266526071964513259189551131697386871007148053167285185139143664721230131257105520186252974159501257718972061644508131318716029909873280715624870007728128571889667690446027920894821867399420955762789759811802350813276782552017828131695911904112670501149851708017800004104806181123215100924040135246935697297961261137431451738549218736607721624754214639180255240242809938073438750321982145742532330708363699656410637710115083019326509995012147754331201073348137307224576564983233895925766371137282422293799314726479986538627016406665133926855369004770928796499053988087809992907994521389906755116218757994215122361399882083464757303697389955753915171360875558667948622534170143150357056845058044855420216406051557425138843778600068441154002670111241117551343971122323619603503041397049913147133444455499234667818382818088792512110428377013832415445796893111608745485989357302178388241434897054908752856567605801601078146509238168736626942386694102411315734013712759344829465097762742782951417182758289880954812160267802127702290692521905866529680157938622289752417460050157216720533125914636569033590535367781760331696215510322572643792591102855871290262668416763454642840546325000235444981674479325752858702707805333734848367977330384801934695698036660753732166807562631585267488117951375584015075762806487364980601679023237965026693028866555220344065661039485530280946453762783158014894589859712855892751078806010035739825590302642308311215839567330771955783462207915955967201081515510901247590042879014433958680175669136114604071210606391237074039296848986221344487773089022316803933180659304158615922525969599270323000457960562348141041576027270594470345209244926945433887443557167496458877879619234771666622413769540814326096975765600407607146326006162883343370051797986873202200369512948791350105890758335703174558972857597484888037476813797841481973040114780752567646899970532444307100618382628452618422912561265584905903115135780149314654422093360257317617663079178006456959288499953036066173928080501847181692109686524637820057955062607591191589495248231344902909301846878779997907398123897288689209970995287133461352245633212113888422919122961029497294822188946854687187073516496750795252448417087074330952921447813380924214653155398010516199324909679846739454019792201686254131443871175942619788444722958147960624361434688082314812639723052988246255581295362338906564852000444317687761604271395946883406421447547962197287410792623699496086019841678882680694109214584545971750873034659099664696420153914940241634793418722086524367099388041390004247093153951280580207612002843672062138822638593138293515834311370700576388850360344011252325720660249552090585269904493850218104424212966109417782735471114819935885147459470587573430533212172147524429987698806643926204332764651628669706807333864149620713290222836514158785439332384907582377714875521905585611988146110601456379947034630917626474251159064229703960667620305568634400653306186845150435800941930992101039923867072710252552129759887459684754857205596362250823199551094230995094529605504533799949825676240504995589032870357015138424917628519134978987008199720413653715820725806101125011329466896033507314768324380756405809939146173409454741396383697060124083355355201499269828888566536012380489599175645057222499422085366578553379288682819948193963281749545580331543590487528809995087488728995025195233185616998207183144121335616772981676029231615009766748335673306647763249933113834138307682808936556922802050371230299943743524884191799867590035211467090510831102786169165406241208950160515349377829633224732942909550533686846823651883042407207606057661102115540060990015288677402115450604949460879763036456737376143914869566216903272596414527045384225902987039707409933440082998768850707893487913646489819233928727251795584156679522540559620652608758576648292247045685942699412575040330189941400873672366002260227821443494350547353864575165926592536194576374662137931622651709496795329884910917401763825743924818459258628168163968314428498531669908190110489719466063020785237315779972108188060907130205464984171172807045889745218431431070698465648265294194572956186845027693709638297615122025639386647992334158290621725453484599794624972184974014431388944112980241253997040268718784436788306324175486560607877623719857518614266915545456992859040722048647809166360886095361156146368129800314821173590242302961921905506459856774338961014947800536064286017781237232782444259861886618147752687338530528979254070198294787780283236343919761685268833270928966808446363043465886406731226743325857827580309246967975113478221858190684675526661469525014429861538121475449182917600867241130539175638117218766759586126091721604137869121599260508483976106829926117515885905479505382406975855791498935930919847060107254386391055858664865460853475313493318030961237982015364439390489032186405019688115678374739694304172207841995347458912643052019299848716496466510528660694438233627817125373408267694264470782948775601901575699860345128319460511461874087003115021886602366937574956600219946043019420417206599227840852005416746351990988489053208159095660573296541225764126869176812729770058272717404470929428524389348270394973666775178470296817816652354484552113059100201012340891200216813875427286074406162903834974671479559922401203909559486743516498126759325472653912256611461456962627416135293579588904190258736598849182673992043694457643998866225303751655733675666582436962443946619764940281715485530347824196890321262811424817509431483538052932111396831624525541495279868317844320076618231531300246235459469338776689043313510242489899046925936032326938574143169776027831443546802455868267872990669819051924383876736029663176534466585803491226115027518827680710638297841641636297021125221731031219097245806268294184315111374748264624649581145765383028328478776241972794957362969854611770514732365470900995442160679882659872293849517628715111660352107598070034665897987869013522668527240305183635963826930409779916494553834477015268006131051656639765141122515347303426980163506097776446084619517955096509936815396303818343892367977457754402247527289892186574741331447650398040844342220520720954915363625550248441556422439655115681679636172068754621783162598526687670819293100890722681150177586727926221595682933945215602417289452889831128158637217081355739908395134084056292351708637913420111256117143159875626434439440558340815502743182505552171025156799971015725062702123473001648638245870137422308066012803429795047764803200394564726671878502607451027373845884655199645445123081567036778995877220688872706809099885315372845568227516803422422827348060809707716664993410434664170672671895682314446950073937247614320931353249146075729502699171385471976130875163455152588843137320517515216301703564264265477058272127192030713079980347782359851467288063017082238631297719963444287661501478329272017082192422984360584856540329873259859025327152678153601934542231864194944938750433785201980284158577577068673360280830752467827976462380187709859830800940828272695830235307814618710268118631605937928606022827359465353015158496469504268324999049435602793735626127055664164484116842713835250651422282189946065863979925289142668210865299608145236526265266866166376704346523362932617514610688332473409434299509647640518569874246636399330407137627537152234476451438732415261595370132370175990312398318411642853142342420066728794932757531036331078276467009707170780731139316275652564778628492372187479447479201988317632333340646207220122973774871887451169555278625718089581408006762007727619796389669798236055785518227724436982111365564899331766606964546504315528676910420690095315563411033835298436460748647975740969554094245387154238188493510215290315861445949516886252078295819603854027694703469679597937169977602119806257723770697313544699322488228771491701789016362160262241687596886467681441994796771227957074626102758492731659766722644709746863821523466136347003808846644068496480889687001477487741814843984023198536620204008846065330727759050040426647380070329830961814511852621448416527595349223295766286508594317599058175510164020884205619227179191945047879655370719216568969264370676966595761661869112090365152475945832901953036218594752240022072943303383529575462525915991279989707613637323881997018493687881882020836532348387962244186573757227862104287647678778742421642690452305480429599852748216243454885026207073671313027632998589529148592647405971955948726864629303649606283181344955240343732394434579630333065834026099767423192160429968099020413561186818627489794778313187491307971642933256641932455951051026749955956101133913515606105399595469161889247988332639009553375808188939811519826766877590639067798302084052441918612762564522956024816173687305874280754766170119885975382561627853582307682070021292435342123316286913674476053411460690974980377239985724724419706297729632852171209575295943729480103207770398720296506852152691418288147910779410254121480541640264690609153911093580179119865035801290223514727682262488668869265213114442298055797215591200735173158383733682554953220419298423017509112710276742391194533094691575695868068633421420318153658368547339752800282775150281282721820106373280367534581815073496671697942403088003850890814413562503718686827285359760901409494882951636230471397326570496003363169724880560774462741322348007653352677106949209440613893106912137389342011729492744389132682204608999040273110671874241680877585181992819175920971204602010377692951808414068380400332943848556618341350857431983014589237848618490475284389906812166551278046748420932947415419254384051295976428788199249290074592072256704819441275143134896238804826472124179268382929884407782805053127269406556471992387593481615784307851838957785093257422679242401828043481183094560314180304391958660198178575019863185536790216282654535150542747424885606551314267731400716561251586114053886514196533519131985280901920883170741701636999133128134578720927242673344394407510646384150052520563801615504822365601223504381638980684364615744777311015082389180140223518487906646023863169035950804552341090084897237740923992116312992832743164523102479401173488023927854850914392294031894609006532875417327165941167681007247135348815582811434724475212324871268208870725010887798451801404636397229995279622935897685812076365929097206819276063148544500556764299250461885072771072347992713426036959579537919968588954177329468375345266591681367275470125763467922003333301197229293540291970597141166496464809821040574646486923000145651507108769289561696220941222933539691604668967120671976036541060557189870429112748779933088488671830849406298760415356453266193228097678798760737740268797184589998307877770039412214877576244384320122745456082268883899283840068857578901296461982507046850657956072631960196980907454191109836917447098527432218560662523785598881795746010289616693368752500104516843399506235316798934682184584104517661533630424066503328082682353864892986748070725761017118524888841520208365502141925347757455460339404192813022497122324853911282483892062050656537933183302592845555568405527225082759641940234355072690073726218828757253830920352740706477599116564055628354403791268716160363361508092216829336378820245799959738960565353759339077123401977679907955924464523664129123955188755498825400734248715772037229953930813220417445954528362256345694621232094732064593578505658171804084801598501344717086881067802112811929269664061272718722959096579187707508170298606744425836691298529063039635334917658886904825228065091671693853837710194982830139292808419096583132029213219654051002037469228507974016593898310206372586606409620459932481332340529821352686351096246016958368907611965231385960831070296422127771456709375308976961889397673807441764658838649463340713864162433139995335612535910470470798748270684422891555751802952747098219741785665358872912379696776045034105544258258157101141023134468994879698499799009854286908189249832520766542150837831768311399345154017666598349535823297316979161465547769318154372147119010720897136918845445557693317428125073920727514049397453605412515898588342669530701388099794501610490437453451398875404759988025650449905542216338173410313712073991058220486413930764818503944434196294971341683363344601332165399688373327664681582745882880036071045137328567114507789768551979379447952085989559458328828031107272016133541423863214067097307175805315961734838052196621170960778022825537291923011722414822801508671255488909682333542185327126177572724493493889531409077571240065029200232319546129463576453649630441872549436627955760306861739879124338773752825331786917139930844239798481964218555727668007550555680120370206721724950781911823903647114904529127092519708846121577834868580439097735936166542302923859683056302542595410099411086242573373430924632807924371835002493419198495880466954369182779860399486743452231226239708175432138644717819833232762822237637509393840299817737898048816683309122747395978324729542764731892876703706570568844291649298471128164630062658961601581552063708510451079230947151865099387380132652210407727947253834278004976521418803883442592627524908013865372271099285632774595218772251911316215622671589335878020543828884423291307673229715658732644250012825677335433106959002206909822958999372226898554999028354455038186089965259747906118839653448907614765674914966111397206390710209321880682720531615204089510996805498467905391225029349986644277598553192770878423654799996282071192147581908940129633924132148860390235736780574084578018706412477929175293629118770145765896666908307394257019364339398949452197906321510306714668041426484002833741588687642750753050494023240049719823837647575136754497826741184544003158832909118132055384315824370333545110286290481714480420093311721116184085411110897676662654754711417745345476755290034370617664581378446351382192313055523857037631713223703326219271559008550675863037318896762627966499840282124712074639888865611512924946053810195007722524185923237875325337100426087925749010249227778801630880431666695522595188242036070889161257829476933029080295878039556213817687727271509884566321585174915196905666572964081171622663034050195338176640660166876381239427992973603812758164176273216161385007161220328096718058892340725528451663222931083859688608407072015920571014692046290549599930460129664372900352779363167632399234785142209765719527335410516683116815085921138897116293111860242287695505729456207464380794075410875921430001671204435696860981332040606071884025452952037426354995758676925319251145553039366594574421351968186318380475111744484313806615270746573374632101085042522913871569396034929145025515714211298260329763848923891850026311097785843792457315378499823513164535327712826037979022831105389727698804547879788549013360888609908702943751969990258393054183908799708756716343032326456298479769237070511839144492397922846216866092268693927774069585914227477943717750669754509685346425314020426115490991106891516922984337319127450876867339757968846501340729616738513947318826353691672922846105715976588603636937127535985222847426135233369166341164253532502738374972092571043270094651257348692364144248287697427305746981886065441575064503172450111369989888450769647683375975193840251211386214302866346551045779466139509320266619390585462327532998248324616968333159037199046835657469639223660207914524135628199959645280470755161170377041898955417258243420465785000489317363456370415810829231128369257004247086118623115935727889209450943811674741336186127764327423064982405521588577375324279529462343638412598190690270802067026831523336273980082106202087759105350894863487235784343246974412123668096159436920575699792017788051487306781873946572342698141714315296004860213035706566307966922288096271801118476466311733132857239530657352340030590478940625096074933791912540606254504676043737305945529554327201501519275604707542630485354776035748173284394562140159313304393573911259490537362143261780028530279296265006317582705655227492130854064593825999303714552301343572772728312581091996472331816640243341807396944422606429468701011042053807824992128212158285963884836661401852757766056329697025710933958009124254418141069435370814398888646138768323505567659417490016945128143972878074811870593799713796836890188684726652338856550839486695828581778199741718747440588128638018489122310843569171377492278038536913488830445222890405228822901227626327874959066597387291910870962107888393219564208176228801821842196131594755804248890875971560957829475327627421135018355380677450504174454039417041876356782197573880299312085394015943172892341099256657333548018777076347175402864722906587256604301775016433581343552913224406696156250629188215541360071312443882850850895760248264513571791724514176668919480638126852340438689624415124848876468321180457917462944587240006336028233696365035270295870109382774258221797618135526766569718576894437709568695754486542855595518498852702777164637148707631657134465575020776773902126723337961536699699127014058164820723694660092701065061448966505739211836139299180202336573947341914164977370480583678202428725425929935593038613114925803566658227383260885265814196871448526753608139216430822780673303793161067144325065897986176203187038902893886931691349150909486881545873125628589356280615414672915016634949847227520871529382029315173728513211950361297667685830142054199875589640861791601463285912345197334569990272996476505355942313274576894979312906202372752427616272956359272316506797225148953003619004918823417609214028158995994516551621401893462321454616106101863094949487067543429679321288479269400511069748784505653592726562053152018471921559551347564335694389867738561261777972299619497705486486716538310525550037213934258387409612007926074005690146840784423588893815106725274983024418631678465843035203137699607223661872634971722186235566228480700979807690022358193057975696628952801251400200110692374716993842075621192502369067154089978149630088327721046682112209517509997364057281939467101060254169369231412142353267477006951011980837357018147410771262560037799884685945434411195743784769062370732943057743676667463399317165366697592034580873310550735952547372360739181401701148096088959733878773221283597361509853140935551813935867676094866448993004524451700739028984196655597491367937748878236985390587355605935104925138003336770903932114263171479567433154454518051106672330183486953324100081884632761108862487911162770566827318044495330918705472687131444927808012320425762727808253076079873501218722350100352147840470542329587008611105381986909957784360008630191281964955620481305544516459417788063824264306818524961759707346279296953747180168216671566468271531677444168700881847113205007837611811584311017116365792425372774035338640962109693846580995182481845633616716710264257967166031268198167467037054427799920928296071273607601235196885259270567118853620905360307479924924162797745780009335528559034589994849990856147128701911111424964755803539143479887351409186048121179683801271548584375093374849809987821791204718140645538985300391567293410411065758569111907719375886170135533192746034423415252825041952086597819339052910311241823511723026501351474828762069860628244744923857828791550075966683913165437657600527807928901259626767283929475493642225701581351622431399120590708685642187234500495581864923671378482765044869717988073831132503479986793121415593362870309451788102252006512642130320361051939218551937627382744155932405075869199770017416244792242010521783034222855543475120923023497284881570797698223269306662798389580652012554439487580098848036702549817659025130411409927979903896716573398612056812510869000484129872810549023997525393587496293328280807712607956705461692682391459496227029596640113930642477033844441560305675658105706372278176652439860699633929162730798809942226211687461766042379629677926090169955641718376959264791280619864498574601875904478925285492404392399996801474636411392001141824261126094368228506919967904974388686092924378957726884910474578583698310868616910175885341935253653419875748902468974473392720337777510335003712154342127241333063701738956635768533816063494479560612709394615995420954357603090589075325765428210268018652940578682299997466378993805259141992356693076242842252116735922830254678955470776976044139593516873541344049039344781111710965609608151439054778853245232977003769112100901466526047254772382365751127386647096552218513470928501682819371310812799013435490597994502295626325025725413246419156559157621051251590551500466856513326985818236318899706559649799852686891868847557925541852010138728357230686894644661149136874694505856559737102128480288247087021488952317839616595204754784941224011981646608797200703100802705951536098309193716302189158040049270375629743256509999004083947977315590608365308523504087786824365182366715507529488119804091832007529829940895230284477489896874790822176194026276403252912097999042192881135354892266195502746168073337641959457035408396468226835781606726389363321535466587074488610397518496214225353825201511633423311111727307309087602567887322793279727575767156149388169372336970443850507570652185277624146446945713522190735240253709146196589636778584271337824176884547280148485613002465889516956357825792826049920342057852217840343547221543024630808328034661657333337747183158948637834110793976034624835036384021706700121340829345880200389529404264514878806457825055222256588201919834875183842921693432410882016247347288134503719104053232265681675174705263499427390958598527054151803371643723298695924278395532951528661431500189511632712288840444698818430246714137549185672603571889292089388601540830302848573831833044942538646417117496193811976065051571912059685461630712702391833960752714792081132283363556267217530465325210172588049919816812431238924117849260653033869277421805957160058723847585423123238548204862727588381447604753300242903129485763783083165438302380743447839967104067908881204316374893209052612376672740734920395374393805244506333130202686902207651642765045463987883265101223212159117127739051806494410325174674916285519536484390862976875838650797621516164404486738511844885638526177097095186634246906382339591068125351479660142574949887975137382282134622501119504986617115438019845136432836751913009137400841700801887196785544880416713875443142442192521296075700304839379245272623492802430020548492484889390473980940383911097677179203617639249780391872340871182057789321724251436299018825404901847392542375695926535032141700843621428348028772221874499941735764068464739828229480628306640844670256735933122168024164604689789302322159737029652567285953369378599374442711902853301019970615773255115133916291903158458835411409557662932332614050265593449498477119757806588143880899889156951498857900266975023346271574817988688322306429301304901169870603957245643922049626393240619877780991287888767578278836791800857683008354665729195563283617859774589994412775754703417684827347940683326680745704463165096847502685782221418597822561516494773634466834091283420800615752118282007902033230759460384770052878505829019056047630195420959129009001592242363861040378652588737698091022648421538346953120845474345886595188753162589021426834503178826492344661208360482808209911162286653610694229586743799057479552146422727248402916126784467940597030698154525234430673847711382558036497676828358016204500920366686290450508462990352901457002183903237125693513872504352370321388233808299535892075395328082121335079295208309857846399829677999664503107651613547463567826301981755828378110990668195183975866289433502739779776117137350875622944281358638855559776990522918711247915708507108011309582335374563344967126241728657082736053952620420596538390639946929295342580255980382134297723655768407885989272040646547963555544787917650702564316243192369519484325461738199196625369811239002788788582482333092267530130286808934815798165532938513462171310768269641679926129152616125734943825552264349807883489387661506169754892609120384946015755002439155402666081566565577566327395655580290139622094199832365727458055743465755969906381782520402635947920505391229299019646904870314556396236548916871855969007442829586430217944313407165810744972700312437988496256326487182971179590872688627268877295832403528992550291592209285534944289316288049098332647495986030925876008143822925675333949139748345516903955801711242078149380281810995142311263065682098217686399580551805860700595356823076940752255709117254430336695655619935821102717975611358647515810796413138211774222158205820294719082895210283612843722287489443450568877922059009788265928684619484629238970635600420703797902670791392410286946575950559684210849629371132232457029192721135746498964180831849361859691649282563990638832498336591588010015001042092104072539018712869433029178406660048430987286281425233431806591012325026767845224187955558927660095964512815387550872532643994843715353198288778110144693691937836679994562901143185193436980957388147344568058101174390043593351302871888270511507160312945615533738878140682745332581351307464024338690829568142481266325115233706571970452884450549175639521598794449466957808831551477277831575276675124075111296511721260174056574363160613762267261467126791256430860515484832751717814331648886049217960024987803951665509711829434536403404985686479749778013091554948459751521920615959965101680908484010123630109450112086597180451478948185181278602322011656247648469064085333366878843851836637365734990179965795595833093018305533671317036032102920176001413268181012071229905397241607327860922755095360116788374343833147465108830207299487385848794990497421415897266463201729966770076063690701044603015314414360860378838942991327040673523181506006923106915691074462110846577264545887972538264462318603787284034431661835014184534837135551660253496065092547487695171247723617882358074682720762422708643698281223808820446588309529028276622016513046470986803579095472125878535693821263687584705815468358139371348401964508714607243072615111491958559095460491260923684354407296969286573060448625775831267835599445167312532005408265502987741607407648879904291476921175383951067174040254497459166638018286283704445227105832284532257279003079893002889122582775661983460044050252464394760114083598314701126631844593119097888352363961604452725281370709036198786582249753382834852024179970678474087429475254284604682352919594182648592040433282712921705623525303993935460087255199984475161842129272538370503701693769671040106881256388452928057153828660186261455448789604863257069516786722137171183769681365294991483097413494395298426763896634150335633624284697509215240549429418497043767862564642441729082071147468441434726636568781532723239475200813166246893793069538958960081888574656384627501044327935797011553453804315542507620362895857410303972098868751797163191843768988192883740770772751634129341011950359542655810447391869955950171696389336530450078308888014837477644210481647396561042509007871303780661956556214706863976262020219386122294802096933375672724230016826096101007516779626193117293498622728512784533730278883018730338705096581526782715668841131237039593859238773628361362094995575945424697723205976279870799257405412779034293346580448663318109469609568131226200574232214285273998919006123037289202909597245217441304943394760494514152388939753119600547037988054943204504120211148030890112554418260748663894606159259572268477987092559820296121806411999906864604991891548591488435359776959143628750937324212345568151316002005042713653166323999349045920146857351219606400261465357030623713460687156779780283970904990118087099947079948954355431230482649682895726680297171387196645735034568427297261928801304924076147651127980734883312819729968884148969578747437064256069794667603716533923748817816669555620937449092635513843566520636928356576375058689616007086869761190819170138466921046439093196841638023520889386537011988357124437174566650688478108057049825841829105932128344096794544486852696530116777029973950830120284868257986378222513116737011848473441766493456280339022699115275773546452793420681169078767670963338694873824715945409495211622107775097366823281989528575125446559821287003716736554211067462871427117220070174682248689084661569857455846912369999768882193419511085440194894650212032002327990271022246539550940756254440496881684595390375143451624506802004855516767046869836084664753261147840178994684380759629244541592863662954770151640662191292015502722994764307756066929017680540866375618224418696711901132774581906006911208231110259776229122768882093378482525781253757178096036015036405267123346291261318770790787586887394527697998277561980269029835725441074956964928765158617327619506454048651517954419897528187105430903839596829991316303942867019701828975780514908634884406672522618869015170158305359427394184696339607728137253263785225476307999910811536849862690683024156253935958220930947255735461260317450555876337188090652763777540086717776881031787169694129973456743731025931202993901688459259195725252994740829482730800462229579134075089478075163363354542253891188237543452028438514590448909791045398904333348174944054614721772066584745933459724429681923934364244936266875361483865434685343546185877677125918072451765366433285671189945302223714597342034038970505315246541484027670133258461870868702612689058456047655352843560075007855691620040584892906891689394670087270946926528025237555704993118621406458436317375195524337077024763138382006440235118591795452625477382216336125116904740123097028852194463111127583639478065821895936652369625648330610148136696334024299294536900847850904355658346197712861556595678411290102959186603505541483345229798016671815814575856866295592181417895066358348789055223649535495798490606512906663556505949198678775710734360851631878495692040336531341649182383234992264324486552381008058080221130967285632637786106751585321294337339692416506688197544645312287549171774671445961359066299581248432466280638962133704807670233098756241062026562963851387837826484126002411471471738980300140576688510427077507610211603264136944470454659870396217656361423083753058658600470315076164181207409207607912343037095774496037943639662032201968820735159178091529925406000388820408748938128727378550953163970889772430922025488042085897072129828009227968387571518027365281224058516532001298886505397068833301187994158936239126896859703683805272413755787937273622685302964445820600253021781399782774253178721002285226989245320221320202617988571347796406445608752074797118899284314973779902482270000534511415679018095541204350148438594658805595566641240778206355032535525034956668297402745781624337786608159456025506676584780613508138732041239630917654106121791703440087455812338337012052861212115940257531778735610819673323076444508799237875648396335555007334159376371534980897215106224806207329548400983491324499058520207812420054100330989244100956505755217461216086036413201974401897323378647512376174849111596179442129364670446261341685584763226939520682562738944205986763698898675067430157555683294311609790584438976969219786883407899848849953510499957995532736036754448225350744444898414887984436633351029778230188757691844707572458724680072356047207975040656014137008198072656685881612512509284590657380486199894615491482708129064872080539265523269731532527017665152050478416444468508649221544763691402101978727543516604655925278599845694721978769265434485545165685444320750660667402287337105317911287818513249178664483319433265627458244696288268721027983483149784873286599925395799334867012921462171414531037014071403975438731597104268934337260271699270977883228455249965366983500775995324697934419140470989196406632224000034406347803979648490103114741252772206219706945315071347963819685130031224176907140360060381973392224614401062003609535394965446871205822495689471907263208199237646912745123802191243788441646255062883413039928709239133939716001370896876571966186864724710686532364219876493361217390265185324908263872337972164983161794874970906115900985143380873304579869944306154356393622022835231630694936930293633171966128405350448356303855113354680798039432883014033174799432895960062990515578832080276862449794598731930270952157655214155671896142851384285423714670241843224821065977111212630473791576703407392893566713845522743397175410950158633139433268959229021053342554335264570999316597638871174844479404810524683182918564432008034912738055897092257665436243042566048650007224479238813917723576929672065864159512060330515998171059609823729046250930504676154373041491484496919974829899480502323922959877848210443350537475809945601048288541907558799055129991015407014770390683689825272937439124071524212943254266334397488598164791971458306788962490675859084624714378506770939829641326611096655495451008439361034568751762853710142456109795972674702055674443357355827518930092015696508507848585747780688388137096998838007673329727843025374822984055688267515175204914972809811829663907509978007154996397409163115994719970348472892764670692388060734870026004606416843527633421215294846745788931018526884203586052155404543624587398502977969724941507936933582160331163713750167221563015822543455780105118488926840397210261146665863476950373281459686379101175871450589218400077943586033914024642051476945260788603699039443859010568265700134430182200888956624461709149082931241769214500259101388465111549800396147889632003640123830034592361416952197697159423988090327076860719337027785315769164134918134891516655516903314086837726885637688848170912733344424348355386050054204079619182211869157241342064223052404620278410752818610241504090584187184867949425749231767919779702856739334094871263121797201668721157083535672890698932020053470766402747536693026494703388268856975587428571880760128968930888682766868037869626305768511121513786787820524673838483133920026221162096821353224420953780250087437537098288730892339656488692012804177568903254456105083932631514088857486045454294422701077014007016175006365976458867900327273655148794395916574435989573671483539687839129042600397252023594527557731282337709420862949579280189752284795914142487051785155575301429200265601639886527654795789774195784541906191353136332896876296323220109681239161048560297389758676438954550163100785651623437398166714745323453945899192454773165252210582478256410062630411785484188663129394134512072460462220495035740831163450549524245827708664696383997221889983150832556105809462350044160444627965305182484006237658831292303546252309389587065437015602309558860645654335035559977763818488491027643860573269165932857139683370757734570302577912465687118222189907306915269865378858121500888649488450933960569876194476991863275459314711634470550653322495095358709406205902168194300169487671351575644603454134305562643890958898012861679693681174137380135451762585877208941585142597325357826275639593588027910476530532652364749447376199765924501287029860825285402942977064340546977080598093248092924685614324960192932660698463440368188603311610623811347903824389954141301982581547223519226555425525462882410387136855650755409330402839368146810025681938066798116817377135632230268472288953500419188387987308530100017989247240946863084182617141141015721677665034147101120806975743165097486981866755803829300883157451734236721040179096702388100130656629127712561509439650191797597783365042285250097113146988084464362739591335608078779325877702390812832756072345226432337091631762526559711264189727754645943775564295704566469308777643617178335636870462971004922168950956524968706932167439157762564231127148164183306771446247667406928640958122182365639882525724708223998039080878682517774963773460109388038309136557890702289335406059851708066880830739354817294564807138636484886472912385465492104294737336677295487276563763168085312247282248160491549732340204314247727152789573393726069698267297785436237772260369010731296529009900711017227072740424466600778607515117149392849114067332490489281188225720495970033581682022153549559223716195690382349235276896602450997613236020280374956059210604007345062784183992182104260314627882361649771572057498849422383271108246075340566898521830897039813196597577589281807232395167550182130043326824663666516045335044190978473331384231783505818046764299690563053582642801836058279128747293719934796036648693793373954158800253254831048094340229510476425361677738947767324769184822375761620689868795831785937367060564571229268146887236871732470212434900183053548559461579515225300301204137106675892784252274780420230922222742015875555103625395017564183964488316196229774580273865337755970925577389242095676348898769887943010402950140400498821102029763138411878700747179584003488828902623952848838665093865525979640684328673819805603490741940486351723706672331784767864260006511384753213551672232700273342455737790539927457695380677384038772653950840905359555174963805011745135503159246044532025663377058837706074412365029801378513947949677143501887143323965881811130092000033373238028566481679977888426737703358507427115303761097205920551057571358412583130842710175646215729948781860204707459277296832052673400292077962406689634591918495419942958310490915895033722986622116666129140313006437174844793680219952979341221460017390651728681713001668600667439416544054341684099191011868179476040366111187715292262936146718735293882711224643418727412760187231533250539914393796053018191022080496367662020719808435577354511148060458832413217321452806593547952883841443038832435599282110857316253300469362658504325356880080457548881072767588826363342759027483746735944300228911932465899277789673375001143747852243586123103236499348109734152554659456163939289928699145614647490648439141678944837556368379001564343730785988394639083825595116001944454996647956633662179678867977873973076958225656106233259530337591461551853930613882731261673380508587822195388861705750560602615497006417281679683005628025915166418222356918240465517027904686233791110092561667626319382748524201579711789022073328860278689391797552530457825387823496819906805616602041905028447235112417324053282820007471991734730991236371546656506072730271937782945420735270095317317580967666358539145251427191280241791507012192760567437735204726475864445517959757116493747643327814324322417666728339001229859652071214975213384106926805825909649678018605224310468003802445334906782520748474895613704484551060677334310282166096391886532751624079074024515841703108914072402732858551636957868617414506773142611533748745090210287830447498789669067972366597929387788900193359002259650311308096014239149074639155601087240943060458888439419705035894906145949625258735270897548302073153966399597961531760227266986182830264670017019046437858802130677070219677473488690814302379430013231497168332786842475802219410171943416834877807108330127029746487403477759492610506250364644097447401167122871819454007070112128187542927009963887573407503352778307416810397077929492467818929981312467514989840905658045320743317543158088148734873689639093132285639684973204310009627699174870959284716428060254483145131703152842004055715295361443397194060537361340727028759280328279754882323689257480162345632949200216286505436264745300208704529643306151979134740601307288840445610927163704375532371131847703628800399502370506801625614970002965291095221452248997091777422992718558544713884771140664859905460332179415131825570200028188369462693057723427880641507081226153451951690702439406566807054711634592556957112876017333096736719452668477099480318656660621500497778866228281150627432693179671351874728044064615835379439600105018153537003789891196167720312985322139292628610012046914588372983878129487310110226645850934933912713576635021428229962585684091050965270067987738196934087061137208511506758883442924047911306704602080400874561561593009802372025615523243941623019012475128580418718180862627661695301639710178767537181626677779124238216070745417334928031104990359147552667020160513028879530530209463215895680587791645273993581776445683348132013698927678016098008077612132881302721945020972153922850058812532722426335308704830110771427784301038203391319200872010538122192349909301277677369009650924957915386199245902860769764427776540639627040740884193879404819810161527844504399128115612614432789566733736758740139904578829264352198640777194822661671953166714760633536318655231985938506377276462150447187429340649323317481062617593139662456541128761576661251132126300667829905606779709104305452680104884413582976205891387087607714650281181649550723299068029059267453117342891179557193401306801963969755511018705552546810880630838033998387026266667001822398093055540810132204881996832045141025822587606988280105061879195136309265498910566191798359378879973169758775584230577817646507935565928763818026952627864291844204881143652398326455842877281360385921615376696717635715646195615499977378794931010454864728128784006406967296900460010711657618232199325485113578608899120617535940774434531324798047680064944438261361361625825362583835443500905888960178867194209746299104282207186044535534538760060117136147403300939073730965199467841767965104508871710687505772446301548211486689990827565005782189667964427661115911894056610045169801510041636980318196031363314984494920034746181098328442422301001472345196592297242532117832346956520509713510881972664817673671693851951979239669695618910619003624877904857486182145799657066213685078278307384376004198221173837895651593995588366048759237497096096468022564818805841785534887099616210028854888456832442234855072380680957374656845699735919628569004161408168785338837734161831981755182474624044117780147817106742051375213315798415374929581391715575806871935338114932408728438632590128875241597606620577513649800056208548546489834931721224461637478269107577608153412797700617933422314047824482413356422643924510585085676325723653262158766276749910599473015915056602276678716788319230901541907942064457483726166266347483586282920564194036254301169085895381097059744529882899631472288222965233922535671532840052738656131593790523138206388022479152049463353245071948203786737754381704826465649851674853268736869004605112242295619462255145941544293267591912209484140918608629651073298449453810678484292051968205391760062806273431438562470181632238563125115038691253614895024240208647322814491193193052264000386620857887980472397159281798910206419755013781001584927628743183993517222044433983209149348164756836060499350655949968529143554762465889982762669767376930886685551965193242642049932391188743485556751430269052776961268540147572474021742205073326120859269329940745715863489136994746650127429624730280886358077928258906031471192745992112712482569841037023857272197422642568837790559572573557620040278542330162286477086862592407727741255708461404617126981533135242688188373032195528170788929413471388386450259622741870635378198696694317600206810005645748377814020764520020578262769757919515645500137478470069314853967706360862402656936204746536061427847405266455248270820969612206897335130016996753730817480844646785885516837606862859028825468417606381787146391574739204784859969606089538201542413294436019957697669835113073807761480751451513105179413418329534007281638918971609992943364022167254630866561771863704565926786413163782966314400928672575400982374620673889026283522720647350176079852111646678342604992413109947634870166661415796465780203509341756614906029345000493673111653293615068476591027323521110552488419301556266335547949489588224756699791997262926232668595287546956033199480669473049584106784226876107250173063261363845737401971761655289941078107700552295057586346094123089421618418129722115016372870699651925125015098346195734408920728057031688179628001528971903808250964673370181013825524145873871325978060468939353166648640704696439001630052036081769549615303925344087681820626815238486132006350155167247243483668945272486106724058681288382615948832990846549531543497757378551851853443975006985750103923870123030795881048217240115355577435488889103442346248273452312722593014486512709102582259415340680544230443125741865285038899669898060579482817131526484775380557535572680806692466252845416291040182248946275711889002724132000316334589941969200364459386020937025548152213873498364960875746099819975792981360648732516106549376689423850518899334445172326231657094203638211163999999548626499485867448906302623074159367458796464049544653037952706481418470908631977221238238323874460295144502455160676849981759088966509107319246815787933093972047674714192253820428870245556454556208792941280100024253056857315020659995919673911023039476397346393328233343756556099068277876358940743634009783276525392826609143140180039517078917393619996620267959326560468187395177532550548932123817323465409278838840382841649566099765699674524789797862712147156867861307430465750276532441147082890190914545071076481892639480944806991680894429869127169776340460156159606636458052522408269431439284495227627306301563834158587691786475657708188000445113461693980955496385151455930922700701780209924852442575254144468141440581898060037128758271558839236893318024920663171647269818337214361015998281308055658093903342979606884709941426896442976795321487485320212701078434381068160256004791900364332771748229704658521243410653009799380651047161573466013786159966790108621765802865947394899914206988377548225223300118411524293797873935990548467990745647350725491644166856372557623378302604459401049072792835539075305144084639998137377560817657216980185299548256120624272899954049420695928515005099917659853693288085404880994032571270346959801991484982540742941438991784224853884158113606583731125688858189920643879172613212145297424253545273242094387676573306466047058419213094358011996039753863481535112931720326570156319224346864945858847153515633590825122773880231178909409410963305409275716622077891777591178061441226347809800258320636249759091716108586534499381444509100209699041231644450498439106219436497304118358497139463225142222302040410940873198668782737081750677748618141130043218948743037495847687555666995658217881158533909395196492577809768640145241129147345216306467165719946795700480834767008377053939301350963588466409249365200562582468674172862983380361063633316637355928231814130192846129226676120004464738824284490253422609821991985071110666178527223389429010056519393026959390460741475227673963896662558688899605682032495449438757830554714871319092727021299798205166693256104328369789473293912440380019221706192203452097525540995321957155081254531345631533149532495564663112679755637330746513795754335226093481290148944569249886169752950151785712420631285206350388417729154253896253729437288294568419391372383720674454911996230159423702915489480726956447032186677771454698339675844526568052029762977818262320619127968669547928751398422518995214260320230970629880371613862914332114599439109102308227149281341241081914612213642485001652035607580981127247139767928972558331483365184490480798824190082475856084238827401773840486081581350765240971424184922629016454639576401563376713952714283993715183764732204727668976295318265007232590407598050168221931697235765190317837643933038588608457318082413404873678754269256657825816166757997896553317639590177871134499551379388911945729665706569583184421616397760708582202842456556097740128612099456624648763925624749140944873042301800643872718574147101305267806598104586061221876924523778642082198041464989860222675753433157937513949754148213796669846216364588601544554711381369500474907737233956360527173577350211585971318350309206846538329462789180892269567033910729267702229714936834355781768324064016936746053250078293300812240682207998251606085255015577591000981079450176825075546507551548744833641655818078188633022853941921967284261691379565304008455194387826561380101529448562182696400583685034059852703499212960151450903983236567497188024142252838486729376651836326987997666509811671935221371651892258085765324856934029325842326469903424554882310179219668142046590771140822440854324685202373988812682756636663856062801065455114935843925066399087059536047017665087743437236484901694874339654819069395301126216567455045659240604309403296359462865034284563140641959638439324803582973307138532921659020294926261966763985255310348608603506246112152677237679040442196574384598722210021945169021659775410400885037519438144310386849734779813014310100687317681338123882994046276731933475139244839637905514505995158435443441839983171128830838104998461414385934280015801684072486952167636440585181419719513824345636818493884066700581418001031075828253486794792443013938926750472041086050766916373991102553122167305127295820557146423329621867596932575828966832368951883732096534867683851964173311553553512484319900868524864993682575464985383067839948759228681342741397752972717246974674737402423446541020786658283288164531298184793871935377089984161567875141369419910773894034532488801536908035620646678496010355965571159707901114425957387365976117814693773259648519461985547208608412608041370412034402512378624609791787136416418553737499469840667870538528830079706723865231586054178513964955729349907037616150727014024998058826727569982248209300823097923545716400125660315178790514511881240025002827051900709296492351062683643018144729145368344795559870175904934415628718145937438881504944932540455505271281570209224563377434677621347918130892348213530716026228037074691263310843000352898633530624822420834022172652936119798909702660406388799936911408025543313663026836322950538973797756642944587249042386383540078185571572685383273488426255782588642036635160231371040687050269650847086351579820188811045679308034844178933121216801384288866879397148563294572162740287691849886347074500092340379787612431594435006752672155737422804666109123935678595553516482911356339420760867961927839274688710746040110319506826791463802684720647042480653669251394927781366105517669401783318460821022643002285318081938308052855773505789666057310812175017958929333002696208077643034042164284288564788656001893628762837101351387005801284482356013235276068236646817290888596239345041186006634383959517723723548883141993247165019543044897720955465554055933437458607712119209322679179366835363357272470103914379358297218491404376083585907933449886900844297641267924857770993895562942254449720220146393994717848280600185028727738094692550041108817433705255675635588357129359258110627868392518938371135377811057785963319257489413698556983891076758400225738842933279148797781230572285849936852486871531536809585225931228354793354341576639760444795352003785485568753288601156449389225471637067899135810739782332453345401849239532745674882731134313508888132967746991765058656882308245997929868440443178601607810884541988440337367799140534515980067259029946934055367559091331181382280765296724253801138266428170984323854853052009484772344982037047457746137568448050858231853487347684511573644790643363541322252122971655136183741821604863249338797535499057439427056709048243896313055633066110472743447280351424932261096694190326242983259514641699528558086669031387141507906607538342408906936986227179761678449949113807683875647184918398686907508209702513914331890303924537400923941925697308260401062291342261925851304095392760368943593767666101149748017122026418291829733665362290555378685653070648154788484475255034858056959141705124143667133503508370144636361174619813272390655684814771687344063715181336517852932749027393917592023270223159691815561628263094414639325071057941473303869819280714261486680299658257428286851233872346585786478671349974558149748405566660154680450570015009937267542629270732977369358984325512349023624974819559598307792712639130542973895989210701654001566416776221591820269410871455274465781777599516180531136970116517568519086133268119411165635160134417415672169614365353105625127989303750634058993615014359812847669298097998325272015613139426089248793223018243041877098226494373219620499236072694950263362165924395488102592416689868267407902790586923566372136379460210708971694491062272000184710032454891100085590329168845762525406869557648632160056390109912224653489297836989495378249256416839072032599600722904576995786886606388267343171246845962679984650031548256147137621599999519785281107982399144630768387657266469771735872639639657557404339095517564799090112657158732382357736821534800921796691253533536878370793208997838160946791812028824263670897727902701427355023755286031941092826496466856062484562528840858049355820793323817388777084213507304017958342555979170651335550918559794953909026396299943148518974122814799971725612943034137080640204625379388709580519625985736518100815847582681171983607016073928072558018918737957334712067861505543981111698821667253565824089009125172503088115388001847536346050213384093226567455810374470387185108838856527693218377425299101455805266432716156899140287210722801303103405700722737296955893260526125474798359166391874276163766549090021345105437477991433981669001498920889030245238091862517667228369793669783956067795457146986012760002774362047810075958179321448044109038820739499916515088336946672972225205095620588658243830716514295367267840351682592682897581205527370138492108663957310257393181901467385255148711584871114895069043628785534590322941567318580500137780682778913068837183006055019808439337760566391922027277260544495395845846873883359492644366487304904599815860394069483628104688711157639722965960985537464415062338868786724740225726748803469992728164928518378575333470118155877374085958398928132194341140997931598759319438843500298064633958707197310567315874302381049091196187424499181019285391518925764526166865347879723334296011640485999380347070178503863770773016272982440805180107239173273820292103583125042100945455970899216986214278042153425990093029494390160420216306618631577147859662380427359238431097029911560549425950078180503687443822260967721673420531854629311682187984852666635039080608836293580483048981503529110657846900311645687772974208779777745796522195104444095615458404861390919483379138721548252202459746973608921496722824470330404625052032515838012690527647984465586788354725942539159465348380337397164732870038385543779674637407697397936700593168074719256482637326435862998183971830224109516789675966684389123490467542191689984041940330385736921827502491710243482416488694067680595690402339009412302614579861641360729193192284196646352413018844099268963428032379116062296977604512767601049390347921732409840058079014028445215226850200828628003332158756610182343415329583301084528292058450785684538152552992565115815295100343074917280000359794378088587738344749505817085122876213439175221235416944929847436075252239529891949244816519712665960462039765351428985823566087638827473739794719285667974614609101880674726086231146483450826318168851811675358494616487479825832097224458880642396826276553450384870308434723593378216494869766377668619002293357120918280491361472608037809963751714511942306490896670036114513108581051796210680384295701349137912928404378072712775449054155622701934208844962257621217410216677529436399468793110497943714967345185675835223647649568982415570024762201445885937308461719170108779623493492930071941670736825913609257897069622649229510083052874948671856595432193928725595015576622772901935306047372605898653708321432513212711329711759039849244512477691591868677978653477631664478511910381022012093565926112831579589077990171770949947578806689162087164014575708154197913101628020049101809982573976661039324196758286045767685131762357954076874182371480429904880044427368884781075215254506926192534619868687351644170136250316245286763241522692594001070891442233164944760676589509811568759754795165271072688309368003336167603851299473710126207763573029516655666880119064944005160449874311862525027982870321023498794722930010578595337419241075701493846201981565646485534189292975359656505940880460298187956526699102374733792296722092937976332863464776237557658793188651553593586818058451637680544370985246221287299122424587592617641495160784154744176224068743213501200240738245864794350389176626802564779484381634538893266119992863204290794864375347033882687331989209723718593007649738292396562064307449583688056763927574744724391640098557287426187712116383462105504688213246592482374880809089224290625744581814468629288320894100698452918252051782464020373461729510008449525622163436041375138288585472267308292162015128404136983430027686558252393662236970007026071551872795154643027701210977799869693409822525975629075394405737358381237376191008993303672503790561200729058124948251337472542402767383212157102824388541775344882436561939082239763811262139410880666726302071260782110881491253532239273650242749599522215802843753142215383562799545485506765009432011344348366465432483697139426753501824931264600730435882788954864199810305067022015941706288885225786116487770458741339815633217248066646033535564663579118889125036434405123933926032024619013464256869709524521170846627392836049338206070065620043743479676530381557257723286416627690839732914287156718114320610045520976290799534022465003648035262744203823670086600360735343734662905503484690693223689827612364388619291083217643375839650843673375599804425306916364383476417460993177849968182031284456383739865965411696004758366433323453675410233773510860834653845396788742721086046883829239260728035153032631565807571942940767266955909953983093423888476271039235792356626826807234261442819619419681806195341117138426275980097450349308243739081812680556843163124708268453754073718662160622862440880968099944476707264583845963876152523565449147733888070848635090199851145290583410851909797387475717750145326125574231818539522890052132017784401293446593585130339984931890017843306110258882076409668430148952085323875874007976512899517797745812332837603642278565203732380004646403437079309624686383183224236604908354419469003519005713275072421634242819256147209938256825651133374322723758335309796289260766431590742576706034626158311934309322895254720639914067124120480056883752932357935437647948679225567921372578395008332644420768901009062487623786112360832336502705395352393708644932915177132868480919208228123249078855594585679549488667078818733859892551011275799137378186170431187910195106995793117619702756416223346432458292784214209377254563389997560633119643610584994207820127952024215624563018194677431998226306378941114812744735071532799668827683419856057095655526631570828338276070339390460299336619682297534928678045785459849048375744799177894041236905198952714882166099666921073293648614288316167252887592251593309111602663236211161369259028055010705948629560993433562096051376717168644160607089590132027747505874380433032684984342247547993126258673377951321899459106048194799391254509865222144586435415203181181714443265967536832984217851471016154030084316478300514226016632090035708672959744445502854383390950319748626109027495079611995970069905944729509659939521667074174918511013680691893557685920771858588949893030743699636505698569279125230083254289380562902527445468825258167045240891835014695161931083931455780115148456034004462852538224583688644998204590693363562125616374138092952905249168932075094975523712407252481085143716763341285800395884791524823141739542264372731664205789380415798651733784402815902983471801671723827560365275394024821591435395565523484510744522807510247803565829772859897263616360645921467237809172856169211744573550058658566803603175512434702169735891212353175511498895217690495378389184838078169650854635237018890933605017246707654027815138428890244890522894890046157245684284851180225873412132796408105998935660036117165128821061514460231902876329682313286763911217953240143003081173980662904050548686032961083659479040464311665635495799422460851649988430990698227789791016420627286786973124973465538224580282925849945971921919384446913335678559674081804477772170451891279346312041931679884653834046030439877266518271060111623312093942991076800355456206058656316311995982983445519986324289974603794445256996455280982335068498886037699264242436248685950549023808624932517362138371012931994870322516449720113462182595563723178941322140884238078803662045545214543098403147362101903552528589068872973387823119290221695338386828520712426893165906250548162659729055967404017037006297707251943375739706016464149158713340229206472271994073075745296369745892758149179671778462922375830150384144717086904193156123849592435062740822508773397404660824016666098413415116345552159117918604863495581866143939665705024233679380590871861127931380513138239902006506926747858535005866274704163306837430151639809721108001798528510969687552802363598380163529764538532678129201108849078009070827175441193020959683556440448154799305172163221684682195935474644545362894464074637333213207084947541127815390987601392471193081174220618770859734162095351928837393989981276856955505785795303446743223546208583712207682165496445630167088418131174256284948964223117248254973460835657417161429549516602264759031828473562218535325241997554201816191707307364569015097839709461991956701648117167154915651763601546596090832360428636320999434608061990021297147937989172124022266446404493798120347926780158768139010925242159512761854014343453557986234603624876834383528637991151110823130544280821960228915665379260448420451259989666765554092357103007032203807549614496325556820173793620740628712262362504929671761674425070473879358299013572620813839057724083143898020693897130904548267218189762451603769853809323518500429320419500500103444090027590758794250368542051891109203183124445110040618875670703825114397194526123401792389514087734474405212852357938151779309371057461355112774944245416385759318955586502946344052776028904110869673491009420318447460904336956654957531169266622230511261467975195174651519201345104181400933576019701966140955936190299164290893228566759305297613428321603708278792671159712789283531471528190368593808503186038238780971312541790872436849981656822182113274051562870561215851040691598554305613702090057988669797251052184004488900883763209512442161739118014123552322812547745823698757297841570475482968423441411475840424786665303608721065514383135798621915437433038743064452272274663053722496410676903782299517986060476917814516671481912440964404327877807534044916441159165875218252098023721072713164294021685154664946986154557346819159795767656996242495923868625089915125183073938374504926149673421588941318194192873203922765132051547419694006634224837685942495776443379211570014322036151854044540141765876430086195344939075445967856247891220437575810696145147740169890493741447825982617174069532105114133051048120932678289427416650712503719870833658569943476483146521802873672897521589769856213715363652656773982934259346231851519875292539054999941127972519418734382141747807212335216548104177912519018805873979089984755854718133177555888826150716991568124001253931863617070827618853988281908425968752368231202945585940201537343242733608597108722554711849400455001098278234677045239016092900344164513667552820342868480144791202916966854234989633355094840244523140664109571943134561544401455898644681906004179167645495494169516213121361945678390252135532817015159459020174353157065932456042398569108003474819915956502202890143284879294474387275301996998107332765106310624836562562185090854051697687366730280522777134754916677388897749475401872215678388430378023464718042177306173729181232944012070316552169424579874932585706200684286113339530930754807462026423447637565917743365220631546978200200779932217223135317859297853366442323365301898484411139454151627157576231063240960718119534634792009382818163939067728469526752200624396611517157705392352072086206024752034739477720918641528067230665898202098064390472114427548514561942594079509905352874462377552279594547435554602257761302617413384178251230079864202638824298282008483902306047963174811827018983753511595597695424200306022079273112696224443546625247528512415280457649128385692990613610293796787833715817931879242366017122407896344937925659118305638259445912047497642824245909100827735313505891883365142088356979786133020996079880788287374623718202203898903086800621716806496767331283424385515739504940010237231363339884059916820111665170124497440394986305644396095000164416507003203589557346507244121987968736421244830451652827286818306121232904892486414785911151951651151606575894139901038949297590066602144494996531250074563956352757311117210942656455809839102240197168804151344568361803023040997106265369143719621509036480524562486429598104950801058389948171105276987335156454936123636135863581214374738005606855305436120051461092021530084851902614564037245126634826763229496273381686258433049430495026237026248814290441092728734243326227551557921125273230496873262416255247874789912853095980806612877537922132473878082630190403735012443080643537214153576952175003452745857148376013190974039588600870381210432346331617842318529115524780688535233932840429633998876564845403869081109851223247651242622637272147496347786900481591497798468605390995954602970279209921978997119864448301676048086314027693150342106186719045546330633576740019725538309047506970701008557530383765919973794843234942341674029723029873315299008292289240877805163021310884202771507105977565668289937568250971234526167981529688078905800889452245695241289703956915080428464612977130023384831239268007218798993439552188016677321937787546754223124525316775315449582271923265756542290612854015535403950128002824211387339973319854257896204793683681762551947584691645556289887553621001140754846965710228423241962895874454510027300474805521843193659169573109242393078310970115464801405744923168267731302398362429419250578622939128531047095280271212918678479504832099603569644084228350176717243297128258242324075744156755828877977561540307096985369721699787304233668955191152001147175514700129937608620190981862006631774956480504121696698715886883148554792866052883210884914119400710961727520237788708164440199491340449867712717831681670207187367769090419418216771283483440148229984159814837059678183290674838377959306022922199716141832600980190052662322712316133415147042761168544569546122605139901838933685201200319473907656898223275566894361783661990117682519323952216866571305965762643868327883884979141184797488241564680244035300155640312970614474060096240063978026236649244036569647439032604551983244021012832530400571461545096704442544238098510259507607980938424537399968198952273334608475710329085082988023236248407941955489409214289202190826276280628604612641913501690682709045917131268536957997139166943851467270627430444325638405165801400295709723639212475680023123884176281435817115086519862076050545735466276858820724032700418917469299747239526489417371909459817426062809917301056923276256625856206499003376737486990730532975524231416607881595825923560443781570284095701973418229455431889214785594861279006758081960136331408174217754403910886463338284059223847707359314934527182161364606292649138126079504143400220306168450127745739156192011248290879795602445614041910970525489160978209480413800791294466332855329724949015147529541572602918671080733584116820341681336703389098576630090934234332496299092290633957960038366710379403134333597011202274712133280678176248972287328271545714454333407699495545809343948592943238572282036617474788881473792081277381941368224597479182301323221466706538406200031003123385810208354536744663569710580405193111869050291554622427238033568931192916743705924066754627447674843378111938023137493047404933160062378933616165082831801687945063302906125041359660061751156188930927333151830350400706109583071120290590073173618749714385906516615807688358787733385854868242348917509630699819320998999339039949538254580753879172366756632447721020723942601471078928554120211354264643777283703840585671986344095568611377305401111688890611816707016820503306279050149950655623043130998452374670444606068646954299855570473239495167887880139143399047186294931967972513360962083536708036689245105126463319962532623285621716183775250520529313256923785906241914277668803936734651466321857511428421969878286785815509973239878974997067254289930941912085684222653919110394259675989090517354434522855200439675135083990878275948896522314739660157220307242832193504269166003322700542139001228969686510796822570372790625669821869947153383138265380646596757545574968126313058136206167841604953923640796446171787288947123059717529777357922718511936199846955151943533294346239040373294134024303209021431052936857728713932449684553628510528642941344467288392245992208206649963369225824840660354192944804167665540589013170514800275528539077844470344284843460278402981767070233097591686176770756545764734443069886661101355574842814856870162147120553597198122832750125272412871582598680378133910203474131697891489413042740200184789652433868376511577849037509449698013186197820952291277573444829923684792429612406763350450824486580986368783473457067431538196785590533232808605581292587602699035459382428229423383913515978875943984037521821896273527155891001937472786929757285036117214864929992502917594761781282336451024519387945922064346862801954354098153134848581360715114657224987586584707029642392302138505722868103124217825836063069857737728014113400571458732992844525939290438736493109007996607970738034088251902234270308885087727660602214510588666281766071387067127565150307394266290823463422950239619507245029445038139880310101794162970755558380775785576805492836552360173837162397489366734189391110028700071649803829333416413122922929897090881094348245163752668781817726964102964659344782179648684697218943775964879439554084614009782533705154466289956344492837212045716090154639169871821448518549035485951769614477101660260445216265894614234722180467453357316906475313811311551522291102219179656474140890024048146685335807266518257082436197091691247311930292529534354249896512490438277780488462513799631889061914468474714957472214053601891370735016506226046474680602740642352216211097612749748726127204926370293734499869115811869224205746575435457861929056164320118667132660594275052917701168206181361910007936873845966006632785473337108975313798431223373429064664647806024716361001982177307063109591319862975956479985050796750679305595481576564250227170914247179523087561953989490209098320511304503266804659905969812515718034749714403995038138415047070708368514457146748683989513720475261770689898908248690921556660089554527880626999487638289207698032802596601706437390906647297250096064665495300334952409293562141072300598043050009168061670156779939956305038982630010287669947411479847022130498543813732285014841196138498902696292739492051669864437030811448258179596671588089784173902446655899804573958108401027986945789515024315705070489249720423599265482181695560933724512236965648445707663814776738922115821544376800147969372436103236567219540432181943570593722299252427168789440607030858282952385825113485978226688228525284748749166898000683284930973615785193171339580586561813345053086052337101749554559061178044842604314845218597927828666179221409328415378560094674645379004401853754503140274078389804829531219552177741202334514085989085151931688872822532315354075899959745454507248673078776923928377154998068543114273367327278976966872934352508332878312962077479679846221833342646311490622384573628807616417353961432087817152374014516196514842134300637038469664613335869457228792458236881801131862782781442601070339599561569288016641336560158906901654825154244589712610804394976357828430251663488609974618451465782160039157140836107554761250713144922155195591369868097054793826757440267807922881372675828407194977562756910112721902961633001634666992855020315397860417898252568928236536646846297744826129659438055565383230389924043721408084443742635303137521197784003367129986442122152669488464218047963382829508260799130685094537925459587732781797636139710445640467952541355712922767417102814050352930297931451641461362810962264199938886725931026885090910986942615908810048130604863991415676835997728849244280113369190364251873971429088902985177219233705076369955680059018667663808453237510949951558870502394673042458167401192653911125502471524159379944989147863385196507365712220666771885979859464621424678738911313592951876127921900226517076502453364763019357587387841572165369959969271650299296327718762385216542284824248203633625881525882174845561515838456681033149176538509922805593488230805137389797140873910187922145525752287245960004303471181281749160099255975282205137091083645216841322059577804630601371567904998737682621798031371946382351126238915971374200691129241471168370779755445458660419256357798115607059929602632226427688486922476314070143331878357125185118688591567825788176354346348859893475333102008800085674932338253722236589315229926733668165137351670001137488266445444556213500105651430980598501753148932183479648441455211300995514196110137934637355640729804104174987668038633420580699527841487398596283978075960023597610656226958564038104914499283274533309363349480250639688022514929773190142598375612216147235323346564852508990585876990514529468851930496023114144240453993785564983402054167484264368901420004087250398011751736615803571679557347125087577226067343486733237073697357642701679238586606883844199167475069063067191241959329801857195693774781440600457845245481129046630933050992499783518898054701206212110453033469073339336510297312622375791379442939919396202692444408909250129757112211354157934600575767275183782635410649423958387705291848431231319722392361871912578823786561627155482981542009534865006595418591572651502402667787827190066854264713829513427116650349119812881266595854412359060398290720813919849252103612262813514863148306630403504477593279356498280422121243341130926437826528060091699284863149620986826734544892012130612487256522274263184922201486723052986928172838170769065788579373798656303743696532549561164380684397735631945185314320372847270837836617263464040860294765818223798193221027798093393949851217817932368280081541359654503616249027091838443926439088705884004402210591483914750841395651837581619553149591542886510741352077895646903452695774448988799179557845444961393799859310845644235978891221818840712536530405782670674003006511912353024459241011890387587654867820874003059952592520366756636460650425924320993658620992414422548346457855142282297196437688520950697660489684844899833647913413714153846637680530404042351311306284841233009480833814716561516568885533329460119260869584958842068490332391269209761723332054833740052886723286635013744023074517981478609335391384074181944043616313603722347169974901228904559111331558211770686648228916220114712050493546882125012195225099501426318999128855387325304147000763977292734900899496846846487894404258246782461684168657186972938493901322933893893018374423690889617758454338028025417892373135740731989044516843298947422324582358035592823384769231449582284905520701213100184153671951689967590312171491197238143787722350115578884764156106072207236954289749284906201683672601004075905242404455243070317500139530305882850812722206667870731059571001865925851829564470334611029715206738144635375774831434156715491324151487057970019451193567022272460654725431993338785468025850943625892395229659544842292621967926455251559318782240831133688578700852027538796968178076724700715735832598003216426240022737627205245486882179436990381257733341942425127363579933472935666957502485913008354571303678452702882593868914653370799736820506354483021049734241757555328781574613718690053302417143597304626949666432497785570834651958698839595940042766052443416647732896400350240497329581028431031099675617737620178342053858717181196016637345653147324212140420831848302490885021161859435618692255620998242809154455026283886251199916281612129525903442835442629079463589984699098319351059053632234887188397461134734213869492594588535770727809647432893870254722572928224415072733089440038862669996230871339669387473734941939137710791447918624882519588780399875646123595646528201708746969274499449616549563831110231422622855700737354081755548575800972013702381650450422309122341392397817276822792634730434470191887566172238020463225213255874081541180694321873853247365086938262933137750646410815128566809162626174100519811554709294034521637559621305652740923750003248107986109543346940936119393064209944676622414359042383091068813051490258421851334196567851654919424921619577690894087423551249651616092790994842598802408342917219084031173072448651557789016939955647589935033840667942611104369968042359577812587788217809163715476533650857619701266901917333487295623882006210070708340216040908859657890856966957147494433663648842472800148252564053428067513775826416764974519760579412397146146039254267651970662947695400786717922701092235607567605656936200755717596007994372545823632287844720383217407391603909531634406500223472661854719699255058729188457940131746791017017990269515546999844210061939712387643236287260634183617117514513094464749458039165986636890424855349289723454949899532806715342739277653527876576761375867249938646049894123259044147683612030025112074014989650069066669500257150878645643948633477813118686733977620231983944261091555442269778962950457146284358874572595453609414543538179854493014244236310326299880141939749833690715539097003562658271439113202841756830202108136290931821387194755631886457163903096779146820918651073857521756058913572018356447455953323481844514334815708254958174799475266539047429165496240849028627235860044361901931752724169060354486344683241339239438061461684371157294145609395866853823578065411308845378315570422019244459181359071699764030590658294231255242038520922396383140186600052606295451686205520064140408811920826725913691994714256896383282211464828280988387462216946515032316029525143729810393423380347328322206201265159630774521603063981394403989498225882397839935200411538101598769707057383602872191910362338726474285145373886500284340584309623708934013693982380235145210872288211059231856265751337566627765288059250524510916872728232623569716380628066823487542143943100061828766030583913245154102776763260501384020245437417141927848539979780536574408830125164727239433370235326881706393587005363956863956923738235420556843783919796864210355420268522916713762489909280789877168068041302556026291241766098386110599928325165518628422071180625858466253293022481373164996575636636031040474661341765272511179585651736753379074851879089557425728016622376089597791233413420327186218488856876952049358811414288674436111213118035742943949791305338791151954462448204033529918463539355478970700342186823984581474916958152701377224358964268765239087713492872175028093251323377146389976176887493741414168531791847008342194726613834733216442173265321663998329660957743812975234197267430646200906689008679488443263896469418759288303423658856954390042563296239943718183745980682869609097203272416497629574023966844156951410922495767164095699285208647400377677284550470303034516227899012458017471534307936736387871866565656465382096741984527212102974115478159384503488777462921429617141550053077030582201728705931645448927946156004949756210829728761773282667961197070231582418612954595746576192033389470954974301847551152570512527852702955224798972221032444603238299515243309532371007662527024343808971395576352090953893860445306587601240441763703767810159985859583128698812015679962631725227840621906661810451034772441224882499110782398966119378859937227692670410834873656787120268124880322614393403645000717969968790846533214285159388235248897138860435398408795326015934548515166949562951226579320752531454700976397494699804433046947407504052201073594396193213997323240857818870112017171206219144518643469504279397539833040882410286792319877672441080467816748594913394128323818095878638962906056296942011726354997624397833983739112540805775546556171744347312075944702020122000871590908832068216601967277382573884764852041204956623487163516431172815513902811181910833683776871386510959282956761933956708975802690583729964181291920770595706713833832179020577602060560265798332872663757983133564289033920411119678723885119658366585770652427426699198026464736103703610205791079032293544989363763745530869626947630083439061237317281483226336126966174834643354074274627070153073992800380231368500410055397005865075510630233123058296899292182545870099477473270829610960038280996711236866203517394172791958384264780732974599667812193658233324149821635524757033834406081848687690243740772005168239718092023129286603270787321553329303487289435224246682313989404360353144792241585599517397810707441046996292428665801501864890667559303323327684067029867663168195468517977780083621682934696386695833654620841307355906684690212408502902300106810139319058815952222992765218754435825259770474317548997066071574237086279004568788741343141492516480520277798755087263833941908069336284428764756593914660902976419007185103018004334013307412248577780816269455309448352847608317457734210279597750074457046466577320055457981528399471580015201810027962510775637032338148083549218922127826233804910133322105956366343785103684594420902784923747628864960134112963996455951239368899976534261331842371990460041792024298136222731740799813738384491846719364968762894228444322637819406486292725679977995419470554369388943974429041737273051235230547977495955725441800001664397720141234666206082274046503188535294917949266827630606322495344373180727089419682625507973907231874181897294236117541823694590733208526447003217442802944217215038739059025376704232016192464664343707545325202951238179428830837174872326551875742718581644729630794492124013916657544309211426969255492866180193821859010000690942069666310285351596993568723964363619249482425357079420112047870199338548302336567843093306734126780809335863250658479256803397925338012098989678814731052108000607251840523581717213444560821802379446106235621024066199693784459113207956331803845314062426697146088579691296056402039000540090801557877831859090815394398652719243317955498794153639745971852069670580888798185905156616769235820697884975041160185094759874985794391635473282496970787864580490218129078883019609211591990047595183727434960257528635985870539454042152342766553019019726591768251916470800438259671951579738151929762038453776495822583219931266273703493662341643664593976419595986007105536322448848672330953463676539520316827950480817486743325014548049928954357850215452207971816530074096375467712106604157884566304253159763096553203465846986770089149640859177661998854990535067176772440701413450516017974571549649421155998816555379710692545125280231230895922366502974874581807046254874514532442331030380855179388696220153561020389626273278628290342159439839610677378583289023549212322743534835447958863011288961280198331814758571085331344269282693759828531343058553644710969391006894804376664415846807565734883004820545405258506384468483352170480546330394728230645935739287198242927630998378903615563401329366666719328882000950647862893105910784160003418736909018313578152789778117340105729762994501716579742121156779215188891191567950755096782706450580278701931787016885827090185907211191381893937289875809150372437531239256908488947994095986397026517943995383049074371452966823023549949635898037715515820024067732941508355438528434794302971032201087599238596192606940674849887523604756943713848859567728232856210411808233902985638912684491401959276087935907442470800336640052138764604884391217974243662544418265805221399466440080633451072437151285062972540567481629685561921722214304536143296446013047162869163680978119786707389028048406036092755977446958569730353142283059721073174037643888690101498962717835545339079009602730970991760539289224595969294649630354268665474192535908367870762052708736286606275381044634475709047470249310378254892967652292566131887514167833527920878462300217020033088509640752556231709804825781548668639340084103348246116291886180269386225125366587049343180985452430151628285762098555689209415000519652497475920779245488053963279756724477572480815244014250666666031896556313386118818478948827709710505178797578370895986800558540888517329215640750818371615584761959386815871790659867715586486862682402335355299335664306068040845493336336774006777480300567473018895211398283353474133383048521961853822298709765081096087583308992268079033565686089968134567210580858515932748887651047881791082840857190906457593094090190209057346729002610045999727824416318678853788368549226001340826852340665249315043121463098368962522249874893819569982222614668469747189185282032965247217952095577540799085387707414402938165290154175710392127929347164947464848223318827691559248183191759472071236731735676904653690215289699358319466253024403856285761764246400707931538426607041457545750283027744721106116865523130183645005734706059484020659396803505620744508411757518657963347790242910973516825867062625907467658144998274593936481788299821009484199787362825874635625791964432482998170696499182448235152101744768459600204490268481015555815982024258745211585556521434731967447976847952692812815057506442329922000241827821746387988308879484812485412008371010612439632214467750777174132645829066557651304775387244185711850655029621732226601888164109213569961088540235424681696564686538396581707710634862214144763964942329888869139571970216563463561583690831955503282274823924324217471572744181910397596021226624300314799653040673672366949477692742555473610407970880583260281250391824047682939009852693977922847296571210393991330485665843015367817973705535449425544120820320629261577202783611427081002259105132012316611100320644642934868217171236333062234633893842769327220840581046588000186647599084587625536734007904881963026040456107346710784406224937059735935342147934565154546039165240982484062588492991263220678720415302297829437636695709272190779925241835026693441170843325568953793601998912971585574390226888607687787353535617323994948767068564253166213379232326551919645504634724398966598448925671414880694531979554535151389882988855009583571642755525069635033187309830432561048116155800160691150668404991420835437300229083915607420796805555675075913063580531195975735123167101868017872274670178776524585991722025282899948215994203299731087976600014492513872816031342256770097812824993896165546580502100472966244354344691883733557066705516526961522794537068435249867185622165914069707375383308768134686594212172289951981256786130830039203038193002551419388952945655213631914055127770037201370021375786860068031939399759106203335417292355802613821478690718900630881289243411278195896620003557295505437121432141557707797741162752990392428379941083389974421151724717150498226782640357536510355677983805238445882551657211977306092081864727402054083147846080076566882305257416727490693480680144367433899824398982267385970287631724762668765244714824105605166203225230534396769053401627133265422789835323622499166143391735952582333280635516319597367172151990937612096289459501985667389110800205583555261345610454396913763978100871947253539546522139043570316349504457228586233896728674620842326831043503930626772634845358262754769279950501956412740858952335441891178460496863165193909840127645239753359068098550993688339294936207316692751494009936323071837646169832916293211909509933144959308484831925437983832967538223969694871658446975632433280749210377607905990508510571456878058613757463988358772019222912317579593736342186930157665007077316955364408746069340943951796688148038244827571427994500056861340232866385312098474945539277518779066781707765944355529723221956593822407580091420956800479536960180941198330180049708203996279538755996994838385546927169295315270315018798233671143919474006720436565272282268980229574962746071721541992093846480246465880288731130178326321482776998331104114114161102501659422371157997859470959527335455462754442435335137267516645890533567830158564610480010032722089961483363404577254896449399308281087393741302371446580410342864311407219712066310591276265867490357086681816237628165473587772499595236792219541115755289675456512176079700002543010211933335278767920145648119258539129635081554868479654103119675832930258337266261199774125668256412905596089511524838574439430641886703158107999273308161909196915589284301101114142873310011050255524869450190086669209754391959528109066607325993385204833155624931261260446583446667863374139300820597841663981604556899008452492727632370721462552428440726790750110183837274501942074824973892713799203972895201474685784293147762858788932493907462208007950255631394836241733032245112597507987386500532523977181744981090008409771931093791474313197974620307486588928206267530795510262742834764511380767442522037104055553451987535802448677585347704989830150105290482615409673970130606677809262907560005592610868788347966304639687006270521944003876028696032435333711993970801166522411995912783789411633314376676401289447785543017267362555764833677, 2, 5, 5, 12, 1, 2, 2, 1, 6, 40, 1, 17, 10, 1, 1, 1, 2, 17, 1, 12, 1, 1, 4, 1, 1, 9, 1, 9, 1, 1, 9, 1, 3, 5, 1, 6, 1, 164, 1, 7, 9, 3, 5, 1, 2, 24, 1, 1, 33, 1, 17, 1, 1, 1, 3, 1, 1, 1, 1, 2, 12, 1, 2, 2, 4, 1, 5, 3, 1, 1, 1, 6, 1, 7, 2, 1, 1, 1, 7, 1, 1, 1, 3, 1, 2, 5, 10, 1, 5, 6, 4, 7, 3, 8, 4, 2, 3, 8, 40, 1, 3, 4, 6, 3, 1, 1, 1, 18, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 9, 2, 1, 1, 1, 16, 2, 1, 2, 1, 1, 195, 3, 1, 1, 2, 2, 97, 18, 1, 25, 5, 2, 2, 1, 1, 1, 29, 2, 9, 3, 149, 1, 3, 3, 26, 1, 7, 2, 1, 31, 4, 2, 2, 2, 2, 3, 1, 85, 5, 1, 2, 2, 1, 1, 1, 1, 3, 2, 5, 1, 3, 2, 2, 19, 220814238379801909232622554161296321933190096976571997983038824526764031, 1, 18, 8, 26, 5, 1, 1, 1, 3, 1, 3, 2, 1, 6, 1, 1, 1, 19, 1, 1, 9, 3, 140, 11, 1, 9, 7, 4, 1, 3, 1, 3, 117, 1, 1, 2, 4, 2, 10, 10, 1, 32, 1, 1, 1, 5, 1, 1, 3, 9, 3, 1, 2, 2, 1, 7, 2, 10, 1, 1, 5, 4, 15, 1, 475, 1, 2, 2, 11, 2, 1, 69, 2, 1, 1, 7, 3, 1, 2, 1, 1, 2, 2, 2, 1, 2, 22, 2, 1, 1, 4, 7, 2, 3, 1, 14, 54, 1, 6, 5, 1, 4, 1, 6, 1, 2, 3, 6, 61, 3, 1, 3, 1, 1, 2, 5, 1, 2, 7, 4, 1, 2, 1, 1, 3, 1, 4, 1, 1, 1, 1, 7, 78, 2, 5, 1, 2, 41, 1, 15, 1, 1, 2050, 2, 1, 5, 1, 24, 2, 1, 1, 6, 1, 2, 1, 5, 1, 6, 10, 2, 4, 1, 6, 1, 32, 1, 1, 2, 1, 14, 2, 18, 20, 1, 3, 1, 16, 3, 2, 1, 3, 1, 2, 1, 31, 1, 1, 15, 2, 1, 2, 7, 1, 1, 1, 1, 4, 1, 1, 1, 3, 1, 37, 1, 19, 1, 3, 1, 4, 2, 2, 16325322058457877291874290838405329040355014765513700048680085134456650923731579613826343860783973545824051144225267952929217329347173350162751149328758990362772315197483134493125065365880690297016162860491626782905522810559972789153736845606023898746183087307331952904664711134763860908310007758695091193250545592781967075077533771788675918916630978129102588779471596932728607933713292886541300926823756572665958853158689035705367898562570783879905134128342682253832034162837160373908066086632147513793735624192269160596607927860201740231417660982862037043632173894224332222407173735376055154501897586768739599699950199537117085497422626767896972832908703617127286786199993188484016228316630464463195734892427702898297706961337328910149363041629289235434312530430701809386600007504955839347430827217088689729932265270517091167191957362769196968589340968084978367427370994290866570617165277654676238426879301889910034276366712877626168882327794066689202943843807817305435476197414860038048023766636401223734568148690828428613442006941086702790038646667938889333897271339271168511755183149282446038274406407430838671937163493724438569547732353365075899030604817463459501956103980938098115042188411255432888166678862739593877186022968130761486419125399477801554002710231138652824902181284644411775373732734212260174011793235501208322362343045389101140194670700452373459976205924872354295484913215638844345017148242751855208464964708011919785481903083791363348179089441179157461832173332193708084916532198703154241220909106829050256926215424407916039911247154269810385254978632203405262980745946554440559331576477726385957958054168593716542845637161380745991587657246904522174003694822110855369034277872512563359801481134901381545591985608587601291873377512324258037152476668880948639769720896858664939681983402093987799734620771349513352231932662081632090736977463483154053395981158139138332619190585785134528930539721959932799142364485168096485965091513903816383676186717818903273346644252248650673230834726692719607651214699979382881880247696347833167205186188519473411261545177142691251005758139283810667558351305697937795490828536723636134528856188423499802425757436873651969162382121944447419099407777350798129876612066345396520531227320083902346970731463922406034459299849311130799223715382942158144720922573089230805190317330892109583127121059024379247470140088057365526985602544049919059924871142264, 1, 5, 2, 4, 2, 27, 5, 1, 18, 58, 1, 2, 1, 10, 1, 3, 1, 1, 2, 1, 4, 3, 42, 1, 1, 1, 5, 1, 1, 5, 2, 3, 1, 15, 2, 1, 7, 3, 4, 1, 10, 2, 184, 9, 1, 1, 2, 9, 8, 1, 3, 7, 8, 1, 5, 1, 1, 22, 5, 3, 1, 17, 1, 2, 4, 9, 1, 1, 3, 1, 1, 1, 13, 1, 4, 1, 1, 1, 26, 4, 3, 2, 1, 2, 5, 2, 2, 1, 303, 1, 2, 9, 2, 2, 1, 3, 1, 2, 1, 1, 2, 1, 2, 1, 5, 1, 5, 1, 1, 1, 1, 6, 4, 1, 1, 1, 6, 3, 2, 16, 1, 1, 2, 1, 2, 1, 31, 2, 13, 2, 10, 1, 1, 7, 4, 24, 6, 3, 24, 2, 1, 7, 1, 1, 3, 1, 3, 1, 2, 1, 5, 2, 29, 1, 3, 6, 3, 1, 3, 14, 2, 1, 4, 17, 1, 5, 4, 1, 3, 5, 1, 1, 3, 2, 1, 52, 1, 9, 1, 2, 1, 14, 1, 4, 1, 11, 1, 1, 1, 1, 1, 24, 1, 18, 1, 47, 8, 1, 3, 1, 1, 5, 55, 1, 4, 2, 44, 1, 79, 1, 2, 1, 5, 5, 3, 4, 1, 6, 16, 2, 4, 1, 9, 4, 1, 1, 2, 2, 29, 1, 2, 1, 1, 1, 1, 1, 3, 3, 1, 1, 3, 1, 1, 31, 524798505855524709717258403966881667473442803, 2, 3, 1, 1, 2, 3, 1, 2, 4, 1, 8, 1, 1, 2, 1, 4, 1, 15, 2, 6, 1, 4, 1, 6, 1, 1, 2, 17, 2, 2, 3, 37, 281, 6, 2, 12, 1, 4, 2, 19, 1, 5, 3, 2, 4, 1, 169, 1, 3, 4, 1, 17, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 6, 19, 2, 1, 1, 2, 1, 4, 79, 1, 1, 3, 7, 1, 21, 2, 2, 2, 3, 1, 22, 1, 1, 9, 1, 368, 1, 1, 7, 2, 5, 3, 1, 1, 5, 2, 4, 3, 2, 23, 1, 3, 1, 46, 13, 5, 4, 6, 18, 1, 12, 2, 1, 5, 2, 2, 1, 1, 3, 1, 1, 4, 1, 1, 10, 8, 1, 3, 1, 1, 1, 6, 1, 61, 11, 1, 3, 5, 1, 2, 3, 7, 2, 5, 1, 2, 1, 1, 2, 5, 2, 1, 6, 1, 2, 7, 4, 2, 1, 46, 1, 2, 1, 4, 20, 3, 1, 1, 2, 1, 3, 25, 1, 1, 3, 1, 3, 3, 1, 1, 4, 1, 30, 3, 1, 3, 52, 1, 1, 4, 5, 2, 1, 4, 2, 2, 2, 6, 1, 9, 1, 2, 3, 2, 1, 1, 3, 55804766261128895795527655969391919772339398765204312283791225164053157666134891072784006030929137373456052204905419994883130816793068467044811824513061387061380223210542164102064172039147713877890963896761584131552458794487595818362453726421360423632618215483450536723269683204922590353143875377786387745765684751720981596825682176203889940580046689542054785657144529053461535298422365511351479684498802519069302746888666057594368978678021296551532942454140636502013344240550048937608561047825641885666349293910599859499572461634960174657941200141493777219617448088641337441364653150275428325327342114793595809144556744081349307059188894197946414970257900520602962384857806972899616980116305348729534656139810200239466738132823256530522186039190270688972001165589937281373881946335486447597704411193807219289103670167088108543892926241157251001708225820875967317733420119451979415594199366124579659518938310186108208226431780414601109345499545050061595973520603433175642488686353594238486603179905376755328134094599541318136752201006552419068531986008225697358575693658587061390152967458776817908113447634526802227800933015280240593457220460170161547532573574721990195020986826125173923950487369125060480998616954061077300784645123919378325326244211264665180529921457049964139669919213078366850850645534648212475947788954452594137256029519781447613882299667017317596576704341074404430407893178546418718873883342738645335543760043447608848425411075435166786832935570431828410213547900776128560435209150240741022118843324259777068615907047297189953864696887816859559514172034793981075501764378736095583860375886231865663693928039469598588990512470078775324329950903270419137390360228931305543380033280829656623678350952123799494742170189702026256034156930890537389027701427283575963331779846860662316865564817331963471655229861554456115981057911440648001733131237302985038386766690782381653481941539878101918717928597809327701467392073650367111904311223904434126535219094643455190358207060599770275196280654079864752041105437662736498433455040155428005614375635910388741976466609303410806143820864237936841619283351947793671507231612452934204894090543019681626323688507648530656290412642830600715298143732042247000445606483354556548667200985253842841970196508689628241843385275287457365528462191579511152931025660478813808621072352474127395013368840815404394337604115420242893664535706589378026216907217972164991008967476656669093710750197097832691851702286156539180009286993526255062166158296900767581165558221496971270179160457867939573286021705997859108403267208634679847132695788050193189091257392035127609162543930409734242215558222594701473099582608309391227652393260450717087822926430742820652402488474623383922085765667964395311837629163302947370339761620828158208441504432900642182285608217335089142943735244683011240264366154970692085824031654629852633912078948756092628258595167432731485090547578477812162103268192669898104781116179004665190189513505050794237119077593667252390604764592714420654878579942879403288003305784563234971603275898710027360051029201357918757409638308407462247497431494083242769773868096863922992920209269532038363312867127323965466314227884482251184352317553197331261762288590998576516355979408379029012044036741480000632751078116811917655869482018207684580450686899311003239661429908078119479468498967472347473510018042078892743527067377321246762920141850669990599670238103824799326611880774561622525798657126895955356353420767636012662981575264475484522980899660366757138035975730667543809523119343389633188641525868388669093020062244556712653800060083270309694927373577533938311860204700037120284453003499156646044506429454806110308975334169136238161248707965252113259818185060734767495919923127441986505117725138101854102949062661650980236024032306941178400572936380480480326239677591123511706179784501239972959687784388447269224847933742710324328245353407199586440973384796481983739779629837064049976560783492346148340034563065815245072697738013201394816134518657346052919294963733851003868495925534938027031540475173620007051903481141455825412159216445628509718894776727437109217638008674026342640945479527942406227943339607380221655309355635625138681560664969304761758483922789102604169847030554216801388242708338070578626073261808546865263271299386793770886109915665230787100775402235542295081684152728442714764967588454309410303431607369861373593517695423521535751078292574574484525152421221291733655962654359134667757121086123267596075502699798956648668821445014626998337562762112705323816576121844688470978483878601695751102468543651256346880010122791452994616328665368947669149067576369248826105472095707237448808046954805420184400548669162721226859221116275753953103605296738684691578062414930847512816813327492855872544088968292654505294139415970601689357981487312791921475380359278508975024235658764935794405079729033206239514131736715316534950361235315799369386308743090874243087790485812714299476011317131528980214287969338492568537620733914780572512089233651741662139911339569259049565166678546406039562202701619682761217081250094970373561683068696513675979595338615301946311577781376830881009339565943532489888628629182673908811630685875121498442255779336174125846965682059285835383774235368674605158537828185707940158006645738174440258209872777093239441968948374999657027408409450842476476410645987592291743006729333019053438902919938612444401756984621625071973209797074710665509521738548883054111167577626015192746752910567737248212965541644803990711872097358226475254905629275472782113732439661496791806296391832637480935554590365786352534903713152477881642237045452610877404428859393978967103572818726073436666308878637312367793704281307407323665016391363801473310841168353830461678470758019771195218481912434193186416067892878849499510954131115457340385395284262658164697628432631288508658892849463562063023700461655354057449916979804477789781624742939167067986585435419456151565308632251634974456249149834281006543026084663984843972849042571515007699695144903840887205971360444307893119064184305986551364726354853815580773482261913287722374668548309266908595709700978031137002885615325202575512968425742135645117500180509705588768490505692351114844862825832732489921808488872905166956083128546181106867839420147299881809337023842401585310149745617184971589456421085470059903340474698961538348342306938955388781184284743472480741137415158657753737206898741011707736990068593328965380932831829177356139946771041871667055606948593749109693328348234048621518034749943297446438726242359790677290112958327789439663169296661474536141108840159082330751850338304771100423665093157490392028669779724002621732435564061468205251978669151631143306886696362451117083983776947183077934447578699183775235679105414148398985932114021411260014785583560173554822697051857560205583108276067570569376764254771592516708318127232893581043688002269920328214204286559728532591726118567992971342365406528409336866118074097622098785654255780810513719351921155949182197456958930744308389979565342079201142204800546362997153193400521193682331215461149744052156113633634877345022263443624241140835295198779862843796898399597785952007874376295908053209781266019081475243064918533991357296962545386611318882248332393021304661677952042428415452033459972979672722918759922490991780797971698219753491100550433121275223982606940037518423809504838188058796809687331330730503260616764600259548371266384484114447224040442779726787566658993748606721894217981902832454258221699572315486653537865050747464350426268788441661346767777432651298637001332471483223280215057499025477803339397250555454352733321802704918373445645508779831249010537535159556978471570330703261398614185903208406739057919095636458278966880248096084294440172771628624063343946597614792223877219873171588730811499480516163165853274010353689751784523893495763780782150944684749188579162911286196025381033187934389226986131061731990048810884653252410621249592628395858705481685054010586050246372343310559383377139920203382129495067233257785249922502406398501280208195413015104748710605461298059338706662028894288150106206613235175855456269662765789120934235960856476674272211355807728635806213635658065704857232352267257780071924516334911112412880533262972264309738816397071829466888933163458257911204475092794189817537447564513361749206327495701540036818784013693097014629976908574188060351224774653680481457474710039001191910965353799047078159190673449641308456824128833571613467893610910084698575334359369823230161556355579970394983839597323400371862579486461226977011951508156854243224555822140316495607808031528798272365059730646120899409051274011981108205935509060266168716559361643348264212122654884879055895395996868451594633252402389989787437812509832758853579474973982118262467433329552268396831245216921367293928944316961975085958230675273575652590526060629724754001922433095345987931646842190794141097865505251474187523655373567958663321146388094070049087160977545421239028089768103946342499420139245842977936187803606673399505024899930267991766651131837555643501957771008677218040058235455512509161912220553545425576598477561542378745665892329897588252175463637113282876500449037789290073433464408044759398127094074590888122571318303842461783289949361802980903477117638821374207285503306565005728165269118227299113812548229622901401815277537416938296316010649193954997551438479578754349706125526664372578309389096751832632737765538594308146884280121861759410972137724310839304146075289263121083418684456292056825562717560975537454651420962026837749284801510226294109951218821252634375963602154047623065605084077674787304740647913103845809242089255593665785461231138259213395252843340328916121587276661922191700763770589947203211537212921162668697657379159506979717014794497863004191012618290405972822283156334237132678986292682968020096537730819389456520167104422097240946230839885108249681830094873504987021749017611845533157729204094642208148590996363870962966347731996136322479411407933623457946965644300884311767358980308537514212630737329945811189717817066208203214426781105296930293719108171805785037002850136070827582903589906758560783866438418644009648239353441445485606295462484959101686934562541383116901422169870879115905682654318100177119141115155718132826993115021601060568198942046515226049742038320412851500491400606055856147819053298684538468520551116088360028009464702515393321348322349165802889892984369751860370946853031355724125341431652671151678957136386965900427651867518902666370461697651732554387711193922272182034471187405981234149115163221026863497702083866629949510177509529704209902438810214582455000900859945961731753454454064813461213405294664622072501478828125279759630176456883313990275436050329054574070624026684745501030939786714231319962432636594255500415208361654785589392520439537174473332364492886048356926729541006475357604008529522970588187956029587080674474062768008476330184015706653577162946126142626135828368473843141665968467304138167513948694966345819789998806861272496425415059187148425001784878682036499488365796914539040052475032233177006519115262374749887614394788918118367417802067503873411210300732254262267237353678511944275365428443452898122747277410016817697243292309630877207540209737312364747291687297059843357192850576438790524210678265085836662840328811963256490328434944394378047041297248877833698289961954952383684763705607245062299797827327743206679699995894893609499552417349352159487753584794410887853352123844553610785710167600327885043256220145273770393385297483510577488824514335756720499554993305877747191261668551451897837244456396206646720605651628604522600486595467934390593764942355668005068829496117530911110682628305552538286743710338885903037677200437379303977869578822746645760295884301596838876523119550168926573548608850547558810838111750384442874753277431889913348326920658182702989781894437055921494826348287129444939671215095105726300526116851443282412537034478011925260330300986289547519271823113852683745383102209381589701975263130654106472239976729922680900743751778203458408733453135058984619665675014943003133381235622200133477742460278819834081809979612027381209038972800735957134998639032329061437151873320061971485672374005397898118278614839840233830781536322309531503077726477084098718661969162040714360272635919107781565381964985207376225759737681471482432172442592826529955967007387243115290145960404965516872107491010234013046001632455263756064488066832932113254558147518275246269047842442845089066165077830971802625457870269951678568143686105182261771086721168897431286826882729429773845015058611228046332541942851686001341281291423397711857623236589509168126148133002080777090001397992343658346732465773481767014341329105028172683309632492050786403417404092424129078607255444959880244949829336988603068255271397687866374880346801239250877152608908820709066463544696875204051456904796491142149345407489535194252169230339513208033354075931513891061791272994504985671912835862210324700706409438426369199264681045259834303811157226269987605078571092227330567552189381733100286329806051368620121209254132534495311749361579338068786688722419071128000744695748105715019924621861888432005053643926809115529844519839668432764408795748373783587152792484454000417448554626807036472622239986445661898977313111555755862764420200655894353079525795915301986001973300543932274628426417975787798023787413463124472100423567853444216680735385373121248281073246731651064130225678571905128859621722723709657002948568051537594324557127614161106559574107419214214063563471117919892678607711749897726854300247773445386400629411859090836232024911908814209710197039979977278981020814370882693232218684653335367672637231319771792585563521696988551116502083741032599668648840428284927320821234138109520942048839968679573469566486499409174524550173547794616110465818758993076111864559142971724894823114024527541314293248755823460451637217926442057272099287619387509180834545322307796698609612666520864198265394781912295842524616233463335583619644857350693008200719381327744564504446231014231339283966200758191689484096643666274051701948767112418805544506239718590167495142661437224719821000929810100730410659022031851692390852544329650904767659238870318531239211698474584098210377282069163720050627028135649744927308717506987627456599569297024715462685821286872125528915460355544813490340580544685992829228014923892063658552575272927738169174617857680686438454761874514461084216208109090538722969668664786939172689514154684425024520160866862936276669895960634522221008057138422089454642884140444049224436816867053124295215820945324292135483669925495127909259573953471593704863403889016829294436010698913010414398977537952752707661305370574415256351320973376156063843420380141060586482159621359647075565259429642305683436049777397321136103927005031883155040852777124079545294790960111343346915253242091382108315170394764472170228963895569867263260914218828378205237128179523815704721942913900142801549709938892729049601412128998952360807828028956586348244728768817205255594238787850034506002205266424133002938588371433433843177224058017779966926288213053606901043858838188125433536675466016891536964881103353754461314543973623515480844095593354145523149075931077897443675112223300212712586868530948104270185844288531642943658254951148485896218499134475938117055255248646338970760836158863499837088295206899748836128607520158595615592637590935863385587973573870542156210234022487036195113825174064939935597694828393331595481270308533880181316526794598842427769200659414122400979951137746713138845653938465413638024109264884734948967902325565763778303344219016572308626812536244500457446012964376920516258170810615003504275396126298959695333475210366039819244356842456339902043681683872743900410186617599713145929834039578065101135186847028410921675365632680326621294674572157035968072825851410771911225540406732014748794947280388215319908379411259504727524593826082946166078327951233186913856092175939191953828557148243278740972630044655187648031121787514209052790694002989642286509300029581936785005396732779287147173783378025986297174623806142000050798146057608461170483889474833990576529208246474723912677006783712347454224073481712911973052739111279674870729699863680928438976509811522223956196829493279833332318706704688555599272377487616171637711715684542851578748616121117634522077084833592297240345446228260727124606067467656889977748668466292484528126759556158927501855503046918201942524791480070595332787004057101270002369786236961485708396000532209090649305537047977202056399931503241954532757509942688330628533170517584741833099292352440616693199408149618274445770270387940856200272220366759010044624159329584263412488948605629179717678190293257434156230215758506392190089862728514522683902552933933172712205677728051780137622028226106956433109082165181485099954246884362364505907127311396976695096927521898280077202772521161181145759765521237932010713224555120642501629246880722882125582403776797158644361789031061868220981108156505632542946057656994687670067547006255486312210109496733358881086850050646663069305185801971821908008488909325006094513382333203164150936734484334148896852100543145619884729062630807011354015391804286766848015791481138293164754178330606617001561408143380130742777384956600999449269880667161349897787953139691706989037770177047229203585262482679382675602616435033724217782768484142198863318218371958307024379929987199934540273453408901144861405329549240542089886996443923045434303037662236725299355700436496901447035319349544004358015322159379442653222052826597449459098326554002273920251107677091575455224195943508163898491995843383461661466657988032919642050215438431500419132647554207049362701565668725154485281539484520966305121377684600981973827723572155060612757385518443207698285493787847913907679772867437187160416139951667403013439944500910472365758571200552651308241084760183552253492712501885498985755217125576718854729546433562312409659785964921843986982810176937805831628504054752182990514978745590574845016079910340579457243200415170258580417724304717569825205711581817076877909601623314014106408355493303477191345555697265582970413450424105006236627711379260926200759367366854788037890125086120158903145193849294236745662466235732545366779104451748970866346984500370243536969196083336221795596195173857427994523496817156310525471959517378302288164421312726424642252604625777375884941847321665249718859918521716611845477850731101356044423787445766318648459864060451692555734227280262447008258882326650987696984133382522262717344979585328656735111684545473981676811833375590135377269232050394236019532349327844984389655728204096046319891311191875164394777557822796425806539798452402351025523302459231179415219589869869985013073035025738928791960158739858189972093164314962506486388489589757447797200867422397036262757890237901177821808113459522508402449697301242031598219098758132700718698891550813327024549691493725155123434772011018952306136283208739761282392158731922671974397545076246639315441010597465965336162526508078126685455859067861231830923756129487154569507902441033745699473298289211051262896850559131908648185994363225474246067049079491160489715337480139715435420883771098803906449214180636819113882338056320095180829241191585966217462634927909045473054332854754313563884499147565701028044450799731939808471040815863530540326097482714150032630216667394554814986920030556241422043667529044131986102154523613969178277686602054305864553118122998093867186888185950383971316900281611613890181502048295084053347111208220378310464709786191372393327768849075354712861763591938624437253955055930942316977833847943797357083509051676956070591962287096357574590568063111240961854824650286263843066009543593171662199194727813172261520013850365185906458354958294449748958903021170741724148117649777033490163703798803606910223248404989170147105772329255512047164917254821586766452468616157978483103734445567217123050917045360304641587018152140358287264012838915388324444938273381284766044786557675593436862637816597689682266045997931223829854637196116252594698192735611863711699903574110087112537282780872547206580815601703902256371027640864102336485477555413374931335798221607385020896127604328605558629732612107759664035442964242979367884300922113766442708598610830862784942670980398158784963046254885763536796679914249854281744170391080788260490120307859825821478018976779282541766293079971348041769556932624064830907027407485056653434240437868662145397683698765338920351829558648438077812684521805271365015485180937794847191430259885030532804188623297677264428997845861292412104430942512600994853359616909419533549829730425151701597630620371916522559920976917213923095299221192395822268041013324702832690843114016710938276225443506162943946501361173291193188063488560442653226558623860759108047023378684823896631838959271305318626236959364450277647220849859909053062829046234852804716410761080713791753179739876172472617613613519165376550777205172864503356114110390308472830030614339495506001753154491863299456071201903760154384018522122019896810377188156249580856728685447908395195424865109380558818575739274553643623723780658684961842146519219849424263163495841055354188616940288908540434404906809604312274713756893855991272287991276623771259922007370767279429276372412685682538492780835530154330343452118351140484696499465123361585462408024743163171065911942769230561748575277204380415413491959972305190503223903516395329637966555204594185809213295173851074449528804372046289039857992989517243905980032884817400756285186636686203168745774390074392709733743354980907923144415502542091900946261736949939245143717476092914888061587105117468055843900700376328089387008664200332231733184096496241880029171250923948556985939802002112340704445413128479489893261977587544760755676341641405652383514702206619335009916303339929363556504046565602693680046224897438554345764245874043481941480192523860847469795903856932456338182335837159477533361437696678150906154381033558322362450317776899287195149417812468952021134267485303840694287322200030948499500561017860566882317015331762641450350617950042222158443502278885478888235343699558720329425208740940219001748839709724857073883030659343359213657061132359809406935902526083792876776871054924875082175155199727518741922999030644686462587236432935377925638862898157660649859130625000070858818562238146427071652415261133512784693257396890645709358160924841309087033395209269175812527794569010387561986030433828109760567617144072199526379274503801856623476813163488804493889247703114399414952735095681789486243482250343791554755936874595388086504777649481583121298138810322360616307289935579101775342706890324039318436245509316628570319541709362981492455821221836724123571818545176325731223470673905117995080070231719298951846475935418350584111388447164752024262069809357777786876364719707838326390208009616039436022038181729526332510708177149187891998394614083748518741571553683510465975764651288207086884141823252606947085924554855202155893102528215534777078175570917909091787808360831149425842049006777127526448572909412989776445663733914848206212955284460254816323611477824758587815916166966626791132833917441389712882083709175127153140741312805963864599294767843521706515280374662401765678291634425226826549585161200223030964484831723657706661527908721539135972769797184971659553307651833054780484812338107054713469850417724053416646578464912814104996269811464807089226892510855468352475094195747454963722325305150165354481759096965328373929785073308465370573741924761530306799374232211290666697717318199246076414980592167408105612278532707403302442656727419253824051990452187131063642287123707826798089205388465749298577119430316950481870927226896331159653584679157523757456598074110619370749982417176155308639119647834071670442939513257899339151767263386914655826938198284298503761777698487296630409734710579190450587707838700074687596727352521176559023822001903187920798102733253257879166361212230751365438716807705160797099110115285548309885640296115579975047591957075050182592784502265701217530461725747862388891847508480362320317787682763209376808242046017469832540242798565021280360696095413664667503807031125857160088287854336703618139576159483370889227418011760243024481605974149412536160126218798158227156598061187795990885408883939198733147878264308257546823369767242164899741472203318733595365705629886960545382706511897759946985377468688176001226004116553076533102794715064979144098088882713892553696183073376798131878829186199602194278964469279808937116915855797392467686927523368569395221158800758337522316874951052746453263615613367606687177024931130592813497358357348543998579925313348261084931615802124660031462722830152572030821817816887564069814062160625649396273107251975364302365220404123993345944633215716613422097564310098914943299750402080976143309503776268967165779062933928863896524452602483862628065469678385235556860138612266903416815220321241713566202261834553732017993630846719580611760682903798359152100525749403229954981953887978471939293988263292681597776783675845449348897946300132669077409929939044985955593641412849394874520272446252275475384133530614996894206203047636690018624146427649719884079387766897747684431464517071970229118492912787416654293221962176114307702888775286800234967540726753279830492561276576038739950657351879591200723614859919878697687877661029670440495274326465682896635856516381318663550693888920249521267111217098794249350679277249457636458872101456736576482758654642809204745308406403421669297009471693978568954703643385292470204376391672492567334577325846383477128337929962616966323402521299770723831135653077737771247985105817295446597178212950173925663961212212257690286652326619781206736362553874210905166453403121094844689488297889724292157349419131424951040993126045718553234931543899428998112985718410641711081043430840972321669245801481187612471590762048303757891735435084721932062674186452657520636732023624863434857841376995754699542229860374192532207468359122389622674098027866224258427199770463441299954898857753445393497738310062654439304515341511910504814495449921823518380472139827341252194124779142794312603963290758053503512037308804229784402708336181719251531147375563954991483156337408885418463213332791809471309962431114017019257231918642720725531153298598742760808917691184396454727262841256284889186300977000040990243180194596797689078409001868348917643257522010163907444298554697842288270870532839325701849019655699948878776919499604448660141777685789411796883635173487602244900149595895879161436075966942140120448614926131375014123434210736988530154969618350415587169823761869037375641328225609585343855521642835270853764368798846931430136362627300831782854718860364458512854541198345544255595114632304495652146379675782681546442120453358866521086763364816883280333842483933830542134859624266182212125760913384566929605240575246498894231985287416762263053963562136193420671510277812343499238179186427396582343506660669294057053282645109945082510103637765268861854865428530361933315282075729830058375855110479254897923704615431784298445821405771819202449451245127493257451561044829397286652875185881878999245336502003993044173108742306652853441093583412932362630728242700622239568495908911460932885058143817886925223333884324265914168263371332190680114205453479326098630361153408718577547084542682266128993638920117845709962677329507251546710968144801637078310997569724854409317633686657982686455659243996675570518033178468779472425726648995645001305547488916887176253420587751137628534992772772277255226089012929117743542254086105070772773641672519295852754439950659853873826403680478594875203925086196927419170140961143827319284203872680708692852926593264891877392438154384492553102212200293026571869971355355322887072871742834751856986369277715973518731728766506351300800381792358085462589252690632681843142192273666434131443264663782258649065894522704021618570620454957979260774145317900976678749085847889621237458867232584017376808982054352636981545851027414033756925823571853386735165199131189804326715064809880006149079598972295661206311568103294395816281230349664426473326433932323866764106228769677534101339404537448322752684091909278626028705295979594582479054769478245467908385013335565570779420628980546860984865572544861321374883920762872260262162867395161250851209974552649965516338634028363096836226043777412740510497366174243172926289768143649201358340820737530948202181959994733499688473586649500813644723271551345956012955283629692667174795682569698864437719479516955610863589283305210561721973518356433346016992645417642513145850724784311535295612739430085537322648292374873824211292450981766923885834970440139438224565077177476366652039291201613177763698394920831422016115341301181192170965513570358792967035308126281924945120936310009623963378965074442740233973432469129042038332228223862555435198665379718458824612868578421168017592703057057773666963529015798227432652766570083148270772462351330834422190152540886164787087242599202426832420114702679718605477130252350399996175082821168284207767893374992323397718214728051714491275690886949498970175181170369445951046466689380866166990984383724754991043978921243602757047264910991640724096767086301904336911383658936552996013484926532166792980783545991920796529291725049392329832347601588619864735320361146889694326430643871140642868703197413653154907243553722454436775325708947295345848141104780383204257182988757626465868828329239014992515081000585836171269256000762696086768430687346479190991627382703048170338998128831794008430002159977102022450938733820972123320132137020835465919589545204907631435263292533934257495031317837551785604680935229454017207587626740674945992444119124333869550566484985523609715952731402973716344984625723370402644775616283932944901059168955214864437736102895931601644424160013970097038559254752863451232488424707167658614693416785381865706529469368623019332797338012740188584824072975542712410196887201125832179097197519615639322128005368749078769357829025230805507157725288260239439001457290909679870746624237117124971388605245236738481081518695676706508586045996235277761388121488400991967972036494118046450085708125400571677302848698729365805316071739033270863417422602478403409314541396036452569584416128269085064661932363566530581479823168060819795300381980024351263615875017547898223448169295969415952705678975780878408392856194588642266171901936288595528002470578834804101703326625527521041755174448625556378575743970416181071599591390424278758122130494035115446734353821165748613112967615704336722880256619376182531834358797834896035902451296718612638045918195361062796722189097198443266139562324733550417305580685244881944550807879659765636410338673316094187297576052089374096285201600762489298087780627446687383473274684262866331607478233722759628211553550439083741362787652888909001433379354330570815178107237876697615088587833340381994414174866022588252294512766593348102156785063231424188936406523378033151290063330989236920049493897116419407789033484950877543355527173182778619359013688030722798868235129083483829607938143750654519341150745608310800232193537107147264405976091926476666731507243240249657934412882525518796410812196203854281416372844674687003587159393213944229425632274054192560511167714177564589461054209562043585698025226682879464392197596306702423097362398089878495593391957267211026797343994876040266705944131329663306161700725906471600115333716731727277643001518468382439978895959969682015298957803405489347710342097862672263552273798078296478902116939238130608112558870671356676517496519043334945022299192846948520850360186918604623387282621767238431440829318600045934686710907801321964946338544623913834992498645291367156697251292470042636145484051496005066432434933583012683677687135993211146674328177741803130404755936472054193818649970246579179559016227079969286214441268666523985195119073782355784476086844584999895534423741485286547122827647131762308082595167186710305193295525333612112695217875956504998334788970389610335339893186676919312014626257498403046755924242261594715438327990035105413775904181986477271117216404128869751055142231470344865043942709730229506704113039965443758348371649400774942063455050634095668921752242975450185674127789204273201670528425110877178829312353580483725293541325208178931307913320025530031702717823480908977115392596689635823759920611848408925083065030251491994034784168070654002185595247439972791918599911722286061940585477601058555449448104258462112655730222356615502765078419681219292617826818687037452533260252203025178315007833258915917439919574715221686886553931775819106242598546122671476671206321319663502517577571666812156474510230015829899896854563053588993251558324583499555507030899193202373110744732039015074539947569392073063936936748222275144155641099877737266523478345576848034331783150361970634652582834449538826557164249990319283998592547143268760048865274701794827912218953533186854905514557202455539757950900223823936231429981686753369276129670412965339091773884313258442790317086610, 11, 1, 7, 2, 24, 1, 7, 1, 1, 5, 1, 7, 1, 3, 5, 1, 2, 2, 1, 1, 1, 15, 2, 3, 9, 2, 2, 4, 4, 1, 34, 19, 2, 1, 10, 1, 1, 3, 2, 10, 1, 1, 5, 1, 3, 1, 1, 27, 2, 1, 1, 3, 1, 2, 4, 2, 3, 1, 2, 10, 17, 1, 2, 2, 2, 1, 7, 15, 2, 84, 1, 2, 1, 20, 1, 5, 1, 10, 2, 3, 1, 1, 1, 1, 1, 3, 9, 1, 1, 4, 4, 75, 4, 1, 1, 4, 2, 1, 1, 1, 35, 1, 1, 1, 1, 1, 11, 4, 1, 1, 7, 2, 30, 1, 1, 3, 7, 9, 1, 1, 1, 1, 14, 2, 3, 1, 1, 4, 4, 1, 88, 11, 4, 2, 1, 1, 3, 7, 1, 2, 2, 1, 2, 6, 2, 1, 1, 1, 6, 2, 2, 1, 3, 1, 953, 10, 2, 3, 1, 3, 1, 1, 3, 15, 1, 1, 5, 1, 3, 1, 2, 11, 4, 1, 7, 1, 1, 2, 8, 2, 8, 9, 1, 3, 208042716702318960771954333920972047568494320960778789517321336404675308394, 1, 96, 1, 9, 3, 2, 6, 2, 5, 3, 5, 1, 1, 2, 2, 1, 1, 1, 4, 19, 2, 7, 1, 5, 1, 1, 1, 1, 1, 14, 1, 1, 1, 1, 1, 1, 2, 2, 9, 2, 1, 1, 3, 2, 4, 1, 1, 4, 1, 7, 1, 1, 27, 1, 1, 2, 1, 8, 1, 12, 3, 1, 5, 2, 1, 2, 13, 3, 3, 5, 1, 2, 7, 2, 15, 2, 2, 4, 1, 4, 10, 4, 1, 1, 1, 1, 8, 15, 3, 3, 4, 9, 5, 2, 9, 5, 1, 4, 1, 2, 3, 3, 24, 1, 1, 1, 1, 15, 1, 2, 5, 2, 1, 1, 1, 18, 1, 1, 3, 2, 3, 2, 13, 1, 17, 7, 2, 17, 62, 1, 2, 2, 4, 1, 1, 1, 3, 2, 1, 9, 1, 2, 1, 1, 1, 2, 1, 4, 1, 1, 8, 2, 2, 1, 1, 4, 3, 1, 1, 2, 6, 4, 2, 1, 6, 7, 3, 2, 2, 2, 1, 2, 5, 37, 1, 3, 3, 43, 15, 1, 2, 2, 3, 21, 2, 1, 8, 1, 1, 3, 1, 1, 3, 1, 2, 1, 94752881199170411111433786604363769785411402448531951951059908964055493704758282159274999240188705074390340639379987491612795496070594351142747324159634565931564395252490650848203090346496566089490714274994818407851186770674627645499986993602704923355616651151064356254798470947949156906067285345133878350104710273369394053375926960168568433642531141685929371362944494047613908598879890675406826696035548484930213444913960141031292350402028554540547863439648522293729896866183408763141880686342789615837722051809314579611224363362659058792269212882759894763614380119347769473071374031889964541950295898716419854623581428097067801761266216493684644003397604290748252549184926710229203289286177695917556817779878264414791838027851687994112268005496444691233248458854278820222123276118756753116808841355291284676483367328695944825652068842115225372694160163313398361738253118759234772421769555174001885817362888997798121239126260258326449256169422908830164625310847554578950798483323118017103715227892670897847828370913401207399136971652585203530992607345409529489199889379352840978050543288679442320760672589452584439536947298177637500774775212081208585241799862782770275765498683857023333197720561111758706101492349729657784518106323777342076337017034819285089855642326697430915081452311598275475338949149969819148531740919662388164014061558344830845134004213060220033558547501871415464849471347215620254603538257773532048359428197302964463121447006804559225695399557833038792758351948395809947676402909044618300591902867718504728420470005857635631988917991271236537155132667758909652221608713743328428336309646795605216550756539634145750195443314463438277081212245144585355601572505898271180751259810024409995279557000765040045602656805932512962832706240716133204725142187662660863176715677421730994605243891552478738824563646063501446357789839647022919306510254532056865944776419251613878037091451218245733259643117880143258094438213114882608266610221914004483343848084835632495690361478668336709948072729168370828500323764936774552005168528908127140078830640402376567808530545729914807671608012995043526442207966637647979548877925059501632429721887032706250493369680203690608023400945381079291078647542028260118534450743716873336333052588213032913147598061103891181595310360887387734685314703049448540838830248733515980538129676188728954136318204263694789094358861989669951776426194779855689832292888063763680404370281606557710931208129, 5, 4, 3, 2, 2, 1, 1, 2, 1, 2, 1, 39, 1, 1, 2, 9, 1, 2, 2, 5, 11, 1, 2, 2, 1, 1, 1, 3, 1, 1, 11, 6, 37, 7, 4, 2, 1, 1, 1, 2, 57, 1, 1, 171, 1, 2, 12, 1, 1, 2, 56, 1, 1, 5, 1, 3, 3, 1, 4, 1, 2, 1, 1, 16, 2, 1, 1, 15, 1, 1, 90, 1, 1, 1, 1, 2, 2, 12, 4, 1, 6, 3, 34, 1, 24, 1, 1, 2, 1, 3, 2, 1, 2, 13, 5, 2, 3, 2, 6, 1, 2, 20, 1, 2, 23, 1, 2, 1, 1, 32, 1, 1, 1, 4, 2, 2, 1, 2, 6, 2, 3, 8, 3, 1, 4, 1, 5, 7, 2, 1, 1, 1, 15, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 13, 1, 1, 1, 1, 1, 7, 6, 1, 12, 119, 1, 1, 9, 7, 6, 2, 3, 87536061033935666328628959585775034673280920940582218967869399877584019785812293002235848954737604775, 1, 6, 1, 9, 1, 1, 4, 1, 270, 7, 1, 13, 1, 4, 1, 2, 2, 17, 1, 5, 1, 147, 253, 1, 2, 1, 5, 1, 64, 1, 9, 1, 2, 10, 1, 1, 8, 23, 1, 1, 1, 1, 1, 4, 7, 1, 1, 3, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 28, 16, 4, 2, 1, 4, 4, 1, 21, 1, 1, 1, 1, 9, 1, 3, 1, 6, 1, 1, 1, 2, 1, 15, 2, 2, 1, 2, 1, 29, 3, 1, 2, 4, 1, 17, 1, 1, 2, 42, 1, 4, 1, 5, 3, 2,

"Z", ...]

What is "Z"? Very likely the tenth term in Sloane's A038704. [Only nine terms are known. Only three terms are shown!] Sneakier would be to ask for the position of first-occurrence of the number 74, since it is the smallest integer that has yet to appear.

 

2 May 2000 © Rarebit Dreams