PREME/G/MU575131

053183479225710334829347860201083463011553138313802434100876517970471033900025264238874490298687336405125317766631681744668281173000769001666692189919941801074298296413474211065734584712800978817584800948251435456110838397686604356040663012944580834340050565069307988460202743041297247222891500459967990010082010171639654639331929609107278122004577780086366475785984393658389885495100846365651161994464321429282158809477495943204558895955918405710322887089154955463133492198133806647282379617638974918368775036274822024053085361174331020390740680336188455197797340425285249394082673183395645673448321307028083021154675535935132320351414422721708297583598233988407167919962916117160604914482753917102497525567150550912733356567598354542138610466523169654762413556411838928543369317562768505284552395655830403547386707304584199166141841166598974568540334742671416219935417805998929563398182162214116842864256265777707385898144727311613154361095215453143384152481133289204780030927479075183486546761080341537008125170817574610081294102912641613458398885636100021303988348499675632259103804110085398463218096160984803975178266584094709605690906594991371842438053535899299594621887633719583858980764148669006691262452737855839900212680195021318561215227569946281455730918021402658046336119860532456551465578715697287607387120743989724998450033406163507667376006496036182399259060639511111329806007404904961945947594330999411052096828360033099714474174310962910246301477820894508219898450034719045459425329160837201875097699711328942711791987205921650532934739675571650861137506408807048161050805962407090463467818567673654706152501309443546857597175456097556277560688626436229932111729871410877327872232225728204991466385921177512906420134803731182432388723149271136876145201683306865108544587049532947200026377544873837152490471173207325729919480934068352759832404561347423022795401584607415521804148701030171586152675572711312387691613587402605742272314589778882851130410389322578756412017723234565602110310697746253231188093447153458409666508360662924799639532015005152506105107998914340687720475868693126803340041798065857737003838661577895015932689389858430018012276224218849056021081583968495787674552492746707708292383135854947358458157026824232893739586846376821679433816199063272747155714768393864139320951131004296293906853769389003786382066005157626572338955696198837636688760789641920889213589069447009423480938930545143853050126970560618441087510495693075085606655548572051829194501938803899569337179942588372704876403850803755198784439625521744663611750215677890706629416464660483496715839560631125879690350716251796665498261466812032135416379732061434996286395988846681189561586153774127224810345041528700356212987025190353262707722830220309684158396934774641489580722656132750048098010926520345940165940229816471143086150955610216588260786143666370059412092668413511074393482624137046133074697258457512262499893332536556995631535754337238708221700606552060424511300405559709672696117325388413230741692072112542860652776389492016782664163124964251716064626560952077615059925066378154972606230164897085066843970376843589779692027745153091539958623016175342637398807384224886315982681658789516906056950141033738238283613800938802165684670434868698150276754477133736958746496324486869421954998286496521173352980831357645513310617254302773091224461210709995062820486553381599266871861560397956337611507991114371916009984062121935049270865668250463162120861860361095716579943105140837454547516900486861947900693574143711670470125750355546082885082974718993281227988853924766529739635236001044608746151649654184814554477008442205587859949939369972748215649819565687657478394286810585906363781043881329896787151343214667666545982828747352769082362610289593573210758420498641422651101293013936040147163103811323609940321134613515835811531684789914994449119294897693482806484469657803363441601767189567296990484541287292361573507432174430466936376051114938377110507342731035245685978891239765783792815927232957991044855206177200199777049783340508056688365343331656264226894292243629149023702613959463750290829434265016561963224257308081131563250902305178667175622911655121119025750003884995926190827300840705236087203505907791318063985681551475785857261281406429420862345434274468508958890821571996912886974462240700785604362009437469725450305263427266124665354260149120275018787011487608180990748263739302205210201423672305747890527265264780913075859394642622557325813173027517661664971873008479681067699440500821963968333524539817544743108551591777003308900004449100062304470647177693050587621653764882478668153061151070594502386322823581556136276884034285359939584897662486470818760212595911859312329790641850246880074756439404041367646454213830875239193459538507771037916575387663756302001220098124171151028966523589175323671025344796443678679345903384371399188084350527229455714247697294388222459142488080766364195000026571537437771547732702932390988230272603892543583198348288470416967600219322787344859057244301854914826367535255590726281213295686175285512077493840933663040887394904318508256030886413953333420880931743568696998171694907781803634473021217874656532574272439991558007715943208548322462418636882755787300103706371880983666206901311770705574207011747259038778763705124132267869995960320449006548650490574734404348444453881573818807813803475287062573725683229190896414736039819504277980736876647007078505999805092967591240362491104010477254309521267947189096621741490611836147830322212224510377274231464750730143113018330892090503055211353674672915171403158583301238953558356062696507625809885464235656136666931445298902231537132052080268619471901563148411648643418007567689261786653103431783364727269991461296929644404119250011401599635650767733326167836458943420741842096429520235815355076187786600153541157326891194871620113163811558914485293005089171803869653385351770411956402240998664029848073618883365297661340915443121515042944450612395675114240784274583245265641007582058014261215420932025739956230198247605037204171941466088259332036352889932647221317362007975858349757739747486743505856061685734046248520833838242590716193007392895640795134397531262805609646324946793407163452671476120732345242892650397616159172003472073003091465239305005581433333355901642212634255270592230862415210293668622174375879880200927889096316241918568187345315971596318044745826916332152047223502452094844358273899279553782365438238245475705740607438717397305477944083794200258746608161270796060080660465366229926342319045257658275801932410660022669639477409277949269988882584869631457019715894525502332358459428215623362929288121377053813961659917833169132450821981989599933327539013650614841594870466517156001675958728927472031669384647611117441685307432764332154673119362636252130209029164667149824496211167843131543827816738857775290852296632559822230804109919345533766880478208088106215016475885077436852275527589671174964315208111284398833468505840175188186250651317637821879467485004993355244388346884781768726796067654618060003528668143772027837685116337857599775502309985340869277619216002997684703458062091330723258741230285314511132312640778003222359782921646917283085307620214204103005307610667606105929260705999497667511645129646444901618929480127076364131396522390603308158259482204996778897325857171462615703362991131729861454240424620475029291414269298014035846136609979669778337135018401682554261310664077910449065668641225340641119240550602636534077457399554731740143874645733970405566559453083506197959613468028279618650243683327906453348730025931801959526513100068897959437162521233501793663163930506572772328609555019876272941985294156468897514474979422776607621534634331978625944396864779377359386777405133163549728522795858459137502478020132579146634895300709723758589270082978761877653850571869034095891354506622784893846703750901122347740530010989387446153588865313070615345401721456941794738658480000569040335052381328001992270796201800391880906676269010119983119745601185480313885023814010782425127975700928967239058304171381289348418812609346949385067857209939159004369822622563588255343020634567797633345386592096037028303367225493330431261714580536475378189689011284473074740650700584585985483597750473169684418226069987937575113383923647035284978885123094768923825558257414914664318207250536796469771404076197161090361667276103673749805007534038384922416994087310601017646121307848505037629344372150558136265234564346254834163888249431813089570167875805962345029153004801829382229291331394712984423404024831071938940305086828014176637922401199159721153658815458622551775698485707408782930165152324171603240693651558221237361998595205757728648230958788368881423757791022758261786128015497879224920400597195463165348183571309447066004128562152760628677574222131215070782565315357916961753728477977645118890545491152378804648906422500161793933226720059620324784130530535673513863085997431293933099022338261363219885449984111774437113835329300347844897572287338636388492071047786195324843384365124130660928997870019891315796772801161295997290246903983415751726313840205793394889956731888235417767835162502598173788555363240917803317046032786776044933272005115756872959809742778269029803541326655893997655260799326017502859413606981809201247209019499954268537935956306610561819967654289981537731175308775822048614889892621458128473294963798586976061450364652005225047223621676114138814163974757255822870931399130115542311574458895250715943375768570737400778248166497389898518422849723636844514888434432928917514053578343604205493699649535176586733533272328013355713120604410795067710978698187592578370853586139719179469087040665833698384794391090139757869176079507151560212970240068578807510541386050911204153114681982098062254525085900569796656433566102435029890317746224678519834672277702315617448201695055918142996828641005673270081714144275270722202958090522430278294029058469131620486693806507663064420731193209503623887932820289343194420846878912996612184082038726309453891045093646919968228332131629315624574015725585685876833242005796324522647202685798929826989979388085278130948540151807915077058597373858186214609987218600616858958944966792661941138661926525949160756194260664914021786100665111538015853921312384129758172096027446223133407822048054175377240355730789667680288655046265279418669912580475671099740345215426055046960751627594986385667615062953873029488889723199235146538432267788586253599858666063770458939139741010104761294392736590142387304608663180525447359083745494812794022683571152831628811962656166664203003433017088908699064540097638360262670803665214859350836287036335670070535021249662002423178122715548354063839795362514681635233478752042769578583543398130896435941652878777570235582951986328018979750580610340515286771476101937353435232870024846669799118996308722927726362037447579306337039915788838920175580412629778922346516104586136263247350562323604857425971211803033239216832640597514750529277922028279997500349264582558508546984729297052228261189982616785528926114668545343162023966425013014490940528657155565468889035452933936945090589124098811302710102216197316866747200931370886605498619689874876838977683425353168979474284491577047904965479720396090171600882894398406246454797967488751291199607399321661250154817132989478796612672768506885560698788658704841373589748232472973018039386923571153195145955976218961906102815081985423456568486387298350349811523555031027590416437324287178822579949673203066516190572159704644097292196927091411287088556488685753022304165762358609526808010331460373298780035126966398213580366405287812437065826187850824552427867859797365406527195660435837305293747717518681474237192362402323538156378737984476536108381215896278569086447907583570499575750016237111606240056667445049186802948807831346566603120552768243601436020107333541095763234281301670178697083915852117321696619610401582141296960041210001553151331683014693369713349671734820372273164787272757298036249163595074625392802697299213646441415905531332942135600511754914421461696039651120240444007479672662875600417963824694332603692080479058910139008502921209571756832937485177346193567765710220031756222580801786998408448786922086765241300940938578924082124208355248684318863641219815840243924804171006174794565455035320700108044349079505229222343846478615989666320549242962352798012125053400266256889363781057002678822606118182445856550218571116001299629278250322673343410710782126659640741628510290620732538323124937506119112471846205306126269286741809195671528754687664106044837931424561215429590745893838116239584821117803912957554200385754942321719980829118622079339673095170628290793800421363348599530067083680057386704029439533800715039482546815705966289154516260356163536183587143110252526272674545439257490581823299771403958737946410523696569294430524647969379263941777284266166839194068906115257753378323321172125991461190029078436805133254129408630323560476888906570416734726035428785056606499343149620826504578982899846833437498617086589230425048053768099069090927593036736157284297549527937891318985178820487274156488999950433240654018582716980282870137826370079534352868119858769832702185004640311489130450882180552777249355252254538636785309874806205893839025180201225064682319326800904209315251563718211048918402456905830985870332265283880188891821146096526888960985033830625859659999838197578869670992274462158221260746303504842011992030060724301403659797273330319412027654647502178788342473904043965079172011710804470534375222388749808430570483393697832328334687373620833850256821552545685203998785136062078557160309456395958424304601225090111389757733424435101345877261043527834918044279269953855920836831633099289629808658042427105838041560485664438714754259801573418892796057546593864374925476284611392836851104053139333381739713832714964727569532894020603323008409289817569398505557832871603570308369964594602610282048598742827100642243117091615453684379215292272228828770045013064270514101797828321310048900036099055846359338244587360518503287669918019435019329285451172382804627714082737515675947649758372506846813149310276346542663135322115065080407684761674658082377061806344895494272855668480043986952535370758106281719751444507710566163202561104073135304670204917094261700799953339322571131152017272545831639008049377320683354385910763237183378027538584680597974105158019349326898684955523223611561911893434645875430962310745694411158224187896447161336662079903812228560251937003146742873012364897552012138586304681989533372629466134500227698698138880769785705579511968552763937664203155046591300980836118463788250926532806587181287939376178569210760293375113621336464304331591842619741297684468399035276395248539147029129076176180716361713115651313006684284227724201408296863178775714656349267279449964239338561744650659102542813058776769271642747917652123222394030569207289089484231541121640637903732490776502119820390549939521694622583071198632209837269140531560904589149248466237929114919877992448146673473305292754208539515288144450752392910892710712422724642773196527318563819791848700935675680192602519936275758405893787056207390020988458724841040368867071036264971390960644770301618550432750498400507601335003119286295393834440071092363102256341116773965996574565994674316707951517944765487056961812291814263616814765374974190049731945821571540934243481509106088247096829119320569741090452598461190882128122984952214137886574380192590607814340004011243095876899847628726131113820508459621239288807708050690364471648226394346079194505920197711271365957583533916920092940617801270916253159247555170276027474423581427172075620653411342864709034155103315952255729886092184081223298417590705933278452054873679385649584991998349600382867133345392970957927750329881972140642460186445651098902961261089723973581810094644039069602732413596203665772199729726685643836909690020341626899298751207372656667451409380399368170286007041876357096882241949244864924269637934591772920521774821233008565445561861069069581543992623012780510434053505935075230135398761038534418794792165915968125236205291101929971099941646182746383247761329950964722227023433656195269190478855020591992409213985342892767499332469881713180535419082061630559857313624075911518343095104387805961303244375259453652646735231205070450273943726562475505607967554369509350348648108159127261700591627143704145294106901333005797642048995318086291091455457461392593399276030806689738608417725238848507838855018853688028220749197941545194257578099794511516227498287650168597830036804311162374811811347139403414909659438906549977982335165125779798971470835709862357201634296904176290104133767508221242521201763671425093560228343540496603077896056006794368940838933878780103433181480003566679638094963536070988627895813042814293747636553888935618869061884827903013581877733488248455678153474964724303211138637459318742160540998670908238504040128057146335789582775533962178187577680065214029802179268273345205327953347603236027304555344997996020410000360733781295884998678256611449001186381170424376209720610795068490361674237065149843280577862964311511617627239068904925612391507045042850933834500028023377098429144888308821943386624360379085530615873981868024102213881622339265980818696488010514899425674472671450393170624322929093501338580334163898406794957759177974626346429738210989531391088039763030480749248496783864505333960161511798782652096423611697867605237015872061641930473384774883773276763913175938086919415362241548165256571029129335429128155855518950196065744199162358980472564413045370685112826168707828266189775278138136686997561124845337113482493696830315174166099306718032418866411659034543948797934653793741334189780689833226619683405245983829192674164950246367000502792581148401409936167997975159212056103310743727388446450274836841019590740918881072768227186680825568902635718268289977186475565612862490607451213838599884019659563180010100255316536746061511775313531529866484947876256147463975529470588724954075817479748995417927444532260543202657116276112802855637821243426981660478385026735025291872693317342808704931029671707521113051286705641797174584377765249699647198870962053412608113075857850523400914591800115156165792610251163444123970360264245597526914848105081454490139683215039032839606333237338610491551872560610482550588507472354706062244855510651425294605354698520030623103688115809349073515446096616826466576946688110822721721440460043454002294992074446506583885585736794614810128404999748187262530884009071579553242018624907832160478653356201762914432710447134656172516684023779614274312666436207710950134798360704721979106000397054145573410934148703852719151884896789321356234581821509384240652272152531262937686228231526047882919893447529687708848622962433647520546414377533929415077501543109831640835062908909200154664718484712713404241674753817453501232033844408942594385137927773597032926816981176574765180032864429319402898594452971097227389394897524187929666436181156165517153185877288236930646798911217286090313850474917599792989085203569712378060538376225474979071628695839190947457234106616352353272664845522910743982618666556378484911436916390962368717042939043289387850546937562251932844727529637015504752948668913350531006721944915501374130014465752747448490211113801081728058749572654404009433050360954909131605953246238985761584947281637780529430729230479327744414982363275355389427682628400296086070089091383352037029031746322042026334902558436768822432553826165390699384437420234186514198510875956396496077999934127296605990173749593963077853808480845546865969782654901809104115927107655062939703222102817555160730952585815218533473423832961771511010534080131737035191662896550542251633594293573845455415134458823648132751234287045708010414871928376510820973393222728224949699361919386868785832683300769691164073634005591062388250314739497270052753181229102952477400633335448241544414378285210121106701650194639614843639410902486601271224765408681511145011005155400908852519923814537920069819677840162993972351419166853634624389662273623086035438183269430791433078146065951750369969471151957651386146152639245639484669152612113712093672289088344327450130281221207311557256753726657641241813451241279616319129972072311008566508614587249832794354667077920201467118808993946151169781558464619899571429821436661472478451312575768307526166366426530918729845553033364713415522952145511484398732018498985045892401306415737538807381952955523649608285817082831070912774248494998281899052174035162278850747647223976041323897928479978393909593527542332863635382003491900049200107946412246410045025916039580305149713677400640802977983546819080058062051584743215474681918703318137619160276625648861119572928707131667660706200368102950952870943882235152980831326320393708072272429069056362764791213950217182664330911605070587342035569476285422018667039475721054280129348062072508952529254174011602374164770609664537028627404752963606312516446295745302888280812424499174782741361903536596905979990847927481250725466880818554167052301956213936870476210699442402422480772260086034526378203016187824977372216465245855204121794364504669425391946739383620116823037527043630204167850326710868026292518039304562449533126847881965672908073213839026351238822584407016537714897011615069917066238128443972100775866286835979037957523094406744755548613742287675639777706340566119961820299565038462712095179763049307719275652974735589697362585403162252768812436892333692815137831411551233583342085672768411877378647355401013812625410999231119974532218416422875877738758792217242852677886458515000017397883656178057919029527426847293893399278401709621264692578470810999015758119077953024816607448036981244605755909357713410378074594211608455484578974402177117874315313829959549477010591080646006724712759709792248486835064856305176328484426468109147052797838378941992961248071729341409199562156554105539984459927318374832170579166023723740335180838231666018992092347582404454631705583266268845992581289861248144361534214679205956366487001150228339527117047969491525285755630813442543758815493974623115520800283549679306626019271628515182379028397449365790317704836835990929394477592561674225011055010844177870490243387755145043380612127143445293327034622131613359561381822263331340117563246928272379026357203137794525653390259714233947827260177101783003338509859404509121170043392712716150904639772206534377203642536347790995988397152924707699161953822352652126254182654777991301229614754370310408359500426795408333411679976045855785191210526969805966103011726986489313844525569172612996752942471694403915682957412274087185034895279613841391624046255473351777242868839479528444890676967166734005970264204418512616480552892968502627969819929220420459556742077874673485764713746359044003998146226166371698471783081397450540823876428299369484298472318786280293470992621405034767257266255335194722449640395287069896863918093730506371424673591325184514380942218401475974668003623371123489160952674303656243025842043463696672537329635335702432571918131376391445260235633504292845621113279557203292760447333355046607907179703886291757943444666684062847524116030427175513181081798848585778603986769429922511203793077035536745875193142769554960701668512043597986190512750905441499541841153585451157098738618364977975177877186194043122715013321910481689011051223904136479348670332671451317740697714446529334002622002718012423862950162685956575400605052515056697342880735536408859889207455181287866324740750226960828552663038233663817809577938027149572366240777696910244201533075817113636229439701453181707503405051887761436367140172678450931417533505145330582977268787450040921255010343498324599259352061485791333386198793299120144888384149397754063121445762886992607345086361245405697063604256731913005076782569482878555088068796801264791461509375488911172404835456124522233234632940227470339267643880897363895315522031151708929348856151609938023208585366407422118759051255139683792909528552833267777830075264709120679334500633255600025603566382759457928908147106843594856114117909325632803514094236136606656863556915635836020940871462004182974599602282870239674170518403058581613405448495925230499054225205223805954108193889529822580652889247533945203863237479859712411631709331622825775192190590708244445823252592926735839440172664615848131598377087156589571917128718226811446806551065888536978411701503826297171359984553474256863815350196524687191176865896897900675400949159242022672413465811004725027979357170014434750893548088099453197674985428985985821587084068014338136117065087063776697792494861495661751074419190025718242284182585237657670577312115862798468788276468459615941802192045709629710965646555690606988505299258611364701247410716588477990763209895446376024793676041392189527997119879155993191473537595250868785967532479704831603359306599506377440872391347369372940746691918198187818700894464390651216254056947712001788015152354625957056155607397768474775059814930844033580114498129119990667401209706298101649623594340031132027773124043813765764755758684580579577884858065684684583648791065119992271729105857585584153597304909263890123578174607094707961929288361048817672137217284206175117430634627646951445331753892465636483060988765171403295140350921375865190824413119256588260424221863392834325162347777609189296186240414730204809785020259364279995547569806404213848593399699583261296676881208922025815284951794625367306945813762841977964879797408946718520111507080713430649468419163948192438710808769484928186005912137184290426684664982358896137718409989648888700867385361772868505235407747391212529704378068815918307820494505906628477130448644583832253420831029777529154418124302862982723246555757813229740217591086220069956438868051655933715873279809071246617614426236187094183740576880421769884047095108786383228139690145994299386102784762205860699022339733979328440271104214706196460705013484672542996855326774638926379358751929257760007745708806029041459617792378922933976741834703436488658935675249805510198628649856968134239557572556907537240190497201368942688709593877145762058151779300600874006791166981092940167851813966185486800215764964200644822906448069443278738271430387721492990033806945745062661251028948063942904149372123668565126966896071601465848283831238967465341078200734992789560801729065226820265538629082514036980319708359069384555691258051930619465697541039551438174629133534945660918317794913794885689077155013955051011817221010957176658371599925058800014678288800159915065432335659134198015178257888685255904097909453611474947246702117250322070136803077373312315435672280339306090342469269411191715619566591216691076136677278309343762975553480665780818851157178834318454055031785405359665558716618708786078048018693765000993241204040959079071794154468083278957127911895939388308183101091260931767152607643484680868717311034109576813417134877274253580825193029289145235367566661964351981422386275491576859653614136097991022333387447977426201247383912315766223361628740645590348865759646622284948038884373407052237721318552791291635244323631408205409641716038382772679975790772120025876236019840277784940530960183640872876138927551663826980052573148626257847305330985151136275164302787916267798199319984038432577399156551006596632692078326830081447719863383852872129751855080013126520060258298183187505080133388052313755973155984794170205364348916647378152720040157010430281652072417576096711748126606017394617081205152362764611818921202423634634503045415246423410104345763862498487367180944610796710137702944004054192395139213774062018254286800309986342488019494431095932448126245399606004587386838940730751227680414756356739784979112836864675470454657149283288680207953299906693602941044047568271273729008023923016310174798644666077826383663027264654906410971600089467707677916558603916910220511015132637813406694762499314397502776819362982097037837512600177577171941608979400506559155032403619666549256566818173567812705090226824430575100274544621208275767597350550779848418377046276592681773812323581280134552247148436453977060261658351944788629022228716791116619101913549173877512453019755653484099644899191672548802035788171107385356444625499781164454720817248676434903164847174834852917920113992837297867068084266950501265938032633713343609927084094301734096693142238361000557586547972310357966038079171893348336501979620545982298477767608522414657638429442486243205419036284143988184678207498974898882594876765700851080726951143814430725636189685748327162452315778117125551280744199602483322809836411839071489834493357355831091876262123414518247873306872048700656270501830855373673108757450262585612733942867127305971033512751316830662473370956495433491570245809782867683274930092486526086005748384678758242192546171151821011060483468010638522474181243302184435434195796058301680560167261932827774529751110296059253146495401202712987168058666245923698854661939700745087726828874152452855207996668915429518502013870709275267191409234200670062245993668018932471793109576530867250333513930683514337321690282346267778310408910765374633920562974545716038019377303802734356709075861332767205949668291527915852201699313887526510154356300981312980599153257979218148310898077524226975096057767484953482451927834152177620621289337822025198965960209227050270110734424119809648066434246444963257770722868541560021593307240458721291433527045807535684234116046262576158407728106045413328700753189130852131019647302973354277158560123126131430400550176124853947507567062456550607529175958033600271603142695945351288718969517043071704366658357209584187221103985508262583604718180044283716990173580271815311091277956446672147631360305996334408337973731451151323203394888164719823984135828508030024570426143390795070905027660440699052005702495708595101499876369471297982780656553529559672547246562040709427508068453418582922612619169263817455064826550502097389205932033205391260324847331826649164757427912385546134849031886223961626403299564850744435439202725635674291249345299490662437391432665689716489382892673953849752973668758609249656849790331631305523523979185012590353299495487369110076705186125163568665896965769269862308568416205362392342733719858645899967430462387130753411411589413761369007861328578488340500893350731060302983137780354493139674012982470835537126970047010714538640190365967104436405932572629751100054445291544896027040150547700267025571703577748896155260771818703406553800513166671423228532863063954132643985064901861836350571296185793191388413855505782202544658866794539496410101752081656612045672019159810853419991748589448687761680709464022057218424013169621014947007825763906568985290750184603145817912116866593569260066716707775551212065148116633734040516203568556692420265132563313635683775805767394437029586608510019219836891796977067591030154468928582658355530350002863842440900314571778127408765417066357437738212229183854030269688085842154944414992197389872958207093472434718108368626564397765540414793878297318531401386548218862062562012387952761699207374137704261643054189639804636671511340051192716541506256551963361626091026297673648892337927549349819413828071631384324048626901133719644794840053349494609462250996908970071297155201269525898864048799504219844529410487467754827890842653418083983578871108486860049363344340894736791932651061705688337270799658673533130045918050566863487410512533398442927202648805416053962678568333110781513045630324313430792645665129616248648295366217293089049119261512667526057860702872621932973656771214063411957940373532602696044358637492777902651718806672447367997592257643474260496853467497616314178536400462905378884122361603026910395049396559961372181195236615405057372168566669228605247194633304705741063362534586613738445818268123614372813215202010212399762693402667015886738308635045479233103648834382402284967995444725099826300348048138756749978958041994700786747732520038552979926898289553048764130169512977411666688625366089067270080626998548129048118905296691479908689829716039513872736293325724787945450883529166763245692350638760546137355597302287871226764701889654737494505335831179366642816778814733195256872562279253866147477707993841099249583067027225125824834088850777587424543901265051236880287940266067501681463134816548639655619597609435374071319038371353258093052937580719787011260611998662460985579305358657858915054781248808664246862384472726312549176585585611106832628883923154906558785289471711774981724741051900210904110581032311335034065372967895553037992118652238493536095324219757167749585017942789967572112085027300095854593253906363958123795583802125661021462728779010944865440782850267067199891373771077752322575348536721781388690345489443363659651127968496342332663970430140800316831055737452453067463142884488044270860955600264893033398745126528446601865603758346995776219269381923755142122040364755216107858632343152700718060960977267475299584084252258017249955423534530879541950987301340565452585039602313952450628683963211528874546624737521297437264539825019848060481380353499804041926149575118816345062746511107893564683987210897606138198045854869659651117958757571446462323293109040539738284559013609777679159262815684921920860096360319636098559349970384566078731671549660069632422537965495138961010925453920177563928199830917780072081764690917806611261915625239733820243624301365597858203143358144242069365204394472214700039197644132209298965282276765895940121630118237584328030034501505459638000559532669230468817821267219020620120503152816035462723425539335988897827884218207263176172206556640258859220020192546103754862278731414043708816130962415244535053872045749803624452029888264777895750536611377497239971273923878175020707563294561563781816828785420641332753180189264679658225034848051773691799601727389148216916892462086764154897593341365973289584501803611675672807987361725209986461787803751288337575652743476390590783008756974922943503075859071708608046944422884421645141713908155168778479586139366177817313255005894132460810023053610167545905859650636181655045147239153131289889288847635919443996219208389724506360272786936716553408176294343058558629317973868104717891467369004782819252344922092571420310373006800999720325964254036644359430923742316235415131466189621447844282057940590198628269527041445272181013925759152762575497327443238852733528204631805194466897261433247012055619501526779299129954560365975834408823338583483158392735422667581727931685749058822611407122982966965946549493718310004629988537043766659070328680425345968643446492270708176058500173984481092798736218609223085655899929725880846896687643767844328833147649446622162229749611413978396120991276337006377281306135773385745913629650163316325939377247580371572079818836529057564338415461375085355405001463769483065513828757986529560470972236584246902087016682559794128769004478458611409367920326684077562019632149090039799535703315265810600710704989334107612089290146056454171261253165040606427551027567580853981668772887320280215261649562633786225331273210000721540984466460302715042706902624465834691989576803866775623719625541640148379688309483577675451603323477560432399550936599690866854318334868271106297865688937716249331565044788625251972173474535895420846615925166727009811425269535957561642293325294669786726003281301037550778922715263542006280498736348061859743936908545494232313400504756262657685043709798481704881866668749161313583472246208572475390345856852778333046627018891647215302171702333785112456529430340762687292556897677880026701547853463222587501333714371045334249431671631988758660628446541716141415591841037737331835061352624735047828790740538375046685247691865851963601527978805278939092154738434414532861094284140708778127564210418438506049471267558364204247811788951975858009746639996699628930001663989926622567115025275407124928362592441697858285887957798173441258942256786044874236018523961817939308930481463668265284054658874177420159325047282279089631172714497069297295550967251409758775083952260849450314288232937287643289212888020987729781602773791321051292088164850988282219035560531858041118430383505475098902428970195619954171986931977771017441072579567186604194199092157565546049075566291684343871200517148627068132331682140357091289904888725248485190700920671088867015343656597120597883833004117180655192407987414030320674247280706654046655744155869951995417889994450080579355258476600564414944836328504147944901369340293095097101351196590473896984713935152666497282438236575204719003033025925366903671498071360225498691621926485283264693356672722844707562288144353600007662857391858332373674257369593848459021405595760482846025538659484278713583294198130800635481927291179031928429337507262171321499557407462798462936981043823012333083044146340816319941287405533228007710887233230446885097274139855371180971851407123197871381146949703961266737534876036375180173850666742553384174114789655494502403717899218414365089933481124914680580239392547778667231441382974557223095069119792145280318202862538880720538014146212426422671389821817881089336198161360622298960519252167993380064851544110839292638656042950720322395199098293681742896298167830557297102512691226117049866968704258352399429350906729452069353571283922196748438296188924473514660604511663034618242092697915547795966071651496063599773970983722701616357040362627389208538782502611043157440219358263697947517695895647603127269501501690053659009666654344782552115742822397634798772039212945874718208854304001209741115290182307197908642740184182052572311484493417202553204050486414431620868432531900150850852277481802777175640198614765845926533628616552047212393378041194013070773045533190455370633510340365515159644701503843892852594175632549100635416775904524485855262367240406975047443608748042286609331032828487324746217520062206993825291103793737478607101371707061681798710264812257673922323377140192655853385332649177107657238856462315553211499199317846501229255787805816706309627499928718954334573250513424008101860482552705792661701350312795050241122039711700659406343236003096283136978547031047520829489119525753419606585864713534501051943794617120307114004162613283789732455539504397239554614240267045095108681564388314595655235522507855827295691095276418621494934699759736816788028647933529247434000979863823771744074769990317838907313008046954497179147324871924958558726448095892485230258156176459217359276834986668270698910616903118470318864966442416516703978577765036899286882088600255830113696607342399428051075589070859392810107430471434381021176489631755816586369073771799246240933978714230032949474814328190196379736213810292604495937724876475484034377747766884300431356317868410504266841745366842492871684656334981415488329263531897559795801115538020281192006290530764126176043617556913272108965628049200023877134030780693304779384405325697113037079022689400926811990437758262997555084562829769285325381869147297247241072127938048615919335049445353546686570757377540519781561514431009817423832534865912656734980659641578499069269019781237742194444125504302883514346039290160583669775554028979755635199602175161848698915798394342936609599787499227392823235795378100099653810805147170670256267888356140944100360120015957297506626037099020093467694748711572752299047787589022054711938678862560185752088307203642335446641922295176286371654269355345319828758810803410309986911421289556959806384531536361004156572531736959583888651374103972681677209998269980137190723221766101479265891028689250699917886568918007838705718661535851497712197360974491419615064233367553483930421749040959663593364356849639364010378014041565117982663410221753118420618206301702188242256122460770691024029754109600692022806892931087992841414070020553964677544577652428618470445132065055140075578732534756263738552235177945739561410974433941962442940665514986659283940616886248806945211273652043870768797964899610662402058715864083432891859743752588077569706501101272954915955853260469432404445465011772606858237748550463101401796347714485236376802760509238972716108442390587338635171510337386129540647210004768749800525772048207425866224403972211576828775381653498695920561160813083568994617685275888563399078263821200514564404671375006704433538186569665597226609582345125328362192067312321156482934296669390910923742453878030004410082715313471689996617244275701772197916686894103755460145539424164670328041232178061819685946679007107085084898957673389125179711410543826479526861651301920788345649624593715496151210507710978444702714485424886703829678069416821518600771865667422664259872527322031071821264267160062623810565519399709156176672050685312011460103334984151509126481623426327686086552717726235190508925492270847832607824030512903600907367666374259266510676460754115528278557624999625066579207620583644288491960861180507566700715945278601898665761452257196899881871640429308625195454181685249937059147187564689202093215727012921266169258070203086116445292013228512678597472991657352105774969038818831024291521965283135250304497278889570856085060970642420534274808648557523636895931770569746775869788838993850644809337633928502036399216520963133656381589432743009843656254044284851591679401051815517014284708507243637075788200321144508156564864798601726262023457111282993715653317084478883728621854272489993525414937180919295872201522308919634423927588604717755672973370474317413244355013362858906120427987929529599902975299318434097356704895441972777326714425390918651866063571378632214555012253268828552911777731577212347436551449105365724031609359170080053001558346879712693259300765998279621583604354427905012426050377478729425256008037458641600183843665410921547430992627793378316935123766682398453952966962621299940890896027209113926641743694492089171717763982240855329599459138469870426534992516460134485432604157499519279611393083737834569595155239015123148247059976828989945270243919549164524791331097565529020163686274894351764629845707896703727270486879305577817917663830289118753538965589203408424194558805207604056229754545707052194308341722230961684463238292703303240368377388210171258649713520948376715977859208883627171926727498803138881502213451224959928734994616836700531378186651819293985428339805113779670598929915091556131456533875722671350732889727320479155868136025330968756447992544890955262739376776252891339090645539358791048635850721798465442033461824966595924670945444274742408567327110843245449199419336879055949141270911777361622373614742815434112336642060231506570197740218561510449068743554000645841006402900053509897382047695791226892186303843408254438195993651578782046685454920335570791006698878580013059310022377631594557121206005586377074247778496000103156425339280069535872900614650145806435203857581131862907722090633271583899963865326656668520508491113134759022993519722315520445930144133681237500461962912726471365274803094506332526828973796851665708873359715103521185210475528693487608872756858026248354236377113367357196502854937825432971363587585360074973188603496030695432315183757865993168725626760491637913553191342174495157970078269548570803563440224180539835835130439133919846625298199147811264199261761580464748084012664838242177153896338247671785171356041565946250933851777862604126577422418400173861209301506019654088265141448104849425542383754204349241718775844436154071185301413572059200732545333365600574828527242328870382111354231566115234391458554724629257186289703260537750071252902228733833504380714158681082237345410477528057993165206862933505527241981651482288267542698863038133390480440217493216607256107830606209882930471700048246255846854986519116170929962682314129851188654146182223606009943473232420175578660801946142349992271105366503562159022301196602108481573809596379421274750713071763002831898045894205594329246844867566818934901846133493136217241663010121166722920291383454727917572383411329861244214652930723873874064475505108996973115996497327600009920668550618780559078223145832735604292887584749109472366939906085337821232864760963262797101803776448336638788911522831597383077905314610650227596950401232502581996129670819479017959992705692066970161149960476205641703486199046263494512195718149605431053645679047094430041678723678672067337415719088791560837414217923368461698723953388541349245568764979132820774914088607977693809613150648216505296465620444080899184868708780691477585511320181377223576601691411555780253075492121900907479209426926287780518138635362641890142105821490012622599975533648493431088093167188020771814498989040781761281781993940864847083326871032637134651461822947025391449939715739851935902932212702184670230205825071631681745060133066438525031405229236395893706094285895901696135993475093752722902100730489895753732498349864280993561311447183518109323626741249033332172267602171396907862499760540963743233822209791449016806394101512603578236690207694676382357795956909468813569430996167344642602757734429914208197877204276992507600343154614493660504643409080088242048780180917503038793065489160614026583774338274051397555207264848342655453039718518994814988722129145019311805179212278447434827463187544501304739374074074947917574010493713510026096720899554541975488955059641821222862670766871031360602328659901746337884355563717456113515455792677504682241622389309323039088485420374116810366114454951584924510646744211879739928696049253895334972088209562081316359397043586140603102489524659031857834149955529586819844344575865732642397770583904379373985746082804907934077581597233275246882978403812143323853111196176948603671234630497853902088977772188489415897032297765712960516110192398240086382398899873216930494801907220426655134018453036030663229767359046936931458633921309712157110016634873043527495228417774845131814673091272690874826071352035212948775107126819314147224343575734081349710724536989743919548130003062959761750716459542718805575870281770863488320560236338538973393287583590996543204600457722230387914414764144122570917378466114813296511818604634695682704575834967385560860906473931317502369317311345123853114458984348675308875224301924841044791328076612954803932213749701735922927263316565832985458221593651429438731064340922992517585090373894771986735772709979622301072766032317019349199590597973265914239268910401033452467626518443357099878104657301735559163620343497971710969669494581075724231328953199724859041742810304448733820553260248674048596967851802745901587647362612577423311055783941950620416973077565621630235618763267123550155021012929132474183752563206507718445701680999965067303495259490570794370445269623849671055340122065583317090226423702141487018931342146770702833647412712307169246226127216955758864240976296359052968874799715239251786780706473359732390913809544978254529101492134083901279237980139539898888285052785962713632372414210678233090197044713526986892131317799622500162237300640918092259441552233691761964524438613625863554176113763194142240779031466600840669294833177385241061532068898346711677059120881466336466011021949390553710962417533872192667911882631416763354871278386923347768955164728035619381228312010453174403962084602696738899340835291200010888420092470315026613546734320502698365449095370976220407278855746954738782686766923576668854906282800044806920371549033805859193381830402520893531429596691019101908730918403818082808929664461638809012136913887051911905256290829948396429840548515443257687842917115120574689825789196155967971802298865941785390317946131359302323138709685991489491572857276014981238625993838982146434807010682452318836018257905224657833397345991383233331567510287491083456900227164354685021428263289017330148110981632460531087909920843109931388622823611879388403656517373535152845449901443159145345577128449494398150357905028507272913631420551076267790481056296499108751026216271892858462341619516198673151938722127517886552786406031704403319911369552388446097667936883714011179399337650212435918924374934687791436203425412046392446149124552756137610412384518598995014559513537999773229030826279476139910063332823601511484234596508559699990916018459423100277042057655914899315469990297976000033477858491405737556581386329775873667340869692431297297828931911396863613110571020750094071918603116191428518538872717220446536275027776725936594212774667202083289179606121243264432534344471299607578180941307849686084706149262255875394838589031942459011430185460118363406796665780986817110087596296727841183666507360564157285535292612816667358231477666976258690316544850192092895561365202604731571502911025897616697563261169346572800092293369101017326480151745543636698330073919228193452393593144958285078832482703742400436409017461722520580920734668534194517119722050968020120754910050331963536194912206893101518392620411028232355746206982959510727368273899016260176940450625696486881585792168536710529628868713314092398881490338544066220723605505075488082678063291298909001061213929552346783981803621087517174290833025315779271087991314532886754632577353369478348448249459811056347664796759095641391753737728045200171269516519230794010841752761040315571257654126615208022182922734832638319934309990738953522876098100888292321556627128509095260969188862910837508411623986814699745535136347844501264655216985350758376429043708392384634817656401887715337414803813843099593155211614936680029246364519607061130617030189461429796889909054128451721927543404954451640979869143170107687636257845496376147208910973311858561379115977594653492466450000576695005181138830479080484747186155150778340720002026963267744953817028152271600764715903674033971696600216429057004206059376630282106308328517787357297437545118297917677718842578067039578571139976651401328478460198821197055727418402513567381165798098959947264558261383577415294545136474871837904405456817037890661410736443245400648128582024680644314902616581778188652992421006109040580924226131435863693809726007745797797631222222220436219243073760077128256673826869655492691884074256202888865144661453787486085275380110954367936432694316012419502956237912403431139255500187219483711729256568675710633080913937621088694021190490932445593996428902915489024172613245387976083141867620995971767568632590035220807530376580221005382278741479762698341771281840104521445564375297230018859785460614286264822550291357096579191799143978557606686212625318673934856604881945395701438771348233459698075506865409054711705053738595373374158645476399613849174599880261031284411615771202198236357526994008211617274118982731959779594288650395071016095089402170893426900010251584053044696219735819408769659092995139401011195386247938906986337138783852484692971977891629544589954936095789322674278757460789207760420054567149245794266628051465947660179007879970675944488973869292731945625023781030422335255014069356288346648809171738059513437138390456699741331504615477103388094264831593319572930860124573460518558145467693501134395242375048139295040843858153653797911974956815409242438235630332202519889977423669877882004939049311134810827384659176756874889875985736270510612424488844319893335107273508180991309824904612959010700463321259860083742443414580756889600503433553755969517445591245217515974727747193350553747371084877015345568152481622519009978670236359104342319332435731471582620412593622046237256132874970080119372871886853058579155529722440635544822093858765983932565959221645281588959193705347362844790916368496977880730309658533038823607651456039025382486275959760094449164288354278721656416690038565499313248032462007743264964364499462528134564241907315267860817204934192017037169639433926679484099891077584288371972663216225686596596690177588104886297332647593877455851333808503657901854714829174689712534188670895109554209717800596328649984377230763455392683390674107200857610932750030075576563030085490420110051449832686681404470531772159231716588315763353333853378690745992274299128975147118606174184348127252463305413986313769462745228981319010245972445979981847230762990044662025531668735049238034967896650182395177497783734761184130851797642668379905497882769832996093769248864869832382202224332215102710648729917249967966253600637639137661097910370337725619564914912556142641753395535963957477949650169878117059695825111439328882781797275337023575243325863867245424591762036660361521228099113933194799947952442506296426074657866490793034735404680567031659580804401248492972019292924073572237876739316505618456934515122783720042323018827095883234083836552665926403557982706194993502609405709747646520486448600741340556374792354272824690884497733053984874878083409447504689982078619837191243687710538624144702740467209676495598912668236363269850002886182648968926066744812753209871464154175816587217370605651488321439894772168209981008584397118788158878380881564681725803150072066376382418504163348797627114306750733999726313851807905760860944314902452005626888004345209824952632352163594228630349369302910567600988653606691620609715794522981354876240762961262023488415402477495211618757669715095131840008190637259298074207636690956468495954387770439664998674027342591021121048257157909318151667421100076995434836370368231680928885297886978226171146056975284113433576727902709968535601935750918164490896197420648031535715509406777776822111124676446194532282968325507835058414000114054711821578287933291094819622356639799310352921723124083983998220842242645819821532833898118391929939037155399526636260941620296892001007376543588525825268633836840262768578227098257519965045135688925676839946624277044646901604638153355308805719119246560938548838387605401505365793983768474409147571223715599139866774549302454099696105458668484838126030333005846197598288060926493141702304641169536161028821876122916909124382393377683314349965900419629786517217985183627345873306770971511759124049899452339256358742318440134136091737804233957331529975902687086618337521980204322371212136036798085049045429179456023051848058127918077207915065691792326128237782703831897797159548402896748542433329648588175791887586270767485830388817279906361047864228783010535593106201101429475041193263755772717259121222844370528997815497254981767491729375827655250300685876473439570762206169902312553151677504015169148687684356195881461708313879428468173467799904280830238150253309172848286848852028794357715756809044571232892996594621215099637477111043151137499157092133204945980372401617973775408160187632688017545552771666979552877329243359407211780408738226780291338735504627923560685249161492618549390084765671150643653093501388311804364450062278916383290107719188944520690650117735274076718634756964535849575208404952944060179937282268860910614261072235923976297460541750096168329936978252238550762206607140894773860662277476089943611564595801678354350012724639429973980562045468083948663735443947324848083889235715959877830656554771064303421780430810929573973900691658188363378197476824443669720282522591279024022308567768869175400121772118951275884517735629829916137106646431594398441772392640427334087643697601740951304819800392450635948753223991422051900058686262590993974203832957352145021252423473032820992063615876576415351676774676104019912914929507285508748439001723790883313616656524291499157647100117303231529684554276289379969500437070748524939832819950555009263402780904322906387398454686932642795357633338501691831628315730590021102210848024096916953603776520119155495615411108769628596785169885274761788660912165205872061705344301698841755100021656699544762599891853969778799374260608178370209150036495487366870070944406149700893578780684481825167462695238045710899314845140864823132578244854379146733388574245814622728290262962076101200962193467493500559813284685807911323787843216172380116148619806581523578017364858470906303220164838139974232261838028574731639691597212669806677825069579517914167804961227851466247933122568562181703126955092502444576378204813805685240253130001388985030806862679051035790362872301536462455123688729815841140596721978636265141635660951011636597584286999419184937300273570392338577825320597395224495631337380610500745307286254187040155101523231023003107208719400503495239817372215094626098450537492577185033028423546607446637283036251289402370126744983684472750893137645374024772831513305881732067762671662162370285343360306547208492937822923381717897454847192406423502885855836025758223116261151580010201478102907078437430763562520051253171874379339103187570974376014942361436688793348740029022240768720164531446760708150499418962140503979934138684486656803302315115588682391414793192290374072187133956435940073062356457393982739489804175636221280441703194630987338651222555726431367384462620754106323497171248725583308351057522685360306126755435257492155976925748950275859015425609597013507013616956320574075099910086799336164417972190377942154957835087510490590452813470658598541280844093067366200466449911570481901848155466837149463222919517898423410555406229901412711081269090219561239298727853824082661833028021888012394721554210372126979246409828177865001801380325606437856746591972363297293268738174366273561083006384110241216332641405217914147121120567933291319669787198350204307927282132618284691135141255168692114806318539962357231099843706630107218949578306816046237777336618033466646957690187038311452181212962923885097293256971830887209876116569373759334360022719477976119150205178655160366801302356922165342842296856432177956093120851219788593129692826442743103081129286160637358654983546281304744014339404668688043116354109914392694382526788164843702482986191846602137497650480008437459374896913587267029811336258359432487598713193907469304125285910740833685678887680799751698161988990562304823532735927838703279993221929090255454050330948343630692891964151231803735783061582624383841843240976025421479192608108062848608103068991593273914344842717227185757642761092602787594795336721969339832502695761296939708153788975561559701937377435939015538234945029867932274816784209935955616560202717169594771137113715244207897417907697166911620778132380915835665124827846425096999842988762699480778907426737287286188111770946650775328631337542536478318289098705272690449423127778976256165620095145544254347684403801891384727211945040745176114638972529439711486589414762940537225795520417038989726234860676511552620383746875443967812057547084388222145977011976637985528431400328813999195539060525588524176362028965731469047601147586603259059805584050383233662676822258607382902663903564234731884166246766138954984411058501458319941142519385832396644532720157355573974363203676248149265688425938880542445007092444664445545581434467706818383189171910588435396544342415441138348976739516958711907419171480087256136352215568067496916614156110420381119168709834789783804573671390408904842433788112110500409815285202923830074421824908607385346326962131251571260310452626994578881213023997484859699837838396276392536293534790508966941994464093551483840892116943846992200045097297376333033578443820340198681222692150617074823497101928512358784386697729462982172532814895154238187952895314930342512258349069760222568229457586152927947901698840806288126505678982489179166529803302285907012721291907834173182018623838092104892508583023066158345478248752524822302289243009915367263210820763251254822671549630753906312529114905664304709903282548621590473561541592040758993200693285866684944761220979287806237747103766109754881440336775708427617680655410550917864502041750746646682221910627094273947152608703347232874637808760417661485586548219144847299594723539344239334345849644065200828791558950546429898826824036888580291994023788862767458835721600889256655271280154021968525765297534786755210408166533145839561945950413781173122000295603510301113625713157578305276193671154103974019714698636425691969793449498741130562608790538951588243708035587580676675447859221307374186898883038020908887355217491489977558409544651460858564719613330990574862810929166157682625983081816365355960360960486506858434044285833067098095883512930321731277509895075252364234265106979526464645145000992497033280041713580568379462507375421369223910094913550495775913443874237458858892406631076359697787093708259729882150723633600375458501748256455643744037481509034673204378041331969678084354828641890650279118551185260008292304871982332419072716041651417232777579148835724798323218094922001471534759058999865390597129072407406430387511101321330121111645396295847786008370686399366289445799044380566121833838029853927958961830816488986821798862832088702296276237199531905060586785848807709570949671833189991435183330342717426851711067924281664175038835735299559899494508359511751923726701757884131098234074926199187125747192552054946408722374346310840814293129879704700506714272190453624219708020968000505972732550121015612274565005260143435222633999718330558012456409956508990215736983293436373387554798391336383130681748680803519037804151178279027865147986572836878636509909353856933661236762960750314013963879625474396467839156933881344392293506818395129724195730148441350076372344954749345666664548010655957872924091489356684595775821321508642372332283607689641575390374961699210591963672935160617461727856937214367251698973107817072904685429625875787669863339043515743439724837329300290887159740213748609202495928203503152836265897165860527178215875940881506367077207210775942499096209092554194381388018310226829429164219183379506313464776319933488982826179686082637910064824546060383521729131919355882905675032028053398430218906391814131251788823177539969358367937963402213149503501529411086004003904761651314699588610822988665553442906327433381923239089326926517180704614786024064991193731231012767660911083678034960307297211013536783381893151620922074026116894110674106638698975508882452595968653138524352604519632442945891719791000534041142961735226968492245191821258807898199605735779828942126763588817750946584448280779361847513767126627278020605575780328159515006455057413952427248412467662751100073903511047552128349124938607418951974677448511208335369351879125068825511242809674053301308219605282153732545899290151613762862117011024770823895525988820377438893460345332916904554424052064685691427094893620048063068718428001398110576171667284632125046806040289166872802662181595086346835761547270348862514247285341983756311529152072886513227550592630674456907947799212094069050405188864133307277477535826130520485956397048325099901167711006008885107030544448231435616211204253736929367682142991137540529421525805471363923332000966891663225387463563267408373903373628731405406807445973944678048188460352569369690970574322432120219690484950682577393701937042859019962047167586661293494618378254852851565977475683454428810614473480702084507890978122655828780683534898074023580553739917874988127617956374991543045401733976954685594990159107767511996947494598289800118445820632549266880043986485372881829426718602367438922347346169572938130656821752759343340646395837759853446127846958869477794254676388359938449233654500517140562720229657085254337696609568227954382490500877762874841389185041455101524617101815883701327754008577409602345788159145377635372517083634141625458930937850597076835114723426922247356215314214984418478950262242254551303215142113448486470638330643584367449855975529034677027966980484212091449813336933305222190751916030394629401750036363001204536496521974299814350079207771678938106491163919293982052833786055279812915544391118694504265248649610969198807079057623761643710821699043887342932823847586332729068606154825069906674684818546568734670976055160293999287590426431426829497885911344473504018764286278843912950648036292401793100620963228789488970193953662090032489634734111064222004102433263420176676131463087150484755601258610018150111698454252776455368049797372383633470847586684091866594810870686862355884637540416991781520420521058957492826354984564969748840080181024615154758692259772841228895095021405110527209368508124103816119568969889203468490565664710304997385365494860263624274307718998865738309004071690324095012286092805749005294007939790436874006116105018372806237643067334183458441320387848216020524064233059885408618612204902929603333776711071143173429350125992385166138052352734643303262358093066782660528827942935243331361033207868404698555276001502572725932217892598072516636396169237643671234494950898234630157383017398273767946387157316753200200612454886174047339714001484679377260526294838350985056609873829247438735699629079333942752010013284797326918272842180954342795194508268665356496874967910656087900973071531818997829801907976419202094029122480002177505886833444220245016597673290590109943085168741943654154647642355179134468805965433785770529194573398998900144291869929957929105920283639190533635302895120920264800374869658943451963975521464470439757444543621399866572842329758898891149642971412448295852451586201556614692680406084841434348204448323147317386946038613631298345127068571910406334434401026690839451605579876375663436768457990981012898058777838259311179471465296535856691691054619012896368183457620287325266199369587852049796515155349597747148669504588253285254728808613464263195275216609551117210315459137069906624883989522222659672375548296384355680260514177952950455661559333347694677809239415287058033612080085155267469919314140540358724955476785404006714029132973619305492391308942228316574813382768695238914869242862845408548884624801882387716855934488488998527901448755480679973319917709307802119432606780757153537152440600540552323277975482942622690472910850374875227431804573557581249675711564524470530290930743712245216706226762832611505826107246948881354905012529889918107629873714064475952016078696291829291031458966761290302806117379041982169849486914555905818586717691393354171887252400746331643534721063984052473397594743238250765978611531393436680417298725080451033519024932789887172012832807221874707324856530212223296760060353373023143214483768490510205494659521296277341877614466612965867347593253850522416356180574358117929674697607692847281803651262871395406747475140314255925911062107950127239029862247701231370539655850171063057083047236769792736605973813919855778411269514384233376709999547807011781666865561809570835839472811559152075958935806431278560096985785373319574928125131789370878930409140884376609066908606209670740576713039053347413413337445834703126868167100186400495315096461966107637166909721231537430918585662378459312968074651198358309399730706893178924321053557320499939528345935982101864531849361864113780290057509133544655271580298415172833808554283949671493078755967165989783744855491181566965809227434243028854888664503931875178046088026809176725697061722565506251423320033233492516997745367631494964726081995733870959579297109702926875545715900674925816046705412577017869613891266543685257671357354118459846199870732713365958159552878464981290843883484675478244549465402168942346908442577775614596659898149832742374148197149243479987807450642317991203064883591457297511550405210296054198500314567457813575398009572662974318691939979753458042755517297085773802145252397616835573658865825235969931341977728228366194676341989236975916285716587403057977348785507418306370668750255627132831606119153948237274852393546626749872272029599648849121423262547476262717183980417282828661480210207111677484416815898696875801090484779309284735613122030539296331742669006657592804338340115693578216971130832952467601180203857802344277857252946535528344364419812339411554341824264471680645685683882532058532629930631978131996904772686523935975933189407620865707230894017059303599996019570289966372894556283832871167066925376784397257216315903483656489615740968369512464379720308862617317693531495143301889668247812634642756037596553162236363923337981853064543856676854764295882134565127252691504064370168274540787240387163476297844265780665631292903050898128055754739464865259722816902450581194690822059609406662611236387072358933087972812591764774639373094919064831482822484828591031177644667031143142424520336534600101342462038781960354656299277494776036964628600885761548854818915017506262338812816746871793138964969036398900872925287849372634480979736754834463925687891699914224453214107048042922000884357614796061647680341274920362383012090749598240117517785369918247453371663986814560219460223021802781443931631555748768571458569375307168949438987964589825006995183743326186798616758342634033444867048386163491875914940487057953737470104114619421740667469506518010651314015136906155187906963354007931224039218953367202416942645169024990499473272644713461726150002379092176034007125021480635858753601287480370890616799168229095485817370267785480192787227807129542422090060427228040204170678732025426268790475977009994860589557810926596116485470715286842885024047981385326122070712739106740525666102205485621926679064500180556609767152576746970606633844515281846002902765614540179255229973745988475844894255093012343789910658817962754538669842145453216777116178750973444760170065803950060947013166121581918257943095836052117437282875667546162413685094388430488530833195998502481126855620335066686472622586677975240077983501475978561221670067214889126590548159766566891681988162111398239272378626280186173627251336568214294234424959086309245721355375807526523490246830708290955809105823502878144950873169848169732442407011105796252203208885789219050685834358588821021945362969544714570095314216382894749208136094660105209295805218019183498395282130593483884923324801180122736097513947100476648722923801983755332817651767011962127417147740604492192965236794583846650568304248043335832543072115079554385952315050788612539677817985566470398231116175580893842418387215642651592900077857947912921361735011903871924139374754120531071686611615561741171812129273471800854718947628845239619213040356529372800967741100323431806553677945111866768011049618316261375456172324023304269807981603603024434716608724632819232608273852771343452756006138518786626741756385466443513978049427614130069878205011789402320927172668098494935162966768070521199867332688425040927417257118079038458312943931427595937404952032141391322972035848692485501851545520473661362601500318992085798470297611010062401861150654156026885235330591316234226625809418771403772938321967964143940947933371576043082695925877437617345002895004418541896218564262635734879801959761218750895212281436578153364957982327262715367493618350285130360927238515422240309449986239348653425415240197005974287311738328401033564720074553158054641838109895580826171044257094227540864777668181906782709289976267065187363981465117246109293703881082939714398565581943750905238338812952519372521492644798179404526932123505623250141039800272897915798505829723727565125484374461814640954882971607529579377797229098847692705632999889770207305022189234736970794961632203589931094655025192429602880097476910327455843234022613986418573476798451349625432133374501370012625188287880585523193399568487886381767375269677828981156872837417703305784913694941545497208852152830069161596511307725419611690800238566446435858456798509253332951030667143705527914575963051346068569493560591743368128052717254183457842423954716172783142833307407155311689070998791249388147500461507261537355504570912768897533046330207983649876352104714460283474375031256478400730476015210331475356659149678865746472614354146856535863339573223699586294252559286715305324277453439893052483908331330934711270751401158448885581415720850339981433958088203025117402527458011167770657789088434998519472596776426039449179213851828686994645687126394661588030509219350595114980689401439227306727980757582251427583766346502245574543601633894091850465331696433926222759059965520631982656943305262833395741254839598145138708172012705120301460565836967148804474644180040294233334462494747457128671172390271814252034129693680624696253720389761598484291050630985326440393799346444944576517470853376309418884914462657370536371186759453588688580982307059278330566323063520879161661682064346933890864529954544344912375325878612486276997428727437387935573316427464326830459754182055627595711673146746160676252172774188822874709729796903135037235618663479773152834821653969939025998332131456727060120120241881184511654232737843689707314868154586733307827759237188257671842003915923577729504882304296236238919355777525299221862403782011261511663490066898085343865980835408420210618197234184763862963114168448254974667741077565735092999446557370126950596396350929490613355106727141472797985226312204127319926931698144257542185018828132931108890319316003721660157373924314049424287564116000149211337397961759990648153463385604766385313817842494018317728023759328010533711048672351393733102301987838083083024903053535628168352315106612338489778762768788822331301902105765830062408820750901996972535727312798633524795168155566965326442772530208217555643879910965194826610800066677160675455083712393322036191300041642516552105071660447706213938918744655203075317256333155628179666622972709257206031465274979201456053737848090394537317823035135570343577353452355069259781847285315791358886091773567231052789935833936086470562396710511918136208856893819536289933185932336123231334951165577022984773090067552199108361488458578055937289557139276998459153231468559122509201634923195463312257610085113963656009775189554965749208619784966363668403767491970408604361191703664836713777517958018821707099879532288885069046246034664911309504617560422060036891009827836552449095210542942891969428106310691218696493120028763307909333418750847424643367436942959726324927649429712437561865375711640718556110854957522831002033583465956731633004869991492914697345212326887315717288138546466692162852780792315559642754566026557471849425427458375343931452208880192016801472900930865118727589749536485485751588879677738024671311785817066869320465275462720100158177604844109616121497847513020318619488914398435729686608081147378535862144765379644256451908212393961318369154604863480049194621923136502840617003198891410889838084426223293070295586395730952995290961774997657316831487422234259452828281221591556931679149306625627696010077265895479701104030822541212922889979055845475378935583559846710119952593800448481670236943658424454152044953709795207235086326048281436912280819133477928013465478614343357823415214282485098262840740196611322823271605788205191320141746625003877519981454859678875904380687464972271981447123223536016862277308582581451435671996782316216259387249454429324606739867985187977192987023851277344179312942747181786045041774257165689248454853553543607129531565683554817107237598486972592306399057202710400266178619753281650804142407386076532886186625279210550861921318956844923756872543805097122896245962511096343084482157454440475863448521175043801848858412696507583321282529214663110007195915745183002910737121333869443825430948509839862001889491728568173620579033990433350358729659468325641356504932649000382796364324951331792745928665313849781756373575798141510437909295067196111931367196236205701204206182164237933740526111854760049748332473075984439038538004876616550321947761606630265115430371768446624864102334636387062043124638657319856548891478154509779619067330567142256315285628287249617293157036462939574515108576794359992783562580299527331686688979466254985254702723228568099170176620930301556605343067703413513840557004407549583641843488843116011268846833421774636190918551575159665279587989195686591956311096667979169267361719239889554206465093597703514171342335265771603358558459540170619585403667764613914370810699411610954381872816422040742506842706598306473707470957257159073979906393376855162193046995319054097870827731294450053489031832434369999997446730881005199976141275327391355724357807493163122073583103904648204828221839228037401821429170590245248036299622448908531182486180489780481093140146091898824331083882662314399756423864746610674139685866630654090621422368497601392258132861470131068246274584252913763117446374928361561088338529652219819001936173295305827201506735802306593230836622354492259533244466722367232410209493331645801252941673178095957317306709087143436831987632994489527819637820854778163561959653298258196998565541888234510662840407190705661876474070660352285780437195757169362432215194196948553877289179800890383067386333787878410069326352515041985773371502577013159449273006781120432338588271981777761721300869334609313811473805959122880227276158756941092335297853906271750700263753167848764726459915611761705055164162825872432192900047881350847416384737559645527758779887249497992638182518022391319032863003967373005669018686445178522804027500924545053621079131264564782547548256614573517874980014698746036010611043686780403832794218757870901400572498972836014852026398897190806521812763739258065017087401109258851339908403596542770915095874302943667018935604745839845653411638127234396036196456862645885690763327402676536786460489205466108355812715229513431868396120368764536323957590041090190924223227329652353269118440722167721497445154197331315440961664041835413380162165595572926084578670628378661851360508154477056643247797364240735358672718939565467076169503309426190428844308682506876933023612650409712556782123789424940015913182735157626191704600389861258972519554758883023104258346202752501138648831831349665843181038618686234633420161716921868886738872625278664487385823369346800921653933437444908975814698824500947704443005653904927950107909967382687922459408618653575573968716036880685989999195876502232139707992441385838647839323636305381878663358322154229232447729042070183739778435370477763511579488600535971264372749976932076929625648158749681629832131066302369066935693553887471915380889135855988578009391188869447272324821094739061784820784526625827182945024959986315649228535495936478010837569089795073096638233034195411068751149800546590417079260023958595947022562634277661250082246398044215397184814191864195061367304425673380701919235319449735412114511009206362951539834025582085665098032822088445469726235979289391017313096307646504311907579342413559889796133005361444896941358570392507697331063273750417340226249948801826373415930923885548515816725245047272051939393898792830957311443084988445453799507842530955943050526110440247564135320305089808006063126289859098603368823596299752365684182833260470536316117885179818047874466207345719449478488412394925999056059572937330162583525474407488585949477756057252813033200012708163930523987520754233760405162366254111218599596908457798672847863390394835137705317661735416584389691273692588880590170687629212206368499516738556142272714285881192726347417013309115616171884789390193039410960295299054846206306485542626231666975556762687067479757879066460010369448781292597312815525546030957599614455538327186010880687599663415145295810306805520681988854911278929785802604084016674079996855607476889610452487523508062068378401725689223314677817357268429261575046763810052349526339443452301256826322434323688911102131297832192211896018703262996895291121514469263921881771072976916666147313659097308219560799170530188801506438313335607000643577695719947391207624592402797513778523239027210891209976956384186567722865265918406833453754657739211411655624325229596260190169748695593512995693870931497105958287364072266762859421144883122533487183562364063862636892562357823593490523133630518947344794185002279718915931797560163398405062765558778237181826329289462064999679512912271585685013161355969179815838141283327362095994455279337882197104256711597980686969957089345233768332768836974394891230101774592169659835221865494793439951344821952279656976338471729651151332067442642895350113632684429672412982719549161574136932226180305253275325593096657458633348291269527718424069580792510124035198255504663804039591068418496976858954933035055109695827010643971930600896929110180062328091280594698155329850388456553232383975659021217678236669671968846885163523149702199238419881760913626498732965751972982704880840162087789543223793621677283531625319421519718505118886354276455532189385836167534933488789722389261845880871442784179455924389185945391737911082970864900204497245968924659357101843815478688051611888914402144483697207827183817738739458103683536270306831441523410782882444482300669719148288397666273215218055981212344984463651360053618677993908420454376498601075959842014118307733804164211712384083819298458352701834817327941365625804950240546607892330775516754048267197521867780914838137268478993947809812200639633422095721085252711162892584763346950934709581254290430847298733533022657056927950332187369491293269859401724453483571486757657952999284183795967172241193867559098669383996877741501345368874769736678884558845853526751409708333654783266314118044066456384695202477210670951950641858072063191347083327302100403115252625886431121584682178264949512429139957454985056722657482425393535560077426639370706876620913340899853221789957480434021906022327922158207573799093473824551315754134627699916793048900593645360842782880015934003636067457755921636956716467690409738940587969149125808639505401207029617123641075599932829404061226520449783993761782755404163442792612282088951268128779748929026923475199013642596039470066452773506286697081006920815801627370138710881210148402187782970133785939424493413820289430948904409098418384609570905935314427240575901250203707105221250081829972615674559354599354789180594353613531135487442967705543540996781767056674923864726901965872507295618559200847549057949167565065721603837023714351525131167594935348743074523086541854183032132243511671122970985318527815390261751494891072008842521601382306868166712113142954426989505518742131126158809410932325438493675853908419738670414166939378577133772174602517006379027559342280806394079085415001064477664000536670903598021158390404736080550719174142847866603463701801461603940969928746015502337795321013781901572954746533380860333606109176457242124628596724893803431261112050290456049331626483167566742459001449118480908284913900972024832835393552525901991347639208091985817432479084476406435082709942803839713069838665116182149403858808405229115421620781205946063659794886974926767123671849133047880951986935198694888869497969874970277324731249403476089419471511367362016113851055390448564036740707980086252284343915187809692868042717321685335686520220386993252242248085726915793137673261381967695112833594236029029629494285206447565627748167434120932048858944387547395274455673199657337347413256298438186153858612982560217972645550647763197992186646737947262396806311071275920184266766174732552950657360623626476052412589786676013736948220273884422058681284764797860322062462306767481392747099268335857841894821174901723670626688386586300600172785621359301974845669243752873267914096493124014962097383547983112486641274014072130322242415316472539536979085355079066365805674064790795524871493186557598522735361945289968217330885686971349076459160285467727334052964376803684098025889376627100617518778563251663660580316765176306299460698136212133452201183546297405149617660999886122197693945913461937701832507201833987179209189307323174112252571203428720279202581324996369692764612973666719522552319320990955445521291158596114875122411562595124046120750897966112301987996409665676424658091320133161305212226544011893615223816204772024263788942678599805129980689745816621435038627950727244160666761677331198196198970763134249508448629980851702661159867993198658318944331742106138726076480944897902754598515177599280106288892524499731702100310926495125708488828871933774314956175630118022097827954879477266196151823244845005570629526393161017224971489424715827914149553945525060104263077146046486667695012048092648953019075879130533019844842096938658397987661053340634573489504293322942332286799471916661189553651772355427269719818666933198331871405927430187842233649559173145906374440644050401584150217435117349296634971414334748781553366927429501805489300633306264013111636999143110077676775757931456037008939992016922069992048520926891232631684116789332675933720982146313754808019409029248597153031541424891367281107749972516402412608330604711824534441510619315165299758016732308216933671099741187649116346348387311374556594325168227393992138522490392050811795815721548959125087414563496799779504170412280448132990518504804891290279823572866187350068933253581187785440603708287902034981180476095096303587934460439331930418318754865430589149468586585501986964485920770050808368903175098876766757097667334107737354714721818677569303261309376485919830033486396929441831172783340234493524401174687875044087723611641941889018283201991995566950688780341623642733276188806134585601274177097605035642428925831769506311218984358693899719453605912852711341955920684716303598078090240003224694775580407799756935322104871925568712595923733409020466122772889426281439285202682760563939770321505587898346965180155421000143659397450277942321686807731552360139078253275371043402869815325494743171304635238330185453401482756931549310798878284464304836236444560408329766640695970965459397016406744791986038525057593140381027969719848420799738699125976613653695804498556029493196198690388532306061399438044081457319165103479557969546903173447588002929589324747039171297071518851756715319559203515995054042467665772809025338198221158693717218941062974808614492065001092755674695416335946554445125416875815494721441741798127845893854121498897409981801113112869276551685332952791208867989972348814425373238955318869314792859125717719913808867659563292010965890371181821954337186592272276148815047725799107244618982536801155671678422033424879824809197662048732230550406867146697938093632642654415307342188357103479735092970462213919233350039433649832486501832682122844120081666392758448556433199814067808297901554797326446409902077148166526108859768023840987852424333254519495537417593144890745690846866155954370817280076487933444485201840053122708499113416865780458138099885960044659271176512951382601782527650851388173332525293664752863840807860404319579795609528455719379784526745901357831658482440165939430329440686690358321392953445562141510176426176338628272647848266161881193964811892209623281200396029093244540174461476059482378962197354321001368337924014870708733620002917455311879438349101491558100713891892400329837527981410968667403031916870016434318950256175154507877876995276827319061371056476032474683499993342091954957036297649456485256383229591739217624126457050557018987698857101954848357496701360327555488110339617427019228099725938362317592163543969598380036508984537697412759453639925905459910519234011988565661157484721379681840988832818238472545037167882802077258252591151663630173001990993613258164131895606900301867559956640207651751647178004899788941864907988063930994008636712187179134521870378990224352982379660830618275225009216403219333873600919311683666772964348968620884375777842790613761101271139642815506335664858702918007229961459134338856180179622237827432754240866829661885107529435293525555871288049893560793232176222951129872455930646520149347451419067119301126875921499706233380502788220351726709887488294403958920086571802025269636063571823629013195031200756639934598420255634275065398631319250111391218847551830338530326855927039647054678780816332862628100574654765536298823884344778099665660672204612819293045241960535215644331847663449880135272352402334501411995941472463593333315774219647972947777651841575589998946124780048268754063162164710420422994410569672322916326922560295864593319989782928643321871001381536725550171786982335493206032876145504781980777180829640378024496514902509715730894589962557540034163341562021500422014835866334240215520154222104069977387475892206856786630615703756474840909295002774639702920911118524622550661826900547457115988107973361057944608022486230601176676758032216560294880606434256377529686869275089627825075266938774424362184802120719652383830617019469447497844072524001153328079233692050626018196470910429161507166548103371826250305395442793483761228707347305642479494153463592382483976056640717355263625917046928529318530342145553088986246065488913511255742248936083166749670779682832111010052639207141141648833723657861868413489849073736686179875509519729916339660999035349645703923906901557136019840187974970080817001574606595251121892173315972554284476287343545327911891748480541359707960571907715952930899362558979552468924690132829903214209603008353739837549646359239679304223981549643614385390607508293355537948983197875336066671519773621761165810551782899602675893254630677185811585752219953730145425114802028135070454786689002075041224866124289876604576928660673069956646619335277416071538870136321387113865920282986606116536072192225008505795647578259593668768591926886767365862416312118957185232740117023400042404660782142896772333086593328633925800202713589990906565236981318111114383122766043796869832102409873550499936083458548825492110799959628986370765547126403949504238385216558806772625920385457649693781356294419743961760628333133118563020856219960334575794639230833051894979526728161886382249671537880361703018197077022953104954022421133690353595394524022377527310892448338250128548811631149634075495664999602144780095249398531215672943638951683950331225237652327826606226828736161580246052890548539977150138698978804276974628460068571404363208990638157350807710183285983027004054459766340965904921384608253454634244281241835554940155823486821332175746753598879133854616882651680354703397173423999663319475392770759233169635564726319874915916643558419712475779536524638413808784045662423617393699266864779331958681497112911033322312552259101704306227735816762941072487293835623125887517590070117794355132651495005531127576467474093678574693424478156127339847973115703076783896368174014228942763332999774073987854717666751937287044043889057311860176114660795885951168997519723279729989518374474342840043140983307360618104318929173384046151598081637264518756038682460456103034894113594702484005966104647175803972131236157490394203374603753309612142301984682860315469456640133750827625567880457066210989812013061225512242967147284181307631826568117416834109942379297099460709463403513977081846539809990422604880583553809119844370990974266100211746294127574399556921789822645198040521295711250784182555878699586451132017706440909445757396909807748754282796124207934767679269341197338467487019647422959762087799625744700729456100363926619072854907074541886512195649499361965768945191054812875974620907729971663162557394084535016622942684894321631185490547845593923806512888867028892980549834655449961220712687001593265404833225010302217864331339814692850326900922378195854270038633825713140682468697008074147647191400556178543204041055167875780970934732854539365364910246366361919216104995104112650375478290890071289782628170570535945538077959450746658206913552335120080895704361957566319381199893450813574616458099367983201614537215782433506383314530143664714908193918142673109916159441387335533497451803871223642776294234877987461746068533343970282707580370605773449493457130272000500637062689598382669000346545217367132973538074615267781482359025911951176273648270352179403683801137995639601990336124505532936323513315885631519212629272784205259421335663189004780876505678824167347938409535484680665782152028487523048501006331603580310303623398515287531683689894513827761471042723979990424435980940792438555861063106085499606159031135676686042645044864063286892262262555901975877737833595135345606678852467587328677805405955966631408837411044411058853074331129757386882842865357226832279905996039757272232449160493420534540657251493503981092289808164615794370020562973353278445479679924735943705159070166864051722898347812348657631299232998287130415728578362743715914281676091723959061512082230138397352558941241538927758945108473452214423117917384124756406473809919810688224266159844323614213017131927403874172144618293024609078569423534875805707474237000769227232081142572541991387542258643730808561233968754084386580380008075664627316992874703295597310788339796566283101630316345801381310019564746742315505376913761172399941198776255714846294133427966725283541514237374795477626767368456794326970237192260519157415408706496829773155073341995301018828200452110039335230386919459456099871233787034321589270575325186934441530355492343463517684379261235714353512779736325574383490681776016445342277816449451964795392168701339966630202183429366225722235060419662648122579434606169301333354190110958474604341181210102117878399613849336626468553695979150271569065842696535876725348879324850100261665061136787714557257688063483046588482943848709136925575483052775318026243363737575014772731675633021050312062256626441547415081713523119834447177098508597053974211183681537146891862182739129869855220364840942107841331995806472180370102620641990626194652549426406344355914500237790861456053152610568750074063302238531275640108903363268827674764712230921552464603640398860402591826913824572317249343976761464148302453151661319304936422374676277870744749952980620387024405012117104039043056914485679230232349111991920486576583460786203901179162807894381977583704701929618948205883841651216487610027712854500461198203056991322258008576912566512499268244980794842239160606916953391374421139086976629187018392684489536885779903117963415490556794427720422612707309804739317165546935229849273872999338317175875454255697302008010757349662692291067403637850586076611217970709240367406987439990971772137377486426044964306349308609974777770739217957906916355019597998862285765724067201640191034947336805127509800069007653748293500526396414259022500954477153939312248413194578030607565736594037380908162696597521133311120601106011214352874340533126174586243101182994583267200092796497968191919238473718484306492770037614626662244229650701192511671776009258143100144043059646529665062408047405619510984823493286113945868723072692432057082979914089055456764559151099925426867913001310518596397846231270308705955094272802076017986318835957982053041547661541899754042219562543843856759133925346255764596319690584937557319596265848935351850565624033881902448326290469317552170343182902522001249174683190338506220793689680512620834188056757409846604296028198038955701586662454099251639705532510400077081856520635971045740057854179913271923203301407760629875332241842509496935479043343456673448685940455810312449878663374240345283095943809963566439511040330697783378691965484167026740998488136895809065069272691637655864168247372542795721830947575069906869246696343672459503509104438147023971675984676580473942886317418569004931790475880779364738397276774775482275703967510506775603790754683994945966810988252992204409134457704743477909973127291061590870965836207976098215556100584427909321846396727392686176977254296527644414152662338178619731964254241121867061315274129408381316435518368962556086026730410312458023085327958434019306389360689213344102097608237337585342941641260688561562734329204005779711488626976772062786635878379700854653361602625235029576861956515574327577100487568917024542614504582457686897226397171214417126778788679673364173332610453499194021779838940969468022419238127450765327910374025985033092861884280070596172652874080259055279405935220119395582735336565407994534831485833857804998675418663459944428270897357800740586512269616602616786129112840083215082718793453222329152836786285145527459399799691588245917841811603904327576713851377870049404199194243568098610614095075376109318047750803308688199358823202363786216589139493733269086714346697448068986027565418471241890103879283008803104570243644426314430954399166284548037282178660723243737391828229863271953515515541455966862419055887184146182396053857133248436464507989341345386970751828537227164416423627494867596806597028613342300982818428342924610942160591490241123804849006705716228297176002809521671272148142920879295696221460881307957409302839609856975987142262720774512253254385458463261029177317344768633074881990074528593935128813648318955361406849715707156849665644936014499372252973786000809043636496636122279362212762508365439724562003037229954308837915461048756580312307631696612298185917416555812748868056927697764836169655868053471706741372957212954460417526856956201029074857238237480709246863130118590648060910947100695578710024174540411272665226560387483090607290581982576318399652637791431010853208102658068973187614388679807344506601318797661929081416881806790780871308083771660082743457543765556792180259972507942998174040257848211462620524357628026945112621696317918112765444837849790337873506736082795806038753437112767173115309764120652735414409778698259013205390556586059835505609165533162783888495483390526846083890990276710143956388284389166989214886072871656230820808268895999796330287052153023024640708710393444227015734072843377032570923436344282070043446325995685194939409718450953651669987901828423888964915605281131311567911705643144175750026541279135396657662107781099371733704795686905138889206524977197300030087656753323420725767699129110208706128488272205039770047722197034839449344789320259596492686090462430572260298531538952475115921747540093088332607226722724142946230011809820711217575149975106271862101525671709052616344235038889139641562614359954731957187709193346509550181480316281572893191710844377277916058362136172901422426474024965513557143426956063776248904047102079481814131886534464064665405351543402794493602125390035690209963476736847012430440782157926990409123128775888922694272019461487011673361926016006815861958313808600506261755393426407946825635091540579109627761841796360973618761708381420531904850223383200941823849719356256659140394882749066944226993041894774584995118882672340890677303878730782427332307500757085582580243956474919320621670689764435906774991656910278563481269325002491773575154673482250020947503808312070443697631769551743893588708250388082053128376915591553575477424905747560620500823627633454416100668367538228609795455899971816203982319241836169089268485420991062471636568153149998239534211898976141115133590437776956345121653402470141857804354930205400594133444673018917871174960259115798902002230940424463952905244674031775060798110301698909620296122311172177913740477851391661621817543401732179313790254247838193333551853389154971561144640122283009796048696568673561799815332409759961162750857078991993175506780380518725542575649349102363172142619812363720945201488686255984229066762519208305652469684878931296621309725743037855450682612782660005184696806486613635633761681591863330562026030441616023458087820625772790999547504413289990661085195270424791261913459742845493332274432222109478719478969812394672887696360198042537922054304706744545816165013788197238129907643371279188829664717969700130895034055554643388730493891464120458979132379489995712465892122519249916904891942165953782195712723906793163604504383977058726448609179070661025192587594067726960502129930419513099196213416398205546468448008629135253243925718859058632534147856644558526506808341680564065497366021795779737103844544755947076879450265088610860832979052826274417768114279279240730202065719735648278369400201938763024468069757665846977673979979950002250521105143669080945118138417847398146739965083724547966701881651325436474937328810586856959326716575768138873058596493941383224913117853856782137075797889138389598371929505522675533140546277877638554413522962627591968704327197038052739278095004791600915402596846492818036633245275554913830835302416380304623617961401286661018853356298866494901298832693337066454125648850611176741734867074605921327970746243036589690643702283208476099119205446574003160824896791052715976974525730032575876130669013016373400815760031111144449635527814908520417573576296161319197727509739076128407242105528306154717641516702856101014781605616949435611802549059134210251787355241228906977083280547185142529825680634084705387638035872024265006570409484894212946292641218537996699215100186471355685877968501119436732995770941006193432516097369123555221950717425899336284724461804178941852466156693243535443154106990070222383974420053034814945146441552452100379134641376128321911454301979756762865944231900158563437692686787362038781811419685360784101534157000381275425554976151254530948088380453196765052467264673063561404609702808199366094079795908393650693394973296402930388093116474240081639535703654307543835028145798736175743535499765313030257308890817530444906129417393770083560112561109871580552104251356006158693402695978318434804877313492814278023338992939065052882434423669499186591375292721347259431975418966966150036205050066709472770205597044665519322876727860761906424466219641189745939333998309374136344498313145063443508945474888586648309827934511803977043336583973229039408509751624052923424128019321323079232372546515226175764922927924494225766474716960271076355401215991356438758900711680969740332420136231212764102882687034885418543384327482278333664680344194850556664767217034274803981521928646807049400341661117494571843918926380833738740041866154502837945738558909963826373950312856610089878363668838794446612446227331951114214636105309116291192039439587784355755737401008552180401959945425745123698071174333505206247787639531059006682399753913200718634382143606548487794756387393421371679378988307594287935872098193289403151025588684248460462114061766260261425389245084514138444527748151190451391465876343832617226784890820066871764703989349074343781532481637720880107461151228855354038424895338544238192367881213710743094419494946811954817436337793111033510776918749232861905386925294464787633655005125176517040389072040464436007675273319851179113582730860173927367081216748056688789155040129532393460979937575869516436736027887457890947000956282706466779883217019138359867364718628640342780922596036262215883249191519240635659853802223521068612737613978554567812941814149724232861556921860781752954845195842920671742582011313679309524382347760342330172452298968373506618502589096179169230716801211706119786163198536286185078040530160751625296913050245540758166955097673206962041591724803218096742024474121958457577846392313699997234210973612583719386627121392832003811997089956748998955938893510596736920137529812506465457184870556981949590642260611338119920026705634657433066515109891048392101477728682389052946068734684644683543114737989414601008386442627384728854615690508793092109174338264969996930064999583988221677025638183051261860754741246774648672836900076701588853046542665123595511298526022120808787060213976660548568818236746517865471326471586861995720804255812494725022212112719245331911525212291293848748750317732391116453496944503612480543551796240065602370977310178106902145851957840733423729616374953248822925073416103991691082020401441353954762180018977915424383216651285520194919263911100836849891214265236328075308558194859576218063234349219787369828807772882005975651260485809980272739407857146982242702371178837974166131786812096410367546481379267202227730311759894653585970944869322139983440484423617440406375141687102784880947380643219720282681292398730032707953216376609772764554219379770627879766966220215203518831514998284157413151644628968763527523650451103509315759734892875991316590185035593482849264817376060192895034377087776847974612838272480894826282796467507782825647568171086933407505605658627942551921608067210123881116423083093031225795241100158594318091817239755678437636509407628847571457561267834123660337205034309945482730489659824069384376691393865236644743158516524628002245913821511760086319562223370731152555246053248072406708371285911533256769958490932469115948613316515676915793227031736154945165775613323968342714214603436274583982602572665219600303449284207172778786878400663970552649079039924539854882338067095994700784555187041567000775144405948294663408637160023018917227970390140132957038563883487435132118413719136403356634787360332662719556889745987253698835398096922792915673251670370792578432080304545015403340738897987857555584380237526868554050957158465907793584908217309375971573794178620750112990887068689011319510126844860753488290282402800622380720243644302439587421403485856347259315379619494807861134850463988515339371082928359136882746994572414841220521217341453208866360950955991824913494614723075424681201729988479067113980262307697429025343648084609414086497681498733884492271538842896071465785685294268591621205124704625219293948844241594165614534341189523518793541565681066225418335577053219389210340592455003411986984700044390307544684293779313676095287235804448245520943847294664474808836077728070140081921053859476321872549946108719570589211507117614051567307248226667015782503221027589713988814241461524821426717849796600262981872451362704295394305258447964835394672394845311559905475689525334494877059590388712207024386821696282232327300205870688355752966219458035229362014780328922743534466975853346845747935104843198230775027521050374399604637668595059604966661783937621398604638124822633047481271223676058013324119767485759618836985287527728213968789085933290713500708466171784364175851724831331160731945274241489087764928082767885097611159740772399594955215154507309619976424042943836704749839579735376032547429385912389523135097479706490320468767486827042809410259030302777761575300346512676204546725705400792782006903599353607149488722858906304512385221525880717051943069917807946833090292142441216209734797760832644531251240479786737872659458021772940712251350067991004730975286959070269521782422925464054325823464361473795448959000564140549704176616887910410592944597447272091803254683311415802324376607620326872904161707542951616865565375559061756832216947620933026118669783638357707744564549332006274266827600098883385720520149866612371997161958468887656604220017013274633627382802981167617371018963102768667507725290302426411912241955774916889659157808315048467609920346302609906114267014955729573529113427394162889778440403767984365323079772538498738176756476950055180716740857425566099681761884470694501164878610313159395527015646589860468128238267638676947881007855108786028458428087823177303777970807577379409894519235928041939045905271543027064497124015970524485969819915278386313181353841758294786370243275528434345969815967892220769445552338089298761311301900671877245805860188431884661663354482146294551660423458642807183394482643539463823593649905735243829155783924570949523901976353562942987045134551202932463335410559069682459142420274717668819788361099165267006149134877130000759802582955091233039739856694556552763921369739077342096417993519807232236359345515938762313500523829574641549524602797566660330621824195768184361828474589832532985129302167157897524538652532929546697883450523901167931546189800251162493909576493138114475315284026798866346736775995479011941416631772771570947902625520007132043888840044014509183301388302686429890373183671911521855889186543241192980736008659120142869040708660768232601989756389718995859885883246638966505878771906170383707880841286082733851586586856856507649357315611722471684448054359613067953047388276639390655294083288969585843750578497415751706247841664469653152641533413582493379677878533888786816298442958058998031523146387032173740936142943606844578080733609708188652926538309114241432862892564296397822757928518007584869293554500917749342439129997204781542962297427325648135558636507417962290195870730534861078275473477533772990033028085582524866539422357184973257474061183683836782741354725510450621325680085067622644741613238081393122041862131121554795479984301824944253040343580215148855845039322373548322050260145487680495717768149534031084739090401885160536263440021561796028491473903737659426725038804842092612733779446242604899545055502395053801184549783434614630222564201934709059010196204562826084815342994698514978354047322890684957847634903544845709291875351309811666957633078465001471396623558742287669936638282271113388686306337977660883151845866768489859772061049890775408416435441935363706262601441161666775306247736094765382361530283196596275223876127672431683122820695082539861381269160826378409318150237599470450448770408562227569419060586006397337849476686104236355701991806193729257885814568022784946822007386558898455840287024674360601347508599687070743292247705684461765775447019550488779763153930967386273911313225728487204695735690868209073844047446395263890137540956155774871669018185472745868927156832503028323747288447635302378747610272707975763165851171884707074881690977308125737730248768795441528091244354281859378200826666385222089288273840777245310911290747563605672183109206932333701477244768506765822850241963778372272935639659191098667844214292873819150348718851383265601165747720036335984900036656778744799810928073088984527955242145337398750156605771873274684422271776289580477772913889497536667094479392860803396035103620594187297096213693667001177783930856789417696742440383416495557196932908219413687070708101066088775431983774503909841325653175686177189678589723455277258244746965786527756738548564670355000807149757498984777017085488421479539111708603293516506290313779933393023402866698471805375749605650283349381980751806187573841996001173203753555120428839541500856132030672656557414936285807593774217816339139637801245281463344971195887772962390812688207872787413955884939821641266192128657459940143957919097196145303107799988038272668279464433970900778758248515944564109281196699559032629330233614071866855649121986003938642318222104698628995870740134518050538865569851329608054583942045572151500305237429622143224397823035618174476431729824108704897331267546896738139816921580865003103978523706744433234391250602372572039761769422012030406323825789938554257878396417565169194202987977234087413982998197266287053875336118191252281151145807270235018644158082843122744099008559145344314797782133170594048191460207458803150101858585855183572518409253618268305655500489064149467964484978041703553442358607129546522827576177566122388374229717249965693930078709721753424070436365993879563594573228854693085501010741413545099921945976259662745171512070370965039978410306687137621360298896643363016121519262142798813182748266012722850355196040659025134089890589455918835603103971333142752887205964808105123777250547869411734863302887892009994898521716706547293997181128830698958501469000474840001957915953960772780035263824885278004737195839572239513975772065000702675019761351167328720794047411637857299312469033359922118444813116000282857884656136699287130554294721878546524068805302352796659776107978532911055217798644594757810229250885384389415171370496434578931267211703811963588108700243881984768522322129546076285359859136463593144323064219017890999848941823548832165951082361041618533746591440115158976036513915426844217420259669397266001373765494358506265191942256060844282951312232802409219879949967183759753091156427443393857258276109451941481450085363682065621408789639449840498084417578256958603315610602915968748786644760665332448359169502767299825528854406691694628850640809049853957058601325980861611368304248250818438553788326840427335859126509515544082816365899025299366368292383237849591804570472502496731177788750201425070024774970530750965554634223730836090498179002195305728270252845208551775028226325520894432246093711356798864992697946415729018532262920917960326851057880155384857305979253490746301875939509676050259071765647253168334313726428272237857102445926611406099711114973657993001653802940508549026607794941657292073426583299374429181783526964318047216365762464115947271287505326183971141625829625986041633637619204138925893902151581939715862571523021548690933692190204186398649134250033889575609358941415162507896044185164903777860317776065289583733197760160994856449139172308483216440743675584846713661793942098521151733465091415919968324986483096161368627384436188409201766382963697592626727355091005409165350100763746032642038019000169347144745538339077549061326178199151863960171905193131846539510117924352210018746914035500367515921878430855283498667064235568474454304125451728943293204085163412940387854201589594059415273157168147253289092708518418724562646412186595683593062122182803359837141576048829302486159820783631222243946108726822414467216081643642305448827420111801821032369973119071206505046871461975735390910990722081053249416325205003101492058804580657420780909086403692794743850870087292786573973481706022878752140998274704768782227400536178323603906662840965741921122578509873128069848721778198887627750423300216049798302121187784762902248691048367821227524984911734026351423148813564097161312319840358877305827867790658680163039745343980977369967608407190812829416974425826173135996527343416700741182794869258669971167684069144880124465870798625976591440325499158469347360838538726726091326948692748261911087721841659806965068643625240095194663867943047200100246441260446676198967180955207721568700747007614632038008307379382575381191649296969816944387944830513116753013633884867118877831730878598027657109925045251431496202120158443588194262695738745942115360317901343521603991497333406090679420980219200748221759286625322863761486804241423729469218049442283541526242694900873729480659790888185748446585140153831754378332831756599827116431119091328484483087239833871110469469930447186397706448189525823651840970523004410578125285094331566013920381441007959687746291196214159020988503443354565460234016614588208212037896171599208022210903138725999060817186225174943682158281179772624065927992771024128264213112668886529005603066942512723089980466957532268406088310406840276469673790043063687650037269849321072476630616257516877543557451940352937741322593807334166972496039785014351511947372602965598731355476473416930484444944661660282272298907526383654279707726401375473742666922605109301152866871737798672417586134951603480265604259125069591642465591338269341669817240115425166326329154638729386501236745528417627579305969010209881656348943913323456808465241692187091089032528632005101144523532371249988023896665377033351100039704488833962493904380162956234372878579253051608437124321968806106713288871571630690303730982079111577261000982605736218405020564677542610897401197294382350628561586469797710905390167069787725457892977951750325753138379409163701402427554014674110878616532935403384341413250611691781408342995186182589422376031187144605176593416118864632559137600571565887955945197601711608417703521368241495580237130536856885686322831262097572053493816783274011400272319572806827915142389265288768513196378883850341513162054390811299319738715674516666044030575852302255088277886967485859288033305954986868836995243559352378927075102062669187804122407696957280928151630406844003712663896294650777192592180384155961094576143509645484859351024802573507866912508794479608983026607766195151043016097811440347377187007068176920468855908308812914034191930292284123984575378060474359253271019803689983753837262268076604927669754310863726578887809183768376267430997631675395393093399304469476091417125014707410203513887042525088080323870976589531206550546077987729721106824364092818134933430295887588694479212663420206314542567341769401544046006059755731867086351422375958818991577837444801229260576303922372965121582433369270711830413900933764345364854391746747708285629850955029057212907220827418957307237732509697859533234226624634784634202508990517365948340204133007112350248612783490212468048003622478732846545511296585989611236742858664460240319314991398659792596965773833178023176514848188013804397606702936226831647554160680294121728780571814631335581245322135736485801431100620120374278365368689995859381416258468736709110186741598419350710016825744297412249598049141854440159220861934442884415276391290826579625716884818685296598868022357666090592977205004441326619195547433321269211369245282943221129716305993578076045824588789342482114225700493349299292333959139989437906886628756002399800068871415676709695210275037946179305350159946458218534857194049299359884945691919174623537646439323637860697872182340342822624139355623611530734746973785921825230231739179228507937752255571611093217659428688278340115636173177534632626204883431499568255809876113175556242897741132320570293873913744367995115274181912975723764542687419539351395299509786562023021882475684398296709554316450046158617685203332996089889939429765404078788725303677879938347556124259521735361876576246367963583539155599909746859523336627790269420186351272171045791996179698295736081226592876199951237656717846519046293452944471020016064803945559478238463231450345825375197357859616903123958719035454989806201390105901076974958932887440023596830120536448379511327965126249521467482232920828092641198106779983952361308291615883383002621627157765032451417524705962295029350936643589391686984420762329051989113432100144546715930018266392326943605407776645691507354414148458518102788771267048033228532180771213412294647192219539504953640893902146423291801845934603039825577061933753776516149463626558680867461255732339113846440265743357961007664254420334080155831128702695317859886303677198055028928554486364566713355804130904186796624546053916236197718854290449188889229722655583507021644507176463225985170817362353154527328521402902054355115987677473041844519416884434106201528670741064483414027523129281609012372009637572293563456453862918544662128778582693603726086583411543756168132860918701872863504740877087061193519367237993979980401952475611863001153825948943896197195722025219667153473801057607255637294394891356503578764798337962472460583885216545081386808762683401771673356599789301378420088959201355552840815394040323144790982156891289507266362448844826983869359123723245790432364295338340930840295950801582510780938784306124311161173935206734276640506743613563596251502421799858008878742224100692295932641479177978768800190473758420835212555964837693027329123269433306856476825202886767357434352447084333784700578464969379082305311990327762107912966855302946042078120510512301330176744983157910946936213390612861782044296076434288002432001594772146923839371491304831610001770676832127471175036774891652004381938792032702006011854100793325469066343291757198367221758594444730073398944606233602951405802481940199845598506530350365747147409883281612133631756026631355264685635095885114163030852641451266230839562641251580915221100142707412989090928421379362314641746138812997388528582574019915869911775107214127512738387749166066046094187166700446677928018698209916220988497013172290156070835232688636375328340614701563168373036012222033232581265255841382048271625482176728511622817299881925632651396760341945871889365263075939945309289454677305759503234405380486478009653523703506744181542996982145808777215008228912653191661983159562124338572100353613770712440058696354360877390965692301427894262057611100644787341266080191679119416692111208561915922938488181650268541776587757588891545707503775918169190958544475674515181696142233338789399468529933727231409796799894730357916754940276395722380865025874671279456553977923691267179337240803992313653036774175977613558996438715317009358366768453795003373874591061975148835888412622279607124194332329560265426064232228473158263809578201864996577374272917347142893211031848953890276826276882965623345273660189160423235086811967857239374162478334727483697544178851033359996259940496291989978286210045257510433278266068607553071016809625688265014107216629849613669090464147948991635706355941952492947843175590342363482519953177308047015809707834157343119915979777678108549514227038428456856445549794063672939597828302227455513355910662946917352469431342217767105693855081045003656397280318227741206446604424249261147647869730156269018904529144434814122715098735176892424387761381160723190424014324754186448065564339538650955690394466901756920375591205561785970631824315840281419622037021966019438348452493430302214444221000904778820303544757246939815423451656121260400129460944455971157719625047939614745381565806785825943136237479707446056638515826739274576446549500890868799244502467901558715625010422044098617856235041692410020287450501969976874365744949411077180458543710554097279528947542509652367063418620045897888549816407709359139333849873789452267944027006839835453407077377832593557459983735258764722028447374621213300325281528887915398756892413291064974520250959005902233176745955509979302912613748373441009081112681932108929679707263474440689602897017865185745030281648891470262882470096558375229255678041079161243172384951500362520201283733259188286877693905093943666259821092014031922704071299706329307948058530011203100812934132289010404376649065769102567358185240416086123616072402818066956138772404743436312873476707651158883218781835901918055282354385385527216730366889990904329408792618265716584629516021523618057590732059925544760962912808306167583157547900227118039725028207515819498569240884539660191913936949814394213909748615308479960851006727173989324820152943043029458448160355828977917680162974546447913871254433435823360740322274294078214397585737161805265547123564931100791877155022167359655627380973611403259982716623989561663444931024370262592278836676501306380715940102879018848303429340538569956589394067115540715719880471908147093073528168807194632433908651870252084114201335565733250575948992990056121136078700979632573565607849154409962600839137140788741378474323552635577392896134337467193753069262312447581073811356447251632335884240025478092964636548459920228688689333254149184285093876305657680556404578641524673914319808032688011881152555246954850639139867936565332357325726693786151243258551469375550985305939388793287439445823535424137871022314841249886130707022520811351055067178590623557475418092402083836686295310458006749979357700831743701178415917235777984773381807726701383430607313680831619363638150689047313816653181543733173647438316975602180407124404321248732857687885643481379484050324253960063230079609958150517392441984002384422598831794341049082081123094986532451701957795343281833404433848911177036217020354544361907217270619208927736881455088943434207948338788024757960540968443083094311002230349938785262984480845818754451314222071732461740107698407083728314640513411253791286398833179196159997233602632556137064225036447540337023205584328563771283483489418800050079347404738475296164551120753386833830838166170708039550892967469537568732059959823605965654681471741545193308740019503294170353987707971107164206730936377800419940754714998357796577645376273175806673529886390622227045062372315669713289412359504617503482094071415156076278324536376949248590484476014540335576946838166117120074838432832018624332589400502755687765456170418173881989579260558146383264446089347686853772131016756411501918890862004559559358671019706162991372289408093984329568081281067573468174558958545616228634182277770189779806119494816322847893965447135604809789575508865573335767412284354426691250966032051883799794848061668668185369564722737805099686858495118528971988657757925753745041116705048439780769031067578332857876231181149353186015674188025226577381900463150832470125081456700850217706063453721923981118411007198790667397606500255349338836030163345281758195436467614883631683637854624274984143740362321226200768549880127304693341901672740618897795728423899648995505811318875342970150780270583838939951450527275769869160386139827220297635398036938263429583158776037649369161184720109277784824360584689917470069838232417797842962728341709662552653471784141386677940387879497686681451376240233083385347215856931272147694152507284040532463956126818619548053106478906597948387309113730902609319416035938336427645421859237680077578880791467887740696227351069739932044937672993396933765194880703406322305523530320829676026332927033399670819948340968473927928600283563351475349294162812736192891702352131597059052141480614077385312822570000422177809738663004643700911480215077543683921810791985762424317614489462396269958286738168244064391376213518234184202783606989024565642136547041348116961138456824586320960387146020676661455169588068950046796352317173428790755870009842332345124440043695715233886305362119195945962077834228150010949952404603861138568654231078662152911180354531620470284541811531676745994800240613194435774446431397118478542637678467809633123376994360739544236786833756429960595592389300290684729957178712209002090419982214186765505913181503951315167212880734210403994399758409965116823236619081162140081126267970367098410371460389463648417508543637591360927236321502530903319562879964000376308537684451290254273066998331111311636704364430896249212127395600477044215314958968725334714458860262896498838161161319604625697729525363923801873140222992994519930195677610200127671298359540761708863389787217042567068627024444648156947493102618533135450937028264400234158661816602058508602258613772324760559666760306695946395274936184293994149002298156166554352251505811002517910043228401716104225878785355053152878910411840096354257137487920062798197333549923229840784800467419969005695281462696902792022734557698177119584220060596374757065101706721567681468277514338106507851825412062136021155273116188509835916058316033465163951419710847217462621972464643587218219609304965922440485530817256355310961451403221902279675918044619817006205848622777811951909163462954129707000463192346874556886688214931048705498691906999999973236168631161825838645706780015147381547848521477363757849233230801490578929420862975282235242772478351158260483556377595977643547809342473360761883103557144416777362894131293735999999995765718461920873972451719327676823235746227368503221807001900525460201857610517810694604240199245308428476613267044044887700127855912091162916535915653020655011327793456001146580927016064565210255042144830420460158798052099481048216150794232053518933580311354859853469266491214611423518145097125136903170034206993737781916563322938895856115114883746924362217004408327987089248539185728932428262880912463745508729614490734799359659932325453260938758412743958372066109426764603334139981500462173384653213000185717337487355706905652377348578878498896797511836013200575818685906688244269122300085648118478521950960035745687387546465765106691661498993015105191458450931335212853964038368392103925281462372373842843980618633924687728863969870445756790072185383478007257186133437891666998952877496636396005386364422698854567765310992597284430001739686842269032149855430563125745677118304975527671064056708503787578553224208913802540224774105873895446468531627733728612353428984101418001275333306394643963680578102005545588519439426634746343765398658590991166341163700226776316058420305555675290237348771348244305589232148393659082203157688779028462285297246177533100617135155672066960305248766857078568343770947434419598170464015084621870109460158579632758309101686253546044619040468129130400556827414012112025981350398793770188423151811955125811215870991196055282574966868071142114683668055725702907442754801559396309588450536687143916431007005018556834982292163544298586918330722532145658198221874160225200363817297524847084918800001430166770513125630909457028621983995124958653367717359617357463898991937477064059172418506742884674819483058445783162151874186038840527755030253901591811574476893718860356058670098716771653935306216419449990862521992142932094991469633000876760685723956049510546208995901599273920374673343035877524324546519488409274912283869369589729465206227504069321621569884452457214951718045592465814253638132258068998740715753309282002055862640083441274200214669287637548178418980583845545053432036795907230027226412802404918063619619711088507327560513136102398265620576141791639403788305971307246915840030386122235714006263643294140981024304603968542970054091893662764509095177286337450228249617945315671713553846912584784666816249646070267469841761924325551977137203258657104681254118192353154067507366831494852285279109305902751133369426916792104781779167628852766054959577231331815522663891159311419770487465390701867293564970826375820338935970425737866126334837692245449103016148356769194903439364654093924352664466515538322109845576801399111091527934366153969919465806390611959528224339571232248821690438689070008401157694890306710626458491424580001705878279685955834115577861648574534559431917593892990099714151764096851325418373620769825938832936317622787127378021247762325753583605715138138530889541253104934351792098285989817881006976977376261003573155117438023331930838279791706475374244753770841851376615271291448952926648953354032474787736526895331933743138006826733478615653962073328656746460265598298218024398207843645335896347729179373544833130227638417978463741495953570761322278633337039452565682437433671538861019650135467500779489494160549338356424787136538512146631708038775061773088417035014025089468684804369131134020086660082997939153332093570245348239330612500635346752548466332797404132588690986696737765552114564088504574549759061445527409194974782350666447493126984981810053557361196369559444626104205343814955084682707022713507683628982442078902332237438682936035460894450091741967154024685153303773613040814959293984981877671234127001681383412851535269996349624613936715342469432724854705914840829628552653255849597535589797036764976270201932461617633687509550990842895639538931937208432509551742834684605234272167020192880639957694946618708189238051079888750093791055210878765132506272156678362661980440624075193183193248193944158439645142340939977375270883785767170464825980660197510221283881790694515344001566810345130450009227572998281067334997294657743220809477428056710415580467126700997370322345019503647673405353782962886944238409056584410213378619858589866768738997751702598226058302376469190925775214439842783325484811913745774884637542370694041441417295977475362868616285581781882057080109228602329608172858471246393612781949409652660592680161857927510470329187002886227228403269313615097547852012615782787052694776098847250684016836171665050332640824289857049518639664637645688648212238646366190532993164229303240794023913302960389660362122711093947748261687152011456251201365384823048657607660071609847800545536999747027047711327615169649596081919425068436819521188145787964193580924653223837995888889855733625958560708779578964350979714327839892410154258617456082212630553428105446398225366469280125085012326561603003449885163394432997229100105171149027161747004604319615799791248520750773361143182955807882147901610514082858638008536591599237140783954888937649519010973353479940302845602059570482340429972418544437272574954397389310848740786755912294466078897736261657560761490443690203551457668667055456455465928532293049607695689013135482824766425914210372532813537996669315176004574651951441890759490106001399842034486538802765434868129862885577940790934894581086805511637011211100342255413084341103003875591047718039132817353348916785989081344586418968179442983711904144537460262286312147466744271080029737939532713103163056261522872276798075785704668726705794367583548464670894135480505632953999655643201614659390640644131839860962100821263895533276491461603270261602265293031794769640320101291911182601762185993854286951380406632618706466129856361658992439722068535421738188429744213533423544437601212340936826047156309997574610283765204901054879615376313025169439949932890950752802994215309263826430565401055792193578167685762265377922980012950978287212199561967143510834502791497498098823473742350980484965274624138232809573112692717860222375094187716839587288792668986211378956721832909728677346411072836382211020739065960706248668116227748328104638886714362662645807171814528032273845886423733662421407330185609021148781576742712119080990408420685158123490426764053112339508129642821631500715567146342296364387556319918006488818449540566034433670319365558402122540854032954374321636512583289941221516755387375536506139817057114954083398912257070491938860558855595307394092195044987036419914666876090618380028011140185107532395052568442182013727294426208698833870594840645125468940997921898514531045548442993343186813055676888539556806159704472195594678376955839936617942361531146098218580925608628176452590834306899178978469239194091976640366133588112583080795462116314728991043613413120148069663379266301184321469002286998219517991178759736827808228851984531023328977583591943124966970320246774544268792576217769899666990816236753481541511731362936555647485787116634165800065457664115746868667143428759130401836821839175143367454035307721700510577076695679940709395282665624129002796030185836951397510352818788477929945227335637337877479544187925445784272911451542586872296247607715167583148943741531085684843258057188112562520508118743043154135741396844128977804216632025389062266073903884521412489252177385432614389791545944315726603519192866094996764182960606940516733557448228388852261001456542607354050656217484653184754604508920511854645303927231004582733177506069268082465341587195487150123351105331220237185060647232334422612355631946363047728152043589211701418533813787622711230908265562137791905510393984082591299969624681256004416756723591426831122785231898769728941698021769698539822010209411990972341503026826332545682756833881196458997264186991794209583224717714630156630560990141646935612828831175899394348168382955197989843687399210808449070915398604666029637715510564393459988643050923556664351727606578942416273903019779467161818454922428491149678125350117079140421539746174025083036554590441575884911695957574820661149433625766144181365500618051349444096079984209742864086348077355602688237392158897477509279419674687050719719931763950477881117078771502049695542473350947188232577044273330736334068622612200332387153822341562586488987715490614724507037827089098931908044206883566246728256534390460371773498816902637638283788479689410298088456667394042841327838086201891139383586835982511303872334966401578984845595341878904459159090084177061296476952575658802572778872040414007389803498050087857979630399631033258413054023644770758647326281028341985364094084940669610301989617303733788471949209773455555958734226547932752621175274322597150812896540186576616841308090922441969074962100667918714085771865748210301580828204020009424947438085936475266697960822364049490787866028947599757126782803851289330520309573829644739099311320287513396813675158229652119708254727282567290657140161254839301218882223538403073741820313486247915772649840548702745936971636001884617930375287117720845445609250628765905108260172141750560969117629287704611347770296645630792364574382692966267226804448241761303683748628906733550447546524510515253499095443117269381998782587922395940225038613141343804982231895806508317643477007888972271765629012403327527174725610829164007469714561384426544796132572529703606600638254241217094422122972260325950330223340033185086216875455596923202967650698710318924062702860111912347714827962114489561904327843707671160382516025185205388191883389263586620686778196136971560415147070622410281923324261624107169971742889681675657588919827335100980247987839701916797124271769003135731099680879915601072551962387616457731086040521558701587342922613741598709178436130508500437389136555919182853091153426803693831763299324315826797350996225193835780981514827827888432713774410333461936893706404317322642646921070919867569510209971611464471582282360296063204328432125718625033600664356865551491506788179915221694470527908187561817897440125858101889365002776460754695050712660461332597452136458318341951546845421613565983668173526701281801723881038639067374742558975429706570287125401315436826291860181597406064960043826833408447799642508802610790182159462270635634949060822557502255860749187690156709087077353462426161808360343267285315397213939891017098304199452985459452243149875025905898554863357462922742802603479367908113008142765846912833138686395054667335704651920612290969568562811843477572138667218753516474719889368905111524053141339955046467934432080419028837420192608154020120439471692337755780654233643852509227485684969830490000797261286485589244516915327688190670740096677366526066910457349491561469779225606005323324404049931816674693104501967146493760633251746227657744220907204467474934990244921911303136159474047106041515303094623916546336759634938818145785907846309256123640889842504132721889536942723147406072867792375415530985864236084295543499325777742309066435467383285410106593702604599637440965699047478018529271150183021024513791286208263982830888841135031427679725531537409013034990971110149484047640767961771323105171872782189494984640133426623505353377738179197516853460356827456065170052510827098314916997660979765853387427248262484868213614267625742517773213103651486249828135676528202202556681481143366208175512592474708421629365797766624300571680283744351321203070190009478932174814855398392595006264552190023018826713436699657643492525160234226461914534262930954372467483540851155998859628025719974119544474728703784090530544574371599995883008659887338803598167705844959595689860395983217046219651353781811433207522740650528280953080914367651640610382691195099594258391967591850737677887330829647360569979820842585849213713510429399658573288999027327108397923054608633707297014110682566691877005473395880030653544985586468169355308783497999775004541736346434782012570667645848301870753005601532501180812346229432303731443663803861283497009519653423861089272827855242156968016569275426625469400943796541466219363644930580460473389648753643440303267325552837961849426815828659131435413326494019375201144140885671919117135570927646585175939643072322041557805320046201414413646975141067905297521211877056550203696607834681709028338782747859930073939739979038805411540736799233547768574814070661725622115947014557624126020753849142539993785299423288073233909278840761763604520677589287406317292649016237102746203007153374271525991029916921932009568755923468591432092478092067547998444279192877336082801554961613685735450814535483017380427770881998273719760146962942186781939599468105818728461261716937077340787671725755569585373696998656753134311917254202331024577816008580063165976030211230501907464507198914517631826527427877051561391083779084829221793200156691422869638435869514082532339309952241479855851971134586129244253524302411890333941726804165463651058852371468734083741277088940665262070592851536584068054193738635368611286787689828329854006131734366966644393339537625539488200200582759147290470086616321561939558965492857194293014995981098124447407586990747127625095129559818242753257165510984714092755804617849201053143244342039565686185028934427908103219981079774751007472019408141216258408021730602114860257944504971282949374139542111000414140967894204678733607481542753645270028305203417891035923487935746572709314978340983436370024480689631252199626464048543372440106648862406461816980500220213447475925449504637885763689718222204442476708252092601828752492054147132564637503415609210065221642191537230835945196932976451135878999578760510770615462457224395732532196749771530602557062511758900294427201921733899065334972980389069644213132384584241984793424015593461455451258822367508823333136141578994063056138961499465447427032553050375679194594128751597109856820804638771161880422598428699849813105847291244022818430540081537929039552208963919880870537138029188300851810271295896388279646881795478748972428834491941094571140089208846389495168928412819463239577185976228242040490062715934495174460078980849313080806070068536804505607059257467387597942795906429466907433921929827575031762416986601654387558382924876793320236818181037983794194918015981042602474608977298758979913071206007973215843245543394755664211696304695178317654884641077274740767649648516820370076778861646207461871072576552866843820254882774109410486760668665587770682066919637124833564959939945677351406475857923989526213173866686470648485225574196728532640347860115773678261229045576308627874674893649040248166921864714434677949415564753200156251090286434887440013594252171042388614758809807883059469603820377693718366746485403612495351512248120070358695802884495993092773838780969473913937513889200769350406119462644555002176484215917082992903737319142551315438529049019216248205178676065148764606264536990511372028493312448737302259684772134074026124892323873631195216003321221751105832826360004473656533919200633205346914034067636857694115271874049084790007337742461862301304285992477927369961389868208598057787244354425988673909256162520850200586011982510191600644551204333330152385205216276603697980017506002724055680359511757266459640199054193387807508468693904684015104379721165062976348875030314048355552146868298859269057732403850929011926322843132830475066393656249316208240402154908841586716704044106282587300310537440646674712689656504919693958042291474092045950945705240731325546238521326673570926232108545900158486479662173844463005399214488931258460021110033366231198401145969196915707880598511946094509807079484439749712851867138007786166419024153189315406080560280802524438189468047242392569366110479866978706879096246416116591809091762429866428244722015466154410001484258727181635876190799733172074704090946720577259201422686546261527912148335115755575941448137637615299431478287993591871284949505519250891954427843332097079898381104762349142966092231536588485747130698552903965892047734244023778123010249656522409638912571584569160292898852953416163419855802647150408299600465244850544649269159623176628908644357529482921718514458421990257240056634071863760366010435537667893267076378758618267982600449677775325520605074319824019079000491204928307742007808295213266696874766063355729862733975738370677011295780500933094547242318487450740477040669161225237985245955547356658795351812159136800205705219448543876316986429768481317842452215626530331770786894167906608376277685318363886020827477033149897716266198652276518254596323808487780996625580442486532647264098335197378507736759453708340467703237043923103436172207977635803771968184449352373432921559377168374261229230026826172963808776265984761686042892391957774220712716368961681540456512115072929288025063041924583658007262821705703409893955973507263110977790257970168714866915178433926050345464655722757651026723275189421748520377575936118342926702470278552009678478234319884749140392308928637943710235745119199512722418893987903505150085637179414231055643429418111092447737813964231682749870413309521829475735503237000705317439791523423055601746373620357394389339243781546013831891487187610864723751644586514253063949648827531789154121090222159834790326400186589324296116985951072883828026703149082208238319023789048396353951182612431652317617240978801301829423619673186083574541035744131572618270713418073121812666181659595365306373439352256135623185503221918218110582113909599533548410646892187237225344576777711486267086450039955751093391814872180188020676038590685297371690836624999332103306239835618654002098630674469893963971105929356780249974458501411621945700518561925603903295503686878508310896292634440851328637039848114413078304681092327922306432120157206820340640724149863962037692726650047204940813728254811701084393412008846730481635817126187347663813503703993051877055249000530024058643152425407681432915383852713527533711003142520095018015913407040648870066329712662747794735494195108404302899058124364116600770251562318135769065724484445139130869728446104296590762651607504897523372575347419387608722342892066499465737966025141743954505539377542402886826824905006761164378748664145745193830040440021742247616688554658806776777937800356451682547960111610383047664081824222807612381480720616047843496318639780315746763404519242104449016403599155217187630638159523894828442113662149435708087295537557670578148397730837560589317463393659567091198460150650332676648807576131406059957466043370990429942890704911116210442248444774409048268613288186175220271241314230775356131285831634032970118796527803995761757509200535855856868767646727326566158812492152335821241109782293895443567714521299209427703465626942067196096798073315056468168251724389929719988737735409549993361437703343717505877811690300314219851592570486212787377839453563914427236999012395626064302305645740961119326504075188620075249652985770076977517435817531914370920146556629241703111977342081611038490946333981318586242465828550742258438105463366200427810887322226359011383447700305616214580644587587723575464583435694974223031176407976650629033746383909573713777585663576923573510387398435956998554060203692275431235681750139057257215183873200933584470101122799147908225695202558639509379186940061181736754115714520832183707259782755154206243625280025451208944501881960343597861089146047807209867779505278287569693650465644891252387756214652898422057022358920182012989136122892714696047886554512186189060814641535670661259100014015823145615181839453211325619961182005395056210671035711314970504371371778780775513492141045723892290177016866887319115802340096389157741816151788897730593646393575747123207113072620303047942125846938666441641526123101545302388000251904548192496698074670289773658005525174578299102731958249153304184895442965445077710438859801596382072984606492002920846687925388027842690515860741128401258400001250890616310085046574768709864820116391949875788316842529038580631632577965076652148546231491494641549481317146815643666397577080414618917607907237000982204166539684108054793644459874020279611130517343419417163990285900040522099468557323011466379916788784520837716179199800223204945370358498276733395349348494172187331973903228151179833150243064237121694731422874495070945983218292740837958297889858882392614933439615205553580801038559328737501448751692594875224239111556401719305939433094637465894782240972619325682804246233748922344992959067642792717877290484610584534312704413945002449699492905921774800008516830869673373735449009998975917269372706459475420365815422280427412461610566430849914050892203752750628094396161518650653628274997698229553683605542748473005752416173831712023248209031703764810907117017795716849859982033710776946058240424545846213103717096712780924510143280526103063524916754498683173067181007034880716911380717226375357286042855115624409569069419683898186325247150857214869833424933952369650364227165586446905534092903658411968447179754289268927017351689157343772328908247996699915200182769871818861261039784317678636852932988849275304395386317723815175473896780495488648381576621357856792262827263252412410980494187221097606939595011741616353612228958868403616457585932152005073948468838827661211406680008517121878974484566434943643975775080022131253578633092195954194374755832271108606813288720459865532156389282007262333770732048134835431046583657263188474427558634110797113166703103109250108507430517119753066947396528043153380752383759702267952891357143365229727686269912348083307558523992644818920651739284010895166411305545898527957667764675123373658848207570316064556333214554697093468432770452225910611893768506447025759338591601934874811614091424359945492611250338352514726715647694494857494806388649651455634772647083747407453235863691265685883368732521319784116794497837405291446166585289477314612478878425413427512722732526088522019808244631608664228041503838095818683698772773015397451940803424984343254550471439317233244812226454089438341858886113685063239617095833411605679274176124551631891586052886527893133388947598643491643414776702875829431155318814116421589747206959038828504724266747523255011746679411675350808008789192460317705481307210321190044750789333917218507110408951601672084322296632413243987416003426133040623388215250307034643009121117605544242045593256535306864221867619144622481213595367046365846694588066626189987545445469968109964353728471398629514702418908645317596810711738975660004893198022794671593673589152273831566071933744730330658318520896655915027860895783544784095565832104276942674350854720489070938235298223150226962952623305506732895292030740508226611223712407840218648692675182199125426780732974063902435423568588047255836013202419640385776675292358408553961772129402406730235759768413179570925505032053383319104752727037113387831837933385393548562934112107320573748685038320505725304679671964609217118479208052902308789637955512928264724337861035816288804711089121108781460812064850515361805571595522713652267249664828828067469967532969378417323403996668599488498845267587023894381029385811920702580292700156390280515633398710014404199837358236170943000543709323972211140107231481829489490351142415919522299316400500055357046462155767271493609682197775847095686125550001682406216193083007302783727212341466389513128814906904311134853220455130697318336540536244151285812448485389886461774342805598769126496963166903042808856479466534906402684923358675200875209677275280852103299243722897631582069836783197248881759653429233974472101770706655159393312360394106536680973226197664137387044847561315593707759499701238934678783974675400803385535553807617193203057347623826719773051779532370101986577134878574464719311630345487008393760918561588516809480659569177725427228937485418952356518461473407638289089923424307883873601214703541188630222708810247968680167702854194328535722506417003711048171399318461208972291197358077983819240403242800209179073484011464730703858673397352014600707990580865160346314707110850009416995041305017876830999228602761868211181260375210661200889743139444389954747891271808050057172232127042849603664151295882101700937134786596254525593418985945341995611037648070256074515122479894576685305858924595381001398612291506568175915401080363542609335360162152748112445090901090978450583171886260357546497308610615874500014281574463500621995344215776182337738341581834354685488658751240546622061695299529201487851987133075164566437033676110983016271152841350112747027231526535536260486028584736808607260980315931736316644673472974876265281734943492858271045402522241534088116599013188352135722292235983158028179196161376882607600430029231025876041331209604000076628936724865030917803131977800669094605518489796583027025381846978049697005933442661057750654632011836387653493302076526545285385422768044621928061897742578778651988531920422798224724468048391689617284194246885870947335902724270034677419160152847477440738729342038789693021231571751876856940732827479494767942114297058931044877329691919338552959807009700741016415585291169314434364757980073054078483674488078726122751530765693622902948688634374049438356708603870221252216271399329902937277077923000249013890356545660228796286406167876230795614125881103057378242888048192106692557034673892932087824707002152801173671307294231386697198466749764951067936272945907446876348610310143644730216033973423117910742565813611378317380496492117324644716167569899319972559163026828142300595925592245279453694608285624157375436220312135674149760342730533323644443968943167243622849208074881649438513914761334239482167366987085801503307775835829660896938321878773678020334849744485104516092768605767397612680848494608572205929209660681166451551298082091253254842724983254280939604114395461648129799284188066954313203255374164025138232803377105699256262709058809068724543491734221763479676984627074164514119854670862538757534030504793479678431614827129516743914500744860500292337229205787001977101540824547462624354139320248255238782994770617632929020452375664361269630431590382585877983553729352709770826630912040080692488229132496670714033479417959466483336863155546336544938274875872129023952148399924005051722954930515613206270279891590948661606130155446392798812745096039135516770502567244858191612672771960753073710245248360347115702612418531740716211418942955366987229526700042287720714164633469025978140688207283347529357792137143678584736647984148974240533035237514599200203300804018429844478447920294689032222281461038546512157470281894129286804154465497266435525198562593921043320620158604763584528655410613610932734249756406817106589621353157517082562184651903933675698968896425077542033929419641305797765088981573837413407004171111595548210043493456625956146377562991848736322129709901659523208919347479845240296389089544692964598225881863260424685779679706792301530411921615912059261447161933637332944932132820835026084608959292151121420910848785010231919539402840490190905116414845144307476263501127924645607530829900302357700315026194278225425858406105734664897706437662455892389741807841838918160494590851489358640504215669349108982617360015591380558010540544330113529700474034449170617590024509397785018790190175077388027906891688951224484009199534065890434474413231890508072998107153142784291210082304895166328045392552147706561530002376029371567107529102009737669127139810529144129522772335011095892872569600207542479748339128626067701714607656163132360002589502679006814616077081884323580899698192701029258857046527566757109296554266982248280719883651455173290143145006974455303842846889470169050096676457091829563719005027088363301261515383194231857504246261324035919064416686758688815317742123076462691572754650685512475204731116862974867821950429295258653479028654361299555895680899731860989270608497263969534284946752515636222806449894344928360705102542202323070259488454775281730398851350504722616126222961085458014527714877068141822934766168429163832709034143041930440650751317300080469657529822033033978806803312206805274573092066642049085519333817102654181992174824347899270789624537981242355947048494472584520003271235397113671960587368556281342484136548944825782607863277300821349599103386978140638509719583795145638214389497666682811159196173334411668695334308921176057692807187145365949828882736349297267876961972408879885278575588136551130970491219564670542357077918248304545007680435110736165986529445496616381559321685313999413685438933498471409388980745696311060944953777182262231108581059105231531710572121528071874268432907510099383523086851812978375171696931641505440891864364423023006217069339653210746466482103823042085533329989694606497555747956977223007078001133648280720587764608965170423720145182443762249261800172477205429185701857028935711258015366564379830503483578651795369383630558066392573255102982369425004953000411877492360248704877796184853690713893417183570692154347043094517257782588172100425828229818280668627218432810417745801661642752511656271595175856605233570285615980035808082154235316721095206314041037859552750915716980959567364951014796240058875888808752529279907171444995882864463164969658367792577748075118578634494553060632693302166505929498945414276839614991007790263891907626907874306035025458738724090403071466796539247370638606989130823040432040596466216743576739831932259273925271476822793442278166601366903531771925331613291230549915275507454720653581545695846755117344344122224832783020862983711277194439958063939490875415951503586916238903813823158740083743762124756396316544679548160288073750531735355103697043468341178201684896213938393507973623203440929525657232130702320353495400143606683484174994308414871291054602680798467577503736765784450265998841449251926130264187628900215767962591682664903808473615024085417337886881201181201237050772288598012318935730711502849583838145565349584017858061255483730932169727853215250225551635852804020494095147671802705746103229990802075289503072214415146448412152435948412954838951371086053903124899878422555394701241183299639267866198700397531139289898997502376731632545535813707573144658705233253939886429937902089179007762557742773250578491902064730275615377509578600241880520671264008777335969650773970007008502494765678187848107000796231072036181342126903751930356749959435831179758733882578644239922199537430748895204995869392017682635612616256538198987310271925246790858878485162590975792964744780990295347639322219470607904053014206653469018698121541287698179347445729779815448213223621653872088613182713932327421357506864831764253910351792318114200805675608853475648185104687137653704401720626653537820946698833885345522127522860453165436565298346648015403673037676406982966957935649133207281084970777924684792648066046560235333810964829722112786548820767754920476481359169892356907354801088860408365274206618325300208793101593843280516034802573063711256284259262190865419703682148316421572917777600039072008465455666546823651443843429866769072727678000717989195380748685828455451615385403304242375995521145332807399845514431752100015127036939366180520105500146858672946512659872822686961488643007626207987382969753992955032792322198701187584415485520218330006616227749873661479737135790802697828215380847460699178440664118768258775749882379074046314885059096150746620399274327534467355899014562239835543861670809965131515779910632238683101893186084866545117654471779968147620096761891839536822521157916116831988705741824143214772366556514255858500181057354607197276813582510956415135961757351360643086352935029717178162217773418851778931241450637248598824268749091765482253899112426555700247029875508739774628693807974224271052488134676393148337344772007394463773573358418382085019982991438545234600911722715488559949257937047860951713329356465851750445416624398882967049148049684999951628284222284343003171113972799024241145115470143404126775302244701219535593210035058581955215965366538934405232153721639928608389882536227776671970825811474432294839061150205901373641612822545013370104959750411632142442330938983212656985538894114974787857254286050068990578381025437866437321018666621730712556901034405985589815486568821497554438289145991178026562353473115918814979749682032169921656851430986846290471185885638275207221868115049590210532895253953278323244936585478899470449745295845491395420426956093466932942183817199571018522984744692957895491398690593964377185428507432499749906349002971773560359317004155821474241737325608283208635337495440793871487470102008934940408728560104808312088025252016876469096686406702480281064824366733350031044601900881844224857174468180841271315514765410951975248701024848937937263926850209751477601707030842947251489774256082983657113394218708987967809483104405718391698333807541897262920759774116718410228571966068988395336733378695768243377705714926815339452509144764698468899872694642978057925554826171205163591500550191433134997868865147908841356534834058320134474326653201512024072955737653660497456831053189196858813959459447621607352248710347380555305179870232244908150324962459184538148704602616663897616904218833762648213329250233438017222651002832951625644263432725691401814370787680548121754146492737521465648171675978880437525125960809267996110424210247207414595436140960701441363349508578008901350770263713030451015403103406995012221930022553181593333986599804183858289236375170733553880378246254640726353534548358396165078380894796384426061699821317629855601193268768166452642770294286591466948231189571570738270728773296124393010196572311431597271580788466492414055207383953438192209170077869072947460814374406315063161166130193915467659195513494362085844121495855831963146788843320544878516741433055835599941489398869480820068679691980309154411540558369393852256033296948428297311315268208959007545056501122997342234212015630158457232360428731165529326955800935040718398366969665388941153950534495051220849971733740358118975849938089283472881373258797152152572991405234625619523310471648530493875351627194391738184707527723093235756766866848343534688659833685471280105685441360333175127029367060994928105547371086140619992783913328462090600812064466604820471391439083117519751479358664462937720581384386512692324427901824967312356499888562716179454384313248540998859053014156809778163285753469752658365776823433665555932696764770423445272329496861443281897366667165479843181863406362844995381692267881625135612347911181705098176023439799983173083898859404138700387951290784248141661811985860969333907109051302007249274863635595976642821654448995400030324596088432946031861290275566407087964397903862491606129171548848142496626447567038902655933725564712057196154428986046848581843187757642140845322924754102090707332701118652281264792973062859558764243738861136181071815510263878432141005931872769818099695786447571507181736931268259120495317069171178595366008340485660782749964483821327156006750945383793106828960117300696505088467828943105038925923429193259234392906667440412650612234218409861435610939253803777454130518716743358527935909333016796040979654492515210765956937134792039869207218392163387435464102879779378061666639395498752908481041935987166938032633621914253948156502783598643778590864456957266980493409216358911752915400612069400305482343509325824959309427200962726039803207393686948450717406558415716068655648955640957503035393862559541400032896309485754054955435397614675089807112157221858469255209237037852214871245327256629716841670822691259279206846472480060194204793911780593604790442888211318586545146206969423492368670919123686857884344721733544842362996888342948222947734047662298369187037263010284086203001689631072352032097663535800845592188515443723401076755179799235200489855676027154562605081932282366997368056897984704747768499651866463984056358407909864584947181251741599096275839673745881627461944359809584534750686969671405479999176650969814840633097229392531997640056174247796361202498728393426606206233815894340985875012202140962713508273963969500498707179071191851800240487272621286774571565849006447451338720489516473679742385266585285677693243465096439593096327292456627848578453743247158846794947700472080936728198809004712761789355019948142056750862155653188129793407105948358520653529544729924759737572243202756739963872986593142026203999714984399865775970504139837784203508652236638339835130688921735607604162154706530525137144373463255554580475854474555756751676304890773978023856820265212495892255328958638217537725828419405913835676143514128756577083715728302444974666528478648157580398288096849468414824543867508251162541860740399740027572947054448674079140402968672247932976182707644694443487304389908642815445757637326333519917963050723856510317783790401280868422570827464192465070350100062957092525521861933241446596080374175866957885431613746634667837269413432256015317038457176139993293639883756205166155037839684053084173012568567519937631049116537316291071382596671607490881314972723684949484367401298057476909245974361322303652582893633465649743781899737803174830576216915239668693638008150197398327823320611604680948256325529604399300924396212166006522381374986625628416380440500517002610036346004195708811014081360842919013408853140992696647113981328169628190139037845985572347402998308259791297196616570330232935069190323156772852197902225641664195741674595900437995937590024552639911409615820244234831643454023319483566725224962448523650774801470314982499254040885753829637913267414131159578708678751158690575653122633958252963300092027701266582568307811932605492330987973148190414676189862982930963787703927949567983237651363466305844479947249612483710528167100691844546861330130360370111596223095878480940630209524177371813599231833767197636059237794804619763841996785780549537593292699509182073668884175004702471451395808841412605743831290123487023311113950026761665175070246355742037032714996883710931146491465246498119561154013912497421603515973241905988117903829883821962332895645702853542548136894837184882188468979163293491326220592910505317919461033299038065577907089143194794228174110962404540649137598026401082132076986131398151883179746357811861666814263750163609632868467116187782183702584798730347092907797389207862945305486189081939500672183828340723262089279263340743364095738656369718557034725532055661975590243156402779959690399109498401636099132188512049714706096005971322270850614542579771078457796373880034769608605384471678084274396932897696877705371075621381501699832642902489309616723922686181679939809318670519764772658924584351733993773486429570076038947616402978184957706162591148372075371346001938996770536905218948868895692188258084326435846654435566970939357913624394765829144567152258385599797272148067917105755226025177639900567843682640196303604843279502468074846046586462219339280560800753613150383878599215621116885112615261101451093551049283290415093760743353696835999860391148764126256935700078884663075195790410531771670220451445951446012268349400343885861232792413207255253309338745318302914954566004464839313880321388257681043047055602338367149520552150804910410838717320232473979305322936826308352716115118507596154465416158969792251521711966866628509227701562445716416532941240020784244572176423074616017100230469655466455444640929435378849392510781026260794607662004735667915921704171712984553803931005299104846711637004399426112937296695364794100229000019593452260230046627802644389312571599572632856431717686566863075146452788290759328262689812377394708744451575505119344623761173043872803449362389649862906736623545863237419165988047338091259069036586033673446634666438548268625740282396440799871677308231314766078173467849529876251188332015319612355208125459457957390729934423675611821364855153694816598014378741956328627458720926185676541093883328462163410347399474406151501757237156431610429240991854870937576405986826059917181912850302258444583107578150835084384883674467099563647629501584878092141861177882118921474191811168004683165719615605203833887239237248990630058309695790189077169230611344884686530936402196586787192896352586066469806950316611867885550176993457765603175491657780149113474160506264335415960974558422662691764129089205727499980322610865814382983192275255647618278353746647032046695570460700984165126273464729794477133454772812425341536138746673721541180938490175999213717815021230118012147306323309578879342022817995442872250193978717830237711321985150702855976353052071889670959878740081075029183968437654160681268673737615024164268923220505521207143176611943413355028478103682978625421353198496171515623049303150993754638902688688981500264864890460350554341002300829764034859592799142575388941273197672972825034838523795816534135415880412599353275583471961760253922809446044952837101489410663286437682371924960248775682848280546964779055952433382907950446367327557424287830788391855376993370190858766851303605146127459800500210319612984764205567402349676715626546305157463560754261454972026746167041206298414428238115115356094904298281377907903297234960787392731132733425175118576344372178712749338087202723785390453834925929282127983459682663093158794828622891706922430911599368897632807625896275317103472796793463010238167001903192988515433752358717752726600936827276212649926752361107548052838709348744500396666704099413667890598633704084152456003338286698323811241464084882314140844005538463264498398482282069166620428805934149428090593809394509022928141681940535993190346764017123329105735943251818744094958164793896851433530241037909032013368504700892147109104174618106405179729916663896914011927186725123561494738195083452073002522564854408513562571342031880318243735803758026498389214236441622830905924714367655382547196554675765832427627290920050534456067446111977996041907463632603076825584488526529004907689983744211792890728504008212141213730621902607739892738364373418398059794840999816017024296011576171191732023603867521374119113547945025365010520472821848735695194596349594758986045096328786177041461322480019502498852498634994722386798871185608528650564026214157740002712227150888448852085836545038362661517710491822726735331453660347006014917620962434830414755322878718163347350969747900823337291570088586829122934724319371020153781475134246075143041271488373874545907604394739368688112996133806983651481841009631476913697578616881842886481710723789907548220660104061687946736616670000419397861446242960721685422301855088793664945344397942428545334588707038024854305968674218153863027895905678555478938206301582335736199839059234659407611042308885930502926734871019101001024728227521164522477740895066355516276111620878972264514864700529037621723926727711921983243748230432980777783012919690007826879804708720478924217756525445801707027280475873939603052657723065440160724398049555732274551010387546953796436190617274436792168379673927873269957412254449186160641926988757966819050855812134493105213495815690189525809127423323691775230904866752612601027187876750198589174005649797277272040206551812098534598883678725309166670056261240350555390540530750989340030579943686219727396221354223114317753569537668864590024415463663055928917691307496808154141858494255193705355267294643293799288827400780476760384190511154511923041884208137086651136367752632718861080237551138194937331189843198161124595725972816367610877196417847081280014895142388727974103556722055179287673671628174685643536183143990287979177881839016884888166169383031375189110103649205095060534796178423122741786236372560164912563112456927248100675323657752636181507420008891527384133437160609386310987201346081034485593307539582569123603930903148581040217942481377510866072776075642697159008135951235491636945685289296996569198294256298243471518986654659383361527579817973943231439692779201026547097294441643250263942952168935331046787299266951073694277074035259168805023709466424201183084095461148087185203911638892124074651845660808433935627769102140314146708196945552778594636610982009180755262516760517883432474445503152341485479999056224168680300773898763311912170615061576291148659867869035792952737200672074870671187279816865550851262780619952800427258212324505829971977307708212228759146866320361447338914637923546329114301728247924843749847114697164823374858424112515852070046200100858071527681510187090224722460298599700740653528546112544588853887203387009026934017572017214812651771423374119037921892957894407110303316319254720021868861530686372469550519113853199450986471461124176895492638971951057763500646096059883695905192683919661042070720401332955605019977361801349208789358603268820505103422753549290969094315059162730735963314671097095788835304824224943814755539355995475465311457526043798224901907126153954515126379289893813062122181979101307088619972124393406925521957051118144894380461432050152853778405339777406008420532537765298379584788583846133283366737018451167893322617636554484383804881529176103519464867073253139748694447549021284747618711826181425727855236308338696635966984901743486572458220094031954758120595256422986730351169212464612089660464051602904831142933753780906208833412680351873756410053415742720348282846290200709128222146138149128657871943727418812754246186113520591035636116139077533327251920672113851553145729512015447162739737838412780437861405278641605183429537893966874499166100978794918078380385601662398273485169736804911796413876332762268216402788938845378168109819109294670276111306496895374178019404225747602618536360783252648714359429563263329659136342891393090357467735256266325886268421302852659542052435524726369617648864538096218901869113672223178979376827643945170015830128249503527581633652670572030104956273909857871890580438739604140434196618115407788105815461457588674584787012168107465198695143870400183940863904641390154059319724291929181537192487767442391837998294699534534138038670516955930280745509740333356401375916367638554925018062888060081305536082695942991848747036811798535512312549458072257501427118910514263714265343127946961667415127078541060223851124790849697178585937804022131461795116048489969284215707975573814687287441969951072655635488328282543856357861702733341245839256727428546316547468502021361162324565371467963557569111252045693324829089095617153459740682743806353417360671639337420473325103866130441064928205731162690281506986045431413463197491884624613998090018718535716487730828189505378202265009604812471744144354901249953701106496574296299533529102261335754024985029710861256525195387781330299446132153683000085251530708763774754041962352276666729358443714161597664876620387299032027852217685302832740838870899039411209419185546096784405874064763522607151024706295688849291815599020363891670584622805226482418927888061430015684389147813269436348135733070718114513001174428912917483908632975020188249033158815030833172077090737531823396800191144152080448024334981986872402578729164145025823273255719536453032289249558336122250892118722766539169795181422096304732573385459836555837318058345494151913958262478288640739306585120316619826709449466961733510849152385380386901924921600485124461853209557348917677504630999457912606407869542800939069521777140256449545535643779219148513844371789225604663525861777299020773540538313106459069187724429937510827511109768837495167962994365497317632106644963832033293227346034863427759449524885631225362722762835075498162945212641773190867065013342754659226417016448189376696369578853595372267344745220469877758100085701334702956791182481303824163955851917202277937332808065756969414861517943924589430081480459541228437267814933989069129343545543965129573328169011872019474637320716382760313115807890782242846554202077801374890616840717040908722175000323384020305778600476330789271365834267984839517459921891222770837811478014100365953094422702150728978947549037727920170972433309977480434724753144094939488942423053227190042473880637853051925047011199061290023236573199109060420927831815024799740539146330159032755017795093635381330905535183902994538771952425039387065000408898756706662406242267306679500575018596272311264401763899488827296726604215265329470861326877660563947208167207952514117403969490913126593109178724362551026072804318962388714192003071050278541785892025346349659090490509959177932302386520906997471650498555554266516863798355138873244403529079350282897022079365193129562966750300531984072949034507550955851504270372848221083862854652891645628612600982897919684681712270450374156047115715756934799628853608861488232285220090648266637432171144617357217140231238406273510385513056867648717168034677063332855331992027733830966183996468575718628904886490144374455194653133180151204241053108314257964971034500186687374111236383442180143832051307295593730236250825273271556999226278731348462694013450769582367491717476863969826301616211764994158528680580548994554084942000662844488584264175383231353958269093890984684179619498463668531922025521411340092923879950812803000152851672435787503104127903136435302214533589894510424249262578744474224397073672405926005496703605497423445937848282251386386930994220022193274313391296947429394944787907690649782075408434780075545541976957029099606434095519739011847218464895549260269180887271371503057053919557020090892388155540297896019340751982934160321271699833599003763328731599637530244693597754073745333831684751359262564853279422132849994013286145333611498428832905430434989712438709878371521830033415510329884973902130247329836944302508707487119464972866823074247783174870487051185807662826425639464787539235179880075707078639761077454469824246692522484797014522675984175096328379406127505505185802143427180666674941685268263465246470541110404652311133921977252245557408168358354516805711812344956531577407632337196553767981749216592239109316925746288152622468218426650965777470607517553669148773626037454006384530375265121688901860063430243805242625949609306167679394451611241161288227412650604858079121010953441001202597832542737715189144811520911559170921177734165197342967277067217028857309211826242361460087171833633809393957742622922477504977470912406149837165237844552701961967509334134556090684127341658591312715008259859741838187251609023846586711131561460084633927731795807323426708833741157777068236586814652762936707825336324179852636867662176186389127908856153726516230754284045261057866350618050954782758458251223991067593946189839585421123057278224557054315230254405841954919279165737260825320248988696195144235496847990168285410399357142941720687850412723718648311522633836626468108595686233595444745382137615922570405061663671806362340403579637308318326303952846842761157742737145543927131962551106575464182121293503353572811533427559418441948611954209009384362566037992562734349918410886304117301756595906658172976321280870197702721027404269873541902204704077322976643455445148401133327103237087074259424217959193891695773060814748411628923820255143038318707742628548590550684722619645564389666439105315358087103780745243894012701496451679256984517339907008126317359856761112589925617412072107178191909825198310199338174293655295767076334683946058510536164874633717367415399040299395450110952487170368538534720140133681600503605839782547026163636166313027376881873031128487904796251372374931586440174759890636757000873988144427759336185817675774919935733506875117296553758349291968803963823277621412166170481694615817929464042486529003764759227872937236240000772025244975683590629582744704824371292357341205292634272785723061309848616001034340771571042535817844073466831553235302916167400974730214960617114730192124925986108445732122161561756094448927715653923367829219744122471449949195553989571041484232428858358939912172738870437037959915746669505778261348920942589392865975695377494255428742428311227943475870039539347677567033639951667573849743015676678531917672315927249873306437820579021386019637998455219899070126845543390243346190420921902313657095695497020991327975811215103955215573231125634300747008730245484611557352652541269981474104289860969122076766910205007409018748054091750875884753701121879572001717780130634321264120150583569532019241832520234229440506194877097125227446545950963278641086662775185844432132437437628409275739440401641198778209446791697969305968763277423039531721908509633067797114693366277870478142345625634304570869932465220818695510521480992348133973448614859385409650022977573112089902782613933799705396184769870345567799138978851423049743147271077898814275169501309180462834753300630674817606389467533997597804883311667919266315291181426869199050420035898610034473631295084863449827872492621059582694740231337597459115096682302647758088015973591577344225913466900594614121031576704887968595562528857689763920524422521449281471871170308761982735900238820029877926882148494795875589517102442299053980110778348080504072172140527034678988611080260347477832197262030935213193031844457199797124964597495808500642443945724766013012403803901095652662123350342426875499771958722173077303554125970796019773012202285651121296747095875093188231384456100773946990146254399025155714837606590306808234203151566585177625091642368670377450325907399062315559099448691212332010998804147851572741830370796902589976544536642147166829368078683783833629829539439733346375767740635441343647707440609847360832615410300169768043748770514311604066793595935165470392149592539483773268391433611725752225582068847868112649665281316320960516319795404658352543333051469433390896687028123904042637275841218716698328757019488185910949339773914117509589507102427596566299411987724480077240570034513372044825529539663442688228461368924461241904347607781729971169601077952363753959723892972036649233403652592388640776331372233185507552208625384899143103645812663071248643577107071045663991396759028247978101188664582159206786976404050537997903795533839993854697854310665258274351414089676024374623200120047710604044019011533039800096615025422490604488318393013610750887837914269384960115097786412860342689165337412283578322918890048528783960822557460852516159510479584604485075577088972855343077554693274436605874758409724256517115898088538357297749960579944545002044568993550747899554342588845354130926414932341344843980400057285456583115881767352439106075806309664543850194868104892864243648387402010689597004291803383010782856189510646627176115626429791713467946783158833635056559811701492830414631271179438144411879555075147263616410030488415089354812711477919013616784459589691555956909645643847807373671396828331927551500490937190375593166219588896974956902448219757044922482125843390786932489747860393478942559309700365283368527556346303953158502886361434120249972032371864465266684658586448684322423267853165141573028829963059975385829134016845657362102125733671806931813792339331740274015287834050560071691587766779433083844677233126715065587899073619084881309534581926925477418415791466286503132430206993114610268284322573779711964813747607981174536137752021393506106686040033368453481771855117331307145036093943686725985535298846689974667458304520699170608603783268677408154591372978586861976519547494649193901074262132143998296408102788235776176588468202628802191896821324425189876137468688072536266113042338159118178862439199509138098034388959331021033181641681413694795471090328966786759444327326389746116758106860368737598628559027036395047053664924570728060442399064621994125757305667949525127162183703120914975176601570047494612633575938593848417360885321995878694938613598905891522406789640084792341582677074321947502698149505993386689165446003280819885802128494918004653014307381469614826759645065490655223119888482678667867665483611908787478912590475992753493368889631071446506695979482975003539664611396715535046782721284627291827117714495668164364946236595172295870513118910804810606978032603536943063397132390635623376762848762837431011710036318690178872985140030190078788688038852593885970421815364980600144862577948487016203143046236676475512631738104006232940055000512164534231451193563980904315969741663421797965003758304738080284401767258765978803011293251998821437923594577448432357852791932796092765545573511439858432425699581846081336188545959656229564211872240283396383270098708761609723232171304486494448850784750746626044412099159803027228448384844722811133999156256825409912787734844207047461099820166045371591812900751573026615846414961930970297661874256339397222813834563593708287271609384537743065865351662346429690340384637811878299003421354652492825355569738280108438160318953585758524391557669493355791451048491728209097066329759301465304465542998966511725523606136630096603123288384691599275623971642039985036651911899467042537189174332507981873414105455461697121645867771323539427966448955250645326042782686841361880571166620446561974156529276692791709391836967468923859500935697183252414243328541100140807574172946449015622734960064045475522793907411863254760227100858299880728099518154705345720205095298620451437312998018083815286620288449386607463045592571938656644125542262753939697764482820523317898262267187633844616205954759887073640037757488209348520907537691447765604176921885049975992129457840242406519271888042521187481251952794451290047507379622408705355417435084362972542648333201489376026057184024561046472986857911826710969929051601813012970799982991544488495695892675466563498192596137147253156238222823308691576683714870927258930182286958395443101734173682648154045057476483798243339379694945815181448792429789327365894073628170979314608563728820861336178890287704684289163467103701720793304696041957983008421068328917613079797545070648506892586032921188202081473191212089613825650242812623017360996403997507946280899027267943027614140941170957414097483987508546980691109269070629735636045999702843399011315321962630943548874465957138656550263442922880055883022843938458455382043345762224257299748423856047613244715679246697670181804465713263914570301141551882354564355108953590616267232093235068862045117874931518065138231487416248202411775723821841049738811345518344946961494588711354178161627120893034313933496185247587336676289196044858840180681189232034965371006337905537421876760523743553127848796788140029507201018853342005951415675672549160207718384982670294093233504668758334485046622133330438044967240637919009061572423279975025965483980385587379448558976214141980319841464020326878097459547662657524842854797320976673760934175028091944575646293669109726307518788185948547087026581095839990807956401235632907578568066514559256645839615298516008122308285914983373176901319171216548280659034296488971022251595018157490878651069682696918334668601971468385062418876960506088060801210958242490425264536248739517111194103074582946806321250748222454585799426792260517445010468953966668722963203956382905132175575565809058382470559321276935143018055794757773916983180407432313055883854807053814028946675531016299679423467397499691669195041076865068418171905404207145329447000180593156873997305308374238415416898897813474852948400375023281423630654693228930490508942021074117098978183632021550050406461857993972422441031825170401796968110136184362851817817348547279121210948388054883598889650116121857498199062442754114324873821158132762029159746451450217789954563489445883861384821830104249637622892719297766860034048311827780040341665679226004140502639074764881304911271902724510379631721045392123557545691639559858139990032588617042183528856432075520958629583526399721274683339124251068374621751538078040580593737126136526315325517883834190900657958807057300790395773115914749283445041069411941962528793190744982313867008553117920008496630272549183059013636593542968221257382173638593794612216537004040305909438610867044512418650217996878525915078086207142696429579762034798532767228719676373259324334346359557624016190501575485551817184166291990647172726587588850364116453053624810765850132901538556923826627925787996277381689634521237777826867220519057851597296750004220195921428445554027725678585771472114042236782731372934471893244046223145282164985836918398673935386373686041028538951531047112120811340994833162267386514563680121227115457884993649050481984195576233954833061158482435881524446238626509708466568895476254778548434601010989043061803004856376602132970465667738283235695980157527632364608790005940539275647207891639713332530787180225565079631977074185525172196687660125693568886584721072264874236236843940636834400063672814625935792292513379234148683676499517795652121961803157336958086288305108971561738837103712489411557368096546671565647786038386708401972862589465390533747670087382746952182138570561318374907274162538525016506755434043221246899821144864662433689373506143529813575865020276473878435447860180284700270182837913338287713796641707655411055415271044349742276375470393470316052242586720976738827131817478978176072796917378828410526481995328271334474036763997702139334687061208759207170549064009319441324857295100759839254287623095486558235874454610912233853461271177593178055793362056718915151968985496083563533471973113073282504449075118504141943146123119609835763852851199194857190116976976465854135491088152767447724415022605556713427484133777565053089688844146209607188860316023019178588861634046980811928302959692067544866933702387512604315090680781533578209064398783513292947599815352942868894023524835906483222028122424584871208002113267944395402761928510180368564028766022189010866863787391893523539663329440871764150579797088565066989658112724551132103078258682701797281973131740888410713484199741493154851376881885290482973394710872568318809932712186734003544575334664061134979345998102558542803265009142506788154916130996407646718568225752997531397253858988098552333113512845532516924643293763984772331128744825365624878199600490561847111446923892980481333331020975834716130839876967030474068684033008042600628399619563369953061068511216821596266037530217864916763274233565837372890171486379780285262857393244134696109428185449742278223974839454145126992962172895921733143311441470795541037983485295128262923922317617504731586970623644852693143171566400071836106180755642601037179369723467742107949795124117464908813787642944059349306428113087600629456004275267791923014778444872711540863486351089947912336744743929185300629145795140189076280973279041899523712685307544730058148611394320692156140640587303133595176635804692215037464892738883850658238995151919737557815045059024275363387691969196116345418655688273161043555581354239092015607210196897711258054188543997597230669627473910874004192267169776309189860145216568643564279964245730898811558854331188948078916011556701731812483064277852476106604384139619343087321169024133318120217035042545002968857005194627592517097288588946119572870365617990080984088071391763055390813661720506131510227178033296211288687330771568449000431563418288493250709731578425867354553138236361251326353372825944711164238116148382292675433620084623348708178042083543417259356200570010808635177328820154002752363704500251023701261029625787524609756359730739930094247625103979761414002194772973787572895016960665482480256094151085962884984225538092032608087950897408248639952057122915791265259876034135073546003144552971213328304067567030889052748056664326221368819998460374380954243576823766224805548001131967477304246473993202211117574914983983408572501551029834848667361297359880171422120527991312882607482446432591030360878273616975559089606855157617172301313152541815949282122486680412885617744260429307011505912944140181508610167581386576136867108215746632292648065240020062702674062384655912976077517961884121744934057750942328402153550149227054439396971054608841009440875164764789415064487268654254044281135973756962973531093654381642046139816494481990663958530287956781268468435440861792384062003132686788008403508573725384549221923279041535214994321191931381872057694248920464951941961915705591513413721586181736737013409662134553436253587649078605554429437863298947788812942855847261973744731808582504223981656100065960661353704567458334126958162943072712379737551415766918774001507447255462482795927038472322621109827254551781557764134664362635693623445016485216982802098594197827472687594350796712922637583209162417858185987823278203274829485250617224350388443932809461285785209707663147574026218835654862399259862177886059241892584909570426349499005910114563299969056631031445694441764716065742224877272639661825419113344496138981241900120790030231154409869772500699780287416830784297433549812165795278276546344429240641326314585889601642333309556248554410966888129546445607812508319444519622081045445560454985008271733878817077874885138619766458603725941911917539466521203678389483085546983777937638294598355213352767622307864700799968881146322131956253348308677607364580304329807057280098590953128376126126161683202115717756295212714383377876980171998768860927179933507822131580595713056334557908740978409512913515532296710784199722479247691233265474772426601016358687166704489053484818349728118241744535350843763987717240908616905702324324761773126893990160988286093081203479778691587973415185357417472443819897558795111252495653225315162751445898670681343971330921827887171401401649917280551175090928417922899955259736823261757641689019639923714725030128395306386162345880436391646945658690160708094038698457301244825462028610103309060825120089862013175299658742604440378897371215611830558119889921332714838012703587149989611284834994541556139640275891395886139008504111188169183115473589972573063310392181918598228490508505861685981440098902798913887625838507659148133306738939180634406423461000134235565290047101290199939511613193443791806643505321277485013601988274307008302433506221528612357300129291352188380642146523702161216667426641072833172098768147739323981567214625524261190778598187060432708061802024062278141097206641845767627996136669661203350234911722245743636120711691461832141053532054501163758479465910719921563310701540804791287828530239771458872949082875024736417804671512188665007275573758885764071793209936166871125332066039548880964530990636729411052804099257008333878092173034417507484885867293886574281832517937037064200428378247482732383515756518440150960759901574411112586726429341760547858884120503748624539752571099342302490111217048897382400410741680838230305104070571990895425439158253482138715793274813519594432607191156485978048140438347462442870297867583146608034128735560692835695303769766563093051832612627689262640936091887792499665769098359838120371140106713903960471883766398522671014245961373970065071969269110401359647166182707189539660099564116514165153043331351220811412185359947128989165012667375014499444802450650201623849358262373797964775335828123834142054694087773468923556979477563846443888335242181300951755306757133803532868921651903221259547589873035663603576655596589726389659251095435786200916155852287247040373691683927093589268765043811456570342668796585816561625776697910096688578095569057033678126287356455382414495601778654850380606062330150398820762596136524606333152820331976562398131745760428960028423318939431297330090021987825346241604231599306826038270438195514292840786886188729723888723083556140823123523365573424728470701698890573954109318181748057921067653103067378797482421689321875154354515524937893555801806330912957127125354680390958992363905830134622478783014981749770831863884703690574416183168745199591855212029655023391331828408075022447812022013435951494203352312756000527733212983286066610328563194828862053635096743040158837172014736950193084392719762088508231058729302605848567664322135097168500505431377579993991752711910519233109279775298418506477798996869342547728743476714401860410095175660438476198223420425715690486490733891521658259541802292767107971495097142990252737244225015174561243896426445966776423697316476094666674889318290612971705928926656177696557337000806077702950277322959863153182504878273598012844795453714209285583778253645582754034015057388964481485810105917819911092647328670750821451298686054756928266663937058396850467190482930464301115183015024044866600980089473087838437667571298607861376714436669485685491772940575151015925531718202467944014656357218650571043685418170136703644444467655744071254659230247362175546295571704412983493880964101167674323147988397562111220623860995608008183517836695702993936899015518921163546610980132073895609332161859867759392728984531771501103913112984737896144689138401241636812442547712057343942299588682958582646515558570005569308815006327657031420610905923689881829933412342879669135042871130196651492157233062125711694225979913664250132045943694621232983646463106038343005318453874340912160231023686118737577494052810188204363641777752560601109557421722467206578938913822982374057154017680434453725617980652194046808353221109368729515398469021075170432438055866200025433381080602460521207372266210273258701834503099669151162855551576535241595744849457466280232115365581830998337479471167229395801833996668923986115318347604524959434969292585808841989176971294795510084521172669690722729551448142066298813456458241143939217511042209526637442866824935839991836009184127010986995593148943855938229283041942628488130011033273080066088509518559468525569487051335464322133708367085768203152224821815054321401037823549640369761875273796806302332168507329087205661175668023806743522510204759401523180644420434181662837403854127591014550801737264626299840940768239094190274766230294598349714327899140576593261081371419586365736999864386511224622598540704929628049213209651677473779005998425232497161755909830806124630449208026564049850411528585023817575571842296106031485053149361143517839261972106972025887014217135633942042848132947896859350543246102375219203340593640827353170279991376553008216149300931678462269256337319105207920740823477819472406659608874522803104374511914150758916651805471484671178717968905973671557868543734292525828356353408998728568004805370190409198475588495916395466630909152974011402444770321113794375019874731055348920041261083488221722471125389109448949571051093385935876392296083498094782935705163052635423967090793421718004208593871484734466486165288186847295469703797172919999426755344482587657181426794478373632111475024011628032851318212827028764835761672960790173846483365912372373031723797872659262239830303995043089299912164453979912166894101019771558012933799983462814880948980330403986774006458355545596357299712334831166035931979823076174761620895741719127896982884824513042367379096000416998732071468867545749675157149090355024689238021249890710925034679077162224170365939009940706511687172356890813611809072713526552712770867078805920406315821744772422653194589642589054465927963894883545588014567015788600919116127479701566553879717600187199705186860581122778481520977501043608814058019051183449238597224806428810717473799226687862751575449007452448110518623248646998923810506467824460480110051280917371155617792484701760141478811890668371042695795544865843963749391320064705802060044296860244889402934491832910463345387355637784759473519533208683256717344220237963395234445211293157642215942052887246933298109578405084448789188790811766977281231704294544991396454171121859540460487443599348671034217807259150053842631445075682751816633267491456226026848849207941092416754670174213554083477080149568287972664112578792394925578610577792316434817012252273241738907079516498966340081125789049994032461370415018550363737840973188065050610303824126272828222496514795087857737249835966277768291479021045867659649474690648035525706085272100246496091365188023681355728017014965548471348830593142022088044460826535516339882527510569512165335788310598253037955941848104391340696884918756537109292908768970245483839748237558238198754940036586699551113964994229997658394819630489067728136831288654079985010630303769381539090705181653121802444748564540187771600575420922641734935131116979710993717751104803600234692968350376146760384179386447965515840331398876023881428259154099815323167741419855727255619830043801247097837342046174234548242885248825786412980602749640899040830314226440350879582805446633161787470276649598963206101266857459557672340371901002832404131974448844387919937058946388224860648238953773389975371051769185208085532606051900268761628467277296739266174398827137167958138712615824825755200315323864379355770714680535440740656198115053937548222194779717872799088891881757620515547103294860968732903652916425361245712236163233093413533290187024430553514222998308287579395102803988999841649984942763204427097063470335778547853982611973511503933017871319431707046316570628514640854943093939022112328613190708018211850702108999589265869035206532980393670717885959127227849298143159678924770821976994649243494414734262581560498176194584480788503248034234992008191868743388744647876454769092028569775707446045451114725851385325032555034313495463837993249144905346147285675419010169982611935274879073595717839470853997156553441834570229165315058566108103452734267897642824502930230696126604140417594975157023612787433325607097406874818331582794695691441150698323665954367770607917131708487361105926843981420179139370197828086556361174534387681547039328868661078521263563294949708315770679044271917474526549575211207178995295535264960232987801150405925972156520137904736698583611624496789457999218977931291066843211323328910727239937000809247529440929949604192474278522176759681669100955019550508073817275429381693299690881761617487228241531944902806312097599437465396013728046688663064190906662998117877462051057992859840836116868647782707681137951783121978937098535793867355687113261691839862418232403204705752532700568434203286335468908160497916874219218959704822820479876550468122318225954661183929753396500967481876466818654150189479224855984160087986820367338845378249441491230608240523439699489742958405130848682205209858487203764848262010176412013495321485263677653468295546987953915108058798281326389667526474349027748101968549426121666269601034564949613835298769835714554840088658180291110724303506778914200774472753550605962089215428171007893890652163839280037180452149627019197654827047932469149348024088925113432502528956977301599780258144868674895831665664275177002382258412308368806505353233030103032753927465083242935861559898440702171398918627860024577257927697282862367556860772889465997217451175999181419107702791934702194586043207390830754933797974390745095764243304636254375710357568602474220735619722859191513155643325292913358627127349608443317701524679828065213709026810887876913352342082294094054939889548927757966523567072434923810023833777081417714426468460557744253344987181965636241849125863472937116560517695781956710318258501889150935308100221164991497719457452220012873016440496623446310029230172662100275315868281866271451944095786159486694191209299379608900960890609812412381799818933751890002333384152800600514806850352859945308996207105620901767678604409694550816865547826267513935363206268246855892430591490998877406908635712171634035863445579396124791484922197841025261615115748919216662889960644103783159313238548994568063762556583188861807910853489920471896307990418024018252633608130175024418968515576699565244452389592470592116792154997634117280659664001197659357998860304397213450687867397478182753839457225216433301890441632688752222284022065635401022470070471485962031347081465437209580200557608143950842092657573868494239204483052552341439558251530798329143803076842803766137089646307434855363925687842715617149858145046259051959197820136977667895667297273115972598553624967012315847501109575210665709050989200417054181739960743401152244161523087676769771384921503798296898184736016153805843194532167858184261308244416845149411242333347344933630068338232288372388516881708520953642201626079120883937474385286994565178723626189038219446327137190648290187911302513286146897138758843985876950896069604822532986024033965143305532002532582613823756474843089338699672242971324344515644045571978175693457409986473076437820989056960507933428265587117981252324491734917068218097997791422344839580573908580033939168602963619227050791517042305064238038074808631502965992882021306657569965805709162497733552127266345315551769265728059748262543071263590935010016489217376850632938492871339237267492991858587227588167243225004071589926123588300760859294854940026482710848823130350534173274502611652635867173356092455661290273555861975281278793510704794182588275688040387645320389140667853233355884726222633317051021121194586318998154748953420098560093105215219276431897148756832466412115739027972771561444933501600870039565604789308436737266253000633179538185209684506651234877638061438061561730854121164148981137035614469180045921901755760302679629720258133308829193237112358870899122633240704352654725805043839992197791119977242233648207266346603696006322020740957364469821058497652818295656942096437624574845752735625665459339203351403683797723555581738225637076093532579919692575041543255635241661749584998577809618472785962178475561340922583149894909191539693885926805590635839365376500100439622546211251681148259821590352966824611522582023283936021811850280093321855295324817466941625099610102785473432389965054332907701948029605852616495333542140203306805237697052986791557466949235244159932866197153176167859483220818793303256336755710160283909483986693218500876755262483538154237257106918813444792817675550822884999798143754621271273587990808272772495418655472066786579177514391489445414050881512457382211490146384251024193081750835875315688735061053659542307370633961893985747607839279901376817536159592493498458238546075369848211984682422653784878061916094676121693834409963503550094577135451042163688867150982519897483194426133313168156063468911586467573129696882390795544278752463841202471348796979459753673045161044128150715958942121493303129712557591366359066428049763054259579372329098606481537202051115470190568351951032201428683749021552990606057596099184521292266518196329480088167316253801070925450954490259695784055874420563608383962059510388105928362127806270697396593030164425645945585243988493944395947626194743170994291626447592880895395539316840802897614854703251498400553487737371613432525988999190602608037363133182321130271072561689256089057158843817196604637254873833878957568444372085439013900870567805432738738881985450903995594407438713452280096639036430614751908109343942599100581238305308983890304241116969282312682623048985189178949847253914377598773913214392742108270257303871224955878857461320899230979632202970938375780320035816246970993485189411415477318576514881999032736096756184335443343487311509283767758347094942091622172114926788156265635292178139993760819727825942773629921641529360862987391990898476496399558266153021795984066365637064856783095380097266657481649807266152603581456968154269642059418254836414224678677712623855058214740346856689405497491600097770622672230475587275943409032509172078700973212885534077487865158567237200282870748819238552289518412865770702932273487567221851582857592703402121948395766653590903102425342876133676493928374726038352204451785141224906269555741345414956679373340847534127922136575604809925857668729637078875621086667898236985865942257475965366424212138536959864121822968368047052232728500593194481232814344409302139522753614672780571007820038820367814671866049519011239119276081224515423824996556159290162860437723591411832306725271238059774851432156795428064052872621768082945248559989501858815550629864308956870755777298830779064811287994246081914515084573661429176946262144591831363946882098841716516441435282443628575062681217693844683117358532800283362819978437090207155611807719933670686322894228077515427256253966855500079820876931283173474732924705510151503778543110003692040602565214658009941852947989935650259815150854862598852858800982046048110985881400077422927818034428161408670762983599457104161989897207810645191711866424247980366756692714751693583664908294234245599728570229217476533307904845130781510714915623966648306817489162475330285704399369278580033883030665391352957355554455209000900611999556439209538936346285414027717394862506291149527084219466170007294335957094323471994155965480396346690686510171811121970725091651827613329517455037958602852027507570452205038651875689426992177159649907142391782917835049566470287512776743593594540916177978286016916919617643077355420816505819142501908764690790512889035873436388310043398116863538541539395577100518931399153879799412347200472665565356154547113259878278319595275457750951677544965609249863747954055087188034441870863425483803592405643520412212527156808290682512772204633861606027767231966931078671375816112465934675998325236677510041480247741402191310160347168782556698111817985003180525533699620794762340243135349300915165352460163026985770969758209224744507782119505913527183693616141793814352534142197860865890493083096279563642300035222835837756863360442255875751756134962525582518915725433474643444171517437196747474257543950733273764437277203849641947917631259481935933298225590838637435136969744513995578143048526857428574765011043292719800302962708276327322893439038978523379888813916638807487452685836303048842835522973222542252580301230652059516464846952137211203399609503565763727443066677754398219073197952169913662986533183927144587765500511857299153013242853643647684314183693167515067963418582438158107196481640058694860949896097525929051278832352017219653056775537946280271185315448619738899564113500066892653229492033149234057166897570421504418079825041435053395063827444379242098383471875658987703997230435482897695574021388767973864614297434424029457128227045902534529396089269955570460121018583019205300195392278948225053862489427016991010435548671358891015479803708600924490522276432183753745318884599575744702667237528888056836872874654795342260693468705480108937070960096928777330991568410948225457809153739990795603522621616046873593764145205992113152108113554167715776124053161538802790912012963935501841476017211582687742871654566311053276389248589487735673090750316044741982621835520282467200056354805041109193686444887064024509651772470332485126444506919675905364076715111605376784639425178949400318405117351757057685847557448750168997371685267333613725793740353250627645516599528149086276391182974460652784869575217637633947490166795177306995275464202234632386592956843922655405127769463117152253689774798709523817511970578019804656772887507010636876491632063149140002224204251108941967350692241141715667663468425158461296566749380670291342164976905003125021904856887380773636391340407653804264241247652292335259176431257668141276104590173857244298781723425631326673606962240600836214364896983315147610798646176709770720807058367117001493602054057898122983136448238120210430456743585043899691660846121646792063000136913969709324436807068790358460179772162211236430951542941028110233202621065965619716617089973610468839919585985909776349372838866573952920088420760937728913641589650689611832533099754987912505888581389402898255643872474244333829344745045824613585270865851318718225344923175440366124433983613372361475105843083420531589289583860406646583185063567978508950047019520391053765280892063789488494613820202190534759989186133795934802224164313220848067599457371416315221934986744435452980360252344819268564569790666364785816096386376399896943043150256116264192994608473656995416302312002106367079141130591431823374499808394236831008295334449953040080805463078513290602119240007598052355054717683017483005062226397639125387856654117399924360669398698432667564012996745670893087540186336648832258943245393872867155224203056974432747809270103682027548286265265645406872106701895067982290793278346873766615374432839082378283487622177900248663506906658117458319073776131790833418515983274611908596223539999510197949341089411900753537187362865770785683671989729393803078153895862555889330514662797921873525276009285018109497181400670583565583115024336662216129914335026834366455925465592799637721000747515866382397653690118463650345499314677925338938705439359834295998687240576425423650215287529827915212448302257559984553055878625224392189622800672114452511207919808066695294648064078613038860330452967961184417947232019353984428511497619948685173105421083180772022971913411553230706578848026019612065050150848522985973567767273359792417157176827304989038713921919521029187900386680970007719412266005552274215213788739824608066029726364317498763088194523848105803862446141326770780867102043096983720692632029635239082848790533084018239033157514556294143172433337695538627532098967468008813372063004711074014185029862047543500156348482399097574840595684589507917230327796571859377088634497812535963498465851311382954994250181704206610154134527065503586566025548344212940575857630964406902766877026586347536897177484162731439603369018451501359063181231539093619948596273528907832951070865111811325302468501362723795665104128308528831138643079738792640081860655614401050396857869930820158956615332740425291093604355470951472359066000369220192713368863354338380959676034232453168214106733509420077652185979850550738352288641052998127436164323893494817001870109140064289481520607785397911925975218697872169000476482620445537887785977116183704569409829712405632497471146654168109654015620912464919910186876881401229866587172743281492521451192512443303711238843866840599870485275924148248023094359584266781514230953578880026561977364328982364432313079955896994764408028153383416848648202311070654018947514702850804086243283363586160575173809726155478665892624151123755314940767071241376280804343649934860939168058129502120877330402774738553430176597755963503646850476456602896954272132466007855689302997475107936996367138958588084130083471875820021002864844028966305265795277505593730617100398744523287897054443080490709682985870896626669901346740999615996109374076793779537499429117912404608179062157728865797868989328693831050970113743296546344088582566467771771103611926938893939195399862901881219245424192193408284401667887819724625593508180026938565960415993176978872031606152685721846390553067630069140796379784453653200301025706299882991296479556402523865804191858630368369381482496536354619117843221225320876650182214350417900790095138238339667110139957409725581365455247437744544229720764994780581203697603528600556741842105238156312659898839767650532539048358509773752259025884808500028827387731245885400297545949395812118502486267592862929375314666633873579922127615426089565294595022891138154899584445754884081235070800145116293085517743239822337009063267373450980405680787670703605035479336136765907952499366454696736402909331536399891299233763422197753446133554547585313107284708267040535425309900358095906371960471367422995744978550109668949250269092858717260410500994195772683451640135640704206926378663368271109540989334274849962289557957504619367370900755727546801580887921250062041741120560949014371065050336783081361107630022261820236165980300672199882176441851539861961837920309846978028510707423127304048802010563231101413938823263353347987101818178046443934878049704319834373346589500309095015489641300680943891379647995303476582885789045637569871577607822927852994809455081482414926697555367518054113141934496774239250620341479284494381067089709474340907263747667538799647358082535539108441442167033744949003970736843142867820304185031419020233701290724808454723191808491164322442056998218424266920801842357835933922752365537825224704691160486733380040793824350279934244750261747991299848897328979373850810626348799012413883006742629559841601030855018088422505654025501008047779812778792363552979223195760872022516349090624388849616174522284598846569271816710018306395733398244697437150136728890786545500110946609094859409033996900304678986829711963728742337339502473146087460167710054613876445669589438679917722064593235771212430273579984247669045510657527416730275459693531516439798743324704303980841606550017067242646446953313977658953872266086341904068247613816978860222829903384871088623694766116510661456805309303469477781491594728979855289676583750050966672560622075396401952733858827825034888022001768014701637572253061578728638843001394605869935909569516425807445341141561470781881715884663178499089100820875988171576865009544589159176917605629788914859365339943442233322380464550320589550036233853777504833538173993730310343714432346404492781599429117315359438159852145112531374512759474404558853076291800167038270324316491118663995424004355293695536793491462963489779381648067693226133824439470994538509160016266061053692631397397340159921853707081478048283393900389679707976315367871543460232889858090433074491544225740544644599773262147520369914501089481233732157562500702236666899213775792827203222178765073324582683844172196279018670928245581658009887095265081976992585896375909521320892484275916012874924877140586291574108163193019949945441291285914215467884532217571380666731966155372232877408630456125580368970505416237468479181704570601197588926139542136538546049397391444050378757304938022367705409097753480494003944835174514330287045005350789263510369162608319770566727263462537522207874245239123171863462367393058189928997940318210928034083407206122141713268190974870831897928459931757063912642226993218322004444653432435226651500178246798812263402967425168507000822552617829258595286395421417410709570297273931352703977029644103319282672812899217635445687744848043755686764905726934425689041139611332693812096148704184399230733423939594142015314272252040474822744843413439424127728812775780493324507569684614706684437245849957365461475219150718433395635913916357920058394943018388645637379934723574299144990731660296322344924211387929435396182593533046763254737285857731326884792118228481227099817872336686381474339931207826653430067302091748414947309662249333079525199140445990115480983680083766044085080057769917624487713892302378993669833868903951686491370611956154992584142690356878112994589039712191971545748349568218279021544452920380035119046001008043449851613429681613190692342372147712733931525322121723238909389525364628733575098924501283631209089556211235910870792987753511334475351197945748931771695561171284574749609456969334019011428055388728669536090905717210958153020631702724436133805589251293604586494343966245398266325598463279238936769288435431019505739531951334531539628098327093022674403477943596320809050769039374371771143364895107095749000997071840996878103403848401759254776227412603116903099166719934700148968175609810689796321269101667335685102247182444420374758776239339143754892417179818026134888724170460279073926159083041666340058957737041278131985652454338947650731378203440955618772164119049280474450382842160174137316726093982424213929638849768642224437125109269646903421376534923687794468205187995372635906810349749520780620916284817267288336596331629559543012001744688246067409538942511824725491635134353280862737393837898447514027513976204458077572373183475740102184856756034281693436107817464434460803886627950412478772076754979521428177336194179837112585095774036101936440273049972698216064383594752145334275093027434821590637522859656354290322423091337150824087052804762548263128917515461441077496326713492796593284571570502051481989718399168522303136088631390010230410332040981018615502517483674048154238563461659507187878599041127017087139350552468641344496975581173381738384080074947489889544955823181349247829139023278888109957896899816615992007511535928305765559298252260795969133725027565682821900838933168606210019580971658799224016168274363720936956461735830881110462334766123824267450444699734144097548784327290234163736691239718947651391652047623484908903860200475862126973906074034681350688048537262222571393493924724097770287995542243303498199553912302990508850509294185181659363946712420679205139137818093235023805317499984259160701582677927304127393354340526144091147839143543408037515132943603695866911418922982115194485700632135276213700221302822142076724858279566215921201222709164961015200184476533492063702001863251280664111906943925607736320193694601454118305005549071239052552602652182404341628622572055829857672451612094947075662991232795985963846059627245239069294809056067827757269366122013616740576125324052896120356350017290449738994585354675403467293530820185133323317490066181165898652075848821944675675890492104110768188844757431528320616038377807879895981777447853836658678103730286237788120822015221902113120147542465851563049652933040390465569255970967448186418950257995397062169792439065541767244974369452802316449908191604684396733011640355562787137963558259043770582249143145890680546542489889722187045939055918777755731610134062781721334627839223942000506178412490636781353601347190277619345802150822297864754409053528334186616520800192593277721103556170931811521804153795291201403598254596610289830590207028487850244931479454854884255205406960743840823316268745725021619866813984995037821379257078978549726689015633527370423955712783966383839959360541484452688738875922077572095763168960655348503533062597210299569329470649010907230522770554656035229081326846546689049470831825559484385393627040836706061216498009100743975057660932441598530965147533983125418125539751854921726987601140433761624743950174286290900193743590052705864379854870348552883545471778741931174632913385834597034141967736673272135844316101312410047274919719883696284064099481367001858416926802580380988515946426212514814674206642135414080963931293787062681898968788296827273438903859927696922762874192149687933193885855692286647725473230635327800340974562187682781547587546442351869493512590798647004350055429165418686495643759667315837034848433749473398740955120446336081944450519387177252832394570960717213010734766394329928683222336297716591587258110104500857340004017914105945815450069707986595914946945464771911469329160856922960970284115200281702477904612111093751157605753250447534098830558227960246689186279001336381116443557955421349865847733252741686609423652464091008860135111727533714865106362949704347431414256368314019262373466305667254130015300873141745368155548475674557299598707173658874366144420451739088146479281540830633124612545834982426676029618610007776194058235332071966459936378747677217461750682941851279186484260029697351995891434030806957426392034462884909693504982199259772296694026572584435437802705210235838106038223358072819682662602708478270419652765639946816592910831539138393800410274013141971781930746507797856793066264166040599880930086917155394520884988320150528148303725128374057278405393899199843883814779752850347506762552083831905973294366255770665748715391280324363163010274282334380971437522421770881131219546823807052439854113051187168485326769560379001560452419333770171567275716324598585019234240367062997045176104768075048719570910915911644877623512328834025784519548513262902057021400055030717096855068080193009200819415092095456388226957841846360440449513241614879750659215454576463494420189238514592368630485279368082534657760249225273316006000739289523932553821263590830369428616644081333142801731924529000105191281067716261521787554015285449115218663823343156293437401951201281928595807176477612448877190327559434921567627547454149117309552759601008408356326415749670218250064558792792897697619256559412668641707117511814828122422094642836592306448234488746237970470707028294850646402985717099763378298362744247467469423709810368490360184592056252009325063853402878995107800926407932548044707125061067131730151672256587349046966425418066209528647716573740839232388437034516742584790851898923372334812616101212455201296027268716693766495755046884900581200458357232901870168838864458350333664211891149503220097835096361258480784739033986389717720883909340015184839315132382282195698323754505257552297015590080064400271921881136103526438758526790562756575167529040933644442512426451415666143026917860403828027576946944717073670029470726304780196404190973092027351349713859021216049063896212284056695835650462774079303421694428403129985775547787353523927587967438960085163251666456652875666027924725694907442063042491658540851989069228697401463351360318354635755308739306285529964969683082453786862865815690892426141745080751316704790136807418821482146383644689348114490804127565686778460735982501529075974946321673501659991927358644444607789377697965587747388907815593555102014759473168159594159978004667522844036452589372644033356290051448384999237760936847991818697466471446753797137104934394005370667212127572741840540220619505613560332701677903259451161925381189345078687671386548252993257387605395481165295434591449608691208974680836414157943259575152966165498798722319717894157016305620374947228086742991992833309931205261928492516389435622477141454936543088833858000764194194081719810432097551987455007294267753733421606283386029583527163676042156580142592028006310849101273412540530711094474194410115828690892492763548687486408506612792946054499947001951969552920993218376260641573019655506449048928586498393732346057679036259082927934287499869519561527233986394717986605901342168866493099127772938117407346318646579603133987067613709203414589497570406310473777361212003071655959121170337492096587410824894444807038462927647783721428430416761792749186126736510226514096526724292158806546766706882148272581041173511237816606928158632101101868735310247614748706180134579033823410551760899375237432660837186415329945113027844831690213842695564185160945310132494990027683228274827668441522553469772477757460626652558609049133819327988031836461142765208955011128136369314337684164419769491906710017700083164781002105495512129614431943563246763774654173681148725153143759556421823785910085303098790672508062128994603969275596014009113526636243387208563917282451968643541581506944263297835966229261233274901299836066017334678109145066809680059091663235931353887719877330692712490601795965664993401062053324502079140703670742213691660421435029590929799116976389322117206957159803666551242186013522590944721166681708728214662465654562902591793521023862939488452844700610944869611667718691397790367134111347353494094622188543020970081430047556586051776967616753212635789398017376325358528019091701892286138905850951569210474148880633763162094890404283752250999935116849628823758110920291466186274551280555724955699524375215505905504645542782559523763229867283757947453796862918623829303773749761920089315263662806161666617284130540809293823749752823635535881923798038227718146360072477328590357675101955334679000136530999286091574964743797182208901505970325073000457593783440564674540399774267577141879435152604130835723593985114254627616988267859837040886456551073364061924518554424371055563285743493744266555312089090713762439051860364032450456089926873917510539395801185278502763517927408088774358824779156791593629167834397960750961362094445284592628237964874337603245615841299270484097722657043446164467185218693227713403765069077741492664414349223123474107656859321346590564169886674935414829445324756543053784720534399739357010187995440065820976808552951597863615635777610382372499486237351943170604210073373074017720686151927863427822237623912575296704249196985141195028683720396076791789423400343084984844071633490761119153302668862845732826644771859958279108294196067667586410225427124059338500611284359818013910396696979033810021745094416106077215274957117175603092399376312177467210880254460975946359545637324440814537398284540365348265440684504566406110715857841345486683516971823143300041936430279317314614445543768854877109295719521971747701896841387656865281958324936475235478184516118336493363271908795110523402320042615146844410132439766145711820203750205553524801440755694212473190410565623521062250507589012098109430432240014905343124537488947111582017250083321670728961405371199213657203648646385568082143716531745205296667730239012180867515923849258973801288600639808931443257782016881881437159329586129755874009741040190726647297326260324270413606374905195536680274853315719809565484821962349450888096874303882882308701538109928902353509443723841718332247324329790853637010435265073590294139130058659025288734440287164626217697324111197428918844106379911284190914085526366465350691433761456660364301759280163959128958541368494444123803614142620950891334937469008909903267973247697158252607587335682527226489011403044288562271224645264293186170461580676272555132308095577299828542455942253945924180152902921553451614527159521271261734482987185442437445819078953465720533809637419510029061106603074447057995007247020559144471091111039456493740564106777541874672742592055182782902507517445714181012025152614032431037121022462666841811081739442804873648905962422334128738087251486369935822916357966594408280226898028893391952621931497676692778517135510391229893681432138471032627761784972407108209711338620618815975114585783079732679978736030095721542168623869049206632058811317518245489950114644711426251192619544326056652827808414001595354416340965580748446970135246291868939633358891041086836332109133238973358663374373144387603971670855710034261593459889248195490903941334469555346408801675369892774358096711602705953239347705695709655466702706888025211321318934624181031022980245863582344488991025402706116113438028269515518257750267837471028477665054244648092096897109493972675828218129701612836905171835368460938130450939890415061178503983582788359214153725806310095602025333024454176966951831397482747978880309011658635719586877144713703417681136967555732136904142622441599073966543710596089101081220771930005432793102690866785121236717573335962254234403973322811905914520731811410306193824913971004741833927732001660618965414516586819105660745662024350180825986661948082464997687480818880660749273361293153841270352505226107459256935823313685751788797965580552284779450062484513301228756218649301834682048152576753937454306082425222956547149897803990488792763925993881349035239393939123969052974313712496238348743406925279833889765975020164221739318902475022913823186478834834995264388026766348691914784021421227706062414179611139267078326316285178075451738997219569627539256085721714569075148668952612591608594403247430379886199638979733572109263844786577895310304822710826869474621477956966393993882771734357361742414402628603516557930614554394646156461823745742906753973483699768616550616234170952973064611870486892113046230011411777464726625114884990707865523266723293816311082746887024735163554395862309585320982517473061705581013648608623645461457446140809930320509308570513015699112877741385334551173331727367567147424311242166413294149662303298591990238073542202984729216990828819856387317414545402475169400598772281903906034390802705361621212592740416125833423082102463179425689751834590083922817599651695680834210774241262789215976300231171055260578882609359245046424918952117985308854368646671619983733267323498755113873103766474247693005115330799495002205339130191083197643840589905300364596452951204873823714521651856446817306740135196858782138974159243506842081506499876456384045328543512097353167936397658973423379479320375748517907570200971840570008628109844232845252663994654428595798721716944967928890370289009055698110189762570132373344963910446122021693693136107080063613925661759490351492197637455906306211220738867203743002333578201090917176341381739317734903225904638378692415451610095436588946462765696551126466177893357612065935678370105054707817693648746717981882427610721822287914407260815613726997006269186587632717554391376121505456386845778768903589864836600976219946279823418341292884033438507358396818143632288407144185070602559473176361055131469004382863361440844227198999457764652899739196644863465992852247215202629261742619572885164595090405116964837471636354404306920997980262847197828476574450701761338764225497577996243634646530719720822571516640805759492610786438685092997744658762123538402867155514558120660808607733837805393026928481170429442320597649537689619561885660716096140983314101176178013164667962427860619713968340191120962852548275757644946718131012582169097387451872289962381928644307468288159067611071656306265038699450451259327650494784756913770848027880529496554469757869416756773572261928206357633949338815913635624141200362118900675479871753139673594581764446672269795874654922856374326739547266758943925233242085411955179721832513975043883808971601643649785801231129359654682286446275175989914402203766828181197544404952329744558403459180266729759474690155622608771491213029913097878775451160493043659081020654056368130206678536128002000779448223510888609248456217029108756203285658288357175422414352280223583998577076422120161465064679561751536628011145450996101897719616124573433888940785928811727841587453122780774176988673304216272456064916818440467528858636361649125304542630938817072529112685146068703931534176041358112561548569742391620670615465657161896211307359758123832750866581333187816593101241400964643259660849919575282032719071876936931311969605580901794922133219841261584517327887848379777670428159878528842329927688457489960465766210272225900951319171203987588386808977519609490177906144408384976091404822543743724826166258034343529834330063639054364965891904733797943290810656919690749155413090183194641193755663154213906900729283514560215134789476870516009648529005286855248592535977142774488863070544388940515391313566465267483349496168159085794427637088576237971430559329964700465062859558510758572120231557995599824308186602984892820843267378343711303200193701657335704673112541876881414448060816524449973877796518231860198327867331059728997199295818513378891961881013382586783899371741389471354793787900121267796987060690746115423182394892794804749192429962470030962706564285890445530220449972774246411054725453552324485054972105501280664829430337181818803358895361803053885239556682206560107407593916780732673215696781986465921067908461638497099638580588192567727016071848376744023747363860439458533908044216846652040965035492324502909592447462939373682148186266267509849753620656852188649324715301719878855627949108752415827532790861451379487859373953955304876948978300606878782739769053172002498246367126203067849869867634342434456052538264630171442370507362144848068381722894493628850100717377996992969389624020587494641466970511602973109785773154960573684404152900478539861016408427815573620511398539381818629062981738388118039074924166549237513372302251441312000898792380267388590333568549681940189403089723698963918030464800431603652207439896794666386884524981629109185715306847991556602548957865704684517799666861661789487539581439281591271550352667525355519856160132853365883347516703702385719137840683457309888690543102213588979065367167959199742249538113491126274528795269514967296594151554334945936631506277564796918072952380188487607915524429163192201049240116200534504772942864261374352637136349009412452068990047744757348322920614202060994417818539221235526993601199993580161274308485870302691767409300503390388561748529399641661669259699052162252272797241346574096604769062663368911008557632557694294485800446187975153857654250315996312264377556780970377163046034069182872885418640019471248039678661770649781532991783620538543909558199653736903799982546898802983857197315187559896378794562864869325000465356658133743521350896666388573757736853992314157342135029513932407953823579071747147958229575555288919309790758153447657373546327262748709640366284983329394370328168341415462959064176090429212486807796678666081467693124485718078893240829590194198816102084400189822855816994667354019702179289811944132027645536880842115557908105049321701528876641636958873873130548201044198661391589695149291100909515948851265051710796543646160243033974109769874929134325736429006903714212823771740373713433830041275534740944023192746808184270306779665534890479259978081176477303963782200554537070930299495204879451538043333627097368501563062616782330517820539154953097507114667571249571077706423892679203725006618998682052327194539552552415017344599791787336150381922569126505933398203194464128548487448387713709188899903875452560707649651497140877979903546635843535960542638366249787281591812696979420691886116032109304032203188946120819970876600902413022492290812726224016276730294155037560787023780349034463065769046052108141652296176960154503020143148336987927463646291632972700153958951992050168805865764771124732264679216384151864378038967129244947341887427244525744386150502309135527573811468757471420501082769746030263976486245720629448531303450624768521484255896260777015502173744496635432112365112856932061055345571302180053794925748487297456360835497392026099770908295490910406185836870487543702765867278639399170796320964052028117536184133459525356381604624615633577309516566622815655611778554346765267564429715664485654968065250142491123164491620870895003970626676617530174758189032940982416246107187266945121976925802700414084615700815843680335025432271868090386339137475428304199919155939411868888232123127924640069969401157548153220119842019758652537132629526644270952365596308408525227901092636327873734098911268461873814705912721393059766624082327991334773385043705465684752811944438723646533627027507650090280529867172301743349452957145461913995306952261427704145886754451377706000127027634290082937988459926746412559982759698819447137688266786945249597091952385249500270500447022341418540581679592457190675376347787721119338259285778873121336202880668350467211254486290208549526004760535082531394900722552996529233052513215354096092889567880356193296545797199423608636833657098252688286885661167324993732195179749446120462442661552727803322000189133079520246876992337435133750190339565571211198367168994866038564967757460360807767654381860407664816417919083889331878497909396945718215289203004404673938820918191165877977945801770965419918816123016784961343592577681510098713400209104605323807790674495403511532047154899043515960977899602691508001346592724605028401263560592510184718217982937332758185984137825083327977936072305996982745952581341312233929487413970657131616553226325799029991872345995814394644892842377412912707617614925804796748665518122083324455731113358928170510241787056799064939745964784483962214502846747433433058666676571834389146258424484842549448839847384001832268884263857294669383683814210316518824667322549654544050545306413401250216708197223607748437403901796856929989573721360977311630210041638652688972794854923913530253781607218286220326511386262626439793674470719623635894600663677188386581642477176402175084504197625739692173545492830670936842039663861632274075788627659901555375385512539941963807283220891013831578995576764590448082188953564701426501548704511701717043306985483390341334908955332690542026582072017184453193846108896824791936415424145543355268218987002715032048094699507556958038970135869190629422808081112837538648583934046712259646755854233009504324729688338253835769002388602629377072633266609943490860758791517336428945632199477353982467163902991244344098969748939133267703381224585852864830999664737725243668358205799746375095544098898432565850798615774433390308592355984999528526938377694011369368822339410929145534308445732216513654221462134664223945524610542055957345630345118635276971415046569457995316535941470477153278824191472022677221395541360604314288465267395346836208084919954780873129214785368167930787389635107113547891002307255627626708368025062299925591671301016275460103013302679757211609012861207279914771562539336572662470639088232556460800104665847324222975403408543325660464353781656995807843422822818372070990692209665376692140511561651607445089183678450327876071974972132666857812458291782661583421026353350547939169436751849398240883544441463663247242845498211395849507977746315528370992505304000918067163479212073658017597056771815303207640634027664069672605699442124082239406739101564091835118437864545756367471149979261399300232767410532899338438034524334401346348404310446153454322732425374848164719253065074555135769642152605758613973267651356015332516586808196497681233703453310992059458449062788344858021604674472736330937676718443407045735455185256932718869840719475262490330719887814851094609658795284255441120245470372363876517487136151058034143326602098606566284867045484177558924085904201662925875207376132165048776129492946300962512657602837074943519176110362078022497723305591120387407766038688329450889029576043847091605288642527043168635768583032728615632538876414676275745472078483801844655332102560630494489773811293297315069859679785267488720414241657349836583664261733540897138275378889603732621734931847768882518211511255816915376211484062678632626688759520324206589585412496175877209468276973318727837045167661228601367073581376194988956626442450551860693024497199161795542511257864161088360452694637685602009394194497079632548313202929507270560956176483913591038852207647162229968954722344841310990706820091206311098805097070954834112522671508901983619828628500244678476091004615498525415160025648747208282970089200800138423930273744122671285336993761915895700638209880255757768083835205619225130750929416291427129690572928539405236352961520048881602874525022893216574154846443215971173528319437414387095534638554771583709099501746505218228070909317804516527335461291671838993113390468694963627776828706678119590842871000981716859840546151259889563185948416787904500874173772742232370410335394291250030744133668574382511493059331105900724357896464352861547041464038708931919384682273224870001550366513447215285931232700633575196213027506420621782116874490513775816361505178240871118371449681040238824293117221098271023174679675566312811415299220653883495153139456119159517348716121393061785724008691261064498261745672218189350069253087322715286164794788789723634238150149491613395442441560695228326142550483996524370811665065297368490442596713505115633797315295828838955541336644024770194595393429148979184058423073112771527745500421862731901110292777430544136435021043384204273073892056135046073318550492815048930069634424573197156908067606348262106792019982324149052985639776620037033002834834775872263850934776886154628695273852137449817576464606679535847918669803740969294314921091255665427920763795857719417280139445686875606407799995700008386712059798947364312289694795602795515586738451408654505592806669621675875480890513951706639401637021573413290751597482137522923613079999899887231384298223233500239861836439636598574701690983026886442611821358458703328903226208861790509852558517474501850471832817200461642263849746901172176236834185916960629150311551279652736811874069510594139281737019439366538073501361725813466372021000009839823750535741809524570382635777381069214952282674867038024710379537593592907556384760578643246448178183786705970158668668051679362306325729453520905920456560522538117623327662534427474443153558773458640649439262818739423202949109668454737465344706300208729344633394871202740147999683743235276440733973238212346820432306012636214152504033700332346078269143431282508769479241402353522133039016429798269426982742557994219007415856581005357583293856520950450987804565715931022071910732974802634283974725401806586756323650366981607403200771759685200585124842408607821077302332320248777953216390554358391231194564005704090735593905641280378170526420754348058271047093241096629116479795331516471260093046398103242456645183219745062261916791834053806678806023769316905710245529635279359459917988578376709443867732398286225894193909346727587923430835791711267444476185501235671350425783637709062943305093467431048495930592761047541307992721348920405744340693998882506245419175793286151823432804083398191500962276054061156001077672405592046612288401632671418634996688452602395169125156910172461122276433288168585511944329992828263564866361604745563443425627187617606050796202541584250466515522573577701237001238587300846246344490321724881435750055405911543783236883744646759742092210862907935692711229813069152560463149278561900927736835947233916064839206895969702990491796216760713433067096641875614946862743956477464509437638121252471723744867140156546009728356897376567703344247506137755476502932241146563258246749321253117948117691781034332963523848072941390393205470129217355842097343009866637798647349809952783530593597150653230178368150973866129364839228111457798199662001045744009885057666664843749875351408550618450643594858990220276612433857946248797197584448401432382453205383206443343150218378870385018662529875644941527594160414814659580003902630269011100980212074414813417784144947919889593097673925005042747384409128447174077564042956847713711736808987199714380913696998647091314773648996517108976820493733382343296729104964496828079795585853646470332160281266055912471031615052795294686995293311028101209983125726746256612533874401845438371829714935301414877882836432643524689173123059185876301625783454864311618689705028023327444986539004221687317294826197513106885733255194670882811138063832130087470238006121778678125539321405862645140425764424526711364981763790403028327677277546634307283587657215194969820513395199491667961043745261422464822258832517053782057352932772022001670864840714055417565514033507938510515980274948434804775519055003739178995621460213411302982287986388076335140946335435532053816204327587589293449362683062028538783491979572335332527425899296234218861234108228019188373103674379276007403034326609604516478145539612567269272208727205876761811836729189545059841989303745806870454350625565479686446403473739997115469605444208437870380021845663347806629738300307388342090299515784266627297098693897572050532510480286452182224252466808350983092050614711145049760544745798597974551171715654336968686416809383901451445917479141225093959517586875610673102860317694770067951083715732526501550723996248145800012138895680999174875316400326445464012172341586416183270420585821786473717941869640210044122733121875758452321159040299036731131225353993945621870008636254126553630619006696801002662583843918454716724225110619684240366933827311534925022663995365090733003290335657627599856212887730999830310605571341241377915426405171923514624839090031273262733143922580106902671788327053193380732002389687358667205937388909259456981693589976848713493754057215092575495520770067708170314132606127325068306924317553823229921448226347065542096241058466228743882394157016886962899260283343947111320290865076257852022287026166072595174564726043336265859100207214447091599692848205162130763895900194035751044607689630978501007593211524349072791065507318810310969195550662573893667640038934112164852018802181874351892249276157626775196854968370216359406250343239776915778675147745371901076657506319343388271318275580259274926676018499622753682166030889939165595520329109722931305063343143370134394442432136394129412439098812968398014482239648075327501603240385732877944720128562432521804039467722739328140847567937985008477514843982438742903146213233517709330912311181127631915802276866617474526683912223200552168487685922835819623458705022471222911561805419097694680350695202737529602363255103953823213370279035273843138823732062041000609188326728826319655034087429549895218382484091029962573723375712181040639459709910519673160149414936392215179718464038614947255317666860205043034387468376078518843360831521322396584142671260053296981643334541123490060025528984216050498868942255610226018391427264436300811438960529768282831003698514477885520228704821882357623730508278316923489014923034603863602438452281904542009183987405604243056042179434018444969266731453348744625210187812513345565838752471494283847262460635976421596217172125899988428533974828858492437183490214608032686375648015477460604042343000603269452841137930400193078580991244728855030911407022078285479704413429334880787568662438734822766107428728976286950112222941128704472811826776193665728053148604694697664111177804338685822863091373057676686736066782384831870101018073250752582031720309915041877190262482682698509227268512055146909082643465701145112791526566028279762466395657663547177313041493854242402378592893627443637380805662360678874408875528762283379085669260093928755615287201272213593163106936469749699717295584957616764468024315399940110934911085986282111461197637128509835053711612103131156332631852807517565238686010945299915781307370643293758095534724386207181635187842332933162067589151033248087212084287742950343871876812903830180061033394133060516492968441432586148713815296614103901494408873196460097566854457768739657193362825525791894050409238219098764486345880206196073772167441259804997103945682100180997123997159440921480145503929699180919391872398557735723258025154891427299314412858203718062925770960385062892231600129461420684086869445292284650330493187656374045794483902656804439105416958625826476442820148729267832063441165196258586520580298601045157645251371519226072240512809496529003722110639111116192845551388981566383294654406531624511554403582744661043811342347039823334875836399810123763624798682906815663346383309306282796236930123821175729621994563408920806050326946919959303686877347153002576546122122775000189367925820433657895982874139081327180378431119513831160929957388126550365016754280421315719155584208526495799836961223228029334886916397069982246957967759720349439260246947824608848558086355170658095423385243746179622680607308226441413878653990781707709081949203990057735503558172213817010739308013363710871152087505459817268942538961498831615233494259788828941893949703455697231997655747539216302383641671995663565998663982650282333323501596512876767413763757136963349579168099167609570269986570664852668193439488602723468725241649647180424552950838770056188456686638249941851404109087593135200733815562213384571815790470295613833801747845986958076967787238728011152028133121963282965148090866446294992783526003552796805616275773756606746462346470627682010410495774103523364618489294240347428903698764546391871796416296442023225830260568140963597851702027537432061384278324624262798171558429668027141193064978505211022586923859173849642996893487668651605037710889832905423415385147694781051880532200356579676799996500085104407268187196034891861779243759462297713915835418768822335073305282506054087463396113517445536556248018160340263790573723974729929521799839392160414251721103547953165676309257915130953452639001430257126566000235294671950737566003547404049226462533390081080257102762074774054036766580925973906266811291979050238787324728438883135449849899410063820135598054514558900974973409977182694644543711783226933243183205649208651253631762890348005427706209715907457087651195792828121738220011206798164704559257561210007125120544230340719836914740937368498418864397403068240468672148817129994965831180422426771396057814480100750188249423194647500152996671176832900694669202443814545714317313099394736105881025732363055366783730616920874670647635589452051728411225475481196577457228163350535380548023314111627764544929068130317813476708234963819227770339287541143636553543857116115831140261128670311432963450162603244806065113948273273272490679628248356055427613723092058344727083560304366900493929845718434610457841630811941387122590045473868060527348110828067416209123066206642177999712999168180385710207432782602918131690117635948568542817857373846663325812774075195934273007960182608528298166149711515621471042182318396022563349561874125852541542467308780250491987618061685441831167754702844734763995504083359639943500569460176393507232819520163946158743381031140908260242990231166575016601798343252169720202318626558313641345799794732824895542474078479661954555565205385469692973927346716645020663219546874918794554282219430470489421427488613574917498466973267989643481720318374731243677345443581780254921215287100214337160284720840547207302649573773005242548257606082571651812928069213557515298145250460925403679252669091326144208941062694951265451066530504029163584252925818898073366669514377611544352259723488933791077348290542697522142028529203895363864364827350693179201680337007051174241033753653466948555522115853081205556276065912191541222134361544199703740276415813503990912389530493502509414758783727044325115490921585612366997635860816327521010126933852205624487699077169717432937331800598260414587477980694085909661376368476246785600030792474976983860676555936165945574667223989583795738669845647749179292966997892567702386705516354694669151603109353088429300250491666493294385438323736943540828997793387447266819205463374521894956841618785425847375613999362034599211858873013946565063353087126804959335416446063919267123470176873170063011665906842332704873881870214945824832925908761203617625072218381450508156497531346211677561384946479675441371537266675318104103761934993828411454064986865416124092179650813530713209662127150768908082398661446947414473738370555315612079571611129721267743719543951664174436257321233914340874227706821462982170184999440134248581083543599984481199116941310408921680558332530747021770200259212139167634123069047718280044324303221199874991461548603074145765079812093675568778179408090394953978153159670780444159400611681797567054485926132635618712070926750457936262194303820160257505992786092280065573894379041892802988718614026377719917236017614119664330593945163341605995923692144844711785482761800654410737710942197051078558865714727975612072352132597000961464855648458705060946844532020781860915940225688599503154177028433927333243288826997055713105670774481747289893092911276304233916580288234813978871051725145926956390204696179143647631168279900463472488557921902522631037067771049002077419831499083322148384752296568525446026239656074741054283348812165799486420167266141481083492685706528872831164457284156691100447349163503057681964775982709609829506924376215965369102587191773068131204121595802378923500972710430070664126921419715854362330988154913850820986589767944461275122071418430255056887803155121136294239192840209187790680619769989582937904541299484091125181254242096846656761138160771027190416597285585139884591981969101653726203598996130525127974880697144575859297815095823062277026363233071265727754411352548270093682616580561026308527520019847655472991213137711809364550057503565954435168464327369440192588272624685044276686052354404191168351783305008884201004111285770818449235770048182297405510987563344859300130164346796375334836732745821624971586178188949053450159610305924327565224847322307386880605532702529746900665501703173382399958344819806033507602523410809758683045519241440869271042663638164354862901409085579231166803268558645220069308035053756996733083046018656674957412533337674105389017391399956035271037026893606113172851541795848273224922804685721010384071428794086265605168431248363378505765205157648095410130626168036166005406177908018577690774105093288638550225881055605079816553194529407779857358701739980245684478227483684554775427155108154237305816810393483731238705460671520793231296357785519504747058470925847274888605106376118327791761912426065502161031542780000747902327526620386214418520671390259377018087812947229017268682672574574806219791549481760416966898281732663591250740152753618148793796074313885826061430967711548014772464333479139918769142242967957308559987699535789051893399761644355565410422517707219380207273814529733818221966522881966625100177753682372083451116453876849099853157082073721679503854358550292852690376217108160110558693445431584263441368998611098885580228951082792678757981362750187647128319011046852328082158632729004367949910163104181637883058191514098443090989362731985625077943524340182986444423220988208946758744615937247842583533246281097737748605584690156258927445408307006660586696052468283509905315034476929808491922153049840728094395339375235947354552506943614479101906839225052780982987729822243534562693525173169356988069018808459102763234296560764334429781988519824090843472031989237278305535633608458023130753141002824429927631027695130417228124347847824611016369802594291939394062463018779724996825873436934990047994690634745019750333229975192165127106191589706908948693779514326376516055296804992313352013275575358833922425702415955473415601634660293063195354873574898192936909241021817593460044147253942639532895822430292904694341722916410796279389472954343858807781306296216311067011370686477920114770945387684933476187650853997618355369296102060606005433114215760586899043021553326896205127889890820023869460610997972309393225549967144061817584054627641155643441448461346991220047674093163195430576564965949116914894523535088276551161744665807447602124674472635782742703327524096881205568299270697288599615126697108099074420565851639020806023548501543593956703475976121528790459726070764384108170798273704452889997107780842397545374022741698793644510733441735950180047095306106444668973350306876200580007694349412731268636930971888701280113489434222723130600441798027527999694409991305949072570527207590874873150794084795528421115837293741413856744035354888375975509319591398808339593756679781220889343987682339750751490326672422806866594728771222850168162868398430594900129469920658353142977101510699791755591494714970068650286667091073879224075642246527721113347409714334327408709298531417272568817259764808440385391800516608507920808808079667346753368977208400394122961781995431486042187601202109409005626022482988276856917569977538248605334504840825237761188732840435930641497051314007729657897719666707407309384304882177982649149322206427406175539287036272399952093508629769287968343448640039686483795033090630953803976239982122257644336344239808181079310541188125216412800295345252754568556026327319649844254249410069188937966265443418470358810346111588729516892223509546607169066903660192678129331347276685876364717944520026786980836874858485355774940038438138899224899371181762487806963397363578693879940453439907912577583589867432135940742014281735711070382546740986739882530855260735167057314442078440484558454628543710914721858875347343299259293083360630256542714233932890055376164966517191145918762872368347642732640510128881898684494974506776436425284195826652124453578740594060389519225371694203343201798041408894042155517163620485262853686824723581662586112556401464683366432115374799659135880095714280184178764860732063274115253210579210446827260257020302234894002290452898727908208419040498651095783975950450648710347015816866030052092411355448317234513236758883345922689505655836762717179916682469572337080496119624667775069911118844808012011808634744559881751104419207474180526445413422136118396947964355906947027384779474328815379961933813976088358600104584982596206547918485874063667124980571830459232206399526324494426690767500381476661967641467428101206949293728722015151417435502499841011124195561974836872676021628202074951050189477880390554687622992389961052385233034272932024070920479969698503555971509789795674502873384792143542056400667981512014014062244606539736835153840273427235011861586893380309865947451732801870133375401669740645679509063900701841902601372653306626382511277193471136580455892664425937311298182533814251997459905843865823931753168483966422439148715247591758064778500386660035049288725461855479900515826159749447590986165730719638331093410500041726530785061604631847158710155381015267918108612951436151336689018411885808622499151293042268960711793223782830899502239964501735665296244243983829756197728956758649951375492460685270918850302634379440160216183570788158019996500447640764071212171345581425822670299025340840984918514464855139229817023203940199234966045555613689351369194136079961579963232389472766225904608855524626163144353073676721680528305131341994685727299212979077918207738628440230935494788038480464023801717375468586101908292939232830124963987013773384324046532844304779242991928902074619759182787279248554434766198279864528619106154764770114011514021160262113884616405535907084440462093055287891127686925376406340745358473958153803635705668991693246713173567569421637936463074821496563020311856726345981086817665546964397454808558020148192983271668156119087834933268442887862355168017351880342813121597950062968072427792215826038309207971569479065699777702687072174477819402964934725010276489452916397707660044707516092193533919043910429492570015248329641304045732313243089650459330294037728557213385984127517381207781282071792229089061809700975397906083083402399625253820609360690383261838503380455475139876882428459049601191539413403210586519727698754254513152956244463127701185049976304146015571267022983629647551143268411745527961660936398718606242001402346084134758054031221992007034323200217843848195422843354150132226587085710182391697657652686315195757437901087824824505249970652095755612122034210519537085621756341248489974392646066817270787853469671676770184143935884218863311661542506279139579779542358028442284558747550252774874159615532895585028090115107712751539789852956729522786588484436436570853222820403848417834627119309198569914579153081487277447048616857797409737129235688377195759269086713021986684645002090211604091495536192286230909277357722548678310087042469202824238834700808528004597841491546446646044496044388607309845530892957364344764887833750275203004763671496782906244343762890091261042201511120111917279104083568397671971011995932770588028711966569446881557033310465153887997080117818237375507746977528250372201487455316780197225006631462357289704251523795725533679667848106196379931494407488848970361557676715883610749901169896019887085172572122284279816690716697866836214819011088403192610083602635876364468692254401425380220221311103350382759294554807213903483631047309350949001179341789583195331285118152586792987317896577446618062972860213338508553056441132625250588303453223935992287457647168580482310614832163686210071798379460511906756285792691829631601060235399494248886733187179730641606008191388162591902392907585233155735463858754140616573380225273712575804325511649622247966405004775281264996226131592866702339802075475141441250201028062271107569846994836568025450231097817506563675673338435597499735671843800529945300261175963026054298690281699892903468728702238751874646171978550775657240588225431272736088530445053017280101596585526782102892675300952905210941651789835058071072163407424614146429807058825078977337208483646506953604466193066907832502859365296440086504713456499014260251594424770969811622885411445500706979883439151883152608593527390569239199517295444082500299343767392644250381936199463654770908565175277328380529967601975639393173302835071080055162016777401110599803416235595561664041692342644238603795239942445649995575271239159249520579929639341385368349831302891003928037941336847502399909631969482103640735058644276534450661059882698771135167791734113517329516683370836753129137922282401621852457756641887093646093049067199886190776460776574160348185947074541354691807783099094419873478826549288048035240794945739365061636732917751905630456118105869353655658233149968393312910932435025264696847304261918005476187332026642117496803551311868369631249539734632297244498031130225960386256939348176146043008394385788098562431253299449012041517087500776263206575489360209913001448784009559673107969700719918726719785914614136390079885019035568609581889653292207481654128780021004707872750657879137709032997600013227010207044170492978576342139901269485090324476026893139986733367722217414139667610894564585403632115874439442572486903406291703579764941382522995059421630207578794953288728843424143980596143117707933324024812285259889471921004988873460493827134770093596366214869163068257931020005700996813550063206490530275014500125166950801697281909673820511277013220779693785252242623456817159247422799242482110953187099155827484718969454661203630069792621587325679724206380819968576414529685534512201675455815173775254844975329600208916342606684331526994089262332002698237342091722575705648535472138159796794925341931922076998608208105441681965444138248719330642815825829987759523586129089960418478866636119654086907915765016448563980581184940140597105173247645333509168306277110964280889934335783182739606960949374213222435180532830877165182181470442040686218614129984330586356124621995138842060189827025780442419028317396575742825347634222011137754996184097039240804473634300580579663482101649956499432892320891994715995711727538105448656829797558360585547336490052346756290607348078198655954801548805534675877607409069673035198932042968943689952026916675988016221845194812676952940643710434767158458993823109321260885376314369709464183721527601712602683816324510010047307773763419881890924330423274624762289660057157925287985500770737946892856881170962211921142811787598722644293605388720520031386301661765089144841576675522195548689671867897718627591510768000281230249481052500073660542644626391091214597236832829981538541298756615913038450596193270232227904323708719650096712739553937116685605428284662294472578129126944139083667668679043388413777810517550604669123575483400376405461899936947213316068594264872465546159074392196261297392001681813126047061587786663242660113442161898426764905205548213309547680980143307400079650467127460789377875761957681434952395693321150274809287247719897234701442491648384193472589816684768163957898231465793935777954812530390907346002009559425880374254428952693511193505125929713175455074776482703111636201444589910573519717654847522451245021683276581312693402048529688640961214634401381820697037383301461905551513948345089140282870920317094778745266168643425098824130724872317947804216817339635076361172140487663267881434191237831965685267687530794223560429170175182603605687419987996694590116368252402195889617523119515859718304580842290283051391470489734086384824024514710692544205415747450245659893852845497561728874644013536919621931708451057347384864740421013773484407691590083922905187699137809824925644627784084445521804707632603631712384943337796177238398351062595231407775720071700324992410701518468650331153640805916881342026292098066386716392946030706483282575174788337504475504639094922754603424311431172346377973280012398106586320011162207158878706974198465925020712975403918787931067171911043492399442174344025272440252551439660841764393931165429474822493316266652703013652980285778587046973768104009837793710674482547499106709858058068669236284525232715223544039775692685349735093467629525202944479443495814491861630451432315862778256545861278589883408477119153956704694371022032072056338845888182359788452685618852366769474227850508952943305707518873252403283397572575912912681610789933757824292756419895350659339534810751867512342152456655413203833051235728196419440611720701992568676924751946929688184015240493238506519332080502676257719558218336618930289766286196064220405348140921474761296771432416258383559247463898068383823755297717619494257141831541901843619026578798334439056077540092686391592641887393953996037182914917336039302387248333216668527158139207722923386285114847961809535286461194514233909695897775495134264651126977158385163624580367684795163238232848134797951880500917735311281196308311712018763385981618678222629771600800325895542249489880712491484355311538792069500468230107702984939527569143071814270399526369525749226390290861644773901499469756009201112897928469437500373027252224887249665636196527866458139487864103042011295174689006229850273604048827587372897175164471079157854437811857413122793198067566264757956870717765834309388373933484621008057347191506965518830668344699909282153652510770110947939317046318200996563757528847054141352721444370097408642932288148783383078178576541811255490487750343447639122392423101896868825925555649879331272403803990498628365630073091518989283211793440123712416986381766655276144800600305697582572630382408494961489751855843801046955831980611616283344765500342469625789485586907392349558819706436832708151082825427107173510738758026206320910943015555525785458492952396278705687728328714858660416150413283629688433434990179905591981939228358787250806322339255220895483601230891297070581163281753950110655661864798062607925795843346236934238373321399348950733288157383226664188907167720478240776064544796225573513981859955143804287834665755489468852972684292502812362669496790027858858930399513646298239365300661463815510504452353665472331236124264592684788702566883966085613897934193785814857350776368769584496072363425105571475978605113933184121880624221038480388945955639054061170088565936945367604745539227771041765967691357586340406227158834788715323113190432241147739018062269683252491117978489842637998236213664312042505311691524684774543919702383756283396256472894488537463241403315367094729777526252014731725765966452828554212800763252716642142783669898090619060831867090728899191050671463219107933990288127857824691055794536252733923897975494671739398635403737895589949338955632096518492240651085525298422047573018709931044084640403455504639564955375413225735715904486710911638768236207394949700787299849028165152047081145225000137018316628729968152626524055460925340333340952000966910085193642240822227115751060523594392317654804999687225483927395198967188009628895553329042866591032990314181558044126593196792059410863034873886734609386809992339074138802516765322560297505720173259529584118805585094418600569443341012692707233385220326543576125520521534779501826246970780891119960500758424252633636554309166474873327072895175010413236062890478853041675343664759330498362335799218240963627671229791847407310192002696313504795682456818496560878621534781049456415464841179543071240698163544171184320890881529221769213858078450202035498416927707946110214744383684111591421161267404919406098550784627412651365913099892365976791856477709092154381268882759603297031361935505953054781259516385545007275799938331417884781709114653611121142200380572188308126624804723056184502702663929012307891970950608255381949477512946064664075350210689866850368618096743257070116676637714835338171680666474156382827325985939549334772711258025720302631219915845539499426302018153938068542440907580659901430918973464189837549459681182264483843412009032408603657945382023756388679061686116627707461259017923258499506982656507445606653415891627696064888544640261090022316638380801474624513664750174116513051915937514376704483444104172105760511934127173383484375308447696091722806019097453598845609782734477190770139950114335184656268808509618057825983598958098659979326125299928180270682314081704340422193001814280037403726909790707527102800734452620340113042973416328945610165217551069500605053759828089697914466953395495682173091653313044340457991502695613266713014381833512628566360413558910169011358440658862433498826739461728750414175216579344429065906827073843810574886768554923377087183087888586051936437904886637077016625395745770625969138932356991467971467711679301042724538942051418628966780260566902884015772004114730534362925900777824329771152466123986518138763206946167548243270536785325175729254754735998159369951748598509055133973840973356481179217495815202695080372403581340581796458740476606512602080543449837290267229031166507959657514896441098058179935261512390988999385045507875580260320058221043723583706088159139290304153595797346040682874122956557960726489461982546695124249893962076278638251891183801288716883257127966051497763460353299824899701926517815574945484172542071081435619554158945520723903737616564235979251310490143169198662628311791806210398156689895113029357818285243679780786926411106303479743527332636168245688691126023941515669391108670391063782759644287417232470188895207024332934206035705913220322973684428297901051641970267691280276341716854360823516680832617229870241832036519784824452496354388948303172385051208108532652837131607292205771917354534586882618310234769356783562172150617738747827098982500376446131717069996772773680430365140962829889682878888849743005155635880813779445009350679407086670969774072207693532367208563366693404998330474716655255272705035470700482922425321486414979878846428902263113957686342643539021037800249491962398175711426942866092207443183014878960589091820430059729646129429277573886102921700434048013232653412564472082929098033702701840742807394383218492989354589167521711425210642496218894079971059287762084228852738616830133385953801772610666229997348612796912474001888326548270840814105155855927134447695759895773213695007738152363816433122756056984867187091264847677559014197897365237134022581610689288814052848645709453663776912339318775006879939059187594456146749380643891175200953067558069007522211467678692422902409175588994511694663155020752874700449543477394525046532736732888480554660624312266882263841917679260809970115362499695891412642236491884305714628412220945799013940451106733055697100811201802081278545293682008955304780361900464681091421897774194279769195601356829570874594844924792008829640124668259686884158997674092828773609541213336076310814809392069208054779159119980975304214484626063431129361973779853490198744700726464655029562450213731296943589826677849378727712326043342121771483797768541371866469472906586508554592463269432234261673075600816754176412774196590725495993116231110004113107053426330597596776928768007320465597538223789524595960268412198961168936228552425265757404727102826449750477943328452394593282532963134414147079085150165029155032318422678174072370532207763545498561289169894682499418472863093257821571155624795319396604527423585560116902401182562202214308268283764808312387314895038826034790173379926526028274097638131538058717719448526762048856695860206727606709555079217030830763351077428627264045801657177265638244995469100718456313008020402945122654437124220475112242638566407647052565809126068031655700976158663184737643849032750516747490342966589919179527791942357746248090647791583491165190856815050785490849752192996589780448311129872561013703071221118185716595849477891113643257594165637127844903315059194794872388373943707099230334698059090408846526576286115766133302320187893965183455247955094603869096920240981120068874238348784751627824940545071282344466872043445084984008982912914538717512758828816375627759521161702608587325122123862212460456089362807510271073728990927851176753052437580005446813379089023645426719198214777241844721406993782355020362007807459982094394493038485685791493764650824900376574501789589911985785862357277987335933988769529994956671892350562546007892732038563183934603322748775687393610706514879512172290680237901233320390971673803521177800299220125722267765941606789629753357284314463259037687654833161662226259310469981304700611748116272580965068198179442780083139085145929391226752934845072268705487515500829640332722352577534434926626102363149206812338090737153610009638016334239906598181236561523694676999615339012342083556579695471016754337578811814277407257313026234265932374480828771221994347103730978024121800550292340461362958484973898144775593251230342263406656141380537484388481097702300443058039021428777159834611084714011064461894831210351163290183206966943577795612736827472092576539217130719203480120270598166441497147321765974890614706623520607620506255851861730039370240103222013507980085554248590907677851984006251373313338860122091060214089139077165366143288318197378463192288093950031236759227204216985798166782527797191845899787538429064532387089751047973380956340540145195561493462087432526820924626911647255352766318477823278858360195844965973324859419291278924622022309532123866671050583972138093126744250627098861212374169704453040995952358352369927818289777594886567940026457785628279788511764557779822809661438825060098363207762959924516109750195902779849253641269583891305042405861532727376474426781668069330841091988612386798386851019692862516079155988252816789185798859328753235678469423618705802723724865786396944974083505870917962241947572911830442240018091345721327788430041607360087392125687864499460004055934602139867269956197950686265468168299094173163893305594701433358087640461928872686052302850305484193607814470523924004367976567017515344808279851875603641115755561673312143059571393220180900295304037564465119959645706342522765577358563070650678594542415728951167432808071584177277946676549143393842619156259134858038222678814513902063323008635137985264560652009661235468662502007541429853676872118220864759004278508687081757287215327045682071095901902136280522774891803965085688695517275276604326467673522963233022431768131134497287004441506268675501428048030885031018201644784339403804005891394877248665421113042614957240439138253787657536545371428118761772535603670513568106936851979712336317042695881577399059593474753491062418936583926111645222186922578608316888378514173433360423973036672502854627878846094672559213413806536084470304325633222246267444671011672256809118956527616239931663241687147277671809664594736749996348563270630794671833993014541649231998894413592139407699767952808925114538577666002958825420692363872729482043517971937082597401658019574914544018309061382835434089815637232820529897432089923373692383523564984776525997521557395060017661737537842266091577632875581773701613303112282550818696472485535526754465419867948096881401410418252783570183392865894004750301915038806758035589929606322232304080475971350574464776239111131965346834052653858453178435872635841003063252284716903427305822725067254375315162130337125613088843073371840379815062276646526405347583147182197161768546572664506083898135198089260416373348925516864347834388398938353626376906934006539356861937691986694077713456260127441970196733235069180654997282232068996866461821988447001268963012952200300751329539527341191124590829294172544560217292428230820377709150313023545804389617179197013937615972339191958994129506889860583496796074315130789450106258580281286885478556257943794157991983504665362323795911823012912389235607691974623184617763829374955519316865872339061441763070025044232243657083907240539594422996208883336707148111114757761400901452799649721567902257083844113003038314227807382396314733508467416382513310736506454285117265326170869196006867677544688347247990321073386420010692592137100351643455455461531752250977884812225104464020030852840531861025006295474817182183626348427215215575134389004432635050866984939573220151440818601584348447551403842634779096777601702455542182578359373902295538654045208908285607615709934149505353300331778283575429791868593476712822953013823352235887630192524622954425200474652154277721139959158856560476685122691125992153801280094518718358085587494181919676222510083403946871855514799214269264691294631391750167961882732406748026614122310786851153266598909969625980591223916186071069895285728440870212739180643596831290131283475640124600421528682727851595465334075158032259227035043314572208337217829764902975649387451240327376924957765331574460892902122782415582104815593236566570408447989720878133568839487896438750381428294742278580392837735540476786926944811147190681608652387826091640238021812734490693364174190617881281076356668962888397936896089632469416374311286543293354738728231422523946352268011904522556601646406870890240927203633195588654981886181764838540167497696865497218196799331732464916855914018378788455363676979289530474900799142979221941311430831463578092644326581376740086507796786638524934416775854920854355946814662725082968184173925891586545051920616380262276175974802640131332122184730678896109550190910512190411469538915927340124369656182921268166171193403267180402403003467870501598563111463855705926854436155991156810659446643104764356942352293883321707249611227641474818090896419133078001405738181533643273925676674641853028680018219105741102114287599154034305170356306664296745104945846419072215780242385062119323765940933490019954484863284103461369984312983024080844045634816446035770766216156023903559575907158765622412532751867949436320603306574521400150973890703099023913501583683420072724799382576063482574469545886183382257746256827153279529327863975302177139423946914571907625975339379026936585939244521293718300241905815997000453985271797053861412330848051126172592499988375461532638083012582504389903180749076445361248340891597618321716033429333393751446481567286544780805405760922621306984710145857806239187260491961429466270577424643348701791943689857298318947737955884934165962910027736527609677432547036631911569272232610102842604935989950156345948072646663769611394416876835594661671655215601964293866035378275280600507428539820448471201667577070931032044611833285239346506920263108694476581453705801198113832985321695940709032424579773625149815080339528543881544317084374706775053744375571892767212136993530207550553272297611247552766057219981730775386451046839721803604253123634087591829075616768857706155674778040304685884914268073588408453550495370833207840856366214364076854715350197769802408670818746293239848524356630477553060663373230543367832043707092943276855885215092403572394891223621809368725662807224852076883650027863148421159862685936837637354622827735306028151086823531545770848452609461832292284001459241805894366669411039847306712024505426240433170514145139279325702218567315753058789641551302918637960994072620316438035798795586632092397461556918264042882914729667934251906723958578970055237658312042088268356156114400946218055899338036417253870383357890792728887719145159956686510020072262320659860954975935119378350377457774247658446988073220241731043631253826161464622583846649249106021837831436655982637951266976753569472826488267658115838582659437085680750508010239239987336541631170444868507223950766294446596555846442674356209050479013792530157541467960308405414078706791790326885416884215419977986150580827007882307948003745636342167853497490782348549892124382295113760594503536613353985087981785003030590541345406642499795239951494378652263234283366428025444712296330058372597818274073758703770845296095332417484588275757790728231773959186346800050056085659814965482470608153881710062835781763402999854138253509699480765384662402923939887727476847084195918585094548793564268632840625819689886397736069708077660343654244073008898736324304251533611208412019509918884080063665343440579346401550147985632853824651971870448252194651438621779408832185670647129775737974357625547676399854488651173464478381297308368554119169749866477879653076261919228676391731626459711018627471616306191372294912934596980758447514824189929119907932990000377654965348888240565022876099365065162035324339576805900730302846152695163785636995953483772812482992283249939226799326305246422355599302610050234962340029531867813902425110495300570091134181618777381669124354456021599613706902728562054571279759053012569802902922901336704672597444088957462716384478447758543977587515346386426668314304217661566163703795496178404356897729662966092089957333414349912009637743822015789336203576488680367281751221806868800524780224284223122637646752813962084717816408841240855577019835282042078701709255039352696492146734722073608913204764441338785546757269414953493737513247693867304660507121329451782712258260724411991134256782817036673166846689393533964886786948237762976767357452686698544545771284006335151878428140454251131227770914478111741301044429267453476395362794866646342099952715403745005651283750055217067530042518027877816199734684305214557303136952448055049600322144917515771751015707348121161198893573786168523360916042675922472351491711941731898390124560972544484754283783527030036774869189928254893014547381591619711989450679184581886369101553900099889212203507305548695101842225544730936450866311944874121218911638800781777311035104451676853246668446440679415684396952726765029578843842804230722122951351565497966828319613390818448769359177588628895414261912614239956859794194113141954544295134344195864970253057960799063708057565035408246060631168944756208091838969039910051309991409394399661418401142074876177258622651846694299958259687630035217433823870209075160974243793337151224492267893690858193498080488079462198426983677363568143546085672121491566811923942688021996076428435182874765189700114559189450058708640298807292479227460171617127420341545942649926358983892655808060966719719556840800716782093663728265599085061084198351139249538696362729708268490024088985424026078228237018799896519813992900549636084467588118197330183388682255731733805739764344757332802960045922076577006604587157690462337499002984512590506821103414536695416066032343867019266032094982783421547824828998523277430407777847357640814947525540403020843289239043559770710422277103622205611931468565246194347109152822441055391516169414494348349387588805570423879248957610561653844094539716675979499839663700686735161124499569784474510515587210854189332864526154059297976340825665158859695364637812527905523188787828637233868080708354089737380789374934976001616672694109858904147597230030952076229654165441776413803398735196309354311849058073746745542558971392170493079530057978522500027102304590255318051727036851555293775352742449428553302426989526349850462676404661167162195057099898940515288693450904232626401198139500874643503942074874258960893803575241208678756589122418839894823479228983581304285462726468912927345325872731684082490303179021727240359742262554033076502894921058183324260731374676453160531476493562481327660440670507834007780219237702060216666050564827827461743593219463384449922889916917400486601086383225492222491984532517823647107794872866860777961439138999621780110612947873389111262835385555401358496978873694544006196095051980250271205386419386711790839208339705645646926392642924440915465492359793626271382668207943606895569213051951823009308520605394850438460439116541913634457385826367686141335007336511784306166758157264113573222538273859009703435976508042050305939702976404671181452626816880379352642649273748688766052663190136887312013832340556988115786138439144002159361541232434180079811837901487421247331222495731062077686169625133277077351788753696568100145314074734050188585441693859484163847916012637438373042979712427021849035512910339812829988792470580611102062485582461828985466951457229616801110084814576852074457962226788090532711547988431141626169534955616395932468020812991648580748245036238710028414888439099254325769438998125984742650473065294250239873552165987252034429944701153263935799274364229945120065513883794954273427167960093969643650155916934115772258080551525212779227202067704996140211379834556243180899840895013094716645005210529169641284281017941427239615372086106188442248010194923322243786496021075163426504256656681900615507934671441259325487036158695406904362013846323890528817011326080711400032534866153731316504177508003687843042177712571323941904892595165958699237815743803460124844982717976284704294744023024128556556716951512146577609637851820991183582976084205547874286080555709423877772239973575745091446049015884293684203824299346053802877600419658193170501697580038422179439306697299380243272837875196372166735499086660693551790678658571766485247342939631139730836085071624740634613031904817451615336286483786459959441921459918138169747653381969383815653386899140175804172653552804459567654054545244333857723882452808972091763374471677611581951517577696689372516215193857248894457403676576696207124442339036832371433351600129770056402202030014986399439194334251003774627074955419474237684722861618057612906454913629868739211976158393107874571310303133474911154903748426793128355774053212435842828378287795001799907237078563077424219749493951944947386497582925956985491382620333885168946234763200259573304749917738635506497684022995835502610299358667630309710006229651484176191216322114814448192794249858458991221095738436815103348181706966548940652219772537111172621860582391913195494408533768794642751678647630891056855939793315967142937198730654768113617185479032408481640985361070575466645304042063993400573304014435956232286397556566769875758197684896335384256488220969531535319313069276741082791969679628779202764749219460732099454764190308423057795169063278731223464952398593131054398753185212960682649868030855858386663468964734194658083542210211643399015853978859257684551582072986382882967748271343273760641328085145690821295940262517352162797847867631343711314482355330470392109077398815388793308494319413769233778624540139931752125642757195789894828097220753410540841592011878615588768025189228179638224110856443837254897930463985011591493701617808398190819461042062127374653597332478559440416730989046941413791935779690113950467020140086523890480975879490172261823750380010423512353481542039106249498388736246214265737237014490382853725154861727419752125726496066611009552086825166484146856186231879152599356783085215452468060186834116276894409855246792965908355787727433272494019933284888062052666722348996572767273979322373247479200066516281638409731343410266980932162047477331229767445709667651671558729760620074109549392566500029182130244894413173353363421073141142487539841452168078729555286383657639829457835152907602246202178205143597349238742182477933140527724404125327496467653401213433225256643855662690558610759081236169940434545583970275550504998741373477236703503180003881862976672766846572327091934696114915911927998435848197698952045652310264988847396061389450633129817586158295363921995196740172133291519765642290080891220905506164720968243699808673900217606159026831706292114484426240180592839210601353858944856413134908396777499078678781485225806339050391868544808253114931898248090816351934369666376375778900855527016190999050203441013786757299449225177425275706451995784585835952332417887362737548320482466162455005487539384376493254865694191399613038742861340890564263583011043627577819541672029866435662996423835403569853859017030880778046994139317123021883163188909675776013927785810288741860799109395166543021411276625500269293208935762912544709819578043414549240436022587212805596955547587227386468848337738844648892798909562820976007118093880164705925084432973807491496752046602051497840031751224473431069448723636849501517782551942439298317476232739270876186279891194682410326960388308492444169358050985776005734459411202272002294536128320143752182830888168262324297676973318878824734013636893221939636314100088904616706389360887005555593271668974273120656085713976642956107348120322456838174981709680498047681745579525298335845575182067856443895075022331557483543265021543023905667219398085753205905221432008620062852433602634582817102831756412053696992202872569825715408052617107697636635590394249370679191592680883154421130297247268322452907823891161048547337251556082408569937206387630722005391206320240483119232285704448487329010618553186056129751191975656050205429877617493786453123102699477342592267933573127076608755942364092017710760558501250191651020699859969321512249226098230382761252043877042629310192656390898743201865125579511972039920880202659477312241607442536307408277181960280340690986681815527330201682335820700105244335271008044649396649777782971253392169889924366325293546857998464657230446061186341709641110348456156888435488270658381883867129340736465498389021874711852719598421727993883744548340879272898845562203935007099984676361732212868769623126157385325354294467995325822161425264681069717185938054176955348789756767980696276276670645422790897550785591148922343307943633983786641838425176297897826157634883265830680609663335687824005868062659399579957009617219313235370858003913759928341759178184707877747967821671114696571045741537314001766067797845768054094757631024850400651705591287520094796020575486835642298359559164626516855299666758419345113000413573075687019868135888607650688412339142455677089502580312661780709250429076722596561568363746308108722324907140157776368874077006023592589369088360344847444169254546381814568753169313887864412579665470540344668961884492035674406445689714434284530241765871513421538332485046074716789093268963974861571432598641935754937315348967147174108009987432479878042385789063836240497925566765011239967088638477276200679136205067051097730450206264955956019649051547673350530538338674598914591824493544328771330284180219954132266543748246086865582582482373573485805598002344082166887143553272486094460645425075573443134941291426059689973669544017361628931230623662067977020560383332107560667585748429675712823189141591934757587589741526454616799814350966846698854886699249911199880776185271272938145159422775797940329038977661390249183603714626529129604882642298379767927795235210655949998760067598093262985158120663257167569568637004965312391374281544986892424749866603443219071814800770256058195688851245748105035421039213506545528947490514265700047113630067167789744904627428576194271189310057611295179377924363456795343743245786060076687411547462763247449325158568431100644402958708696177565115805695815734975523824743999483239060594973894314759852926602819630271732378041836101717227162814128985436068961614560393095932397821944452243002677138033216018922256598630903889534409348305506260885617299787333017074305255101195984441003655354068401116917246442941176700770712912057832665719395779161066208873397685996755930052455659737388704575532118326846601417234841587475381226555783045666395183470996044598136890729121860139344077939326305521398288476206897719466640109166483992089664727996149291269653485591844264672907147294450168740223261751361785852738007243681543922159831320289784298933016801477861616123331900620918647593809424697286150161855510310620977335318599612892624323223783942983217512930597617949825771430053339456611513174846272901269813412777262884219118917881410688168253723902589366984317207115614263561907750831197253029667124479566140375132288573971451485383187977249038785704742688420925395265719604461477803090749308722409919927818650644906585508403452278444983356842513497865022506503330648980744606257726062159198926616187076626242627049805169042539045690494929114595168194307961590582737617144499752580920875365156905673639234600463124473460141561940924006478054256486014859867054273851073661915334126097988833665640636718302249997476052483334596401127713191299918749976993955773846189876696417087139140510912951843739206822502777217695142211759695257242823268024792523394514341846447666658980776461869465031192169736094914829515958454741829849399196394066723069074709906294337132004097519937040369644695041827025352517319186726470296995035311116756188821901191610228580126267162907833779868162198110308993811711016510019956915384912709189345464402680348536613302369291638714542724939738037666024392063703863870066757268533171487813101775653780619568184059357349486692598083395761785402197905358030145568618743686221674520871211150442504296254824402299040404219702707016164975008496472607679978457742097625695739149219215449388261340068320348395900005792385839957906229479533123710318859022762453956848754037254248854152869929710164636416271354039927765597116242832675267870050987516488333506645537345855022052914250078466604061718929048299585880373789101473762577927126940224644219641864846858366496032429136393288846024113285034444884635017047735277513353479056282044584024258690549880895322920214760996341637593565192998063059398447064347036533600110891075729999902840775091430030232027356419467479722514166196380915743272952298721673705258808925492696027210846311131671672503469252018847129131476707229519190568075088831001379344390862285055930683318851221681586630143423009088318291258587758129200834152285845525926459529854473505774088610222392415795239207765712392579093024934496633676534142640621303953744312781778618411742560744165610671763726221336881652209762152168343518675697624857224640342205289450987200249475014484395904175350107031541296742796516974909506247710621350789677035279454317944606123014603891901165297288854166218475711045623008279193362896539266153356943528484939096136138347780107015009185059246407069869617724142120895585381132986000671904263969864225938256038639064807425469939518198718012138796969531398120472763257337790346404871816107704022638647656252135593234245033327230411456426368649056584779225587786526809011466563640898639920160461003604552847376095951748242692343129763002467484234379550890175273214745216163453650994488938454164790038471217670342200165621416538016902913726053592132093710020930445212189945772279343034783713511482075059858514487219141583121234816881774828558490690544968486824904256998678821865519498889870598701246643600922677647390471210741923876806481785745386347433897669595436044681579029549784582776376777154183074849751387887596309599003789015574874547641435104697769985141178387582342022493070529390912796751458778880187253309958164480588698889156797336623327670045329699288317290211187243463169358042432310764129460872889620020420546066803980289618646841374688649313371298477182233728291971504900999986284201649414792551387520521856989587531840322897751165331239798670409388304575265223388051254376208030656022132678624310313228077382281916405212782809672763638227587525040575039063293671373911872603548557490332886244385901139608482674321759512215055529250162431550739881004042476167719601538457807415273932686693133470141687494799459755266335827193643656268064732448479365108242835935485379246383308030064894023056654194389328408132070584929670584554576153816214437950625935363583085574144041780289377132401883157661292379558483330595369498471006299791917267764509421089875811106485964164844397723989801947421754522976517246748097385078863792460953102402042897713722742572494655899257100819477049815271305971749477122304962940860756094564821605042184953522055309470779073094007718393795664214804511311857444274511785471444564579581785917695974882309807352681349630907357403059868690836982581009456906140980083705558492388788362115846171898281863561431826729963283498956220256260492242802980609510933516005745020691670926677984228165413732387293925516034216658665589141177183836847848675049934401273792327819377687314546820891858996718446010976355653621825705154599792023837894564665851331015364237596532929565975710948047654604690490826165972865325900113622767945376950774322444058253744191264873813108911289431123471554628720494195883239500080835623657985337963534531093251833034854293935869363778999082147181174608588056366163863432847500899192684149558241292853328859345881302699589100184115676251299253521516984109475652977815027627326911150257151801429122090579544834489802886197704822311720717325624726582642531163708652698023765965942312030308922054231988326396074982954985625603321708515504111974721108215377716596535698174036222787374039611701736905409015682573869931766699779544820594476046056465683646532723987930863903899526874437306399614800879899220746685068944365961248549549007670255002134128060174899652230285596754541117416422452361881535584964033948775719369711157422920188345444270067996808766403723544965387773536535246291418322231509536632845001019382642969747318018069413031963694434148035922070988664986055845860563981371933847845899419205474789379483142067854166416486270485032973014742523456320114607643174714836776639234219099415116266368751305941148109458921270020068689884552518160688787473633936669291268894295767231628012672341102648512886546231438639482177742776204960416584581526054431749044519955126718394261311678392149495312409808382266959364682602560583733961771218053323802903628377849810983388679901544534312996812304448683129586695239296695764594860709379515579018185066236204972406037461732486208215003560214973792309422301238166037679969612687921260923187480720055054428111196132649207346265497217839028077377548640140536441519278064814471152815078343196360163722064703221341232050537641036435584193464583831652063808342479730863144661604360921915984449486824710016783219177187824802899382797122024079304179442281405713959856311074954935490418412153195415139649805075255584198959083422793027373937788425852219075799528185579891007789523408619074958256387595108492307080396041820421011261685553793840020044998024796954014050950497497057391021793388252339009913839360748782277016468514829594953565494986170152424771383576992281708102881524574841293369588090478828811927896050892801358152673374819664497212111810571822748407513180959024022693685866698952964204231826819784224705351185252416787755571738690674642355975373472097263575688650024041002665756493468519878732619926131051756311471996634586021449977069434387989288587193809654809792663891214699858859544743863616155804268980742456545501297087408413804534518876172198537671553023436386943457007467199179150246666097940527358527613823715097873961587622831733621317627476511141189856495860740532588465575336292962177361853516827576974496845210472578602570826338585826043832931923575109278867356903448056235369987551072118781910337996591151086311020143360014119155904492877759818838939939189259382763751952327877572725647575524774662872597106749696610256992692719718587713848868542758574760848526576545791882583343303922178868342778699707088555123915307944664725985722339353925792018501861448311197023333730575085981276610748387451994221887884485203152249516768934304151353820337668957589184719804280315461042309198302863415204293395907733581909484811938306098385683251890297352788757384607123236975665432911973303277493932792373461949560529086298494869745542624225689375901851178595522317275522370304793311563522690262297009028009329195879042902647257536002574110529996548491440123645290757375852617598741323475712150958323255988033341329261811891658894105110454222362837904116949944114457906605894723048595960925465229497127130067843165423950576709904040048989730508173126439426578457291212545034766397449403173899469120349206101662017653330262501855768779225018570651516826405969308507607857226765208400979561085181895116351449574797840459238516872090629688904884136861095297506876707927832166110910023837243004687612309788084167133039169002294666992745787854526208279282258607432538443148765399032421240214379237608710006879551378813360657413481083733359219983013605362052435366636958354931734459812335493398309249292938666847450375733211188704109562896590960459118854059308178131416471240201413241755876537389072154168710248018405825681002294714502242137565873148280895620576692819294941359561104695913675689121964205043021326169465896324999279979916250287177362171536453642615209733982721777154819548695936025795966789774243486583779197759557324499553320873933651005968076834083947357354327421137141651437230133695323764973972157624836094166829944844524384774399897456119884538073842370210061072379390090031164726345886574926495666402096392677544271042104766794066288731555345658026745581619250036929659303569291370110959230942684832910634990661749465062850345828762061300993144083087393779710343896155642844050487116302394654236253423599468763162761922253054536819836803019114374894084377705258533150640499283324435881345643291399198700493094883367111525881075821655966321313719813841649957842170486455997966535115133169370328895066941239173008698595416731663177487924782659750776555457719542154464709075603651880134158358570656799930940105103674855402524628771827871367835591265703370885940595478582365400032198434252255091745989339923042600005812479262039678726859016566393957504426142199223145172408783143005970468481023531612252766574800381890501859842732008498437496417805448534772169787491866526114244891675776831637255878073977879898930772947079175135753072970455431514586378321950801380736410715593426868734714005886284476214763346807545777579301724649075424913142499758287845025737042396041801564396889642357644682039016703407018782237459886564253276119293087707122866924514105901588573361938536374916833582067879902782740693319693724725785089958690561265697576399961295655663813843811355131079142570096917655392274866009474623870874458418575105509377067939237284315177686696875232671284010112957419619190535449432149333557750970339805743916804232850077828182601024325112275130618532602783213215979867158295620133310736686083923615401806166470319341090600428490541670784195471012141832558728631998525703219047674541987001810846975844429034457951303537323723921399901134878014995536362806198302025035449681454622508972283410955982391457123345054703855431827617898837637575659549070453562962021067717820985566840048810990119918140257739413547447125549998719763454014106146491208548817561194498623124815319468404798762674975869944520751021596391040973852194347352560111465857308131413216218463217189391780913877484456640228361231291128433150719866959665486855432286641058266522738778267419787089400329432317165857721041238927933474757350863101357126640413375032113786919133224980525792202394808330587091135721901412489274828151579294148185596513995169447551917978025276442759433446551786090435468940066221728250132217904281986201666787272931157802926517936007419839734425618468369345293823743349241463625798799328217576968045590532260770982709575018238838352902444738637069425943820987442469268740577442252771397625119264627940237044006363892557621282825517828387740590200771730925260976563627378641679497548358542424884539083332986733404554368986375055281320268529237664175940384066327801778347263302621047948079371737022485836055033052090308399708666635314561998478854818466026659736230509031337501583809373438435341357642740870478587801550831985515232841964434236363678903514042632765430443707979554311301202751202685557856407176382270596038223473764741994811655323672025759234768234896629632211589930285220504687044536273235665325157537084128449306434548350612090615227007063353001551353436344604092682040542339739664342811899915448933490878614827321353234482903354720082136327230364664336122286493028324630852637458159997187665397814013940736826358601795771696092442958867285797674251533881094776821240213660314210030798502770958189927001968150077247889615029859439839491826946180671396590714212813946398424107884733859543601238897044743352307760934312402475701210436626768299942599173071255880313724076052774277893363113157652952280593010043001627884219371248447149578262593451783861174444388105444821138333802965613158058608884230136885428903035318409056036828527887245452335014455101559234649310778356351664975510820769021844649031365021200437894167905076612640351135412812500881040531336528099315347129636872295096963204681509858737063197530836053468499284910368946210930400408525963657066828052458659250646583735599921633323361263763663772115473243646246468097566201185993727183441123719319798121068247540831932631515072194727171890974219838862343430426029040325786072722744276803667823900034122093690793440076654987517285407594474831473524382978325639413207633343852091277743469288270141895792144178751138964959489635660505677439500240512834791458109285518066210311877731886792279359666584510648409919037514344994345754380707663784671038654365869350918503488489046215405004356065826493137429081608970145334566564889013251056431570178430387306726640310819337441434499647798994401005081572114548401497756298121648720369358153399892717967014456811277742284601758974426784407791897255454751605280118130033472420434939985338179451310007566465587547856992368104749273533210094844113729849010814403028606922964912841687077344449928660917122380867330737988288974966361746747147001818290772348987193261790702866311058203660442588684447566820596871068598597853630157390927874232919122762276998357707916210145937046467377415036947364245803754962486197525665663284070048330634064272423636523616249993184288519820345387074726233173209698352285984160635125890703366660024439132685792124453309244435560535304058334764806586956051782172922004686929308167260012666017728993529474789505224407588918937671837166350317196438840675545416784393384573116417026362769116817243580787701619711347418898814363013117672434590314695791292806210266611158145574327563724515836693762097158474756258105219521214403648759813724433148064081739259417266206302767218075232404335807947148383921840972057472547289996407010414208476454421513595244758154101872528417171983528560905350961269581376962740974696445805297500579322967338288781812140202784137041577750487730094282500273152111514505497119583909008583874706098917154891298605702118970271141311607611850216044030603239268298697749068636331555552982173070586192799748354437271219400417133083509939872299963310866983103108083183617994282308584253476801198900418595879590128078908598753603737535978929893185477483192998913135637593981667646089360827691184079153625354178910089899812584136550504684998752479501599849976567176263081506528408746263269355210391579608511084382970685407431851022559836147639080043150557629397635614759111071874140623945514298471127992082079872365919813832176263176343584184642959358687044204414606818470550001459396000466878515374207555205281111981321697679896659376113583876446499365408197443503718568411248891873366572143809676822931126932650229886204492592504768558704076765250320642793211890444826607095853022162202421044128391450677973920919688788395079090332035497905762666058995579866224742932318838333395938992576392827208395518283292049470137147843920779070130782599881294187333653649748295155963105763011473244788898725246343878649779663206314325554242397238002806081052263107818296153676240039461104568483961929221705177980476493413025790268340954073520768949665667499280553002886545668604639068078590496866797822774751478936699509105535114096811267294742621260288395677668842845473585143207561864420427331528545385781787885277239127636907104632227767988965846311194233407805311936582094138817970543124140141743729418289931304807509586547270166687236764932580209960611841806180747587498984954011101517500386455383534936126682187405054592559542066861646034494963047055988276815821083823790824693428111238849002143345789736706083932543497501441448012184365266360782115818097407320340184243701094213946786695415268307436928373234789836869451694380692028601855742964895501707033197556991407881910701046462933770304744052455077060785931560969851128725592120325240027986446298802664658314468477880612069276383078163108863866273221887090277142130894839112894119544848849472189535405740444513157119285501525496854915803636788466817937788722178148183828869724628399652558834609140813810344291129836165824918117098937427125061869192587817781287195423025030833930364269438980660844094953710711624868812564808350894725151846034146171022396746834469835252779393669748886474340033113541300283844038092034714264693672950032201860949936549420230629236858051346234986756729919739676551028838108114638093333351290395429895371630039098248436337173593292877335839225460167173691818378047853386096684967062302861331167821185114930766433898541666598055564901080676785490458643038333174563457097517502631838860265345796305616469987059454561993289854839784908188401188620874564049569008814897880380522277421179833812947942442653240405671777660826733980014386454094377363366236975492086947925517129939109733330423717494353018058842725976174531959630184369114443002431583176821965625289029185561782332526254793108497466857386705972009433834665232011976368741835084912453304096940141971523085737335244106655095235964374859309009650437181951293747921515479603678509984093746054701553848548025049192019243847666458618001292991712105631431591090999252189575200453558923994406656176230138656401691109048756945714092959652684731612906826798098396040963652217606977077996056968406976242653190959672167674007500660389636171586830975585291599080038180470271953806549494522599737166576541436161005810196899922691973877999165017618646331499731265866839907683964835018021421640060753775193105024206071319915769480062034209652136507423940779152340786400617743188500682016991282046984607874317778555671589597217688905750940892300952050881846750895635912020791514308271780456145691612117042116599560140197523457617901975593984745721435918683439341224180483120662203642813426573317869318686619766164645793929180805682388698239869627658570993938838783105077947324452156770510494581292616876777303036596197254350139834197368141584597977322595295670275091710685273859418338687139063411112379920694181019664422232598076802854927767081501165725146382667290027931665314930874720337265486993961514946525508273267407867764138161364703452340969569892606456526110432791117432137663280467045777163773791707866040550578273427416725670893728122253378135144951652762793728929860285032058986970696807395368310551825438601509399638008645892083062030696459562788530980927262310215941201827504494517101586519118008499020262708096865204840233074393307750805559166410620085291267269851455554110478246045623675481162411569731036541847815052492919814393709530438029132572402976871648075962847478298019919326541683369165626290755253763972701208524617073890826112194980993798881418507620561862600014498343844755863471861797084215396796248405772106901635765432892482122705418218482242346005657632917673744774250770625998242153301258874059051670972118734714737709779544174262791806704673441503314659735079706039552835985658693172183514264404803699378201028339527643998913193805827395336619916476606173537779469127193674785709232089936211610413218763271060035038435090505732110752726144678609678488008880602038793057074519904706070044609971844215041365924831481714935278512429462796663751553817858103630453593578564879097189893190294439636906024410771252098145974539780860900254662795556584452079565937288608432182138825462794250594784643905184701048600051170724855506337347299504107783030717761502680761271538269245103908147751727254511058667981658332634820400849904996518012234471687294595645620017781420649636417250167545516540915735576451768394124985667213390610808898298309321572671538535482247196985734930170744734378234783854891705632378207585083194200093827292186332769170058127725061735915342397848164600969362874288578219277749412555423598412797285333233007672530538040912207058639971688710476278298690017401462196688438061052236625606815284505565634115423646146112989792250630488467199743410160584493118335050387306904874243090797002868743411925067256165390106088261779763028517625670473561962409708681725849801078839718436822599575962545103457100817300851842120812478136771943395560207405986766421768956742350122724105832730201880763416854994647222612750414397869791307400455158865191471001062172288703633408030296137626881957905444020291265554758598550356777567302636978498648772699271460539017882899337943304914462524851501470268836337225064404394418310969388858221442309438336971109849867078058242780381221098028240284766638037130696604378190232578415092150999086166295641343203691053678482821224609698473498040380627014566610079028198523388103277894321810750705221444515832761836903819255291653172081452558099214168846943790860470346540903469951657393163645575646629887345095074821160210804489591724604690205560237754884896158976713876516432776280462502727221549822601490832471832472172612649901584349235573190083992278414363212311774923732885272247947767271861888418072725507962296663715326671698819946418605085868996809251137944599313033382981527803755113674279093661160769726900293472315134994758241741881930995679914621552636253773423516196795794872571380277440994743328208551279624543721908293067059480428403056282788023646506938998403105263623701171821764144181189142542827835219670197764054546147567284493138817652070953991434003550489567763621408979583171293629573498819435156351020576796655261854234485938140741726456890289013738894578443652467304195392182118576298016888811140231366835799727290334652417137973332954763542338777445449641322813044501404996256301966956191982255297502196882659973564282059946556595369976585198538595298900366860050934391956746876183106068556973696518111580553524842751894822026638757451352976007964367025110804799895321194491453300777091221901868604693766828175082790038795754501549977876819481842217128275758709498795654599763101404860547107540019821643077430598129493419354868908805743547804604412643052204328871165752890790174178568745753789157728055976602300803595984341357502081994119209195337644163554554466789174933396199610340177907028858767082366056772054307500860308932024532797863390237004978098326864389226214472679946261406542966283003786313522612243620094146717882552914553293479875728426789716079178698018395219631313143731197803538742582779537661719436079925409729387040369331709331203927608446456127422097235556628566702095019911566724150215361837266520352583043143723436954205152364023169209037008058670548235726165078305215908936370177152895078083479039025579238524626631061460767807954403454758676686022508607804484140044930454169024762984437726958813436458858431236964162806375665434650343880462128965210607784323608547496564471729670361815245797565408104696533624273988932343695086369057950006729211850247643254659754088142135158569055823251875397442440089835473166066764185670739115115180357332940523336862393543342978787308298297869975573680236494689897348019566027843433058441210589842730321246379857334063634122282559950146413904141362129898304090289670109515377359513598900979703285802974876548412166257893864509470454019450268945380949017015696606023519094011720957923193170138979543605540268600949619532011763656816943298897816169948950608787892860693734848450528968708575933796700022256208407963772290500964973084982050206131822975331629205035422375580033025843304008732769457179048311177555082721835669601918495711623933822892607214439488590186153115622268366501357303996789785980501701696909624106817639157368741207983344576230037014209103549152127699028057719147716586819152639793746252349352817100781804444684156860678953454004587871495786065377698286593717924942376855097341956295320110435930205235933560588706581007200325884618629528215564283503554274099240231225063988636667282661395296345956973407754490291461773920488061511079703210569818192050170357297783901665533693711612416395997770759753275873853343440735642246630440955616887244983392845187014422060766335735496025868190243798073050618739722643767382572222518146631779716996420496189315608618958012107205433786482066848488770797360978665184883925541439854024243559751860944009056781145870814862770660904561257904700286995551569907128014168452354618149597186526840629774563489645004047570186069887513601781293376760587803816172018848761339477843599954080515690117104804080314351624811221988953913675946809070207895044485679166381247938758785669551670942503104083407591610285650344577294292663431861343389991122745123986512312999351202300785260559912456211373518106588455457539896421367654147553425765917592516384082939718388491062655586307916208205109462509512564074185542082746299004903285772010131163171222449502316812426031945853313832033305752995600150023654064382895924060873392013828065908421456566903177348365239676615872126133645679000863511466168986860663131682817546655225272027369027205787355755043427640873563924587624309077366686471548154712376205003484150809956563023755400915064222653825766292835981637925520687552210988999716973773895786452343827823022612314041591076479129040170628878143409934252820658789264177682533791630996358362866114523842971949172572051115615175520188145337323526107735699354948977576232444350115764426490010433319978400099051320992047603198763435023220329297604779758686884752149169546443300549479537783818491930142953399374266211585445842526362032097325016628847976123385828920046447732200701127025755283475626147304447663192402743577447158114088560998473469099224096900541831510367450778319071695771067628745639971774333895083946623831519241285801445530773313890416358134790101901620942989056341807124170431936544028043020827745327410072514383031422370728108756456478555700134892500426989728586527271293655993359876368533835045371996762717757949616985122128375741846283469606842842337608134787938696568618234704945828797928234864487659890190958113487766534966437981801780386512560680907314271134847819422801772169362862456539915221404235919256388957823826839113758314699424290375721658293671578001363779434584403387611740081711690295700497541177069378973258387103297669826601611088961296324510041855687272741101728719866231360149761642489101839199881144890029533652456104374330503096704741590060101300717435639940310452470294881547085281483814945882259995289177772587567062863739736867511753599163701901574044456258994768785732167320139567296809354577355700045617579773894182634537961697229701819541691591196703248475549842265030164136116954377762719121885013484120219511115655951843431730612102315256348777504342930108556227299929207246155275249799979496551891470185494124371734371131722883568478186869388101805198812536755773242546295287581209318943248911514566918132747191293610673768607727638113000253414742209632973766261581451285258959319970094640104979705677617886988499321638724114320273499442555948536537561064541991282231744889159188571430002522247092909800772476808549761681532581837559459596570544674480116308999768166978282921340691222458172174958926783453071347319447984032677759103213783205218990896458242799885142553515034028136174116822966488071365824586079203523421409904802064899239300070231558534209972119973801150233021611604994459580915760130681400915720461638500846260461983002050280471781397917709908132376712329285059465737480189091605834884621232017332937238666593883505346730597665032202393274336241050076572821000768815882680919654251176848211663901641132504180251023670233210589441506757181658711308972262454020143861576206489992191700107192483856463035185446622055994880110096795097027180375216622617508951666457749911726915264661152490055823834298228136937950319383852867009284734728201094915455886760196512989383073090760086120975641161810927011030760931550207992438792539522910352281149298442131041686245480317651560350163740152337402248859771606307782825412784227092157152656095681880338809106255738186365722420053481793006652849651553565368829969150389970579017233826159895933206416036765308018808636783542148588074839699855335385461887059124156828292823230449431835564348744735143025438228679891486535805972177109233936009366347853988119185547151658356906876508711301252705926268610480139909263094167910604000279324407901346862520286195095645097511719730800748543083746321807381173902679656960188815112838890653579965801076020903097102707807373884799829764163476690745565124784889108243051894218256063363011117619987859815925063882474658676451484969091466137441976076606151687391457150243011594488216764352880089089269386723117159402060507765152867723112564515375050765873918923749393864152369400972704040384169798318242473712891800780506695922948311427048642774960586643486430783806068987767492828323452830748150201470836606460321514934519884689898386491724171713443448881974241289152334457852558194583301764572509434286506153104832048454586496039990727224109502278599784392539695406172064320062920782530475457447812503618793156411915630465557134024490685338155394923864817027752098697395997702836212977227664126247216686986854314117764523937225308348120420435267565842509115922748206897409669162003356906434820825578625535848170705229324742909759931977368610590212409335728194646214029585669012772136052812864978439780530374246063403439763599531696623791268432029144508613656354338226753506131870689939192367059866228685488593637160336476971434372892110256933403379374613053578260541698863636139780112101397561227394075496756196746446246217368993832194979948900006040691618496049252561052062038978907541041633977158913160442427113126491647853579576561281375602531450276637080340800276427027137896211119495661162763212986285172045711705001337670640818369756407984389085510627776896778169199975073710838384882855179699774626692812675513774014967363461514250098471558410688703975527681229500781165873669141278061987911351911894243983249689386608176134721296102929469626503779236286891468254278230541203516004947460411671626009243242179235333856690550162791555965505091239365615140886276273824989811473964339913584578082390857754177247646921023921876908429692859734636707518967121191083362215579585396871219155499451299197135436511031161878003908264799509239654603141016568960549236806827081042152414186795528937640053272768668883937508313356943025185292479340824099120829378641874385122573352163580254917917363236120374150011088764598710952209210102649455682653437271682575178248028172681150274209221138265760574463684120848347083541437474038264024982757267907979147036804153132011508200307841444514908364522910771657541602734474474242768959627779722031703802723207475688745002244520839502080211444919441437567526646322648058621824257300383896330431726131011422963995707655416719428529377664338526368289412587565429226981235861820878074975383180158041892394844231142265219587161578586266239309172640611773300271072323649395567593284705358968506726468797928134488125641333627267151492563629696372073335780662430673726630407144101611233040199172128341164522001484864419943720211258409301088061441168736819081430805720240809446595796088576821841920229634499293122479877417919830068970719771396922443335790382632093338840474923808702572223791431213133014630234105436006861564033825685008100865067142869752538705769864271503467472677785964184824518521983475838624899443930670127147889287268674051067468313173525210072131976675059023763656664982121226646459210406842872513866884097774306930501984291682740095912940133343655034511153862133952211340433831846836600856004229779793145599376700614503870877110176317788779870628328965508156045060380259566572968959473468720900285485477295264008545847822780640472258877939099256446210577452276471284343889038558401944730724435193168515797299657356729578535570758991271406827029892930351995417646202171849457705657764153528652249891629158602109307419050621269797191598801482567000417384025239227976256081297007274913714779017262434343884180170229838566369949259695652440061849769752310739106947946315643301998718597607982625188830952584995825670116787431289181555126846633831395907696707183250383043981339174829022319340616676121891385744599649615116661477760411209783305817128714144003366226301612885315195948903281267517223575031764402263731650877615634309951063443492555919956075615666529939529732755073988195244655848556766215965709803698642447882223469013174506946648448038440194612747084904054818440064147109647806613836158444621455501263458442272594390980590639374118778378851894101134788785333798710215999601712823674911196731497004591418690526301774881669533035569876370019707641011811582610748709895543967802422909964499918244746440909235182202464725006178193521644732464848004980166888966402903402754671124447609994013432900687494025418694547774386807136089419312641737586630873081202709815766874609305200633799561705679897024997994003805818158620383463510044362921832168160181613857772601898942164073066608404815418476368342345313109513248956659454433930280589566158148982038822923576475295549452117596839812082875485236539313075500583490099131798724635905009693540066979195447227159815911783144254795430346072015352290035971987804435541137936282135751327393839187496629751388528817601636161819046885169442883228774039488147736397528636382836980502534412769774239776710851321692430479600086333704081260282292948290419016473111092027622723850295713484399049089624954148458241794911989394809170655838736994117980280162077796333583901333243161850563100882939971304896691921715918325860349398336397796166550254578054399285468989913295128579491657127144648447188582486128932445400485878269841171366921287865575118895005238915333877887713523177726563601859735965773369849049957794279486141725744795884835884812527797461908895451403724066593390592455707558212153008341629524205412283932261685819161271211211681833447734935452759337489722328389767073226249382671077795630250320540402448394272511073837103967480978345011497242008180777258973231848954988812712382339609026609013656507382368979938052515611151265288603591137772323840434979546240325961701991925927671046070595796474373174218749443786182403540732664492841364126638439106465241846030051790419153261732903567900724580875772727868672748045348280697540449005293487778222237993957581057450231243274910343866283258187630342287029029025509396099991944766112670294871908572208477814078342272993301553947511547164298196261827052114485055887729066229998750592579390809625430832812214777868245386276553727361847083540306228885201665075073357360433473503098524718607877349873299937183975134529750603571264226522827294002704247055357654238760292166559314027175759843147617819446602025340176565967776238705241734304017797514417465656881522927701371090898917216719599297770981498660837394196303525728296200250934887446690314499333763752265878570198557926813116811732520717657033207753025768628052265446709482706451772745495558429487608304882571287851096081533895771771566084265847057381697607529770206797138277285263975709926525768119023415585612177784871076700547357233064962724011603522307729248615553126258029299963759346866607613519681381982766269883874381066470766386041491772339382591071562826153596636780985264593299540361655190896039544508584360711303236423797244409885637311348070591711181556101938784713401192910152571796767553934006047599878964823917201383878771720603693119719516981312543149651399154662479287745250355284229716911055879741374298918893159131753753504630430651360747196156815440980368402205965014642980855643635712888434255082004819329509555749057176691873159803694537385225538234345951573552602474595279434361318004408596859100957523372260343208197105272852837957703412699651167195437043247978869728078091744030839081430941368970681535997182656877716099411095733712761509023937379965622001381443302998236948290637318552448033246986832646361425937115043458611502543665718060800408260127164745769971425398226487485401207230962676631660801614013532476765459024572974423561146361497417415802144436116778116187573413833934864785939845425111765249199210552956362147157132437184441521554823409811428225152802468983657580757081549263567138337876592757800333002496807119283872897574397759636577749633880765607106101300687732889282614907207740209437864640939605267022339655479159514163569036714986225404727316510254032180551480248272564807560550704156945857568195582143089149008662274989950737068938375762423293374155401973960381413120054827944075674369421647714964023671812162395228372955954723754693177879092671947389503596714057344881878311869976886032939523121112412079898392033144766698307131466881608760631442562502643908718209997921544421465961558123353092758992390446976142146339948668730511262322527268197993358170781182803744747306315908739287210420836510323670739567584261638311051648081305943627729605077095618629031744672853488807017676492790628368464434156760431316211006985741063026382513859403153882957372475339749222478928314573594657664447750328927020510310140071178855259253384587802872311364124227719161723120245911369298151525942464004229062069338606190877969204340283726082740788064605140537005494801488667117547129591458991165858698850239507651127828053892617415678221374286710931477738927770836266788878516076132006370092928000724947111554170639352992699005770279059847734474976796351782836267946060788526984609950600369310053606941718410916363934452598879911487320501662684935261423865960726830721413882186987675501304848721377565446457708052388186491534113474290813571187842186229724087890090846756985060201550484856432715407776280009980182123668603944292615311700318417210480259261465254202349085703021451264909435807536729035412520454912007227838568860568141515099047148371070385209405324928450899917845150812370551208736564779155452318543946360402649477699860880733211072514675362395688264101321857062271880323020171559996155385767034363817461944063636233852679647083061313384329307332832468830259360786438909649687818171947981776360075587786703174147084700874146448634895207060316112318424741843827700542994229512094939557712755958194828581543523049557719618004959879312114803490072356261277900603643955333621366784531377267677534921973753344632160884330942542225945836750146964949659841427913353089830930778240017000035063942965807905394157244220878175356811489455907600778239107037610334776386311019697358707741174405983620875452187861028120029702517189232054479928318070237455233542416804238133531564376414322025965810834215153094496865137372203886398652697935861756572085938654413586142617159359200046816828641376413421261512188641065639539861328520616345335916464478753703236350827895968913633673593056572354829312878924813098105292753942751940820772426416910573891701560621938796373871700792037831709681399850505507765594254450484048236740133882754157199033788373820668129542486570333804032142255310731702741372757847249497478345000896420715505365910115075842216515887707804903905533749697293808915400351946134650251719370514143781942858290338322752957486796766947895232767514624779747701553455963551275593555634955295867313625052885485372292501485533962062559211033800127147674260686987014810470024942657397377495703226463183547412220564789396626110762411584490799121884494582159714553339642812037610889650058881084052785496320485967384972931026309653512471787707307322071947753866046403861808973058615264802159382935093960661951279070272179048715795015140749481616598532723993866994703546158223538063305703540934372368931955462844713268724838179067566765775418372506099687729574820348003706244427378821511874033697552738541018852929666960744720540429629687161919715928492336258121690555240500809267932987830532480351279935342842761348776199858218102195552926633099019767219660979447339265120650083806639778725195657939913793193367448234165381221508201051259756750778693347863551736136315573930622840947457857647148316090367482367421609955475684905189532815562650458658621149687579141967299954412433511410862338332643673591620947115237200972688339134193453322586978191855699934865997152735494314857479125500986028164521007125781959188093353359890263741613369798444487300600062303529202659613084635322673051992457105408846518145901603830382903416003042578544787562575866255296888014155728329437168521799286785348146296760484795936402348816306372227111974731327094891183487330187008262219490686794836544214544247218119617607405970226474542701861868907842136166739895447866477317934338589348638533476209400483690553128400937394208431090163376222139790624686828488476478312051967215875286163329543087071221031982998951388750177551370507753510099870004411105902532055887219966848975571672928480881625761225087677632947545993649148456217233064184122218059642868381554946583710531344782377260013416134438378093100976994934764385417294538999946764567792285389320724870928709885440098768525151405583867201468291855650857011315717842993666691783627049810927197198722121907436716340050422520236688759324527697827546733991641919099427142214168432120453522779639039705250397707837950443609386353361998211253777611106513912201438299863370685612992420638953597911068289471167763811148064520761367719495809728190357197498685043437558106397821801562144643860389919364197474347011884385325061599403391899072296094782743048384340566659338646316746282116772742661115983934033481630875083302034873078874809398707925149702332517658528114493154313111143771466542543543442146448755558164264513489535723387640530043662314529220415925784458803456281104412427531919411664800411103713268844254050465602070708705268487832256236240900654005792043372919632081837945742241394355683604047647990714429534015407224468529402707798142628049719073582988651202657452333123812737303903862252614529694031614596649687965146395379123757000554086732198657422709329689283722874901791630383454491448826107498418725904639839337259685079562622536519890324963378568137458452083378925442707260006519636987455984900113378380852817228050970208214190097220013824115970477586171297858056946042244135368775429783346040360824219312378302023030719834443223997943902890873609386155684123129640820309724367904558531950009475659739062542555039083110968143151341472873899655720423181351619898236020648501314113360891655448111274745130374525916518704279183341060122895897073610879422245399765334352573967559795015467561446052997509750313349172868902198922508184273671468911102256628972873905349063769331023742529073266161039427023588979329244506246650392657218054023552404434222046584936381921109898796055966131163880520641350392173027761486006684809680756551678486908018300561731447612270861821214923922847423476506415898001538170623233803806564051924719885796167665783268437622304908582632073559574288065253489643879729628772312421116608058163076592709796973333997626554438874699046888510848183331167691739416059475674959200433583052007005758984242024998602585539759832770012935495660573807962987852158723253420037432437256474847122050381436653991369662382940854335490847318520043696597706182123919876030487910867877312755561679079919965463650899291242172783075844979009496549163309167460039335131911609036199398323088473111751189713644042622740596095552214510009843745032816477469467591012525203836149691221642947907553187107759266225274525938523935170949223826071183860267014955316804140412826589873662461869965063157492246374173969616201177319869764644379598625690055084498497338700579656584658954053410150531651546273456794287004519725452355748285903929557334142749811052576922706734178001083725705568029018656752796082780598620802645051364036239187283595968964858832116112483242286314362762945623352003388675896496551956169793521727240305992131143805848986530542863807108166913949180687525428404407387946212138976449452846921646698617841007614661643356706442148202685907774871184328749152830321021386285292631906200507189439514777543870757149098489818805166449887853703634077428076543093656795948871190162943538657858533271831533871344656134446211901819252577766833953662409759959889130375383207951739140544920485997053399474274510442264296323191373474245159845179978500892022274331528317187517339950279838497288699433320338832396865537162084761841509883124611983516264524751873696963148568674803836531189469854239338897060775029949365181831479012203748362083110840366390866863471608816377440234233023922513051801925882725571394222630303074445980124997253836062577766608711655861451160751337532504906242969050928778719045862740056272265642568410622445396064675109675491158820021085053271176347797364778812024685254204512970562488055187723629678890812373082167344459898422428109849274050274085573725881832012253876992446957183949697119961159033353126435504153945777051459928481035952855706057216226869494279888069364713806331918576067881514501446138643013787698517349125951752745013427702720983105813547061717900663097022247202014565529106034593074757348294958540043215663258118975105610711846412830447963402050275658322199660725958122443105846516289317215101014919135171754812808962325846464239938667481094107144913142934734374473857129621266518744584321918103224272207957131152047279561362000384691469839886590281922701705175531516356857660310475735442051289108131069598040139180935794418586447491652822782099261708705696351106135088053356007090573830211980669335429838521565616728273983075408360389378932260264612742465135660528759195294801049880641799893312795916173423823293187061652827456601496274203100583016815800920750970171615372072262280368776842830516676541755325201611548202199865005898274614058059740482021281100860215456442081477235152112677481893376264467172824574178798928308697104895217357136560880006338997600034461799973780157217535940494558729180806524776912828719092307649907940699787600247713396107623794096675523968765174977007684180352682141403483746715228567024528151214090171547497627774882166533438300566292065018989398560993136450345299610951914776967349138830690979075011852334920740187122614244263568514533319850569875360900775122337741359809114332486690527958339378022150526121723074586604152315400146195816159018033510153576482836806430207216230633434616903455878529113980875409454283308273498043721132323886016040685022825396357407081445559201470421541260582472161276576410756395382858239452639036039102476007799700092730127847498649317514118402584453490776579172084663167642862178060565589806606444840369199012849057537363017789906227940934316915171284350737302617657578729183646633934894590678569657366429856556621646099800467278646806360995712793346129156544627819421341869923957001729589779722006207540918260519248071917315282266810149968385739440608374078540949902093936872204943548394552611318300445429519244769044799275348963916976141640782395909530162769021247032777356451157955516016298783134490379535020208276090237132709033962638456742379203137792684985927750978177304593922341569909192617433797051361909166579018311784718404373283591708589155794020944122675751450274085365881061539833001725535789762013995898796506583473638598734744799612101129708870838568502831081737843283212178198364629373343471503333222152770915362735159249198647084375746057975422750023783308000340915232666711797598194448383240136687704765600499011911867528197678332997077834974284710697856973679795721578546539658959601619313247621657314847278582807857475170487839541847129270477214462264428596721266772770775214629917347651919159426994486722603714988966901798429720807650763024785443776481672389033903836674565059191160529283853707547492173779213157160801127958006135037681324569141697954282927780494288872122638757123795973932933038591655848639996365191996002050534815623875890686331603395479253128111107484227985328926854880065008681306806899398640502617248329935122564286687126990262338138844537076736328874832528010599164839022251059694192306641125207430762285207282407098238960090202292426588117394819036731816298464985867633938726220692377682078398300990391020854084506527424420742253626747400380945956903126089883348048397809945344816419824286074092111864005164555230900657764657883444693906012256106737049084387613284744394886317798243166000886983443117182559568439846817433470682994424606322740506657982136181566439449390428536456966707711105087942939269417539072801285281385212003720745862203149173464988236279797849139883680720994189806607758558151238985488408046164164065473520039053091905159397747235157345606941659344857987975632168681620115240873908447144249487544518295587937480052146901649376970266768636265319831850282422819441725124909427906634678023359493337527616698060230958217264805676288370094941190870065433617786664586357135144805768949490464173872107109839219795677298179006292852644574586338700619803966459154051658971176104608352811010266844318687028625206282605259833264169240909955353681885828314665507150562470472689387220576220101459338259708510873423748549163071426128981374883720831686361645493122756037796709856363333719288708061146463634066084526967092444108989239621445761323053947045385685108178318678533723443242504694050645961087786393188116411437332971767960324791904796806416126858462446064993061027760752242457768005615565641860445250518540212846375286992514473114811770072375368166569837412966669830034511716240889109541724839773122786975717273058656179040948339168219703401158835098024831528412534560699624029985818586019472397251489843026157396338813461613512803588940658576911196400037814933774014163860010932724739793583241060869422003156535153359532511468918090401146864360391577137737446244948017024265908553571601946518556138943391224642244746847194835089582696056100096043847409821877303138570546475499556668614814160330823419836774200658350291174541615731369991385683553815883274197951941763913161169611096154759619091632158847476169946615588627206449952546567394038243288144974555766861784435940976043975828022396232540905458394827126650975445434452264426898225954236937209301582236934708075409867371049342920148073593934289140468007003791690716336083601404796151105821792230967120131155579624025000181146961633861564663397202390834787458980526981734376489456940220187047555557797788094876929825886397584817902773300313061590960675942153387073183280268020644182662095277543692183554616093638078837267380202580717989360581604268273992776046179878011744044247240793506585638948577868385708460324101167906321051727463074887414458814568506712226830802420647687399502901549751894582296149659071398786578700823005395350848763788838669169899754153350924039306782234691023838504251715700070704923768271845810732618754330656867629768351101986127828983506596928799250113009283625019691950545052770033107163228266760549137778412538828307731222658240472411506774858084159040954468432717451967893438624213075871765665284114552230515427769773103487760062339704416210210423632292147705446507189638005857714377763290221118436990096132007641484084006457567597773620610522525419701560721228198022168554916874353730456268828540472800011848913645774415011976314005444895962575916628527532525661890947348881025148933993220351853080970954225486690659211421463729451003933068133332973692742845666372591844291953394215929553101927581513544261603498579863045823515580664596528927346418245794146929802199429534753121822450306480317282989437508916685740569927714899598013468957510483532924471832928612024053190269350240176981928805861321829599509519734452353294431912402951534450007307492181398481268173145385102639558385334385339233889732294646506147657695556949992049070366879521035072509834099040575784143829551671246880356459956729138874134042276689662018216725903942302118387808036523109679059110347324730656855238046139459909930894351700352411651334588195281972039899356601158668092884777377150680375529405085799657224716934702462406744988182838983260951100257512144425289433478960422267601547984322018931757199733083943199152929407616895352269665639776916864369151482274542677326277407715875845795104278500739428425058963600761064630737145507680840775958095247654478539216710598113542210643378519111509920167058000596679768537708624575328988674036070606410874985378567864624588908933650852610548671258204198663620403391509142492106902645609114600200912522736923467474658550742693156748370431444015762681820831125240877109631213722196826307510359985689221859301766579539112239714279182269023738993685185450398436220501307851738174802736394393102031964974777936253021235124968689890130906184481414783423439276215345807260619789885290684993426428239383671156938481726635917893318611306336068872533739023481368956170696816709161603279927545715797447222867606511574429041389088135655690828773084522847807995621709810644883443507606976819761344187844603950746669188788009270454032301476561987772195773101556051576963945680522401524797505323658031860509012002653251148902836626931661524348840028586729629371295506038954744586590130258687275533538719529933662389427596744942831416424199384116011477612972405109551710005431565436393200607994854077997331915069654794408902560900568757561486703081064856617571844018103552166224359243039527983852556000169423464788315586272328449161396625679021356138042457422907482884937344221429075665594994328550631193239602203566852599912062411325972932949875953585224498095912464654035219961980704449203265451739891054107181830352072331267472899596017295415391135187640232492260795521461662450271784255358190907989922093128782996050558308135869766074710885134617841436526756938243062689652167938167172689693949935448050733854007586368687640406693432278128012782837991370957062683305306629568515395865837381845019118526476662501778495566150724078302649585834771050075776911296998184456868256664178688953148295024189159896525482658272887533472660626423236251334482577333693528493608201762686426999881774848898406746108920464569930159422506645915486512709974709911442159661736802833760367307131395633508236044181655054416787586529255097885823940875757996377560049777990593225176546986954981605998557515845892308514955628335855632358336419513619200787961392818590070285350378427128497106822249375402083072320248299683659175872634101654114752030797882037748002101067445739047351673691544907763601520760699565107359092445184374534803746265022059691107903289210199894720412768073437951566258674424528157543941799095712299862338396570765708376478440062623443307853969712459255435914571588560835314631187309100332866959061645152748801534068627539466978266721742897256212794680777223298619844370902085025389076294638680919503223107768466169057741208719015437705072250427364687380999527101888156493079406080444784248097704015178402560420358322712571640815434096090924120413965504227655097115228245554460186530300412778151870394601595949446373644956253524523223285822213527533630485100597884400715127229671746459674799394890556512209072768997140585262357870411347130875094526248318832216097676849936343280233616089097164534319716433943837126575684638523441152758106726037654269465519331732294145784054198135334370526139165855014841181806407198958958412058835904984080093292434934561399178341494858171450059903180439423420071811599552993165304586531217848304566409231602363747806735275964455581218413095896986977463047080041937751386433418657183907450558480688565217990601711327194318190929491920548536661434488798171828570168832539665070862213660215343398192288851843392448951173627892154053718007726667204943422580282523827736761805650535014879431392194651576871581981209134587339267459441662878907603160263722271220754735353385905164718002159460316261296291419160858107505392534519885368274401481282802152776530003235518567194807829156674640636744193903483708087107301254012677709772020792393342986187264357086033101862932084263924577289369267464221628169436479932557728642129570600882344424856620202693814012947829816268570863631475863928589022339707187685701895756569678567295358453732323919181103326607258768152429704809721968463915691595718331402081097765211735687138527000453573428906731096690398004896541657937383503430424987164072918071475830659988227107359598535430423273565842537132195889074025156137452019952228530162283284156669641985823193806670431439595513558425309430138711768848357270516160879467941198604164458772224815600665974775306493744692126290494791650470081350285653600980932179349171308847609137908818406180786499855532260982598244077756016611676585424424331833859108038042597141558090684449690702415695962396671055743022339385207692833823242017853793027850373789714378138018638964535993219805941697480017292087997874297921665483663004661804838513956250106544686187083723892185781440780323113194514456908302906194271691243977888223375234776100071287272319529082359283134897350417493549826039367455375801630524115911284882472828594493825869498400158327475828608215112172701710381617539305501129439463634349639326581568681650705366713077641456394973709669933910445419788031547845814044804947439576472238595081524661819901798450299077326401784354463493458440081432361048773917445986334848705763543671707804590638591868094791122653283387868845151011521417438174177979210235836701999998965766329222986948367640524985004373881349154746283944945530882471706158091364113562501119091351934778735103226541336288068827924879103487018645044941524071479441960485696134998353352602389466900720041009123954628708549726364210675210563539593085708726938698002385468775792743503791986805210556055527505239362396098326450251632442468358493652411699190329591728944712982858896478380074585761614610164088074244267987979332016818936408134142952691872791239022101185849609134862080646538428548482938178921322058869862501303486767760769388695535558651204043905992328313015733947054462142644351217842752279038492503289583067163413834742044724070513281626994469166460390702332974910077609040472559216041367853224938008784120289082873366662793326931238876596625830406170405791835672846791906971455026327443254516113648224388421787768289519295395451001880801932097973448677619563308549112764370144089088990709966558319248451461400621971362789356831373356796041708585937861236991978292689507881171126607693194378504537549454610163926581828313015152931701520558102545030181518207396346514490505469928725525560248352933594331183149171120032954065112104735231118081396836545366723882264774422349744900615750795901122572351673049284744542456378542392427370237634585466923187057630537520596566969600100697833205809668469861257196296197417714819671324802038978073197654445110486237877602197204088138325666735044369068261143567845948310548918149448323944417298624194877130211482601462106469949336881203786972116541576500083836564685576686952519240806857453613641086247325761606878879031047908559607651831057223130271458066912073235987654556991342388852692873378847147566221377259727644212523775051380532776510960377686300963426571396767559719791865834337470467703214045548096536813970720239338585164049558495159952747274622342287618687103703706154482015615515511072340477715030786738425638749966867005520961350593249429976413315034757424531434265518404375887743081607001008651403396354591099079344324466180733939105082029111004769042726792089689704954128261502279703408867000294010054985995718076956813291192858362564419733987554211053791007776914917753336661308037982694119573042115791673355632284440627610928993637091040504569591414648913779195712588728945644354945958675480280596784274598123672349575572889427516031910586959778202798644517553088604503094897585558914078306280736345482830379176846624196628560210584429875888400368244040478765525172725451888520943561045041087925999222066208587313624016472668546895881516654975215706348984598469968625053443632381399564833320067326391222783746610143381366049152274201372235926566969695413836277680632788743136826240387538331659754843979370310225859658434026869305735421876482912939949912284187144853202537477154139949309560114142912195253564539054916405963798177905587371307597453828907169351261205104276195523009781245000198642574409684964468702928465862033287259694240960616764292347363131137728257496283811092739619601129344438424606476770240666450486453828110343973303817325347546520770681826544701708820681838661785833758695376530458369714573503469453698122349604114044734631765874161058959878358278371545071187570217015972730269556560838925326202310020438724816444244402417354404376636489599116683793102322313435198332148322961482803300706638550529840936509869941003101364103209023433833389875538797158813272072559908196321319300896670287023433460126019930879843728564794634929956261268587476629451855116642282654300928937114864117044527860679412924029144389058850153611011665388649079774105677317002918410505940984691388709207867379012318872524281622428281439634185268208157222743543390738801295341762512721262488444892258610826771564654664309237839933282875927588496773178310505406289672061022403312008353568657249807269510006135473177202423473278477677456676428369534706041741905285000806323757101551652526747732738896196194873752037429372480664628789298683740019143288920199644466454425939145418067366248246070825735467272154599135502898492439697459311546607217020381009595617687797937104188625669165579611140775100254680842890815925961087573199816651393430582312487900025074664786400192004588489441903125247090577753444480703909201453391424681249374135344676579698611202827053964639940222843497629368652977262345815543146138357141001079189332316035124487132186636029059530071336879797942242967896461606817136626560151411300934267152326711179579587510682006933033598665716756332748498567404933719393463391829813614363115858638113977693795958467411198112576786227601251015910544477863326122184156780436192353683076102250312809752740022850676610410664748180868635613787175178243583615612039254411298842118903172934950871848001720089784238713776819719032780089429943647633905418294219451725937949735571808428336727379637505729819716037006553909735895871944137777586365734835226480333938584678391089649721916415648832868268020763957918234993310584268678254742338436942935523765883990579402782854577456312488451013298473409131268900427400000191552768897125766376292880253858184091280064348715358395434511402869303820377202790368904118306884359525007423711485288464497837150537822844808365517610518896524784138457116926802144553692468077704159497996731681999632562067174519207828071434055764820084170642912687461036027224935656290341022004820006483545606246412168983258711856481772914152747259371706778063878318198647042250861624154843300426594888028170071243103382171108630094625493267835960665152469818472141350543461789891345623166321391470376383616041270696975490762212440741703482947130906333021411875525872920855538875310876231790539593379922409045903226975981324799979125698321741751938501566661636127662278731520697130096314202751942319573991622934352453058746169348651047187308082177037833523505857980910404300772906918608787665308481239782232462117446328092434258163623870324814080063578916513768274360210786011025489320867285836428080437613611467426843077713697594220214959356552324300145958049705242946515150972885884340218086252305994854545459478477239299358296305266760576191317516530572416352100483180082992354305753827277839805930180350473696199499062697321434336071470090833676332359776854277797589882686293571948770489319858118477829194942933444226908802980960973964747771187503694314018360774982591843493328399486517255178894874553055894875333330881703548546514572889673759829628831298823688104783180868268951165565111329520660219771164802601544734110915073043420536705312662479754179826790144575486487817969510757828239057769019793423610378445229765174225831641342751086699625054763939274110869834687954154542148643534819699300017801626384667675453621659340415701430118644799687207985279293909509057561059216663864867649643771142391372341255410889798584780699850450428486301264532345153331354311583390162363716115682568506551115406818891272026040211762309587130513259097144396193781938697535050339958139085729712913963607047605162181610322211729232938059990836715681316166966314530398440305200159914482672560734766536153442102820531949525125483535914412383901971493986733537057253768708763451264435403591939293156559930208631401611363171082031878347410830519057956373870985938910151455991098600667136681758901926677239009024064778741045255316983920913257890912078998301170555910562880451045240656836398471627855301865806551216537012098150042550659261673934958365600904574339645808618525231412225640940270077651615061110564641393023521733159837606224210501906909562699783838034563424923175443748390118974901676053827053055775698933523587145975695476983766981162756620196206153621048455127260299058748186141370301927658558977944292212619937598460580255274145859720406210137862599691203950885545570371266704181607318951380104939196638201525417215770861550258439624327197147169485698326523016431604301764313435571691048867634526018652705336658237916530023180558775633235686728934019514016299162113056801338425482843398612579239950919132272356981577389169078360400441347450004706315909429521947193917443226965938041428656821587074084135737068887699411254674146216711903287408094409205945644893409812106112414394289707098309996862367384919625762671030512383602065361815876653687011990622568763083971072218176781384422421933273068474108814141039375757017181167238855045167640971523436321055007413134739892224412262743955456870165300493713708736556977790249503539381664911215681160577048097002934676529649717058546353447615259229552591307352743673891313877618807074454146003724914323293672937363233534608137425868217046037420316207849413956586240422330866747084432468163741829015900843740709006233752351727976728928550558470329106493875712833417251002179957727093672081146522297662230830644172646094823921295231663311466863905360401361686530620952676157490693843641660546942390135848315015818082422951248102939941968768169842738891707284824047731992898786960624867681703940837466265926788180885411310623557521680574838160952983001288802450881330111027432839343045961787399898998009056202647886999180635923026617400247186721551257282996908118751196395503257550377688943870339146999353709918603830849613984105946249539394828377329853618134051938442058047902264667859792492625890598702252636586998566629295914382273451402565732687645036061180558006370449519357272105562074595527869424146393331674420226175783542848951190674499572074083369795620073070960371495970489257166530540889775356180683216875399118097700940270565707379216011414882778642767580075538891971524219870776333032876742528491152207334799201133226248256649301129774089323220479294580480578939880296126258293195031554107062746509279607254924390849732071917112001614663952518500040354192336357253238281143739089220740304673355728898740310842103594308836461905283095182544440591575736858455166257813927474045133629273069217904117987961974334923328648493043685592440649295677729505817588669008888585064885245831717024645692847319399363035370144926575529735363173757576729735579822585672945668647447568680566194537708295469053495952045956464467673717104232462894282456358959567434987164435864394675181825075860928497048415262308220336312535662894044498315026263731644207399609111372885099195106854556264648649380100072119315824600300754695756387899689310619240776132220136013522556276457276550853140613807191408410222800055332747995147131617018199835014528240642153466930170517119445726135595327129944983627399451398800358221171043535760198430579473198543329555862037696890016538839239713277775333384894135023542299997478786881856336290013429700898459076413284181030103103271845300995681762875560515157401964833037680345336600760072230553070622898246586662656274264574207721421090960653047871377590579562634236716471655069191661920511641855650708945221315424016334527808068132007311438751218777935543214709736246003577150964987636139343664928964619196673595935862807906965688789529725489595817556700038849395811078175301331609839285306890303942294405462388197965167402155617670315891501698533078660100173705769971509089356073739743927628244473279415761743110276473093763926390978554391563407322010610231567159413873204930421894763019977344680691194539235090028875762301961067634756742745261991378108839156249283272900457800333916306928683670262834081137740376467846279859301190448777968980139856467417115101124999417671037853540663141680699175178348225169446916930757737887573019240271514916921897989158090317359232121999587318873496670487574912531316995442116950376135057785703967808293380760550361222016102065331472008618831920098591536821280196341208603142297818748994986781326156314129621742421822493039325083107016607833496604432760368539284467893189446050931260471524172325450545092786926839476969570797557276797564547712777785828975422827839536503287997377649215817472617513673471265072859654029114892797235012395568700784258460223805257453754464943568535314709692131021037904059300028747895669630609186892101674468078000543685702396403345389386828335309795013100453443599350416410578823190586251898299544254808750013612215195957870139176041762974556234000371752076128180892905779026240985353084447293846252711063462367267391153467964568695627062724723280411956077525053967066610810266035458759898998146251532231886173852127847844333066501735377645926378199633565115958708051146162335704052012540579232894734140166042591330763307671053670238912423291686893290100257166417709986854598143622000004585777525380630322467292080489191051573261872044106915750981686452806631622575293071114666314719228043012107894925464421036264881628498915589421117352948762345610895648458257373070643767956342586705365120322383443287825816082069177550611611209975052100567283062121327339085893412206472225540249577104859101586945687764521245174443594871536459869582837450401404518667076730240184139532570558282148342098385237904639089223554251642622791955362240702377396150195243613080491070383763764228747900740718908396887362052219920472377322904871791323901014275176577022957647328714146773347363234342229585712048514196902321268235782302353183756815578510784357360975366676914122379032999697434436870236961414104072676666181620434955409145797496181422975683408322541134960446810265309716248434909633990627293718020539528205416169405616093445184518850008703420925491323107868726254239848512563075873650623659185835599302654336356375291051010357503016214167063286031536809786822396525134551389897051991227924393673888665762667515293210395950030905959036710660133944770857881474358244103666068373872288042382881247384374171418832001063343042297497636896078721035855336239818763914412618412489614070793733674326155303559258506799669390205968849702813613965392014185800627424879458008794812155400032893981904585650083899339490894216499099506172564951304769869502452605728637293234898915934422738610505676483144670427969252774560723666316742037535390330528407607610958179311697756418734827493498424302847366349686998571355454889131255900129605736886036446905136476597409912133986668605764675845498536964247472576996581013323435039301298213301996622583603181530432893346364472883663872128261161074349478281616042791415521262088317511252351937424265997806685406782368602379421905595214938647423702363860356152457531885481496367573727185764069294939457862880486257908484784832756480763453548272537759926392861112640286553638957257134994621977913027017365066078227736800780328578814292604121482738227275417905819392381393533549983476839628840700416226807637095387833239048900868627539397146855160196128014157847692559857299991128308884083373862232141438195056321158042888381931498834606274111354196866713524083670067000723158177196541648080509607520251655777257356312771586634430022855804991201573280530173332378130012011372200433807542601717887667145417093238463352491519904548270991873827284358203595880022202835095684198286910565274084883777034357601170759488451311618601461809076692846512690484349620363643253964844071565589144225877699770423180452908324601168358261332229854037116292735094647160924607250630108984386682545901353500127534103441929746971411005319320967193129983450605324801138111369883451225344532711468153110870594528860258190996507344659140667459693445317416864673695136000678316945450296004001144285420951436187266562045796734722736899341021090630617034142322263196118372935733420322594550347924006060370247720017212284422159561193838026615858845081380356590086780463069670319404705869491342216464547451878393634401839055228682433896600620301153147294379408882223352559705589393354758847531240657313494067825794178095880946908020045966142151301428814644170795181481064824849831815915043116331529534750256096990385649078919074481917189476348948029173931938112635581185232118214335385980587496003941108363356327647221925832177789843866893425006676701874448962027833535274769077520983998142567697721596364774727476258044568554111408551930345011801018366724254658943713724778591681725919673796721867929439579260606172415866412067716360439989075212835855920434971037420944182850006970538408959090151029572618363307073285387189977158763101482385622799721415705817222421185113631836593881372154235370158874209189349241006185737295821069476389374254970603851366791384766884843110681002499263556860603613451726837422971240271672436220799347257484426968352700346877090744708502222955283802046379241932138887993180988506995569635324892348154824367059074698845687016689422663095279301581374888101713881459098813704810166955099935826331134175224219027461437050366321422052083160406840094353516028349750168655356247406427728393877795570674863202151895451952911882972240198374431523912492326511972686723490715310922606513830089212581492440931803806021750350641848672711870318525864105355325921496080988137833786796047637366951935340795568375149766146158494168138767554598175847236032715281759759394969296431140005946581681182792141710348982534552046652906967842363508090583959178448812021599376643295300493762238232177854011448161983179424049858886534682649420420589423782647272210788869638896391272299109794871346649408771590147236881472972572756721824218114298983725095255026754014297459936184877894755394668399990688187633226746309397924309651732977935567998834557715653173071724252497242414682150901073290365350725817408051795410940301327986943127902222500357278115819261525037794374966045602494042720815226994820994074966935055409090263702737924815014808322898020061602039874954690382741201517441269884228280985720827823761077301235179718800632570804892963886927435284994844984672875229855792456781761135818547726451770346019199280947007378223095789386819907270594342572561402912284033290226618944277254542200278755642874322363645966980413004152153210312090618850385926485905609503750272273621869756927940421370555561551537722465398801679165382578963393848749246624973497869004238602664591295081832021872466090150847356559530439651357091847236853929482893060979496530475296548570316425756754221266837358776911237976742489318011283516986407743324017808862050150206935645379344507861387432261524105246390453749710659821792522491377005845504693513445678218523914504808172554543236150462635445310374202666984960952723208037601432437807584235603140823121729862355801693498906071653373599911475224498562986718961756112430394479319890270757965807216231672559942061655297370759929213014308247972817985895820287552799954390365837526209298795289126982059567766767117004688973026127095907464680278162762210486854990631834671052014664406236595224954206041549730757498829289511092493222458644493643110621145734010463596364397342358532329203355753531346975488201649794992103016140524714277982027823610373336663099556943957624910073201169737720626635760796775359992504463329112397737481625419609617454251753135450387753749085359270573402094931576924748947357262734226677755374706107331895151909329213341246062875483448484058179745833289473787297407094935469925108846337950203477590939289570330348172298419447545063677288223339642091299459743374240225028939362227689226816198293724748547221262436902898406516514804356065116406015915260664327872653820511366873178594802736476780497182031655740520329070584933799438667218038275076568713309512826671512807555311509737274205518401679582406668385297052507343204010450586702372839059322683294876452882820646378905741879649947642643704701878151998189712195305966748069915214914773018328527853627311700353959228158741869930624118969661820681229765562118330176185888345705512983187282893603365438914095585931301625637526040884174116845954023847837737888240196317620373727642585881534668088179243217210272998176832030871954536519946643308798251217240176758187804670023545713508235003712735513391399569650891306925542884152687633376341700881778261902621804703968099701139063031916558589451339878161497878700626437563008555467445341598462217848650050664749546999446872062210604899287078590243033384626930667702725631338388134127891591963097809265737294130761040183397179450994154476389284066351425927987523551256690706627549154045704526396599416240640656301636992349809042353402014825398277987058814555608778913482215684474570920710058622190483025155670823214567829067024446757534729678766916189245059824780888162351170070319188611819525162685966702698349039597783193212850935348291090569864939926401368433324406866369771023949020935264823319690060839124009767900939558362242264295379893191066787273526873273675880556437698480689679607968706020131234384872206221454287407623380338926479630673658613183716830438148777348409739234538124039088949749080020364567420439426385899355966390609072870622392193331220991351165110094011148604992587107929012107387969466514859297358844165499567563698568737222512494579076244175219291696359103498438460417734948331865416311160950429239287789104560411883905578453910394432511404571342175500828537114491983028113502512549438447902447924104902169867571564205460923235633298688767371905510666622429918539690025653877936956367838484974425681337162590530229736467905105009817712693200948497747907552459321675994893443582658625977378982578366893588033142427520217639708210571277884190806464563218222271519438804962770248674801048916121067952767903870601453724996046492823043484330558670140724132701540581671638626787808330748181102884944162136652541697298428654219309228950699416476581400028050543774632390538995924110427656520465168833578630380060741646896477797227217313994546513698481973360787990313651032927971589524942737682108961290725229451285795552694923528473961722160914884859148798978485437326975372195265506093993424300422467253273228712351600481079609916066328034483153105134821859808618478430855642686862829870999188321255124850780705072294329682781801010712462392795854810318032153166987467998240217240036264563840617552523845865882326160957687020553172554432037922350062182836380951892964380215005067000614546009065199757968723562263023116593478993580785237936611971977763179805322846952771359107995251523403256017121528586331085611131430378040288164468410234092076200180405008844755154433915297293061693156846054184967283536930250456233155041959825245157892026551956827103489792733261329348356069617417518308413735175416745625032124864754266550505122520642803737514848977466299935071171194902635090219674116376377952143373461753312222916048435743608683459821958510315998102769688547269364959413907796036557676506685317972176247460955358957415374465134928829881105320956480632527670687215318942442147963849868093419333556677501998689792625503576115312267546610703674857638994211652036782006153732970524360873692420379022264897014798138571728989744191064242006314940618565628293233598319423120643382928807021928149532302158441253758340017404266599535380544950585204610172248642986751205712836930925581636320208410100684784311107713378303880334324735273142438919655201089266248876941866521863186464571895428966991508502099145598804419653805427221694782618745549761220839235996775905791554833574379209085288110389770868920775303649340458863731129516953935780089806477112498939147036457089201233875491237174901137774032299751178754084984999277912932402877996083257866169526368265872067187542582915779654207899699283566278961402012370181794952526902923115236197610162965559464759693663887608645712481330449928973325586653384256725365920915457113381034864119589870158007612381388592567662982831065896989823362644854347314947876044743400301755345644056399349914394305745014991348009244126358312636913616771473242038178209560532299087135376175532847672046111567558649308333727486453059938922772753965504494430641218470864985614655143276674528020812852490237394513580551153346820905034540643480212726688710390926922377969136178056870915509602971232483922953221736611060389320078795786645887799547784737931858280984893638115008805848993183996673484785368403881076346399224105023205211999510095070546991935445838051873731807821051045212657346566321534414312129401434176479461311584645036470339088420858340179547209526396636755569285417934711646186233985276865570502402538665884082538132329218705211812830121890995172355332120614255584757010874759865197224557885775946927198526243659542118994253607154226768899802843068717626584446607699381858919562942168634007564247328004786822015762870727091949226467792215787699863681362734370283382855117540748333023410623538219691381654108868580134868381807241692246710790588236455704940495375646992753610226310724502365796600662454316195321875297476338285710829948205066614752607798712220114291503068783537190278253791335925875368005346318731989061268796915549064517259191185884409660103226426565657768200419898765471595419497995172239519122422706320913620903570720808799832874351622205484665832869271377234918328650657013715784308334074563037741192487420391621928669908772958553963797439527713580642074508066980040916312600403942681052242117083882074427950656008422996019915064591938371419671818493623552966420520239765772873760430907442854831341087767043504319344081059965483218143127051925652625449513483476898456404867552221601612932565959516080605564168428954187071836879504134011467625237823201219699000365584165105337987072631756457268147377942657782265168643358695563903287689726715230114736876584940550638063273266256459570601724520979071749349224106116213239049691797930858664759860791929296744901640846421128351856464244703432212557222919960819193283604951583594494337665583560961447359340224948770540713646090816774876259534662117662285718627280943854832728621048131635920508190326375901934567099041265030181219336736934963620867618373445755183997995424509351070268487794202336421519282247413194015158431225472358755879912344140368793931724977559312562228418614364225118298774170599691282425881018234926425352567368446432661133873167489349193502063416379519013664618430148225787039947266755806492666863437417554189983530675522365064441775474314586275738132305985070673084666232297121902522232394547628878578654137270539530084249725435279511802263320265105965577815805494537378876873797402898157801277191025161949296432536076818288193945225906488404036306643590898597616574338832526163407688885354727758195741377911631058457132037148746201219887043260462326601958019889908906351187218209787735372191264221397422113744666743146448275775632427459548534600866813539867692940648069544245872948485538636449481387015560868898579704572541028562364270210602539714237575810868407710317138842005760609947765379718810328454930431582961532425942130343366456342879273698712453013025397663412732146759564508120681768949679944468167353391983178454180523241356668238100169355158260288069022853869767845704536046750953783935072858223337676367064926466736203315856863466697337988229464024800784664998529531040170871243112254434105475112290996448899046917555959195794730635261391463023683924304617916861668118663749062558022902625211030778809618072192033143489124557081417799483093189352484265012379424777591555232887573281954528555182487960993404091331379060739616971916643272860702523170437406070975242491746713516267471181338149004595130216871394725768088039712561960939924698605464341376208365279070598915648720727026724902328019915847136416338267933830005998178662211542876857787843984148050621647095317878425330967262869725506795793574839165029742565712366787068453610893453594708744730658123272718867427076726111601785392548220952561537365845027846754642014759342576032901419763463451167365911313318329211573642660653641092395642162605783500849621798558185419522345195163335943511158584190223981184425326816155515319038600893415626169857258002989973902297389746305563834746266254179671648187592932059535072522710350911274213163636845198034968837320540689047513962785570430884262245866473822128296588586941941191991775217843188325753194789787812116454724819285193664903822495435606511303535243766412427666241676809658476381130575586127324314257861014219548647243454219319136828279415575933265679779414755964307340548545504150273722168044659182688275679719618860504281826584317844648815832223299988623459803000807916582794289525609953930978939540849558744562061098870760384487472948960221996209023816884736837110037601346999067686426490915609297128137648626741381810039875931561545582073633516221723735358113553165572424556568819668045679386105862590221612568617160058047451439845035187353322801622650540373030095636342755077474547290058767508592908485242022440618365950956511090556746993776428688324022156811127190913032169101773631691752050179063063314772983020451987995908349452001472567560681960464983758413572957948822164001388006664820945781234524192246779165257715036727572255862655544432174805681690877931533568978314005602571071662286346461339169016517490852875350550991904475965153233372993295738053087071843284533119472961145912710980755655129430208467112987917619950896929848969232600971144144445210074248229243889238446256211144051125500326535565421464612677444939623743271046728746132638877122734049748769514485176384466918281012002572137976139087286919615322069161064720937911296399153041062631232660223603342141739200851009370882322601821505665008066099850118686651960325026461542909249160524345321818097537452783150860160163839164987042327355042342670104367580729004172147234505039948761488926638915135708570879700421022278179717366537106736814989725002190545379727328936904710272764332589901978607580375890859008401390307160898317204946128283202650597911362632886863778992437209999700081732838826002024140253982006083359093155980022220553397698630630208961178858121789376064944852002298648437657925157587241178854278704773826481068965953371682268912985806626176466057404896990202791428113176342926323144051566894134844002094731854216690511112127465741870759199136350633047171648909149472922204397496212913813550321137088092173201506238877088920042877586582818644152811071102354214582942717712846874349707120356591392802942779813751540461282099961307002619268314828983352527449526418717259654339392095835244035028277364384810354801145709372414167973749476252576014105002960270072413455518514347874265694994095006254361590229026371267953198436963674224752714415515044997075515557508391382783427960609336719247522736877530677118431879800739328777267974477725859674880861809140637870444821487587820440834624122849341602798534248354599698665886711952413874212878427792679036362481550197384096388880359220974076835931870365127023524422170520799279061836951457904704031254409344415614469781056185645340330353174977009032592075029547447732272072136558814792848387372424330127468233534782002353791490005553189788339660425047818833130357484982427631092353894846950377154019736258714032222740109254265128633847778602974326327525060479672347389634302012804676227665853375772949243995113644208240558570868759068918582339871007998855216839669877038340014919278934448295526425659966570472397577028173509367635139643407194003598059669389045863058672924838216167265892536544857101903759791828148904930059165067529435600815467133385648887183804811817901077549498367207229486570989418716927675882091383328359928928771671022615491068347930493897770433913126576392868854437728624661629360327032092439747360919804795744971079306363376328001875504347821088782468104031517341111932465845003149272764098711190800581380160560028858689054632225260824290773654137951948822850528954352771394391317816599113087660723010033524843842141503888797589100712224671146916337408067816338972799862681477178347048805386966487432279029451442363075797556540276692521758725412822882115019408659688430056539781691846690873935531470405423367819762670250823896965872307936558906244299283804512404568301807258248301652634018831522847370248301736347949384739568535595978055484693395547205960337372408089727253951634991045725283589301918302235528485104832850167177130810944768853852006150533302341902348495754109572283881305899062424611204955809790183527432970977432515960201332274731528742983197461320768485855506447402896863320288315824876725573676617137979202946857691004396471187048863806496826620078342085261014337163644434402595976821813753682017697829771854010744654880793196324960464918629433955192054531402788607893544178421083826189265865360563809284367011957067626946946008459358373574938087378441155271165016012741528915274588536969891797504549537272422824268841819310418867455865199059098873564633447169161758602278474235352906487163590389023557998910678742215529793396729830567633778948310532704046522424180031119446188083910737676583958670736339010587914591112411772753367364169883842393692696232397690264634808997210424688143743776474116641168722160697407660471822377329583606420945074097585026049897847732377009856445625683917151093679369709626949447381425760683919933929572541606196833743025946118718515151625924036125589068750665475271858151471742907884508588526420804511256683512267261734224567260190637497670856574615806813390276426154578243393438637752767945529319113513093881238116168467460076417694602168808400549611165586024150750360977469388036074533635511835757245188617553452529147208875316778576018267053318120163684718728056000130781681983680582746838470278924879680914403898707981484927282937202256443378568714242091886692997531978196170830920278657344388931533698572604741172950140575821019705395235823908759723925554983476700153295010435875989968864038702045496776764079581076223669686547607817411436568534389332263488657201877982280416621004139240009834278828820831224956167824114483176098789318297556327839703102777386754855610026845340807470807035464638875488318993237831408361720226872760678282972953313188192618551362962309600561636385047792135461476096617330187329574556773664823488462523888524705698228895975749237040470009144245809635940798956538480292909478699403733291836497572011815015058201210855373364490911990507678401808665864267020046201938078476610526229199479582335999671499250299813423311493502096077095416767151920155787975408789757088974600528655396095943496068684500597019922901768366459417415671030187647774109187094308288928251667631804833853367948394710715108915736603688725230810433902337548531327366757880319252308471378527175280994641506566846623110555490918511805440340955320108253411788799671058263169566040166635878216788038234632705117768228618758450414156235783899358181874298589589254516275836866948659703933834255828304447098689316947302712094569701023525807957861090115541291463676903845389240031023743397582389382123611942960389623713302622484569776164773689733679678439059026658621695259127633817227326636154540735566762945590053595552719717247731648383016007726870565071041338889436096484049607096038512441593360477423771287849870810436082047712356787878557707880967608841718923897978204191083257487489953839083718306726795339044634444507532611878793001749234053331412393497460442707614048572585156667815953725554231622314384148951909732756051424115367502383010315815457074581505171844823542441065661248844034093487032203794972843997492956748328926511770833583889150748747763098608283485697860906259739736076896623874348072487062917157799588281791498830864633258601696028984945331715117397264425768619897021336797093976552228190214936298035328092639922419777524119606721188400524772627439528785760904321358635186834493111611463752441829464559579203760810596671051156095487016888919378407960132365234641570656158357901791467857787208891782540567079087626512111167136877861881973965306272264553754599984924140533367592157021766994647599286460542987863902381107963468463264340703986486348423239714179431969586420434392651776709775146149992203917815899599914384724005696591501138776143086689946048105999019828296147177007794100946132331964300775907426944460564489610757584598042336317061503336274780210249588516399072215200556197996714219308529655707881332309202460141558798221474843372847979324675154682375035733829236174755572835807390919885008894889427419067593973547845469770847443231497886359719840937149029749426395948323584899374790609079817234378495912100935221210279872641619621462697821475357999208022007578657436795623272553577910537802153325381763391331610480947136532287910212805506909083515070397124215548908647964626042103112690302541087349408387336974315340666099857428755285546576770236747011825481053999151400000515836915117729803771726543992344659631605055002749776827662089856637155109661094445877636077410929380778669069347951387695494612840020770051608950652978865859505181577238929145420859787665843117001258558623842896212537527000621083328646670584176906809953333056478698736431738842987482511995691010291119893819013634924929664649572029092860359483183794881352413438028647081123756399138278952242325756730385399980771955531248992666877689159692766630471049972268334110137177024957631024642954669735042598962573119056952383613706653291011340380438377672775916936971171430210911788527772767375450322951332829681584370813223124504620179040048558383064310663470776390941490442732427145735423919089714535975200936108087318310293736637753270563916152704104743952367417891271119139060318547099144523661166316775714948571334610005967477541726960432029103436549905313812506090641898818455053971286934366847988079534032796997718999562722906286339211105115738211063607214642770495617768607238010596825095176907642048695425556115336375684870090329315432367873960935909871089738778198381399400406577354563280315093569017537916640932878840702145316674544714732148546235946581191627929490422716763398194598060128265292176031081040683558371295680113452721183090873301460692509776158389853187954278125223759386585004223051162255606377679784694495374716327740420841104422010886120544332676831971932201238754720215134396735898356531814510224592533978424953738062214169771561665145339825956663917624713581903690156817431384540232264793379087117190981181055428379736334887732996617979026477347008050127595771056170574099683000945695698662273731993043372214785479633348061011210158054317674955618364615665127083237303751374718613885771538392124933749836815200834596718186393769824073319438330088843925053665295396293195068164747829950540453813383065885858980524908162855479364940652600499037022109912226895698060744908617734734483868943863701203386554589915421012890186144300440553931717811978467762460632649639047036015777058349738971499711587387265460949199717408986996293664404718038316657266501959734988919791936736795702814293491611711474272392870979983573148417387348995849550986673767055281809485081443038839760954764609334228502806050732984201791859493890213062346587858671381776345124238090725070075226967370323641341268179617388926503599945447260809749223284884716455845523658914752732534409934374576281092176993054837077322590169208738037612989370870211445958455861548057218741186237124235875442498472103688957629657938274459155672310993657088176625664791759474792493025368121328199456024948073869351095987610061963088464865639029520449905085231905184974476456280952457770000703777530229040976208253840493242237543678888109096968972561989700240759451032141996639332791620346101774111817540413664081578558755361174084971824884545385194967215824930789242184430785308931151942912298772122198453075527022756379956764301203346057836464637600910096119142130635261234595349486896505173254779628480951455444916988952226495385221965595254261014855660617253078329064326354413310510978865707222978166578078443390604110315273426424089284333062359337429222619747438551547910471528166357903927954739085438638947570808093609109228427008478869891981393178884135129750008512349439131512935267895442374939824462901900863974735431751519312556279028831157627215711681650646974021358813580865311233980540535517381169934414327285070892723199420370864422528310824748068747574147027204110743871892066590702412918551585301909511312034929638563734087558393803304004132438832357437605302699768566418709246763916043341334854599114408742232143178627018211990307141385364945463780326351539276857982497092045073804488666046259090650575744972112636480159196218988573763526931512552058719545064259314795250627075432341706436059512527730002121195583631315292844551358035588356776436199535284251382376345905820812282021259020557407789407710360771176303196343019266316973433025487786270479915822102233468799447122009660718479277194980801148294572142459978676208846855485202499567047069712295968712825096921021736668413982758850979559366211725134721196105579352117200493087790696897865565414417616927641789784085708302864042303180353006483970764839517292213200086569938020293583926451840556339569577087539161933444126906069418819751965979146593966244318452203319826266831148535559196737743597030921657862225204540922093375793962179819623877574675014494866333232000069563086401477131889593972361673352216978728357055036165949878770982699846218451615641173600833957183110580204264818812479936506706871958647710281126016118847501848126203694172829124871797258606075917268340640509615166138946009915639319881364899607146827946381829017569309575344259910014836730126606231624072830984558514589528411426673794064874793267868804537618999131350013479392553433008414170808413982696916736904870628359246284373415870849238897621338672741366513134815790697849250433854633890784890499884674882688531484907882008958022599322080006214482310413968311027345317000135363054980644543402688410487828171956351571120888469962012677128107426269222481563903447999539518419487454956153967720615541182092302372674124835528811472260068789400829132956123570551147858845734623513245181341741395161374918820775054932482015027545800355519662526892824223862120224828766543109398985696293675668643166840029026926024828505522581421023505185162251259561739805492057554757202876238562163903204087716384527551809107012414582155940950184949868773578053475311212843139269427183282648828563897541253595761930978831800703030830589893520180149037857771941938022278207477673790744415880575349163972158709449017872119759477324634240333022991175286170533605869563863179078852902200067723603872142154944317007226094389342673093523766075160728446590249192666257324453014111600014430673419234811444365444102796195884073711518088387801893137713307064697625618833721352584595273378255269837804378899469828883626893594141030180240531261840325137883341687342169235879087256990845995993559416398389250920064211950779997441375859368071598856493614070146331550227831916577565833227079975185664415833324446265171562899017784706893153700061935659321705195982597222177156683586580853374056581808179444195986805798626493481758993947093174777500499124597284395813972304315732246080881587744969308551184542648672580408578612015149990265692630687788810479994887518717314289874388500344153911713215892063838288301154288033006229310421423839471834491180929003038818482777915038968788745747473427868701343179724272685549794054812288900621235356730113757730589801855031508983485367903953423485911491578068117388776556718826039852247641007709381583437373190917430245355177758846036268301249949547401535953773214958045845838537153781253941102565512815975361490263951225477944207344901281415815914845255109115779870161861990461577317849846951474723169035992854530820013840290328218433342422614333207187723666345524062857671302150291033397139636889530694765704424242397918211875162825934303172919279113693705398594359221472713101168992547540840353970502281858746948761998695701844324424259631028039767910285709583248673175618799065011984821600192926489974402679872144917405914964519739233979810719019071332695383800019887010359091105495756207791673604857764959484904895616638254527621487541733649075450089666255011641212499396195037963911606892963707128300466273650727693722107319092551294384140165956560681731869579916808258780013718913980940514575582672077895309022023767834490043701927854692938790280548445598840352063279134085753684503788003065229879635534208034049938143356142228784559514514168692657275030950861889400583964254408481640781776234853758786636774569129458946463518995716905376028792205937681790273477455927227587316224932716523020292592124697925211799219097648584662966039614997271331490487013712013322080188315919441350412433476306135130724744558877505247584739323180659106240307752129417365438272764764011576559220786033687674848441120696255015169979735870638834862867887840551770491464258490914323602046599127809711655272598551959070056476163963614566365584468716811045222441261420150253884566957574199536895069944753964215156354407826970965092639502413835258334206449789870465808809185075744377571582766354694865725088945032520465015450744181706922958899392906688481149200999325223473774020944686927355553918776377798087329743763909850966931674379961554456555443618188517408931380678313013616638943340748036382360130763835988220514820088098449650458360512152838728729149343743269159678846368561470296698342071627398458655498132775123862740550040835015979635101544530679378092829943774625330934872977257793918144357602197197344064162795433894871474412150450149216273063656233542086387483172330059390460918309204552791220433439988857398706562075073699584257956791617973477702801349198089913999701703281102872214383743731144343678765121003566514745563949029483518586868260423488665604250529407433987182736897701044333833351204768111884669829591261311472586227532705191313518313211435041990128201858554508455458471081352670117051841713362141797493729837915618784625290213681606213053347543160881572478636699838083798126011178566384028031034540038889981241661244269271229572796609951619056097248942485675139066657048374817708728146500791922320529114661032828960831419619339159319755305795917670683729149512556578685587866020822485067795374707897423372706398228025496685513633737769239812341576862541573359593382167235647761759427719911824377987483839886875151279578963451575799789136131246405770815020838523071526501756323185663675309521928773284465816132595102303919531603340811353830960509453113744995703011530955578919406326222598728654053982273675695385917551821697922824275602239827696672635789311873755232438628840501205074679678263238758479033467907814433296615487595372450903107123121701250600396851081568229738249907970470013810179927757492679007982357385577417222614695755828161408767834840003224505392490578279620889494160633496191881953478977886815949890726695287722542250130089269625076623339856690060136659747920785732072718289854997307683086543953010820680210262889658288909073038775253020000474910704114573647457623865799192545327619564546696125019492175618440123139090506119040886617769510623192722168484123743631613442192149788803004264267982579188259754765563866307053691526966662426941268706948079722989771364675101904700313594565930933996598546638982957381456148422189008988814147620041338800951867056770915907408441541523757837031203657137035192474340319048847196139561128206115324006632765219281522732055973342020581869797276518976006804563813137869568742134784080546639323991099879299077486210954535945096804460664413413726540248272456484900985430732703903740993342325278107467206979732939314392427751782894912943394234692175335962382335429639777562959372415682958100096937289406790459684580212065748606673152089452613902055032312612935459126164259856586787237661599950422724213697586574447726794150509792273632831236236609631838461456956286041983123562575251695169672648458607515378542376190279967254965751491803308333738365637019824115124997534641253068982684826638345002273534286289453563652198755015352046907383354712002007894299701396708165093793742891213330717707669359244339736357273949385101836065041837954907355133899998723620442337999989450719876219737213639698110813325204451334186355361128166054421955028407372657277396472088956764323585381834238965319590184706605966660666467829612132597259791257811274491655250217356504310110877390638930559977853450648804597940572215056182436863037070572523856845225138830237905282411564136100948103419430562901268674507537484879600456261061200802260000865426627111209624008221598426406450371336887999365613589570201579928730019140061971854592505424605930428489401163787762656647723021723582047285770025003807895007068701558780858178538105794393573777062148984877705462493973995281745177284707660812596257937007498883848087059545611167560508674292445805354974931093672481985893996967819393912834179048524381640433114441812084361228555192182559049636186700592848566189798519569319158275045907294696580132982424594748628507642048221833690205278180223464433722589043816846684985888932186095714287915142733426732103713306963310785936687441797934126024328096992363280096321131011586326960259471793321503296431239370092209690798321212654094530417421485244176371161176261855253013578764677364846099152347653256487882977081132286243371145385657348571207646813523954286738658550406198438270226109122513596541288098801183399836452015084652428162624795144520666081058000450344530741302529639337098483264008154213201218589573429954545646282621557945397414458102042930406128229086642575428060468814272668546142216749145543329677177604498407525680499729497061473294674350790678208953148852094718340705765489225156889958816397672511632793182170131470480327628786923761036075069725407145813956811694710187086962649591526149631067311091284399298671374614370129188555907044245685670935760526891678656951330250606028658214871631212943234478580923066443835012929190897217028173124173221329389999765316204447306000191627850136734029663225838067662717239599760932449350560782577166998429447613628250531615673794587511313637012940218063669351365884018422004414410019063211494102226544111352599189320224268691580818861969928353909676686212404474696822582706420936504876241106712108622849984876373694212398952515638729012957646532143508353163157671493554049551834780721347450982887730304240157490519001599563241764916286438611089371716734041401698504322200869961511273934308744303672304918707326293576643006099285583509689514091388860601045784573871586452293285550164089915359354405921259691693414673232135756899353597890254434371927676436550482525227363432184239496047252107469264853448241788462271572567839244047250543780002008837129211373976320810184451061913181152424991073195151619179925499091902078614996923909956645226777098411679772580331425188325966951281035267284798847675887874818915175685234871048997099714165913282325431876153089271178732903874851768384760044319842935530957892332201835118181475647754728653140551137831001826638346329265692145951447265052670328621456231421227797003455316074085029033232319136971019374902846333555927334763102154173479083400684716971712537237729570318376961480022550154584575064744503476744764577761230515275047794544173589864836360540759259582263235897762939748257028585884576926865058323589619251729297422108887101513246645435786343907793628442543657717410527663239307742697364434281500502589848457791459124877608138125654606311475443280192503080407652734251938849070341502254328921670419708994247629308345139805195111840103360828491687762507939701669712106095681346576399770606601511779153200856736878854609609240567482674409790393587904583278581891915474544616266656962373190881935368724852499729466481399379429584019071942519024740120600297672679835508711088698788360620882163367801087815721637160153169115344271274035071242764624705655453538583407815974364694259223418160643158860227639151419282896577754948738039215835380322552544941194147285144300980575188019461851468211977882549943919293421915263321343036309503340750623252192572927059468811466775094243128927454712632715593997360396911786169215949719798124988271071645781350770576287630325830316715072583680892175405536115896488521343991916335028980185038271336497120327368700160945876549638410711221302019003495978839057183255013579945379127369069474321568780379328194390003711829822738897013592339995777067681909789370183582552654522229056999681762451144166843126471734173175597639753547401864904363987312377905492163393308271054371802388458481269043255190174205406399729956499960051441027438422626375930013554876418009951544274623739154308186289477672651470663549156886099365511274185252678379181971146073102851357052654068654438142841258430433063882800671401672722120878613439595226421177547669188489150468628304705857345968874430872042177941482471065530166693822547938551151765545649145112658724993133626879152721386831481959115446879741949160586591719815808833302916816690812265356864441046978317923747951726889300964850644117562147411526240823995638713994165814714749108423173504349560778035813480374813083817010522678817490089100160989084890246569400170576332181947269793117838049370328538690269556961934920670606646875719278194187018127599537605265057801516269304641005718371051254140169247452387662818308245687597982695754300053621932619727797588074478965408407239746822897710727069464248481041754212874237235227050016352633516080080270547743247252772149139502317744015003744829710982551704045470387119482232256237095448419992557506537391927513277347053657954153943616455202266274394148176273488954543610852682240143838858051215531102284309743903210593191913577054846592591508218475376833645797618191383528798812985021905960316073056259323758315306384291017613753531339565788742071566190462384543963568395362271503146901072142734308057708051284542910896458987523295528077799797119615441605204885550674278240703045497325527222328502641406857091628907352519050909157034829928198497216626215911627646963283615560365022459487262765025824537386255688147388580497117993863621083006945892039299440476555520349171674769910283524345078179272242363650277861753274442907620558039164158805165008857125499010671417991068789803048503051176060518322143096692783849006664519765255653137356730077985073364350488920743833099634091275232762470398556700836030669531612880261703848863581979367841938555563522142783511790252588981267996014114800804351239816599529289592840704283147250200627074595257206555481958192921866486790884054201694366650723676285836083189047739009013317353454884832762897141601178207058457577758674428242439698311859574193560145384098602156913477422634012384158127559161578244095550168924108883041088134301674220580088804602808448753345414104367416236587823094918616524944314394209918389773311803468482592777890189982502284965799537020632579431481686251112555921794014698062939850074296443511899640974603176466450966247646989351402130233815126673519008317698840489239755476446764734727764478596256998100736279587799398271666415284292834710346311318333185232451691874931796831386425502245456285622777624699362977483280953620458785885643010392533690657661472407860653041706180304064380483600210954682515983982301955555217673993476022653576854626146021153166876383892381266903311110133999967524846230512236184148629176127008685070321353551656348873717363494262124262919121217187489675953134647064536279820237995839213498698591321830383447711220891222954681806599628177452484214015911775078602247240246441166894383562574167318928088203690586970521295633169480375062319240047284172633092725938065502037235721943833496467997585976973863425062818488952797086078445564119808814391048081774256273755450705031562088878417544357573612326073896220075759606231786466619142442301394883560026498475400245609587221317146140099376324606877058378008087476949814685156485694058005075722116165977610659915631383642731122351940213411431852284163609519396964304486067511335874056531764544553576296493912615224182581793450451439671171510370404568119828875964684103905152152215864737649506910061185890072428655603872832163159001568460242277019863227145937317235049152694218945448573851217797913867049165217277401435776841274014754946914200933696105806401051325510477794293097725205290070449656411692916659875438673830230179173135119418494901960437148182490808666891861926980533639652916982516103067088416800582084434615210236188571967987387161254345934961569276478931279920125277822836286851121126583049103226350837105032644132603981263046690543477561715109735071730205987868236515047649206635635416383244615166839440539099574920652857947740394877961689045900883345110151401503353042331519568750434334064312976944652732587546466305370515872388643884239969157964509413477497891554118718836999104491464692170626619380823341263986492366062112608908814406683711122532381322143719141773665060084192291568881603161216445021798680189570077200895900568180633698909796682632257633533585571111568698207055117933377883585512439240696699458759101854767141202839491490253505238136193469489265724633823093037096678690901689705312879728145783659260468424666064272468204368879767448134771964232409914376298757075637889822458479586876389842806040676176398593163712723239436099719514307539061621141486107963028511921517105961719864393022238226574689992228977793788827481518807172713214043521940102925939701081460294739059420506303441407951716851820025722877211977129959105392003679848472381242280620575552315823556964521198352154749249281237751115365125964421513485621584784702548604874389042490296323837487868660200069464888409970052941553454443323687815365743434021600222639277383000126930921039500858925382648477035603980029246376384774817421691314356259968006233724138029141988732833164722511351785276042160530677945594206331395432054710606936604434436754825110623297123274312600563493800396419229723046772620207473827111113407518156885876648222252440852611217238789865664956141111689982202911639169247643911607923084123900912501228625982805888834187516452270649911150811999149523314719210807596518854743948835376815559095727981868654023984099458783066730592517266125710606581781422892013493318515392059594097008353322751437817792508576488646486326384715146708095434596798051520496778972265748211611744447483152777112667738087546154259531372196180435322986333411257262805357484455776344506782977085229375965018151837428882269508775145708566377958001801772320749912043093475856855767353890840645717880852106631786373222164303377463889259521964456263909741177542337250335292946638882642248600125967213831673701232780814208179376092547778071941147764418526405637452289770569323683026897899629153670643379361728505441342980360319229165457705619144461511397799768125531071865362862641376991297798737069323057969323732432100713371743640100680480839483815503207581615036432550569875181293101163176861677581106533327943541300125520600295398264043597090445003795801804596870984257343333917722676244091290543274163474035039069732448836525647120244716565905303368478959629704147409854559574220055045691493169192536540832734149734414084409850356521070762078113967502951556579773261487947163109905940978608361980262084710113930661265009382267612133130761409289147177597662344754606168834083768998447190739722484770182075805446376463351252704336052798066421683660337677696899632785278008734636423020259371241108683060500988195204231053509332980476651695931746098790609574568826857226232367983151086901918641219686871253842316088387170479730278103025635038933707955528521313300999896136954926266141575428630744363109396632636090380268186206845434963662069548637243918280101164444949609037316725638351913729338300868155480932196642956409385561822561609192703796448697648078838354517114659258688104033179360047610611977948399701662101374116605381582691606115546614663600953879694018483572131973920630832563262938725625012829672095965206273483489419946066902855534624588785496539159545575907650799500734082814953136299557424888519164312785990765116340088289968598440706179955441862961844635127731278885108303490721574410910681969190417223891984675238947963651778511481761486846762577093945691638847538710918343373592446749288554743081365907494697039390217781609579827183422533820457297944849732959654104192518946134090508349067335521516463522928045924141797993949570119045539697678214603929028731292219454949865302456955706927542592140514063913951520858453492708691464361507147552324291548358402753051179156261408570205142456662565202533654955322816019145026437926940950127644979189240496280964296023483385437501681460937833821613490109095637163767335023062358378468886257323306032437577992375627646697882424488474447696133615651579259198263820836907251108014781693181496253535753476989969592634233203710673238687429374412892692186586129815277814656297818203227936067963577193981473471615014997437258108833385999303242674657561307692707407749702403982731667379532914066176436110948874024730204465586883993678472710172697517348551532389302538667399177888568370872336200014641285931920134730352135588734380478890320547034480422767926511891714437906158524102359888147093641453070910058345137658917390272265913309055580834934348011287276760986163104076671597712308395456349830415144561458831853547619747729359973046119100803677133690307397746221816066151985920080191033083213629411467514407380504507853474685845081403099389135054374655810174648113038988641289367409350138975058440993446333646574562232950858709420177043766394545363302630930173204200808818884760457566829110044243472190371257912402226122252270536976949119565386232789767000144261411919007737754570265473688959234804812336972729448654624852110200455190108609000569380767624005503845474052423262657586986882772983741357708564029228345176803075953183263236970882624495626976318756112048627416424483450846631009070380094424157716501186197896118880552403563530097208114808538886083596965246881812462492803078160274195187103864686384605390635526346361448270918440550854209623226974310484332084074518664147722903702293218662737571612843859314086867228725274223592540630321381620203916148061080806972552737788359519954697983713925973967911643797265291665298983235142067127293796865325518804782863048348884894765562024905671751968169141810075826802993036860922651497149737302255269183600390233798181492762611060573283645068711945139634023303909493325589963054062215475190244220955460597820931225918308906592103175450420803148850044773732479321329040822684597265993642919276753166633001272736119502143449245559077897483087146680763756126418789488202182326699715585268900862953248548104449389860084727116975693311777323410785774078172962958195580341765941154274149470911290440471282168669301998896813443518459693104994468608422608659685552761977795699121486831096941880317475766914491774422549243177889107550197962153318133274932498478159048546792913663633068421855660217482073452416204940631863848167088260674837117146841414236342759137744160888046277378792935549979864268951986506382186546447912836898670487585623141247611912215533742300802603945564415730585292288518659270303931174482945465094142432839019282683031859951757857345941848678793941699610810494870764325353269475083597413995464122520474427516754958056487924563176970390635261414472159704981210352775179493172043789629149931234150074646847424573228316233236369552061892617761082621505543744829350829814597196198598853274386128964646644884672234990962573859301355513803943145971285104473840315833368785644424303478892979531525447287540174062879360274526116423485188326014945463340862621753100723529689072584412642422553610232082060526474397774758843003366740209975858929440317747155133660674160117625017702517682548448014393025977816648778485744085078626869168227026924873882830663059129594907164579397609522991434113116944878509846987683691872002344077734179131049367173381104386704970547660492497291036493292297908740166192067721034080080458882263377377040038957744246445433555083428776236775211948728606845219821156267151551135793840478844475239028216717585448980897244372502064195713755096307805702461458176426688601663361568172538648578464331048782139879443217632422879389171654063495033698737506865123377799071641864621209733405035442645510812022215419294411358541238825504454403890298373926293926709112110061245818523204871069815538540566498505970630070309621187181660717375461692137840961074434561294952793477765142049937700474143964470190898817954285212268776693024470143001838434555695870975935181166796082513059759063535971597602293482029462430124146481383123365986137822564059887483138202842948117258005781966970243958432347760791300243957691056305688445028450450092343124542429568386736610167708956873117238258771892428409794619454344313394669979196713866923463561976297428014528531335982672490782741106177969285880305667667178109533738870333392456961174102309426389585345594511621974025574567648990061038274556040742010801414888221669673685273403459579816260310805328747962561825154676091810810655926672956900617518661461019683627876065499795180699310951914562950904661419383749913480695704418840097650188029830109596662467404496228001508219024399538465694333731386900731014354236585380312808828319389101933495600481691576147406792641401521196548664986327208617453172588485700211822779512756474699675478581117034258692439662993898607723663905077541921712899816235703659563550578777810154715788165462929516304848555620060554976527626410595655564488886288626685019607205232206388791618408082703366685265693337538323799478239346517806816264799094895145009258728322386317459241286171530234927937602808900178575776620265869294027035282131929243231818320758334613390491255067429094526876606127972788180901071926838388176450727755408039986807455324924500503152635850021213828784227401265476499005035543336432754120848077598518416744547462207653263624243908836272588883276454251710339797319634404376067095089457407977219726109206076518297489680695782525727250195206841879669054350984593451150152434982121927308652605902906666757617168147508067792443558944674035600773126006261021593149815952290749915934484276120152568563580504176081841120560198177549754157556970116819940517320668331412125041393655796297379937441798021369890708483082542946246462236466247615893319386120249414677506035460692979472225035578483345003286604897078688620104217988523187181628533036750039048955676235076165222010211828959618983490526177609384061514522712236095711216960179866510614158410370750540043619241654880166669454103608773457895305018676317425534333434734553624891980545243557403173934250326997508888994903073686234941197620830391408695062882237358703285676128774617790706697872232366036434247607207673820322158619525779924128540185153717386783414008939379255863219406281710315199599189638621808406270820385994452783149167540456059091516800348688958934997189047698396219814431901758445641499666835788976504221721348861099520989393940213322365542990016266251622359870876186300415702352199388372088834565764586599043267609851768104593926663996492581742804148889102859201183348631211330658291906643982561257666497467215096969706768326986755901294659213870416010846376088566506928894104209164575366193802261733126576534144062909936709549029889403775157488871894056424305057073471675912651912309433285399163257271422713840078288292501328287689877184948336595713759965435302462311583633297804054987446997495055746031589493195407801363805784933088296917396343212206673968017319734604520715560720865181310956003586966926713210899854646029002673998459253072633430816468025295467112206562413369528651737054749862618344285463247190217014177803926791491341652421264278702045492690318532762063948584635090892076028666660692987869094904019746810506216837120778358243813349000700931061301159837660744760567185441575894678495227870025627850428561955739872109675122900007365486901259474671480524896196924041261512704632926614230475740416921260880737527359281560215413484170590859904309769841864838517763781083880230920448917311113509592999235709551560085444203846999720136022793773558471603332733658486533864131143784656464171737185063379268319283664881162318621834235603763743216566026245705910323520388963581168934475890778402372764333526442574909361338780230813406345377462748622273411092695466795998844508690655475264173563090136017417630174022650988266222482153201188261924462882022471114662082596613208360818713377872328454973916872350602902776903772998376218968001629745760191760640029929718784664300084548567458678073776971427665034659622949483821852941372522571661048501898650552540938770188415177866525200087199909630004238278089532533526305300046653950902252464721907869633860854625404877650655878364900817470487739113046048081360617768641141761048865803769319996694336217908314745635989640091519883175133885806370026561623424339077956680792500552806811146567599536921261169691960539113807570535098007195662858302018831419699101231375154376391805600361701228095432187764374581056858190690299568487940962144421521142881197985048645466407300251937235638175533204969274423984308945856692295916606748149298061959716466109258582901243294958448254929389707979037629781605929597334375707568340128950753300161970117162876051117474987086825932128948471044680693852472108429186202818414152034742865934765403354495199864150832189393332397431569822777678793727313696304393966411617552687204304342385454162713922637751792344012335503389771450640367446999963385747000513489472730165791234723269864856229461162630007302053954194178304425810282440120882594323670372624934327646254245122402195704433294562002763029519710382485146670074700162377403200935139871368952598061374677102379005274856076675363622320893686603233954263850851432394953553010655874699892785816938639400749838136696311737135502857477928339581728897003564959752925638665044768578360721502989004657359576462183822830811712018559329042318245526285151631126301728812238643845466540508581914852848143155942279653439125706953047685421427732835263158198627269341310989755373955077382414119730167916659028389067927864741029164682705039521961867052704437236217429358728617376116851967300810247789021010778009760902800682193726119384314358289087209907245341111955097355009423608974788916715427718330002104848680318075772883896528827003169525824866820370615755297739247836485715712494661750002858746144606084773946253043573022661368865944838781343610396801080660813121997180566031984906876441936456722115005447838842446024681659527890356674772660719999769685943353466178084518298014380261467601008841200852577337664857639532966907723827714492709475118672267435855037872611538393434518715737209293822989090344913859196986222358152279720617268242133025274062563497350956637647726220081562325580215210090421239013612741311145905434541538763182265742444426046085654977282159437072023588880651543827199674180102857372825132351433788730632517279442061884645225443179131952694121098673167516148544260665735210621148139334649523348001060313222351669195231705783429630798277544615440193577413990952179074485190131210484610437817931264512313542228504639915399022275192216286806504878462197584110290953311964811654137298526234994663418175808749883332780671731667994041793408029546785092298819784621428071965404462329213576314161496063179235334854829166141309335416779228993573579115079419693443445788886353237711248535860875524814870203924379397082333053575658690734499246828348930197197399798762268796392032855311358290414283272912886217304180484910654243940646481391841249183862675137025471207144546339052758739558528467943560066790417168016842565188540541350340962443952587441509492516096519535962289896440028032065288112042820279843335940694377997459044311067493454601298886297816579801552743743301011547751254825264372766327790803642616194627350492602866296138413276685519257399864465727008129165866251384481799873684735016986142821150635745555585710287250851964085198613393983838542527692479060304255688484789805424677229689949202803386291713212767850307469092037408595891823422829301139840182655061055256894293037853519696022823786099282441581500419046885338783269032268697734976500676354880792985455857399000116331386361316351631733299884568074575327560823949933024431280987716214880779321282730522842178393062357178096324690841631208144036667018676205424550666103391784669810108691871759495339226439932160807125460862264890798410509064792064882680342285297031115906488684079985532569864116819830987091659711912857995982328743263961481693956470523392511578687588581348495858051607618917277210199927082219676470393091729248272122577796173759437517139275166958919673220887817466501294399484702568331597920036531365293750793000463503899559881109585301920151757319864480444394516858763068068147284615905960936383704499167693664929122629230902462121467102533544650284570268895278439819790523343020594924392768714226808734801819308739388139671976936140337340902446765330960010232221888385480077011231171213071222544889918737741035749640492797133340247295413827517544252065929728391575267508334180434525055002770548481141155659132318078414504781908745157292424980523150053135439059868929202284898304022709758276705660205083763089394477976377129147929585566165778366507030934875970639919934692492385087462290344114502106278658807946680223184313658560092869242895188170038394454678844049338310887919676221769478511131682894177017189986455602598721814498411267868774360245728260001555045609662145888793797799990056505320116645757107573077664917349481792095692455940327828973417734132461363495037497490304013741629681583108780921152388877048926333832993609281936689884518551233059180386756805793039342322370775705530015022381641831105309443646334574732062059814738876271346290363803495646155546463919523908640854238871852387586188731530941929285894756283613185719675162118370793068804194405711358193966192194257508975382842252647848685146598148226456016125985297518525468008953939134135336109739102144846360636101087214397602793109971294627347729747709508887002826650192591407718042632578738708192938342427029958143002552646928029371044118954144885051730398740783641538825632476632112481555825544023446516575902696660642573343550531370835954753363773994358431743774834978350423910147554316347121755079151214763103104344786421609392293732194647526329778047456148659739262332081441130742560449590782069503002888417468733715821972917860605034694817514329762394631140816816108153410453249952475709391663919922415810585642914223249000834242623983700064882861963702974651304194220683772011156410812762113318230027420912349101187802915429168315884455934783340077688048947838681543814184160870044323333295660343590883660375884748973964366395788198305460575336577358963198529925732737644721692939245947501482316705552909860605817007683902845837828458166485501035309633079666318112122017087819525772390504642596585356905298327805891498360780185671996306269250252819577978824580478668806308621782546989637748391226965291100474283487957176406708955641593691532048661430006275317885054574438277424661846740787307281054210304565480173074842790096885394383990254393822060562543331124727271074189233532646160499064995435113348683902438860643774405120165456598352462139629396795882611294939419051460101148920958530399414663129692664981375730407819498774654780906138278018061920817198017521771023142085300682537019712206293457608752918498424765285284175910945715922225310651358681253724909278193409264707861950436595367893457959753571154633346673773534052791451850869170433880586896996663823276248974768485394346181991025789883895464889267156176648509143964793747211011523997880580460410338141639197535179731214530401880745437340855493421377879130326217968689230351053105710170565189932093500946349910040417223913512332864566501070325550791504595897745651181995060838809612854103877444799360475334334998993176934027200683873774138084933221016629738859798009743210778044158532817153477429181752277459835037156868529970021748468406293687975806369748581723465159227125178852150360223197885189582027761814134503963669726674832236838348536577330728346476503118758099683916128426596830998138470727468172105255889991947952728423027887924475401676564284405526964835742648993326887274850716123949023828535695537632037857180873928136532603071166735236556318743447072100668611051831632033149498512896545691002859458412441131186546861799855559711473490684460622398775458245775053295249407865058290099460324722218906297492926732872965799098937605508203832232350876479139053860353433774080340618959549426007812547294475177353892542039369025288536044840945461620795431502978875049884735343056851235600038879566871031563799150531078351671964169899024509112163490836408478857670298151238193663383474329995547612547997717906157723414268195582765875325058677210612165177079448873177560707768520627122498482064026451843602513389858016343638658519826173091450906833237278543817109315408283132784376031606127540783879330813414977923844186406379129284984426451132004369549375677567008784179372929737438384742982923212250251463913881390193632811972243667612633013246060885575137721254109975415074754491914006478096238926557534089488732192052752790740519790179731150382007027367730566423599594305910505021774943800837666245842288041135517413925581609303486609485409463997249876756749741421784693733728058207440541074511702732029116078546397534193721579678561382946283688056650525293210884578577548817722773208550752752226576441411567590535336993603802382260381090932777476599265073653664377859336968406895575150411214075605479694567045318924226967049947578934242975080161121837978058632714909868248114595798077187751934235654184412585809262052432605419969589789857018504063780915471331070080462446353646836709009697360809445777459134706097338430164219019516793350164227727609727135251893469488547887423498803185966558866603205610057602184317370798417802773228186816332876263793031652956339201845194948720296926258908959975136057970835414084835208937577275641018022710886790368387506973541840517355660341947679931773481353440655107099385428810697204053919400810894942036431099412858377211290907873024529487902950908035888000567549366882098786909311487407703304581969539978663958513952938468525316650189055037703464108982745588498616120151116577261263345983528438951709391534298477429219144174625853120799481380601173881838483804449373955717151414865335792123181720840470561232219883493561363175236537946125989431146682334183272671053650622610392159552383016831179775619613899903706739613111415410864740171624658293313385396792124229397349607758451702705500616633757508516543343377673911348352286595826886129013885662710948432307248427558585835018359275378655840276236211159300743528249536396250879493401952585878380715736519985621817281201072753928864270663221933365438468076439386549808479829278743571340559860476322880182753393764058532189036579655616287570296310175385817394108830244059646583382497152617407602356955954083898462008275961096066554518564928486264542181146417628673828013146059280227411452019315847543659222131760871775642275370561177649899889802894400437670439525772907304267627901177899717404789932052699520951094201655197274827257797334509836255852440256710640351312755133810892373974220288167776622443453531978050332985264874624654817826925722161826067537390129710200305979291437978542046625188444912013528106556214396293003011804578098196640917110361353022114034205678671660553122431229449310567689647195992425561847812130555924232397840703594759521036364721107588062650571473997358464514776944732708361583094854143072243412704113287981640367325447887866272949471721037776924656840523090501030444809880711590174340285857118121785892398446086695381394773817348164413423542067259079256281591536801479456511903685642353249518334935734935609969113594489023424332294438455863321691698484334282155159880861958405703008353782380841946745369444830130121343103972566847183734180986200382162998927368182748787826258307748623767972180557226895937341816780600258819477838957887812513693350450415687191535176151882194146024834110541937016289877420131400724348412923477894476672874224697468771447242058008020783005608665786690295525294283488733437862032854376810095728330564829075345655644330232753655052325542075179691765647743479652709994096192746901389405864242704356397847939176622082049871734468139547357570610376459722804221846160807815278505822905637741488784946424193047023639069046913656959789708555237249279311817693561454910832170461665670353193436434090883391618431477704364355037709005079769592957775346806307780965913750953869782395289246472641476744303293784210258718354677652730307448277675714892608973879444487733149506479848034355445409615242458314017823574284596558872859406711272873187531612308210331718602209254141783550852828763692464249327052806525960152445279495385261344571135191147099779390245641142170106038315813543459124785527928981737359258015928211325079003709523318443064185365198544370296744293390141991855607943054058721212111198739737533494950287269105170019322284704974808951597474859511172577001100118896519414121627421155874169174669552171031320948344073173650845528581311217422470295462525942251927447285424721549700992009716262194913941979256597997096810596031465136355150258739319633656347729992082954611537850442636620043263289978953111561849811416341734476782441618623363432913566055970057098232326111295389658106267116430390522531254156102080651053506113734253160171221722511807351528861267537511683554183677438427043671444033903164473340138363417296654966475253717841102521041054340267986822864305569734686756147067142420535001133942113331718451508708184548237155285823551464935141944481132057867810096203010883420379885256390446518351886776519994385664303320374570645087457657751749468022053318480782424609093535043455448750724597596249651158481612598066259122720059554397445757757305084590995620220505063503420392456665528922859215191262054728565546515911809797157063045754281995437166409811340639483625053605119154680883811034741473455390782045525811379768594620008150802532563542793835347109101086757128384488475716893983612067259290043913941549548597411158919192409420345381620190716871850904625931218700415133114258920258084709744470127425940135259871460059157581612767030290629580503896338270530819049129499757817447723665944579070070652591205682312961018937467437157631825852503353037692211178358040555041768811576483376685448097261413336910349118524344688767705101122371717529374402024199590184420446658246264418378450186584382688538603865513989492508459288003375363299572031192164055437235054888406215272236804950328457491465502842144667845393431053558756431380018096568559978821025162099512937029255163688454873190400326989569641362017435322931974386502566810359165968620576679545568034879385160547865971748725404554426695970457926509943746809783299978149207405179818926510902336521221969578496126069710101921929483430560084232383817370578816407918738474849356261947248732152294557278265194735194449448059521704384503704297880188892040448636311202843556408992415277236820430695125469447691535428555801191511448986136922081378464723550591445327571067516027548607273028731651052799772778844548987962748701501883526716695455603510857311896631153048017459663008326338461872094041766556762310895269290565514046411724613426895030826402613448562107533779403021816217431251870015400491438593319117050966765911353086591109848800256544496724826241992866171598392178263493944126282354826081436528328900525460137837277934374481893595216747932284470113788316556032150341958238244676799368432203804216485619444006003695586959322137169995294720237065662650353523213248829690622812626197527875134100707359989027648292647006974755900177144867775364672987741160661735926683247162026347482905799736905680336147456867311620736919321734792186964831394062768180175061633117549649881144363527233014501465427158640980880284630347874137619030463911281840972197987318831787955458699558164267614647140109070270098465575515114228526345756647836849282531067731888732179517853818280374379201195554249164829115589618696905537623839142269213855435620519174503720772282517463575160895400844900968184265897531013638523338296599145312749931748449099342696923130143844037571946406048310555434523974092414370075960889215354775853812997549361256871520456156543965974696208932769781859277259849775437268473928142983182869403742801570297036508171228503990304796451850422613448556083550010607066018100855465811292365056673168800876544202156362159267517267762827207372462650031243001003543611416726954173776222305003260190913792507185960571119363512766230694744286330354646034393560372606501120859785519254944670963276566581377524867489815973891829177012247238977255029751472166184908845775287846760664730633548635397688202765641228684218024052036164644958738757967652696281108379572102518931667113224750524149638729946528160745857530052971851825783480401255454373138614112721605501136112197227929112068504968111727540854406675837905138730032902736741124411517866499321640003362779758164072305898385568586978856062766830449497990228739949068958892944279938680568106608423285882697740795922908644197351421664099044891365744836355442818981498876634581924369169231545194493148854214886772414214761854816957486799137593795808288758613374128482198423308148487832580396470408962017139785931979136727638363723731052777092997557104959262817507851978889405936930635354205613999811623605705554626598587633089363208928169092923725496901291024699106723351699968001822595521592477777584220816316817310644715946100745933588373704243844300425112137704317592536213021541771441419617317494983493231439690397301528005969801853550558277603290075394544578117527911013467848263175720957020153599821761655868894691801880816622066114660786645451547679457396244313973112658367321061668160630448352256789412267196142488223572102536050925070542327840510832339839531988741220783357858709675084062095727613284903064924658316162019934106862280909374204965001062514759636679160657199795647610944577992508037755107679878000334983546820606633450678704413892429615793956104300873048160921605019437305622156997614609780438500565042644956895060116589449873198399835344002598301967418801822267444913127071294122440797125298326192849815450941903832305840197642248150119520157446942840028740031548610181733709190466468867915327687432239668317277508327614107319065641760914446403726418933058776528224108939276225666977468819512638694199731871359646157182652233066373128161859318492030769885942289166907552964296042703820534591640067763959394617286287063390072879505673441593150387836261602299880515639600493796404682249722718056269126572731729325522359182416166906824890699415400389800606503122104730077149099624757866853897288182035175920694038431783073838474147216593716206826766914298698861935518439172026680673611146470241819163039711139566437264010419803393113133334826205938690620018977971179927016901459561612755020960634560489513125504919341358203522308734539610346509657455214904629929000113519238318654106753461967647163343678326523065003382521329369709695068550231357283398385976277332834235276687313409205704435616752760164672764495953388437036395477396549815482900125396859317441856494301765164271618296387836209503235268307576649225026014397263415991859097967366488963240550997687474506151286799295649621960807997634455159681828652266516834227506181493578237764094993816316805138198088108678897084841104826069323876370762356741354274725866688493216538327349352428608812368910381747870234810892971318476756195518645694756427518480749365843808689588871874416768446474997077328228823982424936698926653944926448735684236408933680039067411595867904341197842257565302296768692921837955907040711175674661873983410798092383667092915825023665646179526879633904040563703187330287092154857440601276489238867093903916523075846914215390447417186912265198987216240600025802606920108811626965787656006561171742923147121751836014642058162527807942298296182023372421605308943825594113939126104749978278819872771700406032543072008521225599541986291702928919566152551813296479507850868996347550583883804293350808127975534952401466188489005920700217461293822910993961862220905451918117274871066217693082523092824162302868798760691156295897250171392556970842674162389549063779873411975240846217389750964046587378704401190503762451280680077557633146866982357444888286287627243952064388560622577903833892361632534318831276960833315196029451988909263065792859626051221376327461048269582430543690871213488412071049782096745866789115471647622475779309344326459773013250869150414176209531237528029567667301848023469726329945039028153045402064273117061471856277139756936876998487971476238812720229403046110622580088975974860843765504395262854133512435033639471520789569389744256105723858946650923777582644228016135027594406501782340145914832176545650440186428588762130842656416971711326332584161671853412028022356992367219637796982770122227895504420588246611365585035594480004503263528506559430610199108221962922105453861440658924441813919634884151964253153321528679125437753632465075512033848551572159197511827292616985699561623023313774876083424070397848227648117083424576032253739015549930385409854694727038224503072051460907053159538913230360150292523896531839715833990839631877178857701883997031140445579945419119968126976390312472573527720140521985104103886987532046644991085243545083941609344624211568835818022454736139451683158703240439280698568313568684492895839245251518420750709515484305397052668183774207667199642098205191692395966355924918392067900918478836639154241554263795703289964326832558734489348585435663004464005798885212123127481397615424821553478622970383317885274954664000080981074908481052471098574069354236894345557236630840926222155100403968089415807656420158545445137238828744955021906096603721146120081752589554216350148308192775935739477548820262558528819299610041665094189802173929171000725323251094252554273622501156289790381165537330882059966543962388093724488065391589114706446953976389551605808912613128572135137994313710924771822962577993577727663077111506843478149585199871978506551718971778618750179508441731024445188016514698886582412495487060873731329721205116480167712664142038182453683027460876114650436621364392983295542584372146990129443703149274525497002115717923712537156220249636258789166555118352475280809149240732386281211904134815657678108096085096063354389329539342520832257254163127320044778263613312398855688697221057422596349066771245222886445817014184982453046975280094968896165439828757108042261633099241374019256724297549815278422368848891199316617025709786931856604937571109296224590396443559526259191979239277953058897926417421771328106239711389466585616092588602807462667515535531798759827469443953549064996199805979972934977020680238901366682108028181203692183952343879638407292276219503714635504290324930380415368474936464311299951746394791889964855778531064451645068391129419134569858693848719924684012404609424666926969212478847115704008168980029827927488958409126918146479984347007303281714633838263267058174400271779808418323523606159451923877519712381755242551529872822013003235689893256833285693859222023465750085369587038277662177631587016964990869463125320916456137657608392810058978846945529411958949240618833448689685565001899621380653611008289115934064789144013654469600076886535419869548621861719419432538398252718378105244464659400690140301434960376532294325195022673174672617474440769465999568245678470754382595210085738510036203632370875236576972570208339639136824788918292682683604334689637026149473339963858115405663311920248710501678612732167484607202884892838977344368078945145877802731426248529877350107080525503420228017281383348963985568267094322652458282806703342481884608599015144392753000825414730123316321518445247060500320691969682528200822346163512913464936242444410453670740816859562313735073251853483139950386946730264098760887752839988243807080370454859568849144302945296579407338903443830129201930632162375416758066881379789711069688007743827832354390307938498348910524197241255331554358395675474608386937383031727213464839885947011567398074019794699215233616919904899733518474613108582698092208974974953957250883921419017192122504546849925963121797525264463467235340223733689532986790111580954059337401408001382918728316303150469037753568888188141865958355372324488170077585723787257006833159264483262619816715237353107245315529304118993408428587297361719224623817835526797833519194847965149795753846484882818676226349749696132891149604483113669969556931554010126575648448761597863865307708032283030232705169792744125919772416821269597887520196691554103567152951081515766360748133366149994919164174484839599145797252685786298174014814746883952132989382320549276396155436830539122027266167919888416362678161548244465808221365602517711154782082380966888570331281862662197182787811943437693915629210761686410532765912268904551986460722456576618451983147706068906315159269928213378025680117498683516219292750684981631260499308262827762615648205632281616952025021254331547981140974249774745607917259971643057000780125103541293236433393411949169667105032777995716883282220505927799771395070252769278529996795190983218485704183532112358218449859012003429787029346344784861314120588320096800773984283846264329620419401874239947206823748641878107098567726526879560075624603800910411908294947427961161314826091351119059854629227996439184380736137413918425669720289677320890179435866200620611439987591994403994735401177878024593434640050718414727866907599152207139335350900080627077851953341689460636156534883880717108404193209469097747194652226910249617528141353085363109429549580282762593132420839787732914202115254054178521242248903239430624703490288391795164280219201603940384111765177689305591692835516479248713054366494662976716603453788350421371455947734130155497264016249429016386394601557713967351605977505809201143517859609916227487811034134752792925180533610078225390721338277650999537813614092432858483570042238804428924163471559609011600883196722379128285257889830372203527789128676658483636455480864158273079307616517384123693356871250411585587097912884774954700688594502016001252640073549826096015256028935856122360837176762767692208330199348245724139727714479124319727016384770642276486390992039448923444670476842171381162429980729968609606639607342853556942609122532655729127060431172299966805314055853057483428633570436024216446690510854324319331673596027469520666484920918401793663132933581192115333429830783315618941397687055471800642441214572073582967933766606001885828012153193102074004278909679649351298890631330476665235278354969914197766179520908638057949938898717744903757828553492596964216367486191581594175869089037671736087575276894205664217072993235258805095678994964927011776834413361888795126988133284825719253489846499456161054831324554770943033669643056074924598107870376133804763338008368714792234701299954880079073549410160253216651747634728108663703020594590575604043216789118022135429576015461621472288488382305137300550865662424414291018629746929561181289707194296833386196497113048843829275125182476681150259703492511541180276358919543385728840238879414778567282112435206609484958276050793473527918958060880546812160696925335207311857122117715845339231481870054021033594379729657421723939360319256369863157661677564592136907209726541187661558547264771907048555206810167061562425788156190967579114210906468110957578172604875171752878382684136091669194582406501089963478923020703844740582466588900591785654864794854281605495045276463796874307280364976677417840946750420773647772561769660847486116468897788876377287442698748925005578427049120986730777141859696618560444286039124472764732230119759204485735029939756763333394335922899967788311626894366139768932656713974067753007429364882896796093458369586977165121827268681576498067573320110016079159887412586681848391225046227913446912907235925966379139031550186949507686242360146037155820605498423654281031829582753940060223923578811306172561029305030830554389157198399906124273333842256975124712022015221689907937108240040966005569428283814526474310845711570991168874201427088540760875086937893233373922430807031760802287372420774027831630607720504309454260802037538655862658038784903570944124726918877793081703224035991861806788487717996807725569650429377817057515757052997850382336939581244271540929531706239816989847424697137701635429721145034653794920818843951908658801388334970541040824182530986051468714167606710499941661204477514742213326874714928613915323968587719250812289085317891957847764555093942130193380716305090695495049028358518423126378100229581707815919450905986772631710136484275822050104858544474180229202741664349608755164098657501073725152243896203089991460970892074146665273926930484759922914254203586092673001265369810770056277550046357697546037529160828535824232500688676356914046098225807688769707577227327954822338305353672750043107847637567456672403597987940327976241904254664341542318965115532088665704543343394444191646621640990935264954360033747793265380103130434449669107270411725991062760573799193802958069523455300359544822222154357870036566701878454526117567078148478902790722612532327513291231930879305500982955963421218470863838883237604781533494893571505860432426325955261890007405160491370057799829200575922888815145230467747674021371497643244828344625647413578037384470172361151087732108351106288931948776794574247767704597479529115801760733440752744310433455099595306903321041244159418284518121735480349410473293092114408099384331682789242745604332598059330617985801595773169634506299305078564028201345186355665899407136004589551972253115376862462912604578706846410951824811944998969393205987589895133462733795000279667552824364344096560596714758248407504570494022707102874174554566411162940063020641832614138985932380008477082908805319779611432748344052952126968225249515243662194646864247463785187285567607478565486251160689479716962406828494207874923173448238284048775462372997138874534530754536173482025687211900511336152188551911167089303667148624346047873208243359873120103356031741263165563944267451771655169777701866893028334934343011583023620745310807384317395937919189887147694214561795071065699943615711711308203416480246929749892607041122934899530900709745988981246883563806588222610992213745892185911749331070374763189092988872557874509642399441889621006641268959348070038705940127028767175934572162813931039267134547020662497398519494481027873120617999372422483884005960944016516867995305114119843794225514533482472089795294250249008380057669518122465503545030385254555635865374601996228314284651652870007940663752021642796842007863757102416375119009599527588954183037325475356143709225020860758889693620657355731108539224873720501180915344707729616482771787412813465725385539238620188456797459485388726626941200798051528480148697580825368152677289778473106995446420558801701620729814057185495165388735084480134691371687047646415009151245914922016074585210410657504047488730304645502450984124621509645108671825567497293960407304144052460492888400934132901784751680363725382861344855316974424490001513353301056641449128850717899997893027673569962125204917367358885045599314906300998055872725727369735336262848039804781423307782265926269983776792041651291722299449247098252754059135188655512369473320491742809473538188502670087091294950565948812248248519460711509850554258844780471715791419439030011909882602991681510681751268658329495984403323394751536478859074819853336362796834017000777829330539711184188930322325594749671738977314088080641262680637488439697593917088188276818339209491400097622142648651266222993450827418807483409237838887202638282230209389607758469970116584536948353536843489390733342997182911235657826181691150188617576303647918791086417458456964051385918352855272224730382271656991166589926022045410624290392371642778005768163291982084609260943819104933660958431813974924925062918582646385963177737064699821430275722157425952280610390628681256186519255325124024962715045206177939263947432804063990008616056467554897220926281019189894763692144538248738291188418548687381385944224034036579825870974680821306785236041676046156800058604105978608674078153998664509045701431482301914420852061806218551948848486591530636714637859601266908116998778279088312174938896591100982965258580727302380386097616814722789046143682268130447650593443220176537137623643266195766959727328153524319998486504405992268265027967088736428290838801070374869455160655465162092751786444076962092396987037174776008524614272017746597612407006521398348747007343400848431788210727929627262515617419779736292596473715533340939360787066724583251206817599133694049239960622738598140155291403829538356680198223275270448462970779216022546720291019546979230701040575796028743512285421027513191103008988045745786666746045179481473294580878778367177319728515060342498761252412104657518435078010893208371015630409102446965023961084427706071182463894546437588780025226255596071657332959712969531352716165180057991814671707462776529337394204427451215600372482351655838296204918495787435175524414455425613915833049362621633153256633911907822133034708220390867841056670632709093458852484114420640345432743927348599531767899744539741219126274792911338335077962386214796937945635722074584533813524301585562924047289442090747449100415777842149859346272456626891164089774137834323956007863435063213638540325980857373624496895690485676579891454195145518970327283893251650971214286441233529789772288845767233506281343035874439564371090548913207813418183354621773234025959452450699653576558750556680409092433587823261480937248244523295523143082719903914212373762563575735221022889366174618924710964508351510435450575987322336034597842852268798954323823316448942941449256140812658713879072093458878304843919089633596279178353416512084830431433677616765091765002018520782439318310698044195470975532780562583691977575887791153591628864208483574948358315331203867864553514578176245981522487370654748134725020398268804084226228501705831232612340723715276839590949555490256420524861056253142820303005047950781245447651519108283281916968628167879636527108983623899324089417639407852495124477574080247635905892807935593121034259417284074567157296297972495476689078048751293677295028602060237163698984528948414653539930710079045105589116963462885259843632263627657974740777750141634501734088193657671481156675020921133742848625158654997043409034381309243786049823765456526939133904268975048841148797314158790216777434976495071409334718936253562927631106303434500875365196662259514761002039674867551554064730104562857120611987263409093006969588341289285922877455456635896924176733983706613670157923323218105582055133385770858096609034850128000575449001747070191909684068168318421587913055229741935869395370135496551163378602595312122537654849314483784593048452051973905151773415427102907189827990465880783235382212785991300417361179913028517022146798409133282107971352879321174181095124914760476349690671203314151773826112082514323311619197320325268928826632394008474089438764180990359807675109234864784763053468437104243335241795998139174758257114536732762272246278182574141190257260896845876078196666006112965707716174368667970155380720639917228548002750362622192321502621431365856640664731469073138233838287176113830361230302630143584000077182339473047999906190871456444675600653110047619154094576389583459264015888726989582437390304938751387351779513793840525858812310316706945424810053405111795544133206357720664026113069712520875236851525536874804696972667464296527282997694565631878899660080957132132748290086649688773658585863315446064357772624010478474597764065037198381112516232815793688429149752677113531353022815167844889928031519567437601523362355625833069147348143941333350519799448888827249763048698257899447867581826511001891387057929851540722646726038035133837914607373535508219580835681422274339044688107056928502615592413158388675097260675214333538557767335441405116755961064411676180969075208493918165764805588975027680648279388921441218106902040547636662742153695964806212293232471938841732539837677048678335726542898810775905915568557802464621348924500882321906896102343364857429913749190582216630956516318911100272163194619565905954221356357101089539253610497938475276313018898270825032828945418468576715643897711907753627995510962387882383499277112379226004420010562068405643667302427997996852617576543127680295074123887762793108923835193572318707084699321017003003174561664803177265293150141132523608119187453599522531207929159301392376813560711733064674711419719718101446955823883888442843470001495680081912034964856493205169078100192764212917821201116081599405033553626218788210785475591910726041279121843696718656348943003191133617504124512780685193612712651716308153901086866612664658441056142706423574588714354902842572521618852302354545286046579286165101589924862286090851488495572185382600325647564442656538091483863059198457676453816351019082579130174117484780188359360464740870194773950846200807036001080235515783075229663022671792894914853249882487113506640348388883760320522643834334958269878789819506847835512022622132846280986927152632411099750675537487252253285555493660199369724490067661113431019532396493151841223726108365446909592505349913757999584661035073175113780224294333152608531432796789886691525378895670221114547515545065025330845014751759784358276652169452427201062102800493454080259947345439703912689613873253452360071549104573105574940623496238352084475624269586931858069436200644703860399820039912246292548500464709545385174596027863189268514297910676047414067317329049479475902631489878200906138760483570998721519264654483049809943878451653141278930631094568845538943840083896417403057128812077752313543881834390336368283589883133865886438765161953441990214181047249441781412223607003427797931752461162684688070752076730313581780154113225351806009637026266138655710233240616425336164976663110008574663343386806422790475522831715002481221271466219778844155497260786082550918936319063676771648525505317223008470673926709933359530938403016649324752301999414816669862722749682338106438355881884505827423321904918792987729271952522617325618012464642154615254701151073543494651499446961885391536264829346682408585490723386433182899247599601769418248055274840018168666622595858501577908717782834990822082901965975617799387115879873622089908383758751529882699946987048650590389611214534717252517854555124815224593475783823520362037709318115710436200532156325340747927154672748062765239596855715977305118542590955399324185316295405716408868344137349532755949029957001670931785607803971812031561846275308240513327624511318446950387548518658667834847065897551436893606040025773015841788360879012639634430015132514785134721372434304438315790923704930793210678474604201879920979997611565745481285769010199201484711924020863772700540460568769464300773718367457315055341485138083623712074408738558080469580630223608698925789064177657313128398070188874495619866195505693339492281768376057395127181738984240063877019803226859331265714994546751047804525498083657154968168197776039686025734108478877968608068430835416695266569475933181275533454565308720296931503724536400347676901124129377706111454581630253537346104048359469411743780221731690728750356240484872030571018066711396650397121622323714239072074742572549457682519859356030379452497001599784242821953557101778522811810894995205005837636130815761216194586189021186654255360982936396725545208895162085432998018977821324971637747993761718304164741395191562789781705150370137283318391999437092108691310211091331197784823206119052985757581540347126021662196633264250974870789860299735147675201393128313366238959819636100536494388285026641613520283752960237865800465133910355617265161854792712173937963984541315170862719301408580367784039480854132562424856431098436709932841446864945995323883767564155174762338340795174872012396694434192048583581309042264910647187850137882968550443460409712885518326957928835702450675664598159598977950009476342687138827555822221312329251309633441659924400812180490946060873893604846121550505333416657147377237769365888270806405349985611665098221050530330175067695568098315087637946507316316014208918771386318404570246062839395149496478427374299815276696673686862689617390204983580019052147944591003244898624985607150813806472410918736870162802088914206951598855625801185424302295899591373579524072653349325974439141719433868494099483795137653050899308431702139773845528868748299656327990746732368578574340877424968495792390804300777037918502930300091202932613733066879817520111224746083953219386556406923827517171122256088830342127140686932703662777882945481199060342335637304350703314310318294072400181875989162460533364115318463290128311775237729664792545334831987615768474133055638058967168129310562552049304841702229240705110909410001947666679176350562363358709323147468595864330070872967887963791227264391859038768760774127740622926485773886871446881929923930822462252823502482005362667741345101188419503445393176838199733735016960993872759373397977909591847643661733417529716632274065987249891260742090386326102098283796915120860189652979501646645595052027204955357978732472364657403419135797350711648139389323335627542288177538899542591988107204598303030102629937657821753857411065756874706789478974713421335236845689288025889200043264118254776138942578228110798379918788881898478082927278050020112326639773537563047697828673607644828675563070258052515365529172406801843647011573326744235735925513434529566171856496051002606814635572006759254164233856988954892998771062486233630443186495247046084583732129088481793285749853347593760901404282963382100026603454567435200664822313417507306322446476235663396995019402504446555092608863148057458675687165552025414807930543755371314821059326924122628307496927164259354438129465222618737852688003478969098179701884608501869733277042426231547002821606759083601810896634965904122066871405478137308057739792594061711818500573915528008843401059072251995677105078811801217240247755724350797765341829098238099584452096725201751343727064674132695566781645589738249902413978189433100909436452308129837572490102724517148141149361137416507548917444374445689007536795956344594086044221365730890878204215470982121202793710476588494787433703560416064182369720954805464838202360470914574834227471995209214624227890063996977272508054392394478784574564774533840154767918822528966842155829417533782883976507761517882043342693375407467295124611503948509704209992554080676822234704224554651701433671091463563011838799400671943824789712516311516858149121719679830967120148644564935459318691271111401581063130522270234844631516062028463279952324233428096952551917968191045228836405653004195114890630984908089884442733395401942998653891853711593804826906615802428074038863831316397665275959521123975596498965284178323552492383194852127898529491262964005867894082282533995876919464150040821799103401200224431661647638035773909186616266858470417674101823673033378058634166807692705783469526014271394223166736110247621800255658109120437024252677839082051106107660073910998468133696543244594541962412689290371810826863742054885381901996263136893283248369876246245520710481374518961060308565784653138221097760010131168547033165982423855389300012779594109986413397305955741436304668972975865546809896304229836245894956721074991451420440169695028830690505857950707945992636772354194181611982850508557261255749291836869172412953868347887702869685862090505223589348764461229721237999311071387545823631330544651615948113881583861156118158659826384816400517864036624196664050608624076733799681845196170466430700595232816647123690492939270851017036002331738123684235589420225787841467605212143164848064354967749955444451042475441728035131329629951729981667285612646882524799918757116431795449415320294966549795400029441581154685245799611542116306174800391755145029677669833653962924712085949116073267501589220433564838016768126714161073439310473132068266949580917470998682551064873583060454625629070829885180956207651228162104262227536152514432073290454635171369781005340217695727258463976668795024373177348562064794954041846386403667863348265372304863885901642104915450128285871660072736072062973773278044144195619623021594531541856795394406897715863085986728079766868388370527254348286810733194497395583849940110419109369499856338053442143172143883130754185345212322898768322387953838799263726214859096742174270316620929336258646400874017432406020182296366770592931392994027915897031116068694469578804890446695391665525237985851176780080827298484227515352581169818672297112260645220557048511411813762705312499662424988045493936342284875087118482563324773583784759221279787898633108006076081464894869048700162166317590518952065581960133197437679282211198986911636653064826403106874430811938354162709060744798899489519049460265090776418356121941437866738355036413540575545369149557704391815769560226942735446036290536652834799853844276797306450347938265359512210187949974016713978153500562969685276952898585274616802278485838453061144519737470029886515092790674196086263495471905661184450487410482402926348998957816297003023019388471888055683797655332454731703231009063733335815687291748800049535088735596544370762601842303838837946467981526109671191661603076618568107536362450315849434351893690609456932245647269119642680619426939583238381241241453522259939471933122295717913467986544103774872912134053324767145061989901465468545170258583696928519035529763929808709682639304507953546901687865082721537695835997780490475206700768081906131793084267916394876336203161165609871500905810718908821679084797607299527707774553301080878874497595626796218751708491376795670097039447596913078799761768553836943640227151236670862270077384529568914715526200484817266427260211101145206564332558476619065911835057380604523901038291605255172278702422270892186500544536261778252956692526169517767239519643367959540787141765170596166519963626995300469586923106032032330199968574767005017311184816627032886875897630616462320480142271950249852828412013209545349663251300284382675156978389116132508355017574081676904474067343971906765034943974058084653795247131264283622124223905507874914174757616621555369725220268779428659568184269556975011278547624743567389722674683910445382136626740562581306726337181284303688941839472607153550431021609524724134567051137135767769306497676930352713336549041545705706922593201164944750213159332732116205819439233761501488896895313511079938335354761811575586908518866350107568815126102309666550302779003979222496802880911036146875976881339963744727237539801300327575778046933393724928917873924461031448131070227984459663715273180036331623944430175400785084920254123378173314761349645832295525334013893778215689417750433055757245377672775416839836476098276625780272015467433471423079376029790321282414020735989117687798802043336405554427272709452387996212233354691306681203034224590066553748307101985104488837130699419173689189803493872985230885808803247869546207724285618452005008116589199609075135107622715663046828045143729907772589843970039784527522046397993377041971217216414483612299533923127636282274326769908843410714805053179071516481889525744309567499697352124105027566523064959569443648259219459754019522724690577912026014716528327211863333361556220124916553109403544451819203805970332017960748737833663886663276789067700802830726157529047812610909436577031806755205240731264231368131582733969219736700250642364929031478310766437178465364397108429717344828423802058863574555767743441102868049252196543421044369706074462960072303643377378689505795163398609081142870393198348601127230478379767733052640436526815774661593969860848071664861597769574026571412198684030784157849018676652505542296934206121036061964819198027986186693002549697017163149035423679447019313871270938035622167383141373576382389721070795433747617472469546058332313583571829666534704230509382326493576699807132819355360951744278993404553898857433145159659401662435254132586380372128449482963020909716034368234681688856484384864248748809953526702759749606598287449912542390863263635642455994427917380150905537718542308216013133328296108844953555368607106539266090352254650147192463596067173653866893029684552829428580612372276100683769494016337232167822904369272649625201008354152094888912234613431698238687886766051057679884783559653415244940735107216456117522770421169230756046528437247757179646355693882931641478278366573329970228625933627002223386014006211731826929369215293097291408307617764045918096838551905730789797534763678474285490399672255068468377485944599214226101981468114409288598194712564678411013235681577322074139487683673058502692102179161142128969235417898790364919480742813885570960371904040994497385640844377959814211687723420643182813986127875263448218713718223721075370587327966121776861986465351064603018631481842701663262889517183217012811560989288476232133972885114868099383825344752811393817388127127637552903635368588173577816018158101706053375168785474325632364486920871653011422990793862448267975813963257017877871493495014077246449351714013909618426678448888535661106548156498472915515209404353312628579257073046548109973015981293553254794676184697917598274322351560936642571887375275647800112155515956924952725115858125810161404118124788497142769296399895701461130785207360883250962115003388090817410735330360691075241828578473836323895980182474718565071281411280724800097028314572484316232502647393104508468575770715923779958086269700623910297577776069999787012709975968004647984520985557975567831189486365731927827874017311622923406756219104236826262750419497948795705133158733530608069831151158136035299069967623991326270031241543920693891205748047868755643286684225803648894897095679756880859175749297969405556411572124925317801918458698118472804910249336142720257932351051087436691235218782475986132529628673227380460749969982533359651597461252039807956100673351907706753499754373859178461183364806530855157576796533642135295030750473930683553813731325296746875376594343662656952329266214799757102962595477229778869484253134816232883648527368616236900736141598809901547878262762550608714365070786972619738978471053795531102493134399780068842233657559740918754922311165381500696607912888253131266236974664362976583253328214680852626594142587357268633266957838700801281171934317815753228449921097495728462955118775522003880475601445023034874269978704020142016597945627085965677933532247769505227680181066787130035786083649004266631155985097543411622796325088889365831181586120937833866886807616056701260952565665283538286911291853173375898142817285402533889424335768258887431264829286078592801213897507585111974768005805176306360517413431828835508308524930293168770982281508398820970853563655430318119009298342899014890537932025235714493670463389872110942038665563762605339535495923567829630718936627938310238014990938279064452437311233431341108852542332060760480732158127964465617207256816504842727769335095431028019445176951815744076556302191923665098694051813706129527230477304075539338532057863800323286994533246125692236879600183379707210622496981550668219260993986480104599531552482239717783406318743186398831607866193186935180293626924583778951182424222155799494261228678500072723099233481192316828883352970723693563470520539468886411678787615083471534269896013958443271953069476891776089718669818872049829542342155449619198237908563590012718782882565200120344462445868304120395007853493359021859853412743643964227517660656660466344024337310204518685932281961560542007025284261224263202612951578528831076096594495569207250842128840714285129487036541245078035046551028290428408239593195783162732843817674247254858507411711224592154803678221764848172917695187195736367200250108909416755768607914119027280297112956057602322603763652788203938190478869231306122213579576811209931968568019280779798342412812826909212060580642509215214018284611918641310253446301082415336105128590786294024214531390794949715846684945143639340229077372596482924501129384066819224219463821595489789489699132307436040009305671434511984603822410564940778085148490046035590883947290762848990408921110213128204716083152839182236474952588110192851311956873734279933295164122434398360585893975619815294392666306543047829913541196650128839627272942636668920484438909135893899228416868619278400356317739528110326526438948161610213439467421284755143152070223537529495667687749866964123316991099046063581504649167943483885953147319868401512538201265315665463029355825033927293625363839287505795356564889392551690447512106309427158075728345930738544173356757851594568630364203089862238114601659657987036176475400826564881884931871115381715014313452950722137071213089915432884086665780030379166997090903293917515148262429792916173283322846762595617038524775023975385186399825078744107588461319428201537702214232922059454519086018814214385488810026967093003509635629274822148789785133335298433613063789041607706057749089540842837366301250930030727294773003189516483287713271363057363245319875859715702566503988007097268157358477924634027976040187887694234139658336179142825069911321506769400983537768564104535337541129458845168448467625406533414268456981254397287142231998463286243806420154858283949044918034751343828806261505521520795904692024043069911574685693371722040135932531489814397293223346001867996624357439880958011343308446821166220766489404540727113592756756849273527142038474196524418909801261597907783341922013454282538369854730341097634272094572443536339320137690231863947126267052144985813617066227411036505584287639154872549874731302803909040448495046450247696804973989119360784707108379961066873188816291395294606508549515253012763505631742657104026586668530528720427333295534390430797788394605276237227762276380544074440432775581684025893382773558990768031569143355057869956250484780967375391877340851828070662235457315116978378224376464265268920688734509317319522091256315790219221423953097240193725300624715842983685848879260237175131739065598273694341938847995347749731440022447632194713499139116050272262949303718498989027760024267534858089498293595550133893446001525253606835418760353938333180000226024062398000990377083049015780017463506111248696953121302318100270210568431674130979032174850775738345869120761605305841711356889654813295241976902992947705502474347857360430600517910135242409077186363417430473965681927195289898734660096518737986539078647431186845443951181691326781585365693918558732195757851105963078829315734204825334656845855182323153852340297685104848468457510636567853728272791505736609032783918913301900308702536960753256673014677593489661875129912535314469403434026608053741520387935426296590677612389666632404297713904810562413797433632063920505111562832087667021815337548371335503950845311724511098765046735337539643945047750934083422524446712920004201913301431420904666072544282597729485816237342861761472811746279571573347303675328631113410733079478864598985955721741277607379622569043119219802054849789253462937639211534430779573327854147566455066382701172176141422555031270350285939718476221237032321802243878987488454786348747775850257578985780322720997448975886113654849716455178730605811997710350449021166439392450446931803599226408276752683141373787571261454624041544646172386433389044594438421244630653538297752605032672218998453778549737987980208801241052490686811068233446916892179539567787607348914515408238312577577730408288037073383088698657567901785350210805333121342975495392945781376655723074850643162536768095110832367475100438875301743455101661964305781202094789053537578556777921748231180353486209961144616483184607869620732076690570864218349149993881750713771857823997796560883835330978037143930969452111134265862724823269858755291748636783785477484303770698489125175599732566501842084473642036778549832148984348362761568626861167992066016259600319653098763357944691437915292659372129747166818020918597964313836396266639996847514031501390012586814355899774923143698410452971679584290401198566660801247483527594439400769560588071869890298526781422592055899707462046819561200053390673927563716229739350295829439793821219535626579264341552090584692895991752299175420434865581998638077580764285533996314508621937158340055173994212646278633974793281142501284715808766766928611127249788413748377357242271231898263836309760536526609999690577178800769234107363902259274579296714058165763399173317573653649681377877600809546270105228760225570567245589836575411539072826359816091777393703442189298907014937662254088163900437577272047146708501423278775379373558909649939730438349230351899797812360465474124850128584648077943053089409227863365305401770253902366663558660519533319637349309104134269109774138739384738760430555669783853876211469983209835672088364307223804906500809641759055109474511943775875134368992038453174170675986166664434134504174172617794766307215120087899514748440100076854534279212759625306826732726218308815914935099807983175886735065121668402335369427318099283435182127567101931509531254102896810613648537168005262427152436364379398107274983677108693464037753225434218528103167584676514218052570185506283904192664384936249432072988073336401096150496434879043257366415607472741154916341827164002657985271686033236843069954056926508911669357826103226763572098549117392210543180043194038548783206224529465719497660175590113476662305558507399352358847615873198499522806841376704591134440240116708817490946721238744496820950405691677957746473125715542236313879220824669363667637426547563740645058699172184199889605500878623583393850909520620697887596133480172791766033656041872733181833347823912053090557157789624772685160154018275900222317706247363144191511758044816508912301764601104411035825991409492054496542711548214673603454733547580356217064791041991304703122411740116152945545609497951932750539352135949697957758585739018649159381479895591615171463264604676518466035991785248588762095487087164091669529699688164942768195010722353271394822687520933964305595964351325734166843057848237870305420615674578009886576303151335394490942755697642270237618677847423204712958781328085699490789612468459407628415719708985744729118216428069824012489935356443757656037987784255899281434332479747373734563128143012698796705463048894060017284532719562091372612879656745884187664435452177288286674151479347132098069595019834458895561404272870785361859841009548613097736552161465515336904919156018410626414111773646794698704177179282794373112984603745928628878492484745813942828577175841481126165426787162185874802499242904608596641752729598400956707366390233891253117297451946283721794060938079782404416359000707700231709648290467382096927528023521195083810603693493133041963409745215219826329474671106475354071076119985454714837395821144665944826128503478269047515494066213832557705085279878929907962775295747840507767505516248443917493295564838828928082463067347744074232421452874942063699413741575437215119550442182606427737059206509794967114327982548484854289052592564713546567624257105460345438503795946390014187575602815936638254819860808236819014162845528002410343418493491648150649769083480045833837628044723581698658071097815427898165891755016234201069687874055467309259495002189326931834037205111665782480562514854065642255902409922626825707661972291602023521119357378654293687125586871142764465122491296791978330392897006030428458982173990432306771170468024258454453234452280275328910318754334998867520991151904208775484921051802445743272154003981289800477709748193437652555517184136336527399927898862038366096742699015377495245073093537323480742416191021743675735589321246908307435349916863686104112739249016382267005998738416470891046167525362560440407125860776192704175546709329056989343590662200244269408616014485030159797850163428066747954397986060553167875779901717945756639633741682619632447560658507315848383759350609075876023087985772339315013435089694149534287633938283567902243404505014406937146429716438021362954276373452671730376371502737048983708337234056508359218308085967007834177691246020603703222456233717059775790554339117807548287640104221023235322455105337064510909179811121040309117801238821887086857853293292979044550825090123724247421043071374543037550636952539194113484343441880562923985600168159238834069248985309040079144527034362991367906945232718186892128340685537228087567825694278727643535446791752399169953238882652496089478034755471259793422249736454874051964657561162130822397275255573571823768165248182700779041652826463573290263186394428407612421218685942124375230579005111697065588870603184810965141118930479860973586902262038498469365191593545556414917537479610804523831109281484623941973696633157870454627499755651402169113194890504609101225872231441348713817731282607425465531304993229747446746619698491175905582161821058980928724169969447768127294833206899721372684632356942963896598696686915757176592969187152466298260727450204575511055486968452061692178305461848134065078392220736808735031583516694752362793731619709041655493349821604959307640993329376923957214281262364331163068596820964453405175949663728486551650440046602011525955122639212396546382640685258484546989449738072696438491090690189473182004231174888003070390773143332694871873868315033621701877188389321935226511265589546333871163398397860620704502900725723978028307306704130484082272143721160352369808255592431043285699730406212433202009531058198625623868414400291089795606485240391450017112746405079334271207310619445653790449864062716625947364856794028023180033659254767682071569699848406667368093160602938050448928835293033497863356838762141089104573531198212438263422659797550473588067694820812781732879575541134605552357169197473295236328104607971535866965719176569521771468690016331720276871829843380929274928633768463371029971479353579829613843281292275593722266732706286520836021955879844589594715697801880131289261551440292921993629173895736942198530166345189976230298609819490621518932894538619127944171017295503709659262893259074074056652221401440195885380048599226473247827676215562645567440025450202972751437559052895012515428167638449372459606240256468938478785950260966710962036173921080243121130485043057556101996058940166916451168347560296734750258196462369382254122129760441487133197981032767761782956769270366507399520809430603780838113687703444819142008913013438999180152569488717991882049119406872012677420114334252558940846741571278966479009074921274387820981595674327662732592663336781261539540328098795950466994110367552960693778388163149604221807598625093712982668903184278652296913184305705475768285029994006278098021588764800427666602883350858398137707299771390074808372541024230671949786043509468734677995025879055369908549148453464622479244349660859001408289263826834113783258431083531974424323775017956205170238092707137958123118786385334559864509306480494487869639947626777324078658984244228827454733277156223552312802695654626999236514013608713074187471237066090973845135248533678018871322917778193871473072147975761432475661403364816428156215871561625060546885799635597861660219803896352090659169789368451680323040829929742615313208462979030039111624567008117086358944767231099436071292832998915841293845397312509434360900580096300894362699161788152582608012648487429244786050125056873330578461420148691523958350744738817148148011541863068707980560093121522418902672096579813490246130114216180010764618525653316515973121331708303909670996208340672597826373163534452317185420569963097007892565443940045172865382970332642602101933917357393449736790823416283907460916775643791944942362521317491915118700246082072093592763413539539352565507497442765612114922757653797331182193143333900213750553801972202788407988221978868109559445767869258145751876181109397173346839382784347892689504834460429533094493303255767786594087070480814660239758476410663279214111550326053159351577949501005235748636488179738209227403960530500337134315238012813921603338975928994203730454365299233704845124000524790612962870862175810097278547879193466601891359527097771245178932722893251514133644037744978441969370221380596765807861594038431090338982959335302892984079632586539746459228969866386715680089537038738691156572134150440777511261457322892044275856286028413072919651117120325441141329181946449837839022529018918812908335285474235368580473566113044843823019030522044548648399405830509170159887863803990730282403043542003324266834687712396160613687438255181025577179505891694489277722162640716094047609541129928810432535377928500974355743462917114710533669198832493595339704847122824626551128853869603812101389879194303180133412485953165135454552797144980630582911199425635282055065777355271161685734114584323055565454519033356851775484882214379145376292134216151305629864376730625547317834751104253269782412935622050371497383771606239822786657043832220874935566777465410570582877910589748183693532613369539858154140585273870896694462520253343600867978847507183100837628626047323591638303179532442220274761782969164427490836744772497800296223505703278428972394377917073178054877794080303623127971040995207595413735572489503476620909247345788566866627764113589965506533700622535374607058571641629002128943876414349522026487377248765192757282997154796521954439803647269297044497526268633047638930495661466918690889862266274279022225086533344331693484918665940878974264993005226426192033386885136290970714174105974276588686539938302347953453006724109539573212161577035917861455199445699414425410039226289791013910805499054516463040970390685321395448990092730275356670538400969619608305487432023216862321554647437004039504273959316596415255446830992144022717124674305383483873283605558603657578057907537987465628384620292187913620657649906911782228829259750993431303985932667426614004896100214592344451514233870232362575693369769545469803135355024801090807441288211363646218178805901781190693064869277256483958278569127489890209281119214930430443823797798985622964455879930997100393926606419629205676771632366458654742006523121143959839474054918231120002295918317357544812995523390380304534918655739638546819559893044645044178886349385229094251725695049429692062091714884372552457324508528023777675469289985122606676434462520435747690975002515991069649079983561807538244881514683885411626303104621403688300916576432477187701193932148833623443810612927774238293639018081382444969859061045946503963910905506328759479830183962756550593301073713945813471278785500345865348801255994214331396611261339908835815110328057980320036620896397046300023075608496499815098421826642034587515470657347634350093214218916168416015961358189398538310237085293491837913892675294673707192872544094632097409374206599357719568895743907650825506711725192313397588845783499535474373064704140390400817942761738175214912315926154780969934337896374884636720071488645056632882596076135176665074454556242746518888303748114567461859105515378650044415829974175401422346803433391193546521630985092149819706479709734358329936919065430891423124544173103025042281648543442643380004883775411650860613628099024028199829860619861342479154840506442900743767843362199241221094360075608525588027914217821646953621945787773971747991656541221390143789729266293614902325979847265423140022105649564148321300505805926384643552012923099956557233979359281438374825405262297523635007238339852464415074320082365228483411100565575357465868228591679506104700908144764442776591890653490669636671387342408744394719127650722088283014465707833470600898139944207909232891307718158825215018500903277215750500346887384768563604107144983923602493549020713438744024026725079043879584514200607189019341703458947473814967828851314137985595926883255438325563719944521930192512122232717894531977469217913486633212932709408670316912363069218871913894012900943606740255327070716213126996984267416400328442667925640279267804757132828974815964823911950361151297966804782290170992935694993912043196872843441363915971924350915313087585703364472997665349350305656636390226953565695063423292197809771927926397607163276953478219607423367828256531528745890645119584851681667784386632421674358567349755381750038646490396605535648595391158176442663423098788416993748013107537668607131477010497750043876908819679307632378484880808299489503569952449810720286461204198286388787894324307133332220429396566709897650586281642251926079446493110783368585287842081400188924702995025680276750501557799634721524136098138781860477050658359852577717789635467725218585552141662240639565179420248513357874238707690777530484476494306139842507788420623329374803689893703988311232976739059436623250267283299578487588297448774774273023799485106808953526780345734819513798821668910136640025098831140082559406700793156578273775090463358084717026314273496956308324073307197353265673637325067383346062590407082926589658436107646256140454383190077502889275338583060633411737784526328372912933231880251385165495574685518249893802850753655182239516216316156644175038112138159664566222236011434593430788584370304615331570107189164322936690056275158953540332539959491363600460813974244967536160839815460088587271025824376507716211594937474418044886667213867521617012899421238820588035934880037370105398387098297888227467873752542652058186417189554629738533744062969110772301616846723153543579758047232564548356247599669413142549731080050971722667487749993702572449516091496349952169510085559107393172517231412370170241062542998281037157455946712171912046849763921798894616352035958727134478580744540239376987460659441332241568898501370767469884236296019974947638417105245137081910698580323061906045819416530552051755380501614371814881277989350866666265548222115264790022161054448788478565978754638579414651671075071542607241078608758714785464358162056778398778738324709808162952985871863760692285462414106302155911563405785892805453283395643408345585487749966624977780499464937265635003950706092541685801333497856870243262413153690714355225158788237222877944905234477546945494120220633390472076879885794817476347968726843784295582641418829753754691761864273243544180637144577485277821596096121851507203609123650653295622467900597081799489136554282737319834958780183440852888549278112963208476903702054659264657979796498199841312141115287042613600928634373298782124485282234456948762918272459734128017459877890164665719452919123111923198992208439788942446186697227368647105967201939393975393839189701634896280230404918242473292989947438584070334868599363705490408055030671172360258719430311905697783738958707307354457349475294823224548806514373140405127314934474202948679250484676061008703742363160327697551024815468939136989833875060758325656987511262510579795850359715805980240256869302046469978043011468642395630211328315435434443932155665536936804944629520145649352651878532796379464449160687595110571095256807607835568704111889328446889173161253721734609210045987134119665682132619496220495758366893184315645180744342114920982077023883669925153652326632608952140665394336779167918404510724684520366937648484619957586932939712536025149957959136028289641835251992864488901066313777092006726979233902370882968520810480024354186544826257196239897422897787947538891246004770648852664314158831535374255564187341104534131700775754503858394011001484098276312370972346909880641458559069189843965486769715198073246250106104857208891062285525248849662807176690244881001706964742069101974515483965950734316675880589547647477905118724654818894638574367710076633511026959256553203129126255735398476652522613678859655856663343407146254922344659306928333588633167436260697987317502150507552406233393264884266783887016614247489615447910098416185723337954036356650039124904885924264173848234812440935818214767588681157255172445330193753680609324233276511266989846456645788832434843424647945874091564244881284911309083698627813733003060520868882498422514174536436187096745532705073239802912879063989642292208055496464050312820694275017992215956045929431554474623416702163677592160113733219003639634863317321734782549609408711659691137148328362708882921914645462888429832961383658641438083000367790380742034500944272265828028846465818037509118985428730602617182859534181339717147457718796884787542483158943180839257663716780374938434877294821883837523612552985784233006440742257561725428939174205621645374151376109829306404357225303466712037268351018448393859159924665937240002425307371383449516795208902324562576708155608193972171348938433923192186206200169066043494136551273236703140046224142463040912395107854695966192191206028782932590657904438433191460861968603067270888276135439921420805434126431260340158268007575555736979622681862494707755391895039386463040864711393220554770010732378421787682033609475660495194361001799407170772569571083925730936881511317776892250647777585682521328618829034342542404275244088831065598770048798501235772134098168921342090497796943245529200624349015846556960191181913776462968948417288111190926991116936509081223991070598359784244617655603705004113443365239589653173776372333283786825085736011464947143426532184422614635406277746000173831805667315555814252429524254278804890913828253721150233159939509395533920272833449225290170888764772264203701453023535746627376886502498105665306690059156167434364997475279136155013030790535106027587617555102501139152983049364976438584912328010177192168261956886748113482077631694285101174990031348186929091730104199564601185046198115687218394309770419554187937564039541044272336083822686288925427712979245860969000218452997179733939754606531555855204687300308889872570663708461254394839510077420781409429704009287848360319658954646366113055118337196384391055955894310905572341743317780853606254946843698210622188131378624594219833940462536860292762017626836392837259296159709773313180607725097876807998324222056685203466167980416635919465630585716592461980918803206268598227609424667496067345595302211616991541295303410660033138547128720388673831808235334346509263383591954186577125844685263416505321602931046687146043229685226219304223166865651074394188571136674151438041202347079530150762435423674487789824788854658238326386022789020507921200103919245175978764155166692497916770098955799664189306711831255628956809247661983192187045935363461218019257835241490399075043911336914543738466280585908280616521554256374154074354845534261106074500275808831714608521825337670696416814460908134126350597375286786040687048376884106463479073379454251207133582977354758802909587977839109180172614620939632992363173143600427101051267880277721599317680466934319762402010069789518596599755197054898614104440597954108707556898109051362266322716870878742339335963225268707825329026515066021297930932376470646138503301747326547573525875813703701670151907076806343834979507782751052509783881155500516477140711812399743407076100235998302398412995162927748806998614933606348730467271196242873517077724565749775578464006180651147454147132603035980363245296619006454890674151440668298205684049209463445775007528251211111623057137796302308816748182293442845014885217629759905191044124613464223973022225969930634229823175792991604090027946705320248130193455095840318009578991070750551688124602709956563884663729266552859110917937087708613271240468454387242435991117347471677850445243973930978186621729671949261847395539620257139838667142940441699192933589700944892102166764651790794288828266934020696817151125986198144564428070020204524953520521507750767717406921357295554613766644080703906648769199123943793051317128860649500534788885022800966016799983796463254041374988749314955060714216142262922796624468981768637023307236512227468393250441504088433990853865929440387958192506578804874011791221374815790771566193438177683749180599483869625183785262358296448073775702722924305967848471316242902317000728672365124996904982309888741459409055550078547696348205873873677231783058164815290327098749538880458450908030878881324741809706736167989299035065632332348459080333822605168900719873204582223580909436258940517232628552096970468190302942621823223476899856293204162339888028568390672358960318902008757576429185033218165702432556151334678737302063999894029569015230393994126384497262365159518076935759116514339379514515053006257117661782186451292203975677554342829199942787019893690062972279985264185138344710142140504539732785947009759845677241619146268451164060099721565259112671261210421241411853685063789568733007733599343447336930136271273694670596314847162899491876188252871329709119833853556303242254569570934709978810007650205011716888530085100796367954726128103609899477461524822220148143227181767139608087550600462791239985384373377179660189387288645278672823060250459633965071500536626319356309675437649313243796129887867307697324098527657257174075758953360031870732956179307564305818906813542578660346074293469323599991956444157998266697927987166686494335653816005419541716583041326023722058716074556301351729431854138334598940271819598620353130502487893682284407438892931905285406978300435285849111921922705977271781237742439800103878304080358643579204722202568849723166234136116453230620274232902582713238241692033032003223609579094454493736519766361846635926202183797567571298843248993664127724364433217577551198543872949522373235031982145056519966332981424900185079307733019313629933987678580705604575035884750074801848138677857080882070164819179184961299808097553115964330973271690894681452796395840009990821244772241520450013819993650689113539598210926146492425506043022823327433450704921399935820069781143413358366722396301785010900961946184456956120812557049775036610840297952646262953598220765573831612981367496541705095212796646892494621866074104647796500648230826519558254798682025779453278346337832861336819178024603649830144266799335689622733549540793720350858578416010427661241171291690852633733177399905727146083099402330628522781692401759932169434332387120895255728028187693299937096353646548904852432652665934614392138702254537691331411733811334716160306591583362435515317720983581146369872352362223289664278666837206855576764156035480468697406566890715437891713321802274886375625806292100781999168215882549072334654391564889536168397551767710139344758384731090154948471036923978016847128070536281328158669368754912176408242808113703749412313064064340540149173604656783898642302117854065801222380292923317226120973546577036238269528720026875397122887636849245944310129119204596342644948707151533978479806410418715731167315988849518312682475722031987866544972860693627499636582269491560033460229694005638501397401810646278515152250748241961590333422785840949671988971961738262224240580770981321571500975102854466323541179194775480474439280338770757034295166804797842607920859702609267541510700054478474724276738911974747299010414558315277560507188153033595836238630654846286436450283219879795067081413524109906506694395680565849363034117102637206390005736467424348419712463905075894656766968852316446329208963914493155671237585805036995871373279759990247425247522159067530911060992266752982069956708134985769490312261000333307280001981859055741432297409231958018051051006001373505180145490951445437852287004897749527608407383399043895904738857602282070793730101151977102250901804974254989521576025359181217157660700953077215064336650496914410633950632861322629233410365525222659830717696576385717770906176668418535584740609884094669362434501967682050717437143826494327289051295204071058992200289942016002841085373429897600227987837039315351183337429619018780953362130320670236032401936572731902623683523762032699677264141241803025579549675777399006170725039006458081686242800531222300157789852722585376357744484427656736655185704312692571506883303879651086885005785905014023924699629028099274428049147150497056233200449695376931392850238934611746978369470653873756865592037677319762154198137927653260347033719199743659116210796845820357221886708238267925033505150163703528796233041626423593436692632602389911779264102183589467838787380802199170877707217206917352171011397907124188581321406026668655638244124857033901729642955842667819665865235602813322147253671451534483902339495586723190453964419528095667731307398475615677051433769531601060538278452016350706552435017021073213756179937768613441180435381095666001477044839836103975432156993737486124688792460127016816443335842991028644283638850024292008102603270259331641194815077248324844325593075876173258184639175729563477439117685560760542147322831138539533448336688924638845624101100091305738836251370053266941165123633846310931576798049636169510393983672842787086069742299332298855279916091319651924773833857201158292648243693960264511540541514604823075588867701028655296021624827352966071460373302603047732906776457898973485477797351166371877745613991673798137327857162313816926274690242776597846025416291352067004988768539160158792839031732755188843213127334243679918778878662383563988751096233935841172463123710821089717425252037839258934465791118229897015821610008615062441357004970875907622872887484183143863101012689935217092600860670860776511962610235970804986163287001326812523938114075642781481371510669984463585804779921902206062532392584571778905301772830148848313968291331486242338058903455313773709500109658310532661572711041683705706118144403117727576967391814790673315610324460058910374928786385662963705647408766031291124247533472454562244202373671461888729956468929665094572309145125172072505298087458773685248308768470896700574799781230648964543869283676977708792879973927789773106336587854866483108647552161762006713419203991846447512498889928246979882366001119110219787885436646278786636593088020174782896410185424940815707286631369848920554891270621994078300388659833020930195284825545556843814360146761460428807928975259673044849474174922508322895247826187708276298976392578143123025896352564672037245972632796779389396106924200933821125178037912175827825290446609693606994485864367504157468163554582568809216511870095179543681232688949329755366695150869904909173370920242225825110008997519907016021576109640496229772419000194392340990515227311568432031600755342469287774289290995005761774929045480013511824701644289026123376452766657298105447918704814981435552615168014098839434553856553835681346726325765183952517790438468870819922295224297703900922437805938903463399639032291370053071226952206595732948148720155785105566651533187252448854648045531992415530381431644911634871459247336168616710665956500240105553275276347517676139925149619016331052278500984620714570828368037365745527454755206037649915174271692472359031915620289779579065768520813015616371046724991097059977806892638673832230425716666364921904068876061102088941571873764339952404901700272948491899668283027061987291361766595447815854633464641168789808849219906364359676969956701033027372167102656699485036128089230504227075162038637834526329780386499180178721364701968452171532544646158598525552642710104982871620146791058774379585267329575582599693077650098292342686592100352766424269338014883934201833323669479299979786703906557762643964148442852410583022813489861650335574561475232955685174601241407413909587081865969952620547991346756245254498289270748021679336504793504308594877232596454781310662531977663009197397798577171206738532032123976490869809783357005670358885007658319755123311916947123769448980959006718250583831440312517755020469069089760751054303740123797685733211348192357682945041389008413186962697801473435649439118040696825073670121513019831628409258448084314997050134539607047710741327251176468532717691426159076564414673688568653793855630023825651111300765656716424539027264258816216511888019130425892893341531534708801144314268484104963680167237944390657433419476497855738243922680351729104359449783273746482558279873947577746633560237619405686888403226786190417099274689635006949487978636555048568447517203877336249713967549580104156847991611859572082490149919838388386948739422541359813912083682537770071961659129823556433200069669416474421712624840072643134500535606959607795794492913506910624361413637668167178953243430674351958608308095511258917232774725605125143666351094276602838392294425692846096377529468357375536747557780929587092569884703191377737775874216712948361378664585440588700096386556408657790589090677949673495539545020165386671102972025841898794499103238865123774359385640076983397741984506866306506489607234189795880282687826159743868338950753015499535500789313158866496003259558875861120762991182944361302340824807106279944196049360020057249404234611339213888872423167091379966939073974848165898204843512534296482631871859595597975754150533498540431277329894187347620405397940982426010310290116027364934085801969313400691380193159354263539495871721340859267459130464447639053683794141904089783318159625441266653317636067371480264089340491667199904800176561559224673953995719300413625236599519167157391847309658122393617927868917936237201778184825539686053560645283967054404289202281281554660862053379928671608497282029891122919041476128703507959166282853892498140861070841055714197707334705686081848939213845826601288831856423950649380962817206789529855160248798509912878884816708568113769362245614848901139801961959808434964474547047717444089383941526198241610514388048890576016234806619989299342247407548055247334314494321835446959277612124083644732281995018113780157437955889707955062282247776062863443359221145924020446271457477878937042118268110734781142010259125289065684172515582744224658036996060080520401276146253226617129970140137657440790107642839216618166342307946015676598303545630105180133684681223208257200426854639635557401242536904833314626988851705979975965143688180288225449683870964028240001492687799074922677820945406657833806203673906874304383023100527212372407757322673066760373248475861426526020956674422486829642606476822991370711172808097667735153256220244095944529095086110564540766750192150108970017373700859445425512806042930702326026411723245287358727200920379185291058794066445746480371190817235324493192899302749768475853181421189130657895620645936701199308572610639262385852068183977651660449967885307881053984752482987310363992512826593255690330543419717224661271003735488150554054792125583456208369212798449485069036565042362822144962405353746528222503680191923583521242543718413577683190872705797974524501176922465427861537656814204603778066506740505260779313563664374178617939959689352635841192705327403641295081811772841904531088530344748343195986583357014598495752366904069072740839220174623306612931173849886060349943485534450042938125945641006037302661940636456157323564879015373653804626342623942624556986004402837751349142194148575185102687351898909574083247096732219067462386545148581643117154046086724215958155248788994376167966455905889737717786833693059533406189484387471915619982771562118975895314922432377451200709001324077944578965898291092616820559053931777699976771545395456479877302784929339130799713060059777397425313178469527457636290380561996674986023076338337239032276045340322352545079794402151520885398951867311348440166025064860463707953374416206554052240341817936435454022858674751902774998845337939543269608615111320337180645270380828180807369258940334743190874278304747468787570351851044393436825542162105903848741350142322215107061517987586290748497233340212512605270303199998606250974179245727902066734203693942597860674924320094777195922720346305131449434088108753764988417138903894741718348430836754658432503019045936557989888667163889952356432624846228527499753226915859225115178673873167747444467785029498383886629988588391426152992254192789015722885524087920442838551463637066907548122651555564961939668967992165915568589681908955253175480768250385690657253380497525747142337006095633835295998850508171097418670569251599227665831865045560931556156515601406997224965101905489555261092367017473212984268991126771641554554307781799146954275913890631632433262685111239548874497892184905017106607925161168088628299035010620438476329637860697088931988927381425740297414240006577856914346854230245358928836849293653536053770452892163606102329012241939026998120148014586783565724832694920869514766914792476849268591174209972414728941838795512051398977523312062870657635915152441319891069807560632685930757238003709733295447406455531860170803804180272875730061164490553732607705193890468180264201664623405931628111749385574343649171382529435421535898744548398371538250521643326205700202075936106976297487892250828612320605323780185278279183658702984046691008907979778863915485121931415369903437400801788155067461500859020129809145535120672864075099196870284088338068064954136726241311745959834977164719696858540664325902487597363254354434308170330674468863601175730951891239698499425679289483233961049199253440668017496781480940022361825081267570577259147844530885253585243455396457266196894431112280094680636108822864109706202457874036046839418072035801023968364122712220641243129524556549357954496850340138015347709061270948751033119665719690751832142314566743411007351513321558781877108653475918219326115445058950791020868263447802119309180673091933216775041305006777824991098755012190662742352942977437979760538941786160887941077176713385750580590613249981450197972051366853770129264090237603364562647017231665606055488390403033481435198569662890490027503460994135233597961706154533879126754418252070443092190569176160309603927296946282406068901228523136502516062448021497554440638025491555204720555023249914928568399772144533374796566667706637101237622952478326970620335377118896384917882978690559650541536168174549772497324367601107084727429863421398200295328513885035214531615168158319939435981920678236810946165538273227327978553429629586663856538363808765011733815121618702930358080817634453345615200094776043142778416853392902322356259379314222301060265535008514269610916770194690928422081137306843079068921393198300790224536161579699936347536248265352860686205501201598331176845267905028268930972220175022656909656993460445890705803658376016804097813598648770240954810114917755330133389192070699534932492604044196103130019121364986380367249676573873909387046808700568721448304788704668180667729717622335801211031671224462747012609475077958287897147031016327762941294239007854464833687664868990658811820324998775002264138218518120127150274034427998503803245020869886785315254347683712972497050497425627502983561272809438037383988460872833966410511632740080197080824250984457888277664837506592386456015488476784388544652454060427161097168634091293469084171032415105227699741316313495533898745118153702463582164010859390749239653756031026508927606034054987740738825425309706216810208127103098516688602547254350613251661585229813684080780123827970157932915550119534680849600991515570608613839396911404139375179057295907570217461729747224048144531186320638129679951361869434094437901608153522393631757226115875270325507075988565414679731290252131009721638077151727995278090487443128838989642745855425753627062811335127827684802000648202169083681325367073376905725427294677046391738918947780444690271371245884249307813497204015485869871915740435143760702214942956183345359926298419113793404702888341832558551612000767321743258630871141469133842631217457870875403828005409645895175713321518962230634263225580153313427136126649733352879798860779737606246766720203805679318428255514148895537310565844056521958921311125533454700327933392109241845889897038570397708973012524909967251763372106031991548550866456616461429318981846416508384890574894088732803807837096885501171198800887926236635003967212065994022034369253425347910586992770126227921817411967668362019539973406067147164987997138964687936579646822161880936756445318962081400567065699155713919561704340190868673167933025517099018908422906352054703438627690234912977373681312278814944616636468116943807960525571546529882759155884702105301945682433071173874149583075652786832575471204259715019474948430912092253336525711892735038147557149331821834272820562648500240333384520979089038015445456127519241507618741092390245576446002301890768870667314660644886932235153907398665389803308993346749285979556206060101630065692431123448914925091165989730950238980105110233508122010299319067976981883654797994557424438273420270992740942538059744435800983652776822144880655967237106528798970805242508917899450887189492539547204119286430883537360207608549769878240447195199830049276750759232860657561955353763570057004214023412699088385865792921486848694405961917537282341239805158089431243870232733860019127118261514612452675618849749683005517530742051950971690837661319611845542595526635618245923590648216054359002229587522929792751011524567762681740178775705693425001453209156388284997672323669629856102766377161983604692017040278490509787101168621232016489213050057519847683422838400990870275860948418388648242546974321020743335390170727834669465675720488504953812416992706207067997060107660677907876264984680288920019705459350321630815326693849450335658142399133257130180049264618285977630972702914187239453108196504980585749877959554198683330525767803759151816898502368184461079674562196529162279277328589960408909312478173058860840235234839007023042703563570915777836766650810988699803867141554060149794770663620718485338817085333346587205597696515106323781534706192136626509039056686233120809938695084699662638771627584840937375643516253058331780413305407258404330147106259748429320253584500758150846715058364961326643126905472120670576695838988804869251027469645045730147148428452382332085872019433863575044695645942450762268852944556509587159631420201107966585233100546736428746603143687448756921861305274732718374013210334727688043628369836283432584837291070336169797786427461907681768719283601675112049981245618592796623578844986446269388008553379332822312308619003284243314189562006213696091042480456602729671446442484978385017672580613555047890221125616928631559959368396528199407631434717776159080063390779310052321731507496817618970263258707509466097501285010113935153968016901548355831072235195137563874109084681474709243295075312941994516271256349119040291497286866497859150939198036229364913303980556141864542745245087227989917527343384613734587273330864381342032286718278059104098092194342187063784763235545438888971716782441602189541696063655952411994758820533146622071950179401915354785564682501790682257389784702449342337388414233136065164552296098068427279258868263206481893683133081777633261017656320404207781044027055892009400044614810551762838389151758833498301175705266385806419143004350026735017097135761175356894594511892261764620317561100038712743893062033956691599713373729983096882548552768135107993802397509864241057457170828858682919433955954763123585290124967122341866898962430097353514827602270808757397221269571052725979863855513007178332697193786108260117581757567465742509343958917650632999506326365317674242894776621418428428737356075560339197715882710790102172463476428663147983917613272425182890062168089971924136107047171072954610835459278993650632895057917398046300099038987754243975591090049026563772962089006007307350250774218516736363945296053762859443898453296835877413187087045736653350796200414749771313279088737314826125134853128374775207922643706940314297294461993114569132236922841943093593032655991195538553750601552911805291324938606398005662764896781279943796618831870538688718837687479392666798341195574937528836057090376512153745547681452207569955284699316386809768418881884078216713289142552258006164725941540092859712386439306529016577256348481754741261287211103114851825508558308361852720055750043912622333972904234856894448477737223149802960230412574081680852784521925967295973600696008195309666374891827132998092297806580995075969307711831101737187509892178649158380838040729818068217984064710733116487479822195010085499491604770891757183305140252677816348894720127389177545651449166428143208991700336721304677287493607925563654797820254418818855005436404577906120283117126259477849283296019804977376695176647636292276156486092570898283072116044469517055605942323044666643000450637718012794014088923014589501507933386218652640561453606244922184058257028028374956076558025981271657309079343470968067536395803922860982909472413135961327867478728273311063706279657427719478825984742722714680471315157913237339835406453017408101745621039093041874185860203020901585293670906484686910692550274571430338193861235984425259812556920615218955690051513068261232350570201759161262055436635760180401181283511652998554285332800197500670348531482767079051397482568664788297411696717199825871284817942651518842835855778179794847375104301217689613586973831029605371262391142850858409474875903555050226604194134229629957437667461233565333043590365339850236849892577430380563722494451271995780101946283935636316590948081161598812543848553322945957548210475396987781530774865937020614319494258834101938347298771897458456211884476574944504069272563572159593847601825789189834239883619576204948818026080771648240902025709117502446754964124526904982482483875162599532142639624644400225934961691354224847417950975292803000533330761203734266561438846922378166177128096893969734695418631169439704551589057839640891678916560781374183498125937049311413922585777751892310321172187915288101515757173884353507614876552419765381819980700843440013176956591048980545394882177034123694009903177780573004122229549009502806882153783093007209849362242957388072177112911189447124838490226669333503527789640729254178112845035326329249529905891608876030402495147164736835411877835990069999866355795343747645230663317478691906113173238882066372911348926801820171035760998278340373199266505008758918506784472504771186891359691351570909467763196931521655800801112334316925183631547517779663624288554163965057505159068884276779140670421294454876213951631520359086129296898604114790589644995127356908326930297884224465359918579743662156540908085669290218171082339305028002380016231778653534652170272015534723046857998169209559994962491981133959791267570955578920323709908060305538784915037678356696771500136417971375465025681053495790941051987805498174038777241973878865747561629448980173053024742310900348953412578566421248245322477803393649679009264536318232828166292421038708147964458583714936941635278100446606557164913177931213737791385799775608811696497024167158411448961321994807414687022048915941177091869049014972628946874804759310309085168037854696891072280816814673097941641065314227769115766700287786654833921171297826395593762927496868404808224427005244125013102220241263338176410212634085618330777338687350151856863181200038267465419407109532342879407332304028059253673276030332419308330713021124582486516039528346793772468276408146856608504448407451888174780490415666342116938153195674245164995141853279238174324218759044140042857374375445158924044550913664196828874081975683927624557185542215922526252948916307267698821233904545810501805855022872395722917130026068098626704755579208832677041498697353666602156478860089574089905420795585126580875077037406225886653890076575556410799620640604928246034733323283946796648210286892121677701515404020113562508336674820260122286141895122432401541842534280334353872487678641158105386833609801621438481936545941966837523755395275629521230244778995782966432274986295291604102335506400548495338150967570533995141093092547936639402608558762287601542479045557162638967624960389708145812738063851650922029240839341350790574167296544184551337177952868106359012978265903359678006123585248947700898109450841433014157170740725890819966389713463046150946236883695066091171894377477532109491843595371914219972103126045678181773827948755760786030182558342026751008085940198849158202166626112602244014908863247561636492473278351327666757403788978771425744175901436519228980875145540309955531169252947232247407909519088055223100716730631395156794187791725544431072808194131513564304598908746863555095916645784127605658521068271953350025722088479404514879508945818285763260712806405589123219634872697106068281197795076688607589909662901596676177631361082196216519932729912066039984068674389800882756558677737008110690693080122667149925342782693127215862776781274332126437503565881642494433618295165530576028917570705249551051565772450546700399733446033140526826768573953932125049823037741945280247065506581546880304163994741950004017071498807361925868931931728684042502744999696835007630747394036718358301537473677857971290857909815684333746999287302928403544170287865938485284261188838101202977328633068882821592492714141466712339933677592615537778157052578408464127349822945650150949033160505303636858288008800723374399406669141879675738118563038817407546689725267630266683291826240901822462779194408898728249212981647323213199012315896957626336222035816831411363078670051736320219204841608678300386238281353018443258071774960860720620573039379322816568845526219501220869185894889324282841663007741638392102994933339792953612913890155910490934965101909681005188775985707664504183051004955798884510082035365730707205251529548412366787519276444108597466747505316319191209414776642362789257063167502194728197134732712204450889815048159658922851326167739722303100800423998720638404460325209614854581617159672896463478917835752025312176137159394495546718823721394075970070979420552569102773258906722177223215243805232635332412833083834707823516312667684276462124028713875959612770028417976442379197466754194985197668075363456173251406893989006413551856094788933023918771305133293685945193878134852785449317567260208426331977522282025546540939008685982251417326594948920317081884533410590410415514600798601754035783362293951446733447661876152455680075567890869749272490117011345886357063686550184409923843296120861460957263761623606969882324674765629821529935740185387132377520976866743697779871430929575504304206879305923961644270759210859007564803816250513988097478282091165392022672049698610437624473811318073565851728308506085243120855889612109140034552151942392819488934698367041434891375189958917100855072402557995592803310824284179432283880968150541392901144835515122170338322355420935298847752978945940221051229794154170372689413441657054655947765706554970038366646048601968369887934141707791565058593734017060052238447940476809879744478159947948462125236864944553415502510297390788844027668511169145751167933385219119227983965853497852022537913500487076576635550127559065697759283776871058109836327708697783776622086138584688616762203238169580220534719329598007431890144632996685143666858283161969760166138478953603906057297669679410601147212729229474801833337949084960280485370993162594064125066625831456663609857024847158806987582186030198452729865637023825204946125440077096629155356564191381796531447021512540331840556575027190127932205065033551087870213318044522402896603321037875307652516133304578784938550339559215259233885431595022596352334233376452089432157724246695220253774097392406773898967931549001921671054778346900493771005499214759715799658234781879574464089401841709119525544857744400783461925632210238818089095254962929945743652005711030738891156864957931020575964865601264170856181315271025574263196848544939915513419076633607121109359808041894634519843984904445260018369250645173071640794771246402291557332931201140505123213044617826750954846206204756102232888138026361427368850853282794683530171941672734672597618262248174667075076177294800106552827930825366697699259484435812536327247095830175462599753497599158415623539968586648629155308603998578988326091059029589418302944239958974495673863513918543754003213774668518770172612675764104060311429429723095218151815770239213846972598187232967967375425930561799595578415414188808618432375026504988655010568250560082680293656872861326482470348182647118065687124663125012090522248136638172184290893877358422843928098487257509918397338140374182067068720887850006132632512830172085135411982876630248777098534846442257391306902968656340502679177936813786363699522637292758518423433074841574745082489169482471590221124141837360474728043609379289315374292377066839197867848966697131974624387155380090662996956170978754032414056966929570831323717596401357315746551567323034724995760459221089263205264884101026477872415592585706480783085986518906613002116216976316623418706446925295746886085140951297472661992622898107919475602491583498075014441970380335841107231754338557665609385216479090705466425619797508751014117341220595130778496280908012009312938034820931243040305790009165632699067391046939351887229667922078356764458209914981961912992553568333593289288844554150884772552284089876872336310006808261508547031923214471724694605743143762165759312367448213212362544125037000505308666143865540694799347603881804764511656183898632942836409230155685670170521192190300231564696131018275071738162597693177538937325797225621370692100464658008429135938630701246996863551229436776559658498217868793488307312103148292217667964567000421056348125667834562798619864286974120104754507748596037983245428818896159616143154924996965900795246047589403477345199321386443815144740694661904379907784477992289462277840940891807891847599317950654936830903850222494032803830596924303930701824847739246855224991420829570608864005929960387185555901020121902149289250586495185338216438672824445942115747207826439309437501078948637473150298852187149500249273382594659193649078204370212136828381278353387887495897948345321987860277868128768906408320236258366313279803794769636419486731960029565683623005902604317144248104229537455455012060900122176326249853553163987136644923111799593667835915536752086328561842266653196865627961551059796731608291755148260102961131277855783869869610327834324561798526119170782701073133675044417762176251380177205337295384829561353937532487132375153877752460538860502183850921294600161005594687704439939832592462947302867041915755575464211624366378666151480652999847563490450656933546547963885989093057668293335093486120538156036429007020129857825105289667521725827054028968775716206332921113384601113475659432384387384955527042243947335797140895797717739626277698254699554875723772524794714970476334501303105648792954203723092896863097997496742576798697144513932748545307000830995962050543576376418085227168405192862584645134513949663328284460006375841372149543551521888623684857360659000125964597420737618328913684982984617043937248651863554775553812691617088399199993930815731689197296189835100869290547748434854729939881295470821912144424041820393449443777691027056785193058378081257895607243107774567411671957320737702025672106431385464862901236737158170592498841353359243766894566787948829013702061427246041109961375309438275265050675744368010369932886313559656380351890042299928731485624435824103724098012970290815556607582342498622863575730324295744267871674675337101554456483162781778838793783972145291959818507701313305380982766651344583743701128019122980567123614618333141707559626742513556280468674825250508430621619524866778996638065565826853443709465877337131301748036824213930413197450260282291138511370403271304311150229265323877604108526458146468050650732789886861047121286148583388225923279941316791276998610613621544310771714312025512221589631503950586506009394775250069122092587026610110195795267312446429875750540287708794392589302017990630883764937377997312858375953972410698517040927555460304175414568860919373373169712166654674693529232743594801303264567460155985991661636080465233751732969123514256303925682205079717828947813625102896945391418708166122623709654549484326508738683248751942773692788800416477073142261387962099841618896988030893840434464170953394656629316364055527978786945555616212969587697840997596926699990195171945706671763586935871467660366590808067110664567365691132628661406513969886862382514452033914179601967138900138510056958247197340232793571957781917903305340845399156243990914418604056617832312099064891415762361556765454886743161042803153691034566472623088542980916927844109840121099690854552797488682173183132474910807716614497609596042454741182003686130641552911412797103221581861116665231278515665206766483935226960829235411456544668602483384399872203257511274652221867769220136423063609085786406183267674342228113301838919496622403871538892256642470540559640564818031322387577040717886671403405147844927068399920113819625863792300459787967186559284825516557814857129550486887546973819374089568300788143608009654467703702041675552731874019073282230198471839169132226705279177895762695464381952781460430625046951362198809985638478363875603178744780487077495786603729863714615228075624610858028660989191686997118778339387257357192769572566347137023900525795102319188539817209122129826248474256817198494210773229859582527589070289629929700157165732789769062690073141759710289253923677743905840953452663069747733180138117045238610432980274238618468249085596232235795172093685344410882651299586341258399324372159842388538515546161070509161000396637629837015363227375139255059307068680448399774680862741591252823629670096216214406325796565474329983258225158725992958346865701051236101076626424820454114241888498366481923217301662770192404667784654831322704437414194603410861769357131480029167217549027542105462864907655334875269804362786507224605432706538384322292185001939789292752857415449412681662953035178669223321845391871465933354804636107209151284200849696245894877972421385096613701448554460696467056287720459939153587337808460819327737152184629749638725372459093166055395624811078821178801384588526929710272839320805850532751542378134264912081096144703935616228471134311919355494524007800364742692135442059566706054086479353850074102969763150892568894450490123258269388621455870803291845866114357483380076547618168544971538236734857484383074680453532201203255093156163447976066679442408249805972607903563158487193978149223356012691022454822976137186923930083419475006437372991016850263060554846793156677502264988650103374586723550209125512385452692460862307066810994962651311963560527930415168789681690261108014225173044612130281060869621367695879692890968291356351232150014169010021022741864275370158721562363730276560192230321971701896096552065750715310259798233648531265397978894561582835532158382391509248715767279937589319657409078436673688391991682721170076448904177861706482629691652083663675468184955766749748076170623620780551523074971527709784481991048647120668729177555867562282344698614514086835171020751641134121618924449953820183360800343535097875764490028719190446577104047112057186032260627440903245018151925047428064455173378498841008547985981281419269542905923445803572797895362743145313794302603927322480444446726117046376666701430064079441125623918809560129266306032144505955636383592082678306859154592002272446567341387556194632832289398261016638594134046500529880861653689988197198197627622772864104049968968138559883467047852899154186730327260137772799414393740044778029536770466142358996929259235323085822403864865882278432444878849555071869614141097772507848282111325497588022725133590379213157620095943598298048425681023912234149678123882730485751124854365564580976034498505380866435124866435445116012426407392587696098727675386874550994884207721683065396569807821320771421866678328594328312293097964728430901059451635857970086511329499678910997934557232487257178024668622487404808519328982531453742065201447646624772804735315779720020005083389476603575874063063344539710267747554434789140803999869249328049529454358389617605629090562104221908444801174390648580109495933513392869447639560147148971078619555456499218339204803149117673426488749917124058210247882407290407430139394865134944526887990827783152319774295200894580889658216694773776537074962608173003777071898529769143705923634010101011053124713868522436507184134574776542108223586498983665375438975106779835387926700097750874960712581509918149603730204816995797402207407737382134692035127133511910339791674288324369557315080371475959609892387236442196346159303900193262384784992820394089945430369254308478859327768699427561810451618392018022532915841344871190728905073790855772285654991186018725105815075427557372575436911915505164522865051477993583846694328715707097895607934002792484581560766557654416911349887504392232823240686884194820669590871899549950087246320653319437198233606145033092999162998077958008662375671782422538597044435308874625602148023154563996406785115451951783506830698148969276153847401230071614589600590378436071708860242226095311878438840073849349482570771566831722221520995148725569756705236127474930357866855044727782968451169867620883657899702877704091425295403047200079698901641555759633412028917484937493867178242658318162864755685674747761109049610096995427865302310342292519662912143504802860119967457251384602327439792782609356929015429222315083859863904638707592266084448876376386742752510277435588772462683416633714535664955134898834812659606832150505276267401510670060773132252810494120978667847559684979716173375979778367573622312112654625391902626378673766393810401053328246251997921671039032024644839648799030380848985316818352933724941656162854205645944131838088840150702374541998682535722373531042120960991489232689811235058755321230713761280851469982898591680115914637427210096383433222928960498214966417954062250755241452314024135639220833570805707515099251835166611348198050722232053856025305318381615839993127824909691984224529283373608450901326924446126969913787578003748049141304828690523172902329965411468113085745708072682126528883048816427512663382334357804120578355448750589185598498722264213854116128516219192774222324752667054956267933207472400854871401627847725904440353937254347243532713735182332168025078138350083718545908966269580411687116434497609652615980252880327428660024567686764995494181007567878228143643226017040116932425369701200270547998968386362079489017290389367941525526625791990110025588866484059301714534852325612714078392106193403811903116905142453888016238162807402664881843211863178656219061864188257769391299247028236164090674811276791032768992094860951268227828522065729544499197096348242965635241937198085140880688293197035608117796085200252866329144310873929001771128858323778372663717691184949548692342517162566864309508891979675649077591978443838203921798705454600102490092211502530310766955025270209796644625180687665435255704190442544319443672471046333066679078922199131600481483340064797949648276164671723922273401348912429892176828039877712207184933238746473648955405624592915724271317832488743543423205545081045809976588041736940161688722309350501791164300552932034866051915394806246780869720467579737292892185963128645025117461137336237745536417384690262800970749909395325666729533824145568156355977878355673144753160641659645925725595623293700840762768979193649376219687980102201050833530019600535267291741127780248209316374395823749963330712012088477156100502966826178099369652773687961028224031392032935936078499003700052548171917874319115269127187651542915620326439292630172275971324865459192799699286956017524626122620439384332605116245380092294296430457554454996823722799731883241304241715009559276232386478673701716419331469994162157964867119374370061318754521248938420708095350171204399697715833019622693713105753507202919243424360679117794895788048192761918515999245024552739016164466287052684723672596624835994089931757727761294978067356482378647920614258038232413469085889038022147994484693969322858691130650040637878921666601310736650488565685219655903986134286837778753515135994523527547161498899832334847734275655948185355271001612398335132194881639123916428981889352183704096688113453598775263067428947359887920614123401922962035450910192212377714078871270049572097439914724058441216263767567577633409084073321528777230862765146918409408144879481777179855459249301441563289846102920411144273649181389282648596469878399347423219294918922571584929982607738560252584487278132408028357379266680572953931912023115549808076926923398114236298288759865560854672221903600822496197782533819961386501826245940186304917591045002912944083790175162263160677407211441863892964340912408050946592519796725163388329588661305889876349265210080722594012518835532839768414124591582836583378610201775027182994390138802805704217716728345144436663588091112398271716901753911627601675667901545978683600994431045476317738156406332286139615736597229869505656474626878723137866487815602769620084131524913241524453045708442770746087658784409926675423238257396505374716956492581319861269581443127251116504806827004189168390079161735299066084532118225947041156233142726883876199829165068595999685641195129443971865890540752078455243092568759441895650366565428862805972702586365200807420393129157113084267210590466153805519729319982047839560497198427129358920974582303537404505338731125117118185462162778765310253674428450262187941887574788832423634730957422902007105701428444179985308934354478888576995282710832396974529011249626536663492178500790906905865650059683474278367542456901825534860560610778813392564002542965520434317075429667843009847145826781130112409080342005589072627789790607596675221029770505558558934810521524407693651608277731997423598877070741275751353261225778054408053365763334787973126705729290265827149739601059299198085683501041866971586993441012127357741321215898465903733440438158400539218030907239090269442018655093218009185068942802577798228352857327840292984568562230423704772113717169343045579884660560732432015506291886170262573220871966013092982671587907641346066690148752013772979877748432184571627999446965685261742617973256029506872851259138744527170772687764475015886145684394937440566983418370549770350607979639498706304456443200540465434573226084558671026459562640435296598466714426448928768604481608687716955686328109135556106013642524255627137198311098824350926193355778164325566440168169120827489296916994210097934731450022700371336774059953049425029530413958780523826175566364213642521670312039168507463365800349671769527619606856025349341067306123885111654423440600124211253247717629357605789344244031589263312983600903579775252211361926080668720316196192244681364081969413873981370852428126306184478124235973369984095854841280306675886987106057222843015271464804046968471372014422659830989873597407391149953449353402833789039715359761252876090135609875539126977995706688113814254134333974341967553215455453571447785775040095261193157167150917085118122208651531000108481648395748073589815326535517768711100504052786202600139773958120875475765461413859898995766139373024331954841420363810025610820648072248881465504067098694026118152439149658091743221305860214566327424550999030320569360049374090727307711652333321942923391353348414759803335084259211209006137761304391257884772671391215653274314662788619034133833981891425337640950300357423221087984714743093806999388038781771836696178611948991882065236652252322289036308387805415712116565537896433185117519437356645243040276091074044711633913473394506926167159257374522543967378461862422450115617885862598243883825049355015212833345232639927687800676117376439710962693409024108637536235081750501197512981777431498213989897266530763631016480848206960613235997332142587055213301039881575690847482591869619828512505288323244305252786818199520612093428716008862746369716234024438129739676330590448194052800554831326270824587961501741345865373490223279350833341886649807870188750525953475245073226706465037551481659410151662710142242761259983996425920002850922783500439714127060441067938890340366160752758541687353557847295429506317851752960896956960798095375136137420934355891003439049005096249272479615927891108761634157205014584439745262692376688482592222951468028453370607808067267189693620871426409184645398005804179718255975293489274057470187770419446936564561339472305578209010872113875454032603521816880635924941021631154085943655739880930871864827509903078044497674593790107621359547442067350810365208982928441984417353653843576985897838151221991357313613284565603048420302626171611338981201434992513668891794594280617665670067072317253762775259202801837948601453623141254658401575727314389405987942411804259421231533839378718995962497093761817544019421027420847448064134725558977388807230204185422201464058388530425829386619643823889468429317078421603169665684629498868838934919849054523548176018890634382914047711365830774580132294651437150272378155762691413893715377007824565294637714381494445165722106552745464715198603460056882713007877129334053821507536605456417037353000273325045769454900562913114613455148794988561763614219628884291346369906302124855022034147677843126114909134548447679827200525314885068306547256211573093819860197504968906530823604566482120664715485546312790457433519174779339621607283900658612862755200043114081487810238983099981285849272971374838346459217239273830491035997259664018784733537022977382253960880932277306669590311464126157066193548492688064428530388090585392671126038337594033516552009025928496112289098441333378053406625801043015641291274048814746218010979629008327271499308150853537887101170212053130983780913661985232543028140749369032148553637513296245574889408697344186313891266366725756695454670608220287114118054307000387316892198879097344984685365877947675343251271332850298451463991872294663718380777731545428926681760805581763987572284327874254180170215340623062868619846866746304911290732787494932801034246544044681639998559299307686798324871436999062545099905757278062187380331686401153397213375505895721109102525933877219141082127962512877049540322358771759642836275376123650511936311766557491054466532439953944757657857801463002806454087329699886208724250835987480906357391194340145398670913756339384992328961416952297076494285911733767945039824407554934596365814206900406348312372768166939382442198639569117912015099914305460758610148610116172639593036485991158683292716664859490895529724776090297575438748928599466023713422842399400556474018321005520408900253211058303994577484908245900707683910381777165695198153814432490383706824852760713108809777613130895491281825228875911218483445527107116613480690535786017906281764895564067474510239472590031829783925958344827891321842886177176370842899815018015988153614014361514208350237923618494263526417219322587241358732621358016757995474523596315643848288887910543058325661201663585187156057563507701095390640155054410139466576160281210586143154822045150349206994067610538635525199248629786219289376141270933674940161103299263481574792453832280765929868356682418155683656245190870143930666494806127981198055207185906868055743624271862873385261251535477160827491587058365277156399899479387629915547920709921027344345155383232264031842119674422849543630332203178874281879779113865042170375984843800589690886774540586614026202345163746030774180656423366717415476814835313753478501846932163356560714204800629155200188773350835849178229270744864778550462090461645225356507544025081378096975269075553066216237927173467248762653597854756362495111989704987663616531165556818009240172134043563528774643665520759502844178360190089625804315769696636990793401043394176405524698866525019494878004501217107509308723600939136401654736305779593726181655464099872111392309188042501114184076723239183774950997317231491322936727616701021814248195038880959176923486139184873984482530334357298886598289609351174900067392868082109329048718334626704011547287903868472007058010181354680184653236809215415332690882515476724430252851164951798861128657232086708561410898612263592305546556809046370869656585818099424996548314740754708234236218454123053602470101210954193670228792210334481076676556275353346160209222469093270762085998261541387333301700986882341733282036942459303916241842443513736645975483263230547988657256836352471217929336929412675439397488021617982121307983480734339765927152023402872128866877196666149581797924826680133519381762147855898681782458239300777979187482240142699848333913880922882199656946817665812726468272349965240997021239096364323937737753724256488363220497289847349688664447016022671090148957322341846325904943880620763854102393878856589169481388499295230783185528259682082955017246210875193518165386407281047083696621039997673333553480604852124439816396242871921573117750955342724404873613030813750149250680577585790155299473139698693812586939681724706997995236679002074803845773006534150623900810524157948815035589246124712126396769881569283254793999077716451185863768803202415195229127941839957996474039820228051435107409187648086962452168971247513435457424247970870125048402747138410503721246768135750141517493292965807256883167990342811290414326725313973086750933029658517523277756918921979729167174026999092139773588299250257559462272432874553142458688374218409166025037366619668422155123974185107679955652260274753459246436258182960388428232133798132796456564799433745155242053646554468067689519664412959870958844936544588300902270476684516117741159822677399481058802192238113747845836011727468150486033196586953817891956412265565794975216122102902026611923202998503107104690602952760919830088487196650200338613560224518578497437011715885788645294351856537471786266619060293957007720057880182211470818503324645796458278065689451952511473839760083483691798104913156459311884700831266374775582390783124603111481521364473463572684026284789463076209883089036186519373699286445537116598259753869390959430735732663437521376006725600947368458668268901179876778871887301575909610531076190599347799476147193027960946571980622148324745541841627876888929495238130165561058283320027027109772543345403480161158731858619270838746447131679588356977487594782981397080022416621014720345868975093162434591807432945953705927798600197747223246040608004276690120438647302729636385109874057207681620714519913054317709927022791666899840113947335538504364194846872616058508007380398683406472713723868002462978982683158897098482850850043439415388221634846146698748664476826649524024859680075337678408813777195295697775629887503396366005921279091446756217392940749993658125513876453339984883205041428114060586041544273034952553443496204012603980074519361911928629259622958480992336943097445712579570629860822641216514111931294729513868350755800302817960669974733864635112028798390849939767046128267723401517524066812427471779543413195544850921464661707552356302149840051728718382059719628898689641924354241974009484310018996142076718526102819620878928159551108480960702290916871334815584810160785583197422902094322482734465675708928157436697404155888472438526703818152745903888321505855775139463762558338927693563933904472900014358249961992665226933486011165626049716612612258622910953007058346177546801991418671220889011532514308213852029651650868354007615269265969466561334039649906909644738803421565731009985119888149321015904932191504760121635356389032434609320764452179911880308365149579687565848125923195940937582667457844244204141471414402186796514430872703478616270723085893920361187698234183307114249597932151126962749263564024739236571907912353604601696468132232231197786636575972982483649611510697354992947220155784989770163878226896428006915975621635046793655706461659299234994888332358248105669969683874447420075754923338239042603082687645587116902897050200854300139760136431323877943395034457013937779778233286765855289209527020646736649947735851614991065867246830631568826319011776162127317462490338722925202394088480483167994661314717344742744937249140900684234612825907328886421927452552968951512330344388137971164694222386451734525132031329134167350957633318969304487355196879260037071342003898009015098704463648592557221794187111905774794897179518042923948476983054123438810759326974669464825458298932966735141383914142296089217582226330043200055163103451942133841338429282126067475500694145822649387309269159240097728076556603146281437461316052698152765351947948701912235172772932076425252288519054739913223489535994802462223991574912081492946349431544884950487993387513473123038660488459291823229634051600595005249158222299069125884667824142409221284539672408929690012503031821633688329549136724385473033071368732852798103057914737468281678377826260451838217216681956483004456468834159765576851336484444031759789457633272624832446317352669010994958201133509086019795676448473954785930823133568809325208226636457652786325882875621994020333723480290457566432227290361211318794895668819825693859672099793288035182507250359161288611929289367005983609522159871892238044029678287030639120301610438434810674608251176717026837551489920295726265282870577487214008377824104317854188900479585871207175178497894644017878988134279009480083795713030921513717192338403465067868893549220166465543975902451144500647698496947015669432281253526445330348790430386087422508817361544987205463562926268527512909619655384280922183272333001133340084185685839836338482193844758987818626681559202232916827660815249018444458147493396977213382804775758361268406105166174839235035211801197658128857015048388931910264711627975666588084542155002432792259446962809207821058969584241290947697244046131807946819200453010450886327434131776114513347965284549273714240154188911927452691351791883040472400831745474233106346464878185962109378963310473367469126272372929555249764028259421256509274091178395879632618333888701924828146957410060566673339997181821652207358571446525686884421286004827307409042038433418872000857787197038978390768477970476061285962411458039579072464688274252474530450933163706166032113998473877020836648977693721968023497649173626376608358120201686736157877306159811930104371957024395037337674672472968510179361888908092655094012793567357213835575660482985740363636853281582800511427758169421243962876685515787299421648709548420178632007736165349239210863974734911762696152766567271243856943191267373656172160737247434412663703073173543388632903684724896430321105312707118278775907343236131793606548039842825630876614455710784897538878266441999565318308735639235568664074997866803099076846458137703982196009113133771424747913445732998782134670746214300502829742391145299443693517449135876799892483633584321912837774210911691788193067490045396087801166136367745600850119996351627384236360653573706470424696757039746711048430199495383659957675636302390069284236539110505880092284463913066266206323266504772865014439270177885850834169203688297342456728452582302853088319287660478225474205590221472999443304317571772893291861261290363577564577761993171001661941181175369194669600660852244988546253279886699209375109410496118263200178926022588364037520543483041724476576275657328701058345814968916633393525435226647198659348003674273483575135178886232052145607233171838814921096512108774236316920498669357812097943440877589278926727228006886341546842847980494837535711659388734976693246508484999919671900380068510350679856646889946994045493194694624520122782101867056169103174085124096290055732291299473874702493930021761259657092408900552921341873399643098484805986781390381531178470329626246748588176123136145093420952877725499789728119247346653022623321634130713508987190328337948904775209355525402945328680914751923619931899889471593380925149234440165619003626818636199603131315567986723833851613695045122385143445452256702706477487207502572725502457931100317421185963368204077077362781750622602746366503334418916376161983122353184215988550862420127566710732246894713423738087420803702653692481950831252303081709304885767872186569662808551676737588614564195435961506506595783128291029749456861923420042263121691481481705639398184633437624980903223363834377224430082344671841646331979283298936173299039603156579079336457729567966541758277076980185715961406605633775446868142667514699561649610297675242560177861673987123281287887623229101225965932619426091888770235863147285964280752965795085763889058182954518036904654900079854089307598078833874253909468124283634021752974753064066382420967684164256869496237010756512133486811448938308219702721809275280810044836472667816046741952753333336695932932978038128413484911192654555313823563605943878309206559229152223739135169813017744459649564314520708924376416337694858191808150158384337736597011722891209549073384791791005774897280383807157162676538937425297841551997091157565301949957333011533670230775746017293711036615774382461605899821624451162612495323319276520518096627772025714859270432194644476207660821360912728022262610133098476669800802817258052066431995936034270065232348657935175798916792086576318907968827203392924411543357897269358031571414392509089265627353305102894916845662247279243142567001135817137118485075628994950307121906441341872396607686554642994767074342615516465076303253912472154340754227343440677010031487670814357844804478963473642832384811918249112341229455911406914034145341886958848953310864849088552184855779690095417990208697298566488470729911696710620608492547280866683112922851521129887759106915574651684443606761744510988872444852060154680341963022683048507951109550340086200851350421301744763560467706768568093638242797260693041314371535961817136138998749253541171225816622190323184431251146206957800100292473217031283823551701219046513497172928101600938385828102551042130455670088807982874751435288027534587821986906651002221370555122098014404738732000768872780313041140423033965196622717453741649851064128229382883522631111554076785026119095932340198959560187979160939619135737294447311749236667564938024135873073665381023821430014118611157899449902377320783733708505889278095064568664846415303556057860403332004338676445921476268627541873687251984218629868063597219468641787881167747745984016876186131426410888520248707089986743074016923600631719707999718156201898683603873601706966003098082546112005365267290281578649418553709886906617626498502215458477692799105561909536377648084965661138039031651836224934025777812193937990056226123322976773265228476020976807003883905926594329254545888114118514428605190668804593653260451735740474346456216350474966119174583986201229436076579582284726877560720747026880431112040366616132949939023357110851485000821021402799364562090134351598124448778147296088738451427400002384991740964769760404242153301937115744520903913050598086225121571595733915009182953659403249144271675849303416033182483954492064120912927519838082860640110192487776482919480238565193405675006920942683406587207433570605937714041403408801514270384495702226305355037813061849405006996759579349060346498668205565894362850296770195510107163863148529776963099059633229299614793518101902787804322630354189558624106178062804416869610808609716444338811349291908677877116412858551668710895804004143699315045019272942425441673107624802578401612902847486673272422159105610655628177706236507746763327605041259012711840790856746537627616782593361949961911969195294561757411675050007592590226439743111835234594893423220552138094926476395385347626655538943401256751962563869658855786888036212366421570657420275587863950379335047657024854353190628618238452038612530621237056033654696832247914932280246626967608400773619917610532573349275983791405369219178138934563945251513630467519990444221202267515249447244798507297658114362678212144487616213520473571897249109165369667654848535997054129030348380555458866812760236125510893513839073204307637927457585204455542300655824651491779757091724112957665789666840776995129349536717700179716072421318520911375163776902914238843288283687712436179194555271132918258658306963562525007574565544661760765685350207021631900764015370402034672857128633622661885045931249813103429230006876628250422646482911665509818111569280529209745717922027777730201562498350423309326364601465353937577293630923979282100759209088537919422307172313904444215141908816398532426296543161324832244628320236459373505378881223495791249443539191062437159953606190115146070280268076481244059901544730815180430184301459797662664939151995785500842435398140463231684438638411445627754464529142748177788667709716038663538757509061914250645652534016558992529097497327263600198698410972868086992322420973127303191835449665482426579638686671549793119313762485586997858457430631882149074804949915411242715099350751487303659679265470462607281515475039101706036045354748046018911118302519218107111533431247370292899899579030404478914266758417088549381437530600241172270738261375437176184059921526586986068128728922502559012081186027062703622492395719268988692995053994059399231658992765194328955896449498551218353691053573307317975032030314284612314061561693579178013911763135986354591598886706904329921367960843244304168246643343812692243514433259007502088304159788854187608711229389916464024737494914524634633580982785822494045853277448002220084605865502495627972740542462785200304436667368112624407815826722674528413163465853720468785226945901692092748447909982552677167560886287365669386267937883140062674245304226924605491710604947379179457304755712884242105294377057625031259702260970241183874218566373174375914188546754033304496827816615561291965467876867635523957747267120740643784414915556126359100762811468641095570487673564457395571370395433187660610684093775005690898090729492270664323166053608701851130598573192208022806482583824375581220013292351216231090893408894403647307402204532408290255348863118631554974855883305888248096594368953067742355651880552775327619976051683924358168394348272334799494136378579615019539603953937791243096780866831422941133898617063450497472426261875902687244269881151086415763778397889993215050537766558461909430702428871970832414363446345466776772047498920149239501066302568564535473271396547957490151649680697320707796983938489019428977134784282413744965804460406903637547478632761163736892315191742365575636175035736054121669940113088801551434255724514530345510868640904167546634633517152412074047771327823215202406130349128365140997310655297080936060651819017388033898594950847965350928255639805790959616425246447039094305830957014943519199502599522953649298987565540429096580728080241472218037862233347227666346607521389050868210211795831080835470728120683309676421502552440953410366425718120799647390032446791796201491905343026329274883489407478093016731718282127020599095483675763848266737331202070250373149361200862587570632236533503268672561927705067682124266451123333187973589931719403215813811070331794476441544718361080762161025531762907964709251626810611194826815510878997716460952922961833936907620671066026667975315504814605583138547935128599350535404614624392824773446140638792632446752871267279288949749838623808515041702893529374259047344850834925863094741767556769295128671490331317189389957702022038897340620138829809435739998500388475091769222601791073902772616405568984987314282937362954662187591949226318206157875820273756011711997155144948347993110509658015863376114515930207683578971887070370502009731314362518937644585501450444487020133334583924108118676482175292835976745190350358665426665272719969060383190460021302817323580801702457935860849964587936000334690223269286468282108507895457190915555502140678351743398059878349764907570365455204088674855507963246843799870735036379147083779496844671757827636738604050691702132529422935380559650083164792427550437248672525601834865427693294289664171743856574917635426001104779118351232248083485799566100172864700359357174944992871909259560482979472069803981493638976435077391023562126737466858298798171833297851391751434351362401436811924821243055558519370813885417208869105880305332586377193722017501941343502952875242898942784429746660182658891152633365658971383992602296345938057776632791962667614962217972876821240134506234233622094611583241749507328592158485039812480814672687903429747609323090031834060491991618459616084626677389250549387923354250856309128515071321581812935920644588517216016882083843948589499092193051730659042591478087342975136489133354813604881448044229931704876792190899343424475089678896852513968020870077308426897851395410200350948331262849815327387471514493826935703387673621941468008905490183710823155077426619913920767042095307164166639261528549560043356979748287085053749754007669188765263672932108681230918078126680389935132049473330490862505025071923634181972279825889245718187858543405048579116960578802213874772427968317816567013457169678656680069859909719036627785099982311071042750324034455445811909794825761113569624766035611328519846899848134284116248517641202107684790328544167580451254679583355920508019772214269440840466701242729374441044358916964616795638516328243066576398989512467335372687395515030457272670896636460612573893500056659191362196753440168626783502986614147152875503094332940071482734378908238440409140944000883493896644889819332717106366237737120246417057621315462329762045167677038219084485236158046679708858910299637466353792087871288557689218863786988942020801410915352789852057104923745124062348566585845295944362267017038170767006078690958103336447600186773015042977045935015158647410965968772208668483226922312515190625582213705989105102899489333728364400271825087906461273647679059998768427588838330513803573239201603783815721527616412028374279840095228379648852993854859942939154623935292951919540365513436057549008348315867479111558711572806466587033769933078255738490842485706039930017280255402782501022611351256959697536976188510594210696632658332470972874418831333705845512125334965782693433471824813482730697421312504844121519801701873166631004001469043123352367947983416056627307707329243559706181363673350510966698880660412753637062444602248782024863203565840647321293344622360231412891144121914577802895782003799671551083871800968140458753349376134879350790115424553050717276094195124066625791643782187089612399959193219568413338308463905118736640198350791136801233263513526354886148366954740329630358201132293376421445144079088715463418051179597662066319861695845938858614258595690376066995517676737368010325816839490258526404118396301841833752813533852745627579349138181857075443298065190221125755811461634915138423486683527685065498338642304348960948073736944638563745150694832071251475163212078013262038675013851269445040902839568670936235690105814550036067572283690722762415578802179440297394971124283408946513696512317212819282139138414134891671677910253824278073428012434546496121901234887378903551208245336036068705683680391996531334220308001207957904876271377492340520805092793297370192439951242332542009935353375598000172663756067878165960696303567925775761577857214257251931642851125461665606872485625141564830426818243902741833893443184754082423736985754222886841128117709178128859815165680097658062488416839800179255006270446760581107831695415563041804330806291532747296429181741234202405363649226291733940135604171046360268848023008674785100336644953735845166653191583332529118511387561918438607481334820645888238733221568971999597738369239738457487798996931244922582969587187312219453591042646073781432530580268887055760113245401395977447172230015881751764905641502764810282482858142921165616095842830742419453282459883995257607628249613275267142940080099337727998525071420455597214029802816900259871570813152113413390819394144267367720381588008467891220961356016157455579140084109964361497055353540861750123187510956667386992475059853265758590281256684024717255316636770345257548868743801393136398505509251871942508999855113384102808417257674749880679339264844360610020441483192724195218164748178494724046576034051302962427629327690007248473104127288451102091111875954344677897842638146874142382845757228982671828982872152509835292762743187091083120600614166322865014941943644996943583748466356034600561085454338894061241939665395731264442991671773932957030627161716303867661338650279091053835187964661901218026262682672288276777382320426802276204718187121838765785258840263075349014620213867217156635570741904434502970635890212146988576416565911817837325515507593780332947013731203793611878886000435667752350859631191119516713000068635774038590263709496641229052391308024830524948479043428411212259997300601873770706960102152961371706454843530879383708831031143466465986246050941912635569732633274757816819603866385356999417413140670933581893705823052619491130254354798914832104260043978100458578289720291853178907413536221058519779051219382345055505434956394304839242099836416514725305063475866289289486656393606189922994759265613546378517264329911031721349677739744721219455616931676616666524871359235019262398809902241664805236541906043672029257764972396829139849260827993861968885337058883038586675348240437578836884572562900187786998511452910161783427984406218295478992510134526070900699181584106042439914295193589942703774257879735058642990153160135203648923570850689531839297385422244347747458558786819753591141879856737135966784562683657093600140461343395133505250900808696819323129866342940337333225382368758292978916291647334111748277283970160886191055089204250385053972893284534804770356311935030828200432417969913542468729936141294566409702902300057284412651978792184056178647915669474746034902485234279921810231935010541917978725251773648022322773371849443519831275525590217380865819820893514320762711421668844236272448318191839475872530246842162855489526142922174623217566342565345493633935683180190950978281099214980045810594512025659387303432167451326421880683094095358147945677989162953074532540115750340467244513981238331155404109574218901070221119484368916412826905762166504541586858683976456883174641482081897091322373886495635413466932301772028669825635809262417701425132559394298382542800266866169776859733395850718193064357325771896874357606943505537389645013626737923767234165814883723530924720537735525547774449902273998621005438496746971802845069143416031236085415438907513542377591709025208681887335721186586504648593631144742217802127397623686479772716448641268374310817073117973159032010878155302820158682759725416677453237840170569413879916152171352252772532767780420574068100987594954893642320447355726292011052684470208429771206507527605931681487241053372751845864592615980160102751180045617112387190171174830429003296401872118345683531724337890204440881170430473572551095147134623999090840835709096926677701646308812178430360553956847066232267297786575585164721306523269115820679018965083729657334275450144234858621019948707457324482308267286998262740254079484590336789249531554417217364312936149292030633189039314348506930153921197895610572157077787893768649013851661131286135825632172861180851839772733224695331446224378072978781614306834440643909545893677700255695377231538992217712186932915503658223100692825725701613651182378275848056493749628321945298095165732448481803431209726912935480010224921564876950726888924602273795354934340283194330877526330407138625741658766201291460811700294211722090243908409210952516970784445137444401425685302451512454428514280242898488485756309941922297235785225470970038176462713968841070721813913935762660358171705084000477186710609555120403740193071072576531074735539760026792530746086176548458253101357245996938528610536073007853620397716943412025137994273663865098736633558605798442566153121161301678077254521530205442945237409914960093549551755356981677426019493693186711335193465321613820127350214419397577483858744613275550198373177681071049282287804860125194050132068241321603357264758572615861127575348525954623267554987794681397380315594775980428660919062401612144544131616272153834658876650180834253844377362009635282917270627013566046956275651592003877449687230810052679102929770088991851638089212443024316372151926344846208034378455395070102345356530427074542127960036178100502079231799623202076807032074966784149525815745484417867948371992763144401811056731793996936526067378223244344433604134754305852673605333830175372042757123987030081912336941892795110069635099044297881713227646891739882137505337306288795359842288511423805642202605377746011799399320114706423129194877470459142141670231768013452534793194452724741411984732575905996018950329835646234165410467299702811131764102524849967636049455675652542557518602998109344878576020853789284852799427096935183286676629364388119345184375854282742762880678425507126495874066668019816143995210564526830858899999971722690141492529439926405162087683961759179399290011853005547804684487199076728997036054047863591020415412702534106291595072374128257985398543655867480235447810691024817546171347097365504320075060830692788340440494909566152269592118909272656676296397752526411480467525482806710875833428547582495501133182616343570159107920168291608717241426349652040399477891668217639656747768371995472947799493993683752333764458826198554703946450420401325532414444659851244920995589117978233126460746654741709003703266161598045948280321123331666128474898750726664625114912993393533138813860578792483762065056165304703280964818751560697349530119972468072950547693654686421242389215079451734929387184232938392773923648497719784353946895152266644460982790824683849686761604699243453238017125923595282110905829567948607679339174740087631146349691738737107868076325051656002590457622994519973592879668621982723767941740651146447102232053372600096771403418540113503336913500734290490658961851956007926369719312093042092732490950180812189832155595801993102197379585639781746562750277094620991351417363578141790831578728880056995879903389374099336221181806874258375575920391402569993153399275928333599554299619908901263624938199991946309938355899730197934002296441993121292788876691375271049647329509367181134188864170790026998253710670043959315620088403998528238112633735112245789244124608505440678784694164421739231921447776137664864762764982750130676653045663140597992998149042775632036232806500368013526773000125236378407050641496593748682988080824725467814140541952811106943595100644040523785103127358225964642289455794989890559515277496313343672663593333921993373985037186178034297488151049239945381154578369728642947889367126543528263365406177823582704103999600745331382854570765579611780185064260656923051477390988139497265507436747203601842758301072537531572026675243790185124903235469018893471616772315188913830280578083799406339806698707595379426469792767154716408341796800519903233446581488790231900113875052993586173517217840456294835041613553103084433054877471789741812527289371078564681093302835165711532736412183518560396323642065570510100804992110952031755242586414844229343235158978010215787080190560276837026819956400028762035364881288589760481025974989656723859525441874951070297482650569799902681926778754785931515556350224322403191852782973979619773104881148214746530148573945992357608694307190677591239362504713561042271097896248657393910640397373881901010013848165115123834876408350012035868521112485223456960458866470824989599579625722470625844070300538874366049561317732070049095983108290337389759457651710721959786871538842080812117563470112096540687022395398586939025988781804066637132694825239176007839537051407751147830082919426490443242491852521339158352791927754906004425006113084883535487345329488883711222836139214725088776594760714979028049988563131214466403879418314467367011063808074250773284275260493297347668897780374106511243723950411608279682744174879234392986572535943614778041474413961650136269423778499339211980263083908365202961756228418294697285581199457752176438169337561666780326711323619494492106447553364042184612759938913878294798422987364636404254829522785922982159968239246259262237840516825465972137468582825841299579739197113526863398628895377459290814008634880149188458566257002751746279467280016455926296328952643554740255144409673643842186050042476507902297588048293099176388171091632277992575835137725957735060451580102377253970499022712793898472804670677942213021390833217574701626480386319928393398591378077582879852923637345551926704948479201555175213379095143815423540686273458644061572420674008586642969902514799099189444723012188938575684420017466716820367385418847548592000343563866474394028710974560380233192051763254279640396346726594784063458532861067706589534937205409706624539191496246128229162180628671625005782185890362842078578511548053336325203696951618620479753257165976056346300030046377282021382937127854436165023924460957925401282071840106339159537096054899458656421791868633496523156821427741926344472453410217450427976404045624942799912891118502208311498370650388184795144643740589242888345375628861892749439341058283895178256063527940000086247797654072340177444604310605036421184470501964468317923394764846470223482725911536755749135151566551206611445959571843276544470463379165397017888536315624196685936587866786991415361202441116518087017003482826990924520255126377680749062393899235286162546790397654987226248979194015112688609802411330585612974453593072654425118701143719497251474789513286090707637225131594667331216513434719359503564696854657924149742286073808368232149056354158511665116880590923942324536149881986877858657861805487276577957795447235845352302071115430487479021513500923094111994824607725447278948442963464780007543013844908893326682734003516685628297321551390772714151607195572858248340666236025709440826024657783299342003105327622657787562449640601017042821799904914477005252224742162153336265321108341027752159459527892457319956588433942206671999387408280696883261968527072254328951527288344668477526432307425124674912960743775666845845770083939395291415184635815185413949769768816298459259947057008800711407742156361901755848210525597191747176305063197737621532332379196087263705602758684651592097955873965132473879735984982198522779511972042890474325314401235499982836631505367255884057586210301649413453778964291208597560321038401639637009764199049787741090913639054798293938778124761166181763947237185883495453243576069025152988031117989820659933088741230662147484749252889340441394114122945332638230146835666380174363574527536474551591776131971664237641490521261201096560467224431647237235844562142574584345522963124466884912896647113201496762174348858390999867325035081781959353180598979119495750653647650278158951459284975589841938051254760439785396252388942614387001931810930671743949175189842143381687902068837372137875537956577606648487092024071797475912459685470074067310920802670293783019569062788303746241486910678488332550577247644075493420705212214740004262442848676243707962893239817575839351321084445940681426305704105954509120267337028125545708096126802689229451080731514528910477722534019514705964918378975426427268041599640428210238779924050479542171432068894197503417934876977780457331681147519802373397041456085553219959091622982727589249700796268868835196992965507393944859682385615439118646152512878021700507716577143173720113030737815383457668451521216562845756230519167460177240082517381409050167326761915961762245308772030506750737540420400217475401258677106209449586193576446568980943732173666348108727114056703231049881142342868603401115166037930179396302568655719276439884560279535670747488323773878525083237137210880464635579924471964635252051405695075482498265156615462048685636369494670313500581135511001177391188760654275867406668242142848094470780174058718212069533039585456952812515449569892403706915322464171507488162373136893701828153535619182771558296524787023216310799239133477164681830752610947222620481029874641403498567519005479521486949739428884433112491021437060001037312684790131371255423532333171425507258721639272430504930998341122314167006519059363203692307273507261881989368723015224435779529083536461394857835660020806482943739920059645155991645116421046927176235687298959845581535778161180019813962025096348726457067141784856769766246755715415374229129160682638577912844775019343244005687035716975485177140341144141067066982597874947296384014892230199670502954582309732954752822410812160066870737362755010409057517885163622436811454399135606401302021246885666666954381640204901606110491888363121827817087749691936910060371785021939449768268415921272034861452552553711899009004019232784640819031643670768882413116031557196380995542767163130628804645605147382892094804900354763319454643134656274924387028643401191641987645779433495992661452960550421909101815283203721116201774816654218575156562708353043857535951311249109847112832075515861137716277037097800549702194874373277721400402167657833218639268338162808116728710431332594458400697915265630625938035133360142408948990974660675037569944573981102970747964292955117712249556003868321058370210757070164517179548030823502825878558217397319294902364974621497110857913748163365096118084751550686805934680726939637985158014953236882174451909156865301516523708832281804639583580576655004485514683258910041841670032209687921943200601726682066711925781010189859317519801862653151580337298176132885675147536437470673761309354904447097715377322520438945885794195574801189629418202007487801411616141779491034742370903263116964693413387190247491218241016993176198314018547823567314028062266016017957817676780954796920337420870992865026779655116496475680383478253418331715987910391172185974719521238991370534077879678744604220734780043233929302424084143515679685294517260464830236343326261274540452489892365619359284851934809585380579880349246120076133458748659289986595948497117855507694141714019978676584307622523602825165875379220734978045265000519790840752403650803410741161668564171004450512804519456074622619415473545489104727094010159989224057917680700024413578503640198238323456906906713323078986929809585386736588245106135354625459718347791955178309771860155154719140359581309283468495379358003071418372431866397597741754945888953732275809228691332292339548867548453064659478570377199248169244934989991360379481666063261826878388052331470785216760061774385774396247844683501624910958934960556175678348484714146055723120433664536517088377861526055727657557302360197608561316592227112316232183796541226691351559884483972798129350426454993843078243923941199341307365668574860240296536323852785271879350643092993228250964418807083269727811254923777054580534487124803501411720006385551477485860393745508674407636096922248920935958556517810444319905981430241105940886136432654412941082124420326813480082899935955007377662447501698817376693682684938751635985383701394213734809496045053535194997620821795527406955543971632868687334398577562630190582185593233812930565568998731220475307217739111709653066361714377560253388014119746420323232452243572271780443749648858012038680860395184522108444047476164615369293374749203676734658777387370047222134093876052932321997874665141082476028195601190959079506035870538108913141581863340287912596926001317499820978609073929652978436270103871476956710722515025567243120680190885449116450078374811246410381585363152520112751123354981686764678029537140838982004684741755056585932453205375985937657943353807196929745439109198811495789772293511298591679164288870417156166718540904010684361540042480366149307766877190939445348840283899346322931515280429463176528092321448624565060743793934436181245130719485101410306668052971669010748243494370797788984889901758985368495728540719870906408891113098823138331964101570953117799275807775599503338696029837428276070431890702763837534786865206739442831550856657093737823971570004324166008988466886469218567017688479442974469667229757360268607240835868880616547742203848747469413891077576332955873633933755792140295138501055283247226752735352371201954664508106802086124198131463741893803988636978026363158929264733766741138785597239757384108900874098174088813289559076645492238529849291031118752105595956592693152013635253548367288390128056515309290612108466732987344746285828785599946358833861180279299762826856130931321329714575179448054415996562714730981899838487021031039128699888562312065742886944566914052378409357343504394093999891456652398222801069806290354785244634716988996445442442070251803476357742053846887255669278568461417284739873514958593870339301586187071919482705961202532431663856306230458891479273309619829647269786781051302204091851867635015054494059411995248502504007079192841699484353417128081717808736297052029624370730589881690269403959191146463092803814663330758015903653321058654656442309864126424002838622920182303781469281684825493109529253096793356758555864019758701273547074529073242403136072116269435606821984557776208507468044274949880050017850360642481476982298695611665900325030241687715767672581433983241799936866345132157630847919577124439665044512512450726028625069891333229046010442227027945494505701397137441920666315576064453431645430592932968426723029584812135274595922099147506907378981599415197572896813806864094354650511681531948585605921874163275967360509374178911042076137991490208736837622520915461098054731435539310126161929595412869721591154710432149705033383738234769144038984228686813115608088183776326370484887493076179181627010071858879976360500894409220840944305989870072543388269066258300274139334923465889266624574044064909735018610113094977509650323334434110406049508535145112553305123722232879501732890114109453448845209236497116372221975276391962665305200446582466886423072715040230919069922768804312714709537740861487072836275730206124904478219981513430202642804037875652835950343026210982698388414968535382622135357326245174973049083673169883672591966305019633189290153887268424024973324898315974154458172598680740502875728254910301048163240637008811371392928119569494291071692270251763538911470400971061247791664170864823530339622192685234849081937035430228760223358875077633679457358508273779002995686375933256738983975613307323531354345455014129388217826251316562623482074403595201263541861489188128246404409541536185392100684956841875077848770855217032476250577298119204371725598463037100858465197078728985248765457211091742360405415405576854386522663101037723644340020907693683273479180471435117513195542933416885533330338528691490331813296517651647722496899529373835334139219062752147722584492415786994337654652186874579239056354402149113999327983216342743607229080305730251039677423641938040507301013367605490287161686252601962786942223934285802529450396474641822880910560673206355092135016945838181786525448317758219365202345218010200164775256167838997462620616169445469124475956374697344071008941979139767131633731280668449248289701865151680014344451450661060786575718775964304837033757325010367878492818535155563408645086438243199057747037727951705133319836400992192828321035489666996655766246082198412332571376628432652198893652855313425334251988227798987750231888685076946671420711648626196442916207475923499021365803466961717793718232903324247760672284979063823050140762301172737947148201987655037306188357696481930283665980327609542559032794375262073541391854733545209979355992256729819469225038271609365592393792618235593089970111765851618433533096077719360232906965126926604419769943964582163763193036182355941429011694479026015183179035463216553809846640774319652736115297326198360219084254300712039265420001999818925328919337382776771637552353506382403366589013045665350078096459511769748129544420295954077344982146728791209633522523238200652642708840014839029378249929512529725822564080921543114915891313064162419073455990468818139153117175805567846368258028982553982497837621347043183823056133775262003098705805078585225398643739983973593070600882652632933115801574565702298092252028347339235463209873580315736270885503894029453930332949646314808365777827667647175087599459538774804733210776864516036130688499394023231852704806669212772706787079555954186342382406693441565752852443143844682863242410685547331812385961992408083045255980382018610037895452106301652708058717740583291738564130625765618272023156309408511667081406632358525641736070965168169155107027543078824443395728721857269766090918504009937150514664111135868434027490652544792364088995877418676140056999947540116141117622474968951215977770537340697517966364288382621560532260283663690394663618620792363928776290165875241570597369540197364187405415617643427497411041164107645267621861620872112576668685411681732528859558889198768800552025590277378492728328750206089608059782822738938473609498014489064114147881185823215424892563627759221747348613636641183572809563012451454306497057844852218684432443034302578416579772862976835086575940293861982065331029104037481154051279663270205797995677276822634072159215387961644803451603190835890605877415090236038146788885721967414224721541916144540415462367923255080971010570353367371720898565182445981497950256183471391535429124017747606460831230650687252908358872953475792820523989396162086380290741394551085467695643679016285346224871783138047583268559520211163107739372580042222073000103773648046000307954067558023452234148075594943689523644971045651844794850727354497305493693822077967867670587616281226746712068645920552135922609213905941076699359547468467094164445973063898222784416738192716014751826936646542538411546764328036296076131851282213638712429052296368099003158847726185201178320070313403645596936064245514943873824812781487844522767710892220968364528586710482487253171925064878681401413319202338109442435154405277132168522174811157409901532249340885855634472675971288675043895020559841769490214749928378060348569505957543750517665029783628868744034455598133041159517120746290447160475689737112683132436825293964779271061582441246943228803754401079825881048721670497059313988007281707295077786923597638088368833070931564883374877264241364197911263778889794114336639297900819629429313108452397572339397638036924672760643749629352727113163795027415134917912794471421365136507130696709055208486872145437142715392800388342510711630022922771137449817441004229371002886146551462947044212385287216723074298091195387872676276554415149405768068311249044267603309108427209845293567793022877963692159151743367063297474605328293365159174739117462180744346682978711879534628211520749261508214624132720320605719275513352988673494725383986482485320909379988937009927596618530482903001513597594446663768992904798491895225000920837097956711203702175494617763749912866495593341210270766382577411908296636083262698586955277360575649105016750437894135205275327027418717887223570129817873102665703737279512377906733099374453933612554471248514113620435860488046936221812947927574695370104555951460649632662783436929617018679868513869156908184796504174387562718902264354729030367665762803622563289366680456808905931310466448727822296017430916700610258046957556761695869110038795177413295079180469617732295720465628360475596783098691642141810641195855911927759129836576131796732144799902926147252503530000700109327070759415834772480065906751851536159984523875052711786363685039430346822314071437210407157206836421941758801209141561495410775379477026878502936867977419252431597223522254128611926043763541774992965205173617820804569210360591051126014324066139087717655177313575996103385770196934837427590290428424860929428516686269966266385217592560331827721965932595600112954382463757085364154887097476503522629231655120540731846588280049132500114254600667897450402752141272380939491275410542658811631078365727519484634301637508835811705563718536738658584484664106427177196683471380320367220206054993845546985745013445881298620348763695177759428404148586028619487791092118858382437491973675463702110409430785399079495742833257708883075435186674667735537177628182318245867629320412172034463563448024836829394827955830875618826806988938917786514604278697461884198402988694460124713875533716384965986769977844423633112352323653284673646193131207090136360431118706825618880825680914520402623026394981343851062017293792804310844279492847857962657275974822322002823536413385096984890994382270898506579548033457435658164474414436643047341433496534358182636434712086551540020015911286692212805130737577245473767684758262637095386164788947325946851162475303139052994363709907262606082014253855624154401647624381277123097382296860480451968271615859504361802038700044614693378925416746752826700638147501966932999114772598858013142276552462512923067802831457861909881677832126205631791740877550917801843636639401426170111835751764118397640920469188942372086546173223031370732003576320535527686439895291475082099177483040751232341349322753807317820689666069695844471636874933845758013553646419159238189756662257571322768437799096389036760913201223882643669833423162806114094301848178750105387836029560079923141450436284956710987813321140787318908125156274842314825993545768436901294569910156343825499334795113694807534110754655753281496472316373767973039021251613529932446202216318060397723670741114219977535241416266272704923184897143842553185822848185887676187149976297005840216783838387582334434182223200796890707125891977828446133733969570990130129490909065836597887195073091740833211247409281207795304951889852647165176174500748310945298851907411518078618733697095596680503140750236319468633192147741075203018955875105925063163123761074081885989914505820262431417489847651942705520376252987120961510862442532033326825615901885912052698408063641881459141578143159622944713989298436256603898997268987040395740287029720251215129266092809442011240246928234120138772964193878540010463849038656541118550574846870557195918699112961419307096421461640655284278580106549532782455788596264034434747973314254613010863661541147162249862998289554903612569630830513685080534739086660229468959047516613655469094756125268176039757257053167638183774757850316625019127954659523151453842762665728358887755861690543885599831068043539204857619940334926585038586593774034251982603877656832176297657194722131432028407698556868024420556931301788424609618564340023498772760331425061911400750536882366309727001771582586696880336788862723268373033168511615883394002017780839431957152386488944731187264988230483563531648932482444639600186427515039522496580646854354434138834225069728655262581623187924571676161703056740651481188303797023086831688945902966371228572789844712865617672559707775176735206319586859989124196501771295117279106362279443281292365412673218056479084076392191076788525397608790329942469879940900104642708223516193215174296486574740830150803104871066203793942607315103816991534975014940689676540098153585955858902491392775587676946204549976482933952920116304235053413197619327272878311969474099477081188246700567072199734039446749702082506886677445955295479752853760727837078091071255272738409053650745157837089595446116024331769089967828981298987786265419018165798364837570573330715889342388391060157660466465299821086153731233981832851332975755651227326166967479039602505296843413369662540117844544753127897399681140283180989136612864519215423490739455153537918747702280041670371326018320397731125732688374268100504637258177821116939741785586514750444184833395318703156588670892755983587666746576845142664194479743985566819893971117271101181417991760666787347327671390422865237261924475260283688774140478037890845316624150914977371368945524279804760284690308553010115566649204479940952650335151017158266224242354497981782241755023032748978504773786007976496922416753530593542493085890718540970455552322437052019501872743115606083210072563917637571298643140614994873137221474486378035275157680156907133330137870946174850436639774196743885885475505833299111689655970826836714338850985149171010994768687089719055258001453184543293746612052886108350708437865437752406321326569952712505834539095930684695275420735751215868719902251655066693795574005433825113956352671283913723844025622508244886811455119360363361671911357602326516089850302355562466345595184037595191184874143551982063833758584588300313245087100357237796359684177685867080294772951565304190672114829208334523131942259302269612692094251289494039201982770369434352665484517114379506493962688039574060198493250632087296579867042174819258875779801216822894173486402062252137361480774107821151768592357214034623358772976959615152352579349942421478736642746090659249987037054736925769112474589230693842304367094890425489076139789910460593016026160290409478358226184933785429729701735690046669415558536121504248773828374603951105521284760467993057612184762217730684325139094946758041849262868137873560318110762710612564916766595536402492359901637429313204226365568100645105458404013048913713916333581447882317247123796880994967954839866961707147374686546139292673489863843261410657486720321057222015702045447056752299213390233131386190822912109126523068301126692766110559181888193264729163729672544026333468943654269883415162380222987038971936281713534142074640722076081035889030356778432975031546423057215844570710474255968252051076917776852564025556066294998036483998913663812430027301441602227757787145273716143777112771589229231713987767760765737488589565533944286700143482325465032894600339985447249840674036925384797783102341882670129497164865592018473712187191090558634581938646173087002769166671442717384850754423124563345289531914553676651918956114860939733866960604148936134734894010036300746120500812853380269913132618800943081254537763562136334256787536264488399262714245953456906166681378339125119467728089259572395547676968739915151059404705996420108214219010151197320281824674618426109971968400268793141818155914100083299239815117658371063090938418615049492626000804111932547925695568887958597660341633144526451003734371341998910608497421660816516070494475339487123329691591606801622992528684687811292766742633248612545010290015449191839516565935353777054201617478930874349357842350068578103740540536639342150142178664516667513894256244584610383121970976051401041270939056204812221377483026976612148148064100410506160538463286718380686661919579397781718990160266585544862134203515130691242465151219565949534032480524517129559389748976667782580282216150161408991980982734032066083716152925669507292624116828047367024390685682849173215356175305533999233743262852452287062531996180705956048227505749627710050181565006929139266104399880043179573870192608412733972582525715795664423989817813807084485969142666598195821153978758145728959964687783512084365321748233744107494978521742439933904151478764882162655864099425186917502471514419599739259636432041722845259332448925428881553376905506892726755273271684403648438575632456675553497596187568768964556766853416451644348563955701334595046792418903244552252680989836603510185246523316899205474309720979747791254349516966936275515973827344497628971943708943974517896341148322310321486878975948103009261092359003750075520149726912959505997542828670363996638158089559570411952945294451067225979808020417244269124049825624011402554421110685969762592963475860727681483254278585856867113402809014008995429559930592441820289878811955383984048931089351100295576013890195374529880860456425752363112499675606856377566457673889885055121302510847071849824264570251208655122725571357882247734048977380383782304394173873897946172950982106485567918253064115121597586062183840071941439662414535312529621752806029378031803633827335933041428123120790840532778530521815843968034688729460780903546207880498643089780785819750452282817161360707355725492745401006342418112028139922436296888644356396218589842832756646047336146585473895007059132246565783187758090314134558677200629108435929634501594150231327934578713798560058666522073101527091866337646806901623763417999437461763796287142737376121371887627669967241485214250046850065563892561904936270293076743463888247344351841510466115161371041459986181913513902080824607028232802231199033790757047878133055785407846793636409005151731011942745117155260707709048975908313522535032120073032862805360212588639523166229027107900547887778155689521321658319745836952540525571358280534742072638747918951362064639423474854076936789323245603740730642849538171808991547907804955154657985729961446233573486274906462603505767089314870864001461167166290304805050331734608999814566493605596520585747804983797047185073729648925864170822225520866632823179235403088794553237593460864904570392344166906854639934743839058913503432364648073799463691177379116641721398525817578950895577740166702614228860921502358355095280514006300353991702359534312448301543570826566542403177687281431928873881350153715259653695646097039596880283843840888133121668828630333377289550461342847863441668903038019520301881186585539199851675925060130868165251871861878549679215508502889163443196087790721417347335042719740912500581919159138374847167423103510768658503474917372010627196941165157801780948795128602515325848772342943767488226694024773234130811606287667172426146815264669392426912034649607500686619395628610471781044706058177238204630392954741224685426673832809309702987466758192482519941243454416687853217757267754707034215237884837037493826427249314868348652563132738575417976622801293852218834115763414787853395611138635378037507837783285794464551662187861091732039669863874510156591839985826335353263156067161879471496279480737259321635966836846576394105658684411699308473108014281043482901958689401364645096708106328168181099711868315847086645226295326015515276457116599943027957137068222956999061875121464608059419997527235215580390098082459629526425427690130054098034584383989072095178295368473682851576598389796836590369798581312943638844944253705568167336414664472810986972771621889592456107560423915606810673862269928485542956924682871369491675311391866898426583885264440510988984080960235631114397948603403091582598201397803089070519086342421513701006685781831273338339689672361888160831961850982724573574362706653808216059850838595230842225189783287282422269915345612681493744390933471403356969681745807162617320012943144198716716910026075262643898241916990596591407531147377706000688704042007620134292170680142156312079184164438385964640970192448167449884100496280340901274508740179366081552536928571010072986428884323669454691625211288639511912692001700928378854956356076637437387601252346878288605074219188953168240928596764785662547895440710284904766860499550555077512456133356855384011466180839522780071920051108417118995368625476097327881345957642029891217316566239518355319185563355934120069100898227596449040616813805529054276284799723474348868174342206558895881791676085519937762108940539874198156357506788078630653868162019610375034306805347614100895831994698740282445322742702812871220404634113118766797378124371225375524802546436859608252796140451707436007742494968399815638763198238132846122491824432916949416434184983028885725853843587972193220324863341072265991691843802719841941818370587219694737406154901370193124873368846121365509594753177020190182400550860802378920632937596656979283543089395024617001530667371966565539808286357746311957474650867399974990585847657916346365365328799048751909769573139564972554733366941361801658131753560386466628720301260242487328654598187628669148755275647462738457284588612698741655883020224932852574768916313441430997701022064457248881140944773060117358014970361067647568956588811809217989558350206855352114160428627933427228601939220058570631505645883156800649666497005554821144445094540580221108036631883716351257247196778641465925553945009334541082009632916169049419800379095078051116866969924008151314838988871785403540827054525551381224120602698170086446941482680320358885482474278560179029953400696829777468900541049795338480972971315058421959985181304922622798041994258004975787264009729464779564592682360455088556296222457658537884157309058025829476844399723677106814843612701392421686410914254204422216850437295604861843162417200244324887027131676633887498076891910611670296989817441888799152183569219373607321064333671309958007914431705231212330440651274356013260013269766438835208149055633226328240594611520315939554053206579765365215276492267768353638376919782498155270206231520190552262964317988954487184317816521828420130327582008049948175662690719937751979921252363600328427206315870491897597800644867517018919650159341028159668756862931524450600722762562855682199866431048369836057816129180974854768800387174291607483707678594769725105138664955449064671999147128914992227121580794602191967196071004746023818232256382115040949380086604434116477510215685158384875502745822939023560572684120060641112640499712024248594441773601115796942343142648759768002239942719866906091225339074701060888596784287813936916285363056686569715504343417960898191063636201584297871459243271793132056368019946264649287215307427633801164259916134974306544535920286592397930171151509742229349781012288613746133381813785515408607367867083209520694850692662556121549561400757269618027503101774028484383258254854199197817246445583387045728677484395633765398319815919561461402784184918526796454745836209075512338936821142360603809523401014800931993837926094312850788194475048214848195447599113145857458871771786693383136839457936169789154893545827889496823696365887787613319547282766220981636213769352914016245353255360890698984388072683674212852218527645273691665557637985598743440162320785005137069654461308956246117643180612519817151419728583690885697854944169564565893208296309097053074488385922846550014264516733790244537240340586871547682508599312837106870517599405669292642009608747093920435160524651896420129636939987953449223040757353503562931799650851747198737305885070381427260607096527774249361594310914626442510289990760359076469825101945671417194762112023530828502498153632708048771323528750905651418570249586521451081494531215524626598263226620380016164949819105226291985811157669391709411866254334063849876996199809104113954302697014894763292789749038980225916004769155456015539920734288192801615986952723930936151359936176456188762121043305444713898952920753233745879998341895243842763047294138579526819146175059649599004211388308074457786966627008127271364707371558406204862617377415011451213450216837709446853561893621582577056191209725826267174810821736334580613949248302261702181921811036331337567595921827688636942800951402923120941009886484659472451584170233286025702887613528954502655380051404203816547063868836677995131949763470464592893868431958651740315254984755604813819692867755978947946953238425885453047084245305989309509479182096013698659411216125774541863647814232970718360004452206500807991022113401538467933217609561340281765487030271666129190271158378465141301718022058096282072127693928413663433031227587441931615389874709078364053114418934986830776083537767648043621516930329996328889364026877895738248181363661824439346696162622991902929435094122344763943215065838799877667319473330820923331238526184853888463304909528422173382304638643955400645403580194903352358835639979995961798992811683727931991655706283605368664898970849965560965938555851939509675935643063797881517162888959407841792435112376148879853748937334176713677766010086356689766863509224146206027458505805933677174293978316321233627062314864936703650694417646165944934698784367942662960748119539799187226392203193164326849053527257845616489822888683161476343515916133839596234289325984643865224248459303338355584819443673331276130278028220841838573137891807759993779572397497990367174550422724030482763184281212734433413753584448908647881909274616376568326245752533378134404172133044477185127024523995100768316135922298299260194318972396455371307887416919322766033448810883113731458300115871373453936487702733059199061309397370669462372395925659925094457127729388830840642790156407468001688638292353986247135353524136910756566786446543349372215991531449479749218367682348122922863805698072083587449713388257662147999328881382829672675839847946797616117747095424232214857197047298495514997636125986484942931737767988603689619290027142417158491565785257092775085056366223140383397338023346342990272938275441586016187084084045027899518346107390912373497321636462680670939947855939140359080261097846102412151653760290105168206638381550066345443078811937270885621754350241102370940410286807227044704352793392561958069372577329178677193254409261593204611909924212587178311682383999057730858359148475199362026084737380964961914584126474254416922304913769940514706799033271620256874511616993579049457219942028074295941690507900986091614206211211869438324326715504665328783153248861538435029387231300059061584499347654796143460131801572526545689888216702236594561132428458837462796266098186075866669972878520611515101342301391515007410613894120963265407945545322237732702212094277539725887284166380794867391529167635689109369250967964707855285549117461928291557756454646652763169288080281785185785956748165455905251511219925381674945313375940024500940274480932385083644769629718901689815040632248864077733985854135262051548651926167656946193276229782846195395314953139654855339665517292947088016697587670257645790552076813362191679869497457253506525601212803350823056303743173010206485986638704510961729405793988772640193390625671820985079808817048019209695122397049171008204244297633671689086247723366731432214530315828787367035302664561964777037313316032482697491159916750421970079547318069627282809459534334073373118798319466549561467410598475957818373934740900396163802793619576967093250327327464527690815110974170455603518174115299467327049613319784027376922643069859731457471690746476307659114887507027859421713985694763843270213032526620141574569631592532304325260042552120504278681331416293528932290203058349685772484627862970740929745241925726709967814721741257899988365334972936225739441627155809402526756369502909425000319205910737466894373973932252309458741057403231956543150975472589702682273216725737255788879576414632312791628123379040650800052769683191692216233130832858440121096588550153234172968259854080310301443710595776139206040413399142509535906327608493329549246288512256805912114114680623655420666168666473770125212245271958194608870325445200041826679469521042514560990893712926016079026711430410555937824355886518214718150585584781110499747141644518314083937325754381302220885100278344914132176230795784021928640224376400988673603979425820739844152458288884351027071032751958606972823473370101126075763725786578418486409971587375259082290698881388146235406861303537981449151203824270130631268491767827867124770709225082091749117189649744736502913725422530206599798449903120360566178770346262511897511617505812266237253551452047125978221394125023107784863003601239179111140643717040186426049420790536867998629088871509323064743325383919648964738970802491336953440763809962494655365738730659637401896831169313838538427858895920649252619392975939938723851434129717909603999047802470274575564036613007669470943134096454742471365619348476063289918027211043496390102542556226526749236901460520680059649959498867027218424798171457410260440272547483337072309252092190873558260992334531319087047220962599838055652628547899572564706182096417948685293820249516419091151204859953868711150231284713520562117582130417319551198969771704698337792130283921739262314203091256662411071267551291420243869627849408446321871570866944378556320379097029153140979846735665040444089639795801861376441053146604262988493385001337576064160484723955620283010464813736915137496807328367816558704343409917779128438330862576761750272883821228230510639955505847281315238552415314889984445781098199792950035665074593411318410743360612223467157097783195309463474644342231874819091615497198023002191243592069514075993995027937736377276963123587938041836738654577997310603305905804534947631414980251441114263683193326874074127582963952014510331256959138850487105909846776952760060161055050273265983135292147165467107428074362278830159302922290012371763476791769567900536645651052752022996675580065488161101489464320303845170620948765992520173735345307215484005157169006000570651948119432418497443497572756257072195262883580507690090374287483889925617598132264664971660494287124695768549708865404140488703194921366945011430303192920379791382430072466522016202513512553228305511580304674907383877204090857085970721949419203070853670997368535824842617692871542204166336642850971843158818268177674962310133560714298539782973175577374191297186857776444239876305083418954235359281445574229744371634762026383270103608131176736907465355406665204425026346949508536600288054302700644930998562644009581208715529673471555814454046917952120214002746642031205400324699732749137334710182333347338493934929523254841830145380209020078336209038419237381762522648359132185293412153935699841539639356840517499128953973657019692032366329474940450312263987919068368829590461705812241192536734924271058529282359314867859612072253030445494557271372939910000629126739783846290239023125690294434367103885611661276623066624751518671021968798507628935904681478955288274063461311097733679882718654614045904739760934748465718261719964164302971726831191984551626225117271805232024519458261779709647067409153360278674319758137420641970288662045203838520815164760583700475960645044437241965506845759064256845324809992074664390534799711385182419932897095495083730637067548297901156246191855082432570934393214580897827314933180263427016592282493007383779289922810710482571992959556564022044612303490290026643770894990879139960108072840218800937649771512092168176091260022572722822697351931840762599947144273765453538624370473502675395170949029029988601547367976615430312273483986895779755326845679504376193048145637917700975136270698568873588441229059370771856577216586195756404238324833430875919225721296873699932921187070192323183606667579027562823085950608793725621173433780172756775026546013775920147686310127831012853632186468061396553176001437064852626786599576950163644379215442191680471437713656180063945895672042363304866461979085622318772443436058136659217290984793633055442589062873762743388925992807562708851366043206638706304576722726735729387199204124554474334925654789979556735206788134207808326403019996279060330986491744986408822860621496935658776564853179497386260382320432523100174771777040312168176145588271863313866698353156520318677479866743493560765852921669734761675400379856946235648264836273126997548771841413497416499191422994044898596564702782554124769567186812970783862126788755750529229590377412260377789810835783286832747550744120997006431256095105452193155494713504076693094444852236364637513514555469407849415056506780189468972488581289194064354332293119844776599842858675780987673927075704068178569062970323478768924931883222701833899924778601424317702133659733049909356286799237895756078827856428006494674329046354815272382468265486389049811603357424440046947625422628754376664228521000529520938624601736755819931750033833091158784118646446955648152643023241265081403206453938380071951586511572576066726452794019722604836235960470754456558010099316261183283462376100093484950263041554445275913727116663899402058332488674752996128962285350285059623884994710505742955250502810653077592996850412787958717101647139808879306882348678701777868708626499688240882291855155896788218578123184373963356928447237149761602590783811678332817452377151312992267979316864267935731446491087295303327263178288672049246324590452319656375375369121802846383878953433892788575084243605117885519565903443623573156019909847570585388306241736119518229387916513189171579249860583221118922957484237909670862515987010868754807086807656945211104552770195745708140161257789814666742315482743670366964472670403922575662963601416895119192678334715465297931586576587121939569258649567760213122354934520964606478198445230867463624876940575035914888502766550163392411897806153119303119949731191672751200303208481307266044002964553966008550352152815265254805859700448101788897562460515025346694087632581749119581532100006844132109325753936380564018347774372311836659579012968536994030618040792602191857687141178893150123292655651269774227779016526562564125557745121097325068082811660549185365474140174420568354367306054580460556342420834627056921448664012452874810441656711422143302416379450755224761066324949036404801051855096971213364602829228280295134448477096330587441574409119700375644073456749899302743894583516200285320882248914497083717999312598303381411500098135940046835932701672330938797640899803498048264645417103090508604317601001304565050596433331880531152452534185488776022358504498531811706805808988064938473684067859589198059401746747691276138986121619732538193608824019555123744716122800020729137986122306202636108025799705697138462765252934642909384663405011496749854706498698890792905756336273760228633579179933268743271520170958057952170110019929625656862837828134343359548000257477035809452240646146179448816032898377890101219362314699571758762489720286105326459525983379794242860441064685462624677550864228272028989017029484838686346293115647203485789041838140153801839142179755013473640551217356443437359013745021399437371048976535771900547385116137699895983922861545134867028324052313876074644043741359337453128487817489541964680185823182276380615488786108154118571156971413363933715255179199615315267075262385062347024359816085999486564684220277968150307102557357837999999645879699715681962554713611856669179635387753864445469790848985466557771835666946475521358180754724216735715377114658235394054831929338398701826464174450795404542789531217887137483445455255570590703272793474459626884778404628048377506275757901841964916287091623820909506718233662507524610587667953238250265619698606715171526669944753836111870332194007994682492486500417294056937116555467942609129414340938279492353915776619595626477491144936024754787975344095379636936337541169638367771885580426118488414543560776281149970348135606935370452177927570697278309795978785178168393308959531898389730402179492756049997946797086891217001115532018326380983071310721865741741001439028291853224032794556966582580680928596000010413693164468246540008726588153020656654961590188890368968480549050937989627264940754332168428515784864212787945888869069489933275030959106042844773086201258645111262494066169572065337704976035988579709232181642216543628742368098112976444164745789546564321034197915704226930249156651010338010624105646778438119165401524697090767360124025225654778092178548585566380967147095749660748129030585055223114942826044015776918895023933220484452637465543699768436469913687289153892969233917147058547070125333771892806256269241306673387810303898494311403470074353313509778105378050985926130246595125422068047325140769950178961044061908916233270796040117351555392642743895283582549737566595465577687422627882053033666212661217171426930152633365311350791955198976849738437847867074583488489593905197872235647779222695396025405929671171929934567698277971472068403664719171632342501767032090757193719465298995102803634684169415059897054431729716927964987509632566501416942511974535585939075784070857884685931162179075484309908206586057308029630713265523428627324174454005184858310446624734866528001841032497779818053366337232010889549565243388368423717766226817875655357212278930725717360901635334568010941248699622168493449401928000384145491906199290445127312577375150454643303202296880471408288205300582628070053396665324926771460820123909247443868582679257407295242306157482641920599752780760593829486899257805456359790611055668648457324066537410318540445208858047806372777336902463588339611834414332400727005096091462357870384511482427712519511762547728401207399734797636957756655312203228412420013161789607796754591913510535825725170106929101853103156516869160968778243093362261480326252965864117087391589853567411578752362835027025666457904680424381376845142195665778016206083367543859132214067792224651889190079677992883675252196509199188127583359431900909464085319469848713490581418169373885027706473778916612978666794513651593214545203832893289869755293619363681970661150121618298009486160881414038769780493104946404483896899435844385085032938334438178314624533105601944232267095186680762817209961759481632833128298879443164014315279855602169765434023243529091393565851703066860155026550869767541444953507017438538970523809138796897327142828675218860828511750366532170476117859980692653719706337646616445315879879474273201695357826744388264273672644241606290304919350475114471338311430165048914248562652509645104134637482247309394616479861644168210046301979129213812501844231029531338304186035195494540979601050650735988797877820669164405933801301237966320731045453246347421378906068660213990612694968508830018290507995862536653570104882087380449521962227596318149318084139669914642374705267634421277758731909628704112972939690426731375741428063279344338799911782524425603572549367962836227342658371746189147392326862423193969044555479866405224098068679963617673874262675880798219970953438637044182578640030131193174588039563937161602340546404078648508587536464741497743240088923100331452242141232891879105588535032893972618878402625335292727645714728945817310515340180165470962282772184698542139974319638312627510000657814156226002612713959984197887979182069483866027198044658685937173029701355877611156701252462637560679314671319651381674604930991535028522754970899187993230278459751067852561656053814945204835907956096034240235660525226860056833620230910455541539278369472054467847769670082567224728070156395317501513415500037844707284300561054585947177031036014291833530678618854808177538252768016960340530616665777894796012424308112442105971360789399145144712266632382939392750623590833435162659639825309061060552967195358760499642603630327510294944614495776591088592917187181519396180943294846926862705879138140150331247339751946848108911745481650559793172062856696866980646007997373179025387354838283080396718093679443891298990711162133332864465678390178647713640273448665155390949867819708014045889989027867782183518573404995034224892980485760872770720665998866651391650063563187896573618838079512446283852585229188406879846802085539924584824883811861623549819825941598668433671470589305366564570724132072605733941295178389569570249910278156699599829476930561783839067307321786850969214891765512464197123069426911656449754179919932555970878142754536226717041619261069589866431333982641156704930824216109113938853349854323762875393370263839935301989617423906186660744127095648429119089331719886748523415631933121644232279050954876075560887757578032684873249789088995241043336817268118959431563357730798300671836164963908823394679475760572752705263071721061788265296814127361206183243006403400004687813629818047768652686326754600092094578946745970435460162783755852412141929607644364006474280527093389010239075432625871957211423392257429267009777539044490278069744018330721642377729475552634101779838189741009195213810115766962468748854389551223571874454288123806515560199220955076506336160201070736720992875376195575532493562832430288685826433707951092527153631165971031624221221965223657089004476231660514879468285937865287105192846265463890080573438150721055450227042072486928817234225986485889750530126047512299355878763466846562611337977342993453738610048956411315609844531868185385548363198746279222941466035256767388878330084147523487929770703159962740395235885304420415835126657826523629933905675447453699568305478371713233344358447494456669754974818748121491947924878089617120098780054927069503731469847085453820212910208088385234400498778353148966765544491293293920783687463077875174838402969859014827867467209096078731547795959029428477746282745458654082532528149402744265187441746840112761271124212350017450860890526439092067887877207612203545992797960336723020139088771845881001926740177516578824998682869299977287014739092206102262160124726548473023663446032305232750456981634673866750613757534320074683412316789050098013291244631707081568620032437272793171555324260296928482704323823649733336809408473801222674393996293403142492393062473960591688366888097845341910024736501854980235894159149440039168381447433311247220412212532574134923564188974870215023713368431132693384409798381617886757366471835193617277950627295115882446537934833620423676463878005508526108968882880967933536136726505654304942030956245349386885513703898135452552928193170757460094809575991986926107538860470138744980223523133743647921772680693785977676054684631761278680328045821326295050834438111173222959426005484162160710057458529364886660230147160510932825097364923200576413124704889035648744585946272816291419611008878013680964204910925168964635740676522273080420800747185067792984684443235374555972593250817561402916549400577213816322064104907566602346356092713650110235252075551801566104813247841941510471042228609012032448602262214526983181955087297469063100360049115875184155607326330158044457458568200813803004290989632404123439476559826988233197662423507230572206634026692000768308607301341400510900230689670689584999501095694976346295382531232308839094222907509739535519867579884887641522205681078422043807440942380409285654991736041323030433868721813999239349977823985015800730065749139610217059244280820677347965252057967406425868129042865381252643346937506605427989727807534757809915304937823664730714711528886377521045354919918170650606125344952558587200800164014018939475675028914534313129975736327436936690213827898940759492122088929037553701583917417920933876284617130854105373545106833751053269439649014678158654686250581263937663677701688364167303707473472308398322609820974046569905207236187753294860268389207301108695091803360118931302129615775661743310436245391475076685152031993755219742205076860021608089363144269579742492851053391814118143853241839602212372005159218927938282632784429138174841918592311443954419950668946816636174282329535289364581701790103740865198662272347039041713655839367104930513579215488468618536501450509785676143439663798474252974543562107552979508005533528455899413997370758802478091305973958667800503625093952906711533050355650861360910982859374734046056541411108585732150772523676073173571834176239317487953985498903184530964367708998388576908668771619846653574460255092042797608736670473820524198039453578012314515364938109228125349916878942930010635206999782695960106852274115133585330207823286164203569696352578529786815626788959334516314164898589475335262875397109908475967694028222237657309623724211149104555567936986477038597972352483071072484816963250133888667214183196636467768396570579901773417841187443441470284873521989642661353301775004387342033539026744171248280794543262471177888173293744784033116157830557867902911815634228275802587431254305017861899353708331710359253106925187603917052472358426691958362097660010055916124090495461229901671369275334008341045752736028899697628644901978575812359644301198275978381945647532133713448835681544321680180955217614600581483005230305998367022425658790825726740542477973293359720840816383017249725863393984886537660104581659558177839214550244005352770527317446440454780259221849674901663792428009687223578692267244297432555397796565513848619751024669590101297986141321201927860527112694763534364666021736824392487843797580735540368214586376239252723428856263603271234749210096421145698219154859572479279104007972897659771318896070665429207936504374177215923836381966900865963767765603834051192469634518580777009161346615637288470170849267688467327393947527703402623607125103867608528622802662213640957259274807107585222184587426438590897572063541846287623815651597716651872916418264920003191450221811234172071224089751057584028629984330600845194538053302457954395670380073780035959799614730895549671960521093083900184948393859143302952824325434419278177782312169187209310282013975743782800724791343272401142753056166641831605569557379527376974269550804035002070209156179022834004980098502234290783497652398632395343488418335284023951918900384727794652802627496468540136579650494947881775156378965725716235874745136292099927380432211036020685888693226536375959932045656803778241197044446971379363675151580347308548448522717569291997544581316600159574974641887313699341757777813450114025134774751619256178683685359803915214253477186362580254596918476931351910771630949107587971746700839402360033705183130048066886908385697429760925637171060574413659990921531389476280680188493139020595452596166073973608109660255507615440909644810574116308820072070737159031042970304821667059578150531813021053359887475779297162984892527204106521129660271208579007322871567215542388024271589245129062015451970247803037531620127614483622598673391301408117449678439544890967353155794774155663579087950570087340797339941845511042992983282645065613629802264714254186067938651187564603903262320446726929616400071032527021366015119570895664172893222418602480184025151612081980287504584639929282090262409472555073070987623157717416284946518687510013800147192913273748696552341383482828108951677014718570111955055640198913798472974938677517463264090322373153722635583064807723718432973724466993013255803267497339955651363553269638751012691078792773726415222557007908351180130690955766204742368298080045087420240143171400872539690504375230224472454703820367993828898845475955992344800666219363388701259974042780929826662223956320489100929676661336987244076502113358809390491109335365996479761120953565699572735562753090463531945224892676406130459520173086468787566662771633167709326634735557862378990801156009667127991375102549166377012502424307416078435972606224865353332971147698266028660089976181121530218585652823429221133967891669661072036011561779477504771394692818926867412697477103820811686180832541102668605081459690868553604725756342868688924941188569717997466364663343505377807593904258279896659541199252855760668940368917497175828150809670589531394127218508225187226333444914595434711543342515972867247165826567371561386628389850341569140919842775450986901107522068493294435838975475638419989081131982394459880191846147342709393545402437558647341552854607194635269388934238143303346670930687483552203851829032965141571601894842815618684245340800009000626934907680648516644013260821988656444631395617303841884092964272858626580640602462736922238918080593537972170084141110576113423456292706597430648459151522896393545736724790891427416720115877346109909822619356697075254414699818523059388568891021141169587646299814961201115531295841889011351594656161241665727525755828300337859051904501898446155101436167358766305484955632545348474830331923041732160951303827461340688051433340250982427054982466920823029719121028608084909885952545480534626865762373833000751009897645259805092396354530371211872150332262032091749214779007867618045445044414422085646968516866338394105508561802348933578205125974052483589840224712574658621414308322606203942739589091971679556921600970811335235151048641144710857449691889094993630894310941489528781193175210052969143958936049732942694700946188630427733291072185096373903671748079931415156371352535583313481889748393902200816536854220874165412723514785604829469048446610377299585295491826064139297675632885673291082743025185689532696991352923262067612002298013169642851286210322798972013535933142847703042372470630472587011174773166275487198379529882384914398842977704166057180766286922333886298291864328236769232632953778500976851784645461930019442826581578706004385537745194605789220570397144009299948722911449244138744716811629616317056388381665872540543115057858999768026500506177079849480164156263359149598413128337860525955046784654970694235945325292831246419709316597509855708656114531649027874635404117723525906557410789356938423562448385860821758222043932022218822743054202429996539362819093816365965489983596150297936635521301568319638777372567154838424210175244677566476842378043923751030851033681242291603827147429928444935641127486918461728272894353836464449702595420266058836212405826569134658651572617451273693607106639962208201703578834746505802508330645526451316114120545264041995529290102323688698076131741373845170527232918241411801958348953975916461825359603036393869248124411017864397420096819557981185042514526921384906910548385862544688866903036650753015626480393210467710594554974027766453008697017184938258579063443177805109316128008874512677292527504663938319217541328038763826947484264462449414886937580231184829114657483483312818759371726774838803745572490244542800641403973278909862719385540917771876272113894425524676824722110528523445544180978113893980525151460535188841753004417626203122841457881696291878723429461512075815986771216558565367713638838476376850114597445493188764272989609985501790080877564977062337130265285176210447269895142900406095702914432565294995274778433174915491215522094721760940755447789705605712513710600136236805513269658889470269398644234221252062224874902650317337581097176522981755146982255936754030325171998774509115648160802288374781582124812498981411250147313758486628350192010654298644720296076034409519605950516707506597717407139907843717419949482200837098981410725816241493310326603287261269837204291219252673978113851516916786483701912982459930201117142903779599154179819916649633245513945041339671987967269962010497775700160192953765203297492059872819271781962693373061173658131708933142549041439132309812412090188441740923321310447255645146472448912338775276640012361982157809455987890419956351570676262440936252639062479740666942334729134843413084466124516605425158086858786173150622186147248469204904767822528056393847835903247121982802687775556703232189122004497058578483326939866565106364062012328596221248612625128895498501495379612921705823670599790234231540705558483838263416125736443016709043897284086042174041762828398227114029730023326507413475518866612000634177557305624383223272011142448072856981690801226289021242671717291928870706807286364391573794141827403480969032212687167412747861226470235682737660305504772038713774393660426028290648637065958795266854027598636943038330248315037230213569622495038384524008395209919646691523485034955383102147052737462505352894537451699901015842893513921806258888476205819362620110470358924211351010433511505670037697157087115471634330440483083902452345930081678659507488853414649582944175931417019952961432153452778691201724954356386724270125251959384314960200950428143622032986356133994978281354525429998582819838019914049565550506965854079035411653193832590046666602581401732965955684310480389726440114274648005940141591175693037953918054293736901663749427899901161468915105068877736694678381939071625638592279239210877969584110347589578821670551534540428214623629420277243117184390487807076753547418647206426196391525171303328159007786971043960145583962801223414320868881229378784822593824605029440904331738652898340401207408478634858572497335754856358508424842088236254527595980145101925895934855465221321502940137761643792871926844772408557881822328887172640993632205314914890132253911572431506481973560497147659481887544980375531042492747139484145378917620974578970760892831071942319858649481704266609136898334498119516414716541194109969945837223482066659063176287227732951632413216165739549999738813372256696094957408760247590453924784405717907944337045970982187390778262276252145933550766549437265961046957984301521120158438865217914047005172114845549833454165851601529005602291531539846251985955895322552718683260952451432429174362449891264493317467046867814978366918633408030849564632741535114626857084860354512063091269285792037614451607543182135256450570238983205775808235955361146566639385359361601629402783040977914437278588418717466591006441184297631135226374643507155329473803822495811743857253922929450297946938252486973211920073648064223875198476946691741286573233016134099284670205666797876818507608874283258802686126449893919416485579711971248655051707614370680603398460598409904351233143066072434926876882330506621612645853057485885388499055060887144871337290901759132300685790849114866578195884359696055441023560691506055676737218052452484185720928857295524571962749998892181867295127795926283295203472986130377061886881088091847356531500016962580774842171127225385476484719330162152001327958191491702581345962394091539386602104101164321378246062514236768304714290631506937049566813061874625447494139357373076881712735511831168983970127697165062959248377260293447247225887537667172489895808089091217025049941470249687639456348127135865840667132912575111672516004483820150763814211518719562044852430066187147388564605671606452876316115827846663698389964600860529257830039631939751473327833505568761888968681694610353754977366261109932340933546185374505339344841014901748553369251960040660639896910822566468582259690897215283645552524410880773951760020219107850773762917117938691674693358194300676527503983455490481755508217293125819964953842816982190663468858409390200342063714357187607615387810814720938340704124232159810078779245883829045877402238721563969924863121298342080544405926589283747026247866023717343084228661297278480982741222341596172499849135435802122163560822828544160615770452301160056412596742130778503572141879996509633324560147141776565704107687192682753977885023631172775529951645991818395502194478487482997345547654090833379614010272339802178101168283765754848113496035736965995755460110458305705895856317114634150628269822115696277015217458158205998502623981413861477189383065533153745538535120355242162281912062068890942275514557981577864974768515303841554901740433668241487930156708337611016098849169772830872820018192895901375683984683615585554674702696646009940065448782607359979410110749770456754364861610547802794784153746953501477227332904536357435130496610623679573591881805398142687601307878318195667889462606765008608518692996845004765911811263794151175529961842617458298763654708472579210806430567781227595694143889285950676114036040247124173798309513450775340692152479634837603129906726710145603140424770265978765531063654824893281468199062047942574944696771685499100227127590348965842000140492396159482974599185796600489039944805240710511907948186183711634992229909405336613392383723317261865170321532036991875370634914156121928214471228963434154890208887621442667767640669012828086858495351704840632764903007115540577708787225805998771234526319013559969599944913022750859851932741942239537751022596534610207631979603534059713072200577801013821413349316362056177379668960191200917151102173610694942721272403068515574970261835254821717410244220237249965372029679648333590476156849533091938019192367043538863463668446538582705873264013965544293013522752130083887129279486711386055480940333505062327956860586545056782856495384835318809423839472723682428466030925211972830402842698380048426833828787732504797745829095257117666306424254182467266670623670861756075544586540761720825231937166661003954761926715348657311920570338795323488075596695530631664565064422677952841378254309195568144980053888519189116619307636743635602901337457866225056310016628859344539102185773761315427693813808882500407351396102812026101956537215306751155416040214348817606402145458163084836941849628716597177748061263574309877342053982607563669166784832068934834348977374882178042130864132544645402615809965621879937468544427025217041837638522517967267694344524970427712321798383375536575852892232883933860179177572785119137771742102577068515499285253346391348870058682702813275838291695354906814543611859529747689251383975275277585641159015252479109101224352799601630630097110816626159729490820023078286713494467557090071916350720517268701475554185106125959640471384261561789628868896874051676120666392649768306147673278131179907269345116834822347131826138751217757910600771669347414155886110547414487151680279738096185543141638407067956610638766217638515146089027685946197857859273550736025574758975563469677097437146213913544768268820897126011257477974325919623053822511310130245527716005799652763645549064891948081171248345851455437506385363675015494170739556299956921681282993603336390025689129524116801201538796312213393436977209316187448507914579140399250593119546080629534147165948332613428825211763922362151478337625522368738208243739745741384396923198099734680040395029823210807478282250220927031927143237825141573309125405021267770137950392432261173859420733142716357229742048143962685100828268025627378549828108896340453833946216201405374266570401280292322751786770112288134969834977728155294750837542454376007838472552954600038477053614978317829533398581147408903347395474534114936131910878995635301963408681720230073444704628698384475344811338176378635648448790220694866852009625363778145210147281092448424161212187232556034230766356941131661873145199530612901872141969144722396401879409865170347917592121345780242030289037413125322033270181673560627621250694341452158405361010274715384978563224496458753185040334677018395708573771007783539043305178593296606573705229253887226676899183978627159875045093380599626109370289950562707034193958311681491700627343613040976105008629699582164298908476235869784616514969359865318731665594158444642268156180273611217253581227378436251739702455892330728842241093016103870576647759321239423868049268728955350772137571753827364280278382553444424650406945060751114810427308178208739466486510347239462021648985463960838225598123021971842481929492847483825325864040030639238159429233885301841550711094188444208898991974480458567748532414731485171979230357122783733764253510922464805220544008790326114445009507229592833172380455307368571700035517675663018550390760988768414338451552968586121721363919687540779790151301893279387656046922229238884773105889575361864298046309876129881926181113485227259555593195055285477159063955822325954856819318796266600160507055661258192145841344434438311270272346369751493524348603638247964731477249939383405144379867433017870498639187381038047210551747807605684816272806753954722086174443666263593061977520574322381674076025242100904616044102261853168567818958873790589441225337417144543618970286513010198770458968315176726630263160681688545387463890166324768473051460806936177082617830613454020740866409531594762500469566496774605044731785247271780184961278637139135785145235162370800052235702135532717683993733230979844673535512064304672037205188730633805138775867668455110679771332348194881586668873673785969143256109325514080155431472974618318964297536595477983828425489962846119425947183114245203421998739605376259345148987909996471341640544889352559881009815527988799153686606994103831187216192775752416738882818667049052174102881068612936373436321695914288518673512154497045933923621554294115324247812665644711672773634224880718154812514224481735628088709115344589393140231725048873734504885202880246817418325277623814804277019895988439914084874412290630493964995551318559007001038950803611885295425305476610341433978995534104780511410753972399785617568429594677001720426616655012562024922514232680487672819401629844604025802020471478651506858602362837237640059317345857659722234308893395824955644899027504861305096255731726626712498093139166042282291247403683772994470951009450103944748828046703035251733686836777051828390041714798114828728413104941518402121703399757292080143566250372474975226720924658544311171826876883881632948279137811293627458994471601185955815470053635745773516187554178217148360306712431020044642420562005642496184912856756964289951287518339509995684638865839585327041035110960963056294606101946149891591805106868990139950227902010582621258734355575819369042620183071662902919293104637851178367106754854159117294113272873024603277596944036746877700927193384742779561650314695450601787272380073971687126826277011539996683046411911599115277394329470354194588641487474115626941059311453845412594885700922456103797528605864099059793737552272547397052170775421614635564300222012373973809683732605334917648761160336825274703030396249639109124184741961086584574717490346280015627282965407379408959542658258718342353054732420390200351638386755676846497290306318264568897712023559033591058229415080043106615220586168661845593091301487677172614573336762743567413711515087340104046005246927341176988874645016426566210037366492001264797140009302454675982201954700196611352180246470624666582410151307906468508022775241817637796160785240892042264689060859689851310872607724026127162357760702817040976486097142843307368865956495673868338577503976486867349736336444886053626692549563011446151434214231183187107330326263148913484234596545998689073887216330363135414293624802423332594436902519996951476405995691286000425988312818567822105550971219850037295158524518443376102152988410414704397847886829004250092138317115901734094039764407562565914429679149130888327634268329771069796750178675480776242546584676440240829114088325823207872069989309081384382517289945762718243580862387343025853862391661002194355757364349392415053976189509128841218101247027508266952753424077014197370640540245803362672724180152676424433871377945545890518282795417315703134882692051634068752798911923160478843747829547262373833342600484731461522888551172779549985006906700548813931034360173538288911516434574008006717921002091763700262568810474538633643939129525905487205554398428734166260889993814441460198960485737582817389139858045372609019934080585973596652265441553777499432512818786001277290909403677697021885696407272842250519005347422746076395686378120405222131090058215148924762342590604167951877082707829276765455646684202331156804753357483994441146659164267968039565084800240369278918324256269037648806199628301364240897310077188011764401226263910066724543321218886720418314606211381223060329443747020313803580843113838350111928670389865877690404277899052670420522585352671648590414587934329485253337303527271221876526682131760163404760309813679764233753633656163922333780695275546112154390170351227073732029462913661650223633770200168474066451009236592794742196351717515036948709570375375793334881583501539594713243738556124073311399135786346844660920660498036370535644708284696793554039404398196273532609292648103687930462246425449580366896626739097110986356964646248794954675361525538371243703286024309161625150657010815316093300908341204181597911685229897796192115732854249373114024191963403940304131211281102212358555819764833729116735526573832647309500953381263522287945720372070380654130638747726518549113935643756169746437671528855234030347904695512193868585579061316119281828064454214027957722409451149974137161642779922519092398639315005748296868181646010870861852133228806453430069694038936727912928045164500326176780242130746336554142014996126825421862482424252491988685980957506843394685199220648374196155691263575733306655298815071235158138840614016681114178010806115289634325808907549623626306919185810849361155465323902976540473873386792436769598109705723013052693031693600234190165106774062938896774473459303247502500625533989538968364448957025061239256732080550848741684675935441084739857440269719192931304897665069808527587067105415609997605893314698810920241034699302422398382479940134790418958322084532680223068170229202657056602504377384582935259053853878457875463880858602559335106690824854655007666301202835335156063532321808396660137884816253715861140098331501947678894911403376831911145823857652366045309719618614150570007571514197907216028616585567305808362697448033394764783828362790787460219065115081991831830368007381871593351722132258486946064058951471289953800631114774035879898992232334675020544990432186747488783318980009757879507217486427502324030763074463881679829641885989225713997339176237681029311158050266605341687774731973616584940673570221062913318802169473248680264825073993783981053829159500854482657408101044133956185214641643108093595955898770886800995907984144217864851616719806455780643855826420890669620320156700618741150776837159562291380948514352269442918646411473312023593027350460865910921792484145862536267993661907353951413926297415596730575322365230602630616279859888148632706569313363649601452512400503468847003632225280178647972549216764707941934576337096731943096212405973009425599725277186115081680953136662673903744906319629033837353490284150987702211360062997379368534253895092691468584554677496604071214869034215916898079818340570395071620082099930738461297730920337081641237534718288127404933979698232007305512730432635999023188662219517429184266162478082640479243506405322830581584872044168101351982640432710695023887042811328427843819772935305755298903376857964515632463497960913377874867899768621969238447440310194589365663929246561583781123420223039876171468924581301775320253215724369357663998753767884838737059445693433003448056692186141414135316203550443052879457263563494983537087887798841898593143599500155390468597868993342318614975724795026944357143577032941738445641724199415704902016903045936280479866004593765801123026608267343566271439242396065543463675987919639843195467089458336688734982403058291285127662133398353421406448625844248462466181021426746790806675124280102162866383697650157939063601100373104161893771464528719085012848221119044859445838813804081624742029568746878408865862686183630390656233487044201699187168870656361286674249392462721547627397069048569127553728722019653898340555030251715317941770973649783278388795688337099745891847364974286042457332262498050432203681419723164601665833549799298695298941154695960140618353460879989584421413570853579310957840255274928156057182680089686483573857819503399133523646763041375315277453740978905902886010940193039732368499080340994128846278225453703899325887958633759684687319174342168789661662607798200819499023010924066463602047978895522788570450866013342621698341270443696400021350990316776748297223105104992111267245575371165245452245015444975235031259450759409351850803079656451725657284423406246371438436799720119379267749928050627278032121473212224372288679838359708982047287920365972380370843024810001078588116679341239918305194982989867490034650427654578097012097294552428680013128422177983123531135703969330041606240718543840802097947675528166715769825945268424692909994527333591994737807114346062177623796445375949919997011572573783024784723984869663599384435341513509020288852112100393888269319699711872046161995880511163562033254907046749998719798571691395312237002979909902425875158641959099216965726932565385659810769823900072830318603985385964835757956433358757825436694494455722194981180430750153404710515271617750800369897500436823353664917744639454046639943434731042521276533623248555494592463147326315753655219370006690520939310830219944472692253297951736693164307768481146473513740869773221846192066674499035155085662057534003868352319148651490050924245299479360627377433028655004274980090378666373900552103475033424816299748080126019589049747040795643106405899575260566093663101077139300431442477208800736137010020812935412632133354388336202616902710187348276430274985500559059959286688138004983034009000068380036897361458116744569769440718317671505671803140002090089008095262868141700661879769927075741964533777105526659751310493873811850731322551779416081011993184656212780653008389744554005577508371137309122672355041469078257676326486705901308949336627336860693236442615331613210352801412232098387580193164979527198061084883210803265342154202901633537715476119498169168090913957274707933855225910207071849667138852400475858283947133181571199688435886630545959125319366090521199347490397393095409543478320690828478763417534037125068713995537547652330379968523178497273649108736350851413479165644888572156637147646180293361203234833920093959024740090199930317468167299983065468306016167942562985512005517923655743334121391150811391365587105673433705005519019292040071464652756556452290736028847943291003872079806283618051030190382467203351596885413266135401931981613964703727110142879292428017807798260260595265178691033846230480017619466329589203463700361089564920740312544745308989224858893677511511700789192998322934788509606228586645281512336067434962878572695357944216904493886903140819364034166026599243640592577010317712671447283968619297387614296143674666895837108921393012498616698967081188885445228966760861234575405499039080833972566807875788396389232033899292373005838323923991901135918886118120739499492735092692163603244574252081743637167573027378363621703826750748332541723271546856610953941842317025013355579910523833571655632217006192164798332594505901058864207479206851716135837679582982320202622370960022835844490186979405029752557404226533125058874147464114118061037627286608491436297749362154870892003486607161470481041992016669267961790157114409021912656662119535311851377738251186298141079687694737531173939386368960957235329111911431918294639246606455868590040565837938920196821613444036063343952670750793162512865573156400157012568214325093437661345027238467982041277958532674052776733137353747399565544670726402446860776028330292077452622963242134441712237222869267993313107357282939904777880957219452740348412153185280233524577251310240671176880819302906692592413969692243398335817867579529142646230696970368104124189126505094644252594930506022512300205046920225343965200492493256557879206996759550281442788056306600755636900209557555425339877146028127573472484839565372268177122377629213237000764327807892600213579698628984222941328284703367159639966225666698607507806020952446815204011299034933630486710888356929527993896682310386087556974123153853211777794373776357110137775999508443709532024159188191524267492783435994332588052967398719505126539653722367420755545489525785882690430661344560334404342715293638694489442571921414237128319307145076561106791214878165004196360576602794682008902439539816708995590762720217385460242845501431224627249991247768947947988328504865918347282122654441457482713035021380113648378966374854577301627911975462417880827730677307969982324180046221877371159762220961893560297040726652290297703326185517283785835296021915120223634791041141330432081150107367978204986056410809069893367489857844367786111666913911622803885492753411228903649984572103727394105752922916961751317743314150085071946102706835615165466017568299423665561035802002196948841872668398950286309383647749728081564034917310155234409693690694056187823731678045115796827775473772548529875709347864443226977261402869272225606915655590747705396164104069411046765892886529893236008620632639885841951093664749911412492968319927332789111274086284039021125317902949947724790448206353835897454764588952819315675526610291235131630812233007745031564437702646840496184256746882127067085926573518206618924778322202389736737140670507660513715184006905814878121739437412029339877060718481381047788160984049607912362179418927160352557630903537487929923729047884855962522780027641632963004153225403153801300850143118239929114281747110662086224493189043256274524577666162569145577082665375724199688368921524839089537857476995225205714690646021231854262086767797918984850023919252649926055282841936589920895460010527443176412978989004514550748946379935344411561122734448878147311293208023058393493847510618593240205660226332324191273148411551656778992388061221674358007929476217804650372823450720193373459495463435846040105813961560864815768788320345037722912478396310992765751127478957365226720950182086967892444508555008835661765019332898738628914257158521422485770580237993188988206850323392248234027542981716221533830634612980710895033609046431440181536732582921986618663329082091763822805060057935652607989883963892356555079171254406521172631372230114359268071897433535326312688227834660542877946077180647651655445331882590291277781025701447204633938540514442225404891622870391486564085865552284517421882679880091959290537160134349427340237138052453001840028561863893647089696363920816897241169179961337674635001117356357986209153024488486113157374009014328786139444933509270782730234818988947302733709583422313157153329786589867616996067141005737543167987074039473087444256976486934990328815577879538278872438076180763054182094068762128815641164253337171216300996888794385649509725842836207283256590192900025560447949754007437189249321846253092504583281857158673962561603362090108327750886080011861216785508779953681739884592139476825663572372070485982715132651142117972552477763062625969617413749040549089049188578870636734354856164455780535141346233026639938189042768170771432457077610840045810732956912427134710193880331676374391317098835967972899022310216490616068141755264516072243198911397904010433348895703735839019244604747173626222913040459394572632645491994123194608543955756653411515717623110679177226527617578196797888406878516121188838618847427991390180026275181866758499343137984187795996012244750087284757298255242610439520267899856159175752758886443316871475084393009968379166189344194164765867156683882110690609786592639811087270234301765742471576838439832357894215026258958310380806162709935251358175182465212272544021790206402239974062015440120112239503602800721247016379528190036993537524090920680329423612592247660673890885488338007059727576655320379422766622764054035891125748234036499963478242317962670602858506909054701914833594011605789850354346770902024672787412141894024888096075681450018840911196279311169052731755753998703718000713152666370377473978111213818569986903060548080947341877696238496542329804058401005338368979733941578479918343821526359082582007488245011842531845619640085537615838088810291481523144330138689482200532911563965519906051267353578192574816839975135062026820095785001388974818989826953330931186698903616304601822356443448139886730791172735738404396256882226942882855170156068760916340915028921180286612619068722670088018254921109043878863435228761557853081840559256310323626886296509656303103812489144663831384271423420153605339551320191629729295577587974829770115139862841926754319211909456208262888626135665764930286399196704454986346757597109795646338653717878466448066084321824243249564693219494464027976615964264856672028613351162737546453283554833779973786378793278712243773574099863291986938699016967538933546554237052899336424628170974965422153350435913408980880101281288166595892736089376211346390246711632022678391924621682457173152168856708837780493575518720578293416878858060104102701178492432475377501781481329354591471527437185958092176234117689994882858141839845566014786004417555067551657516957877007147950903249389317787636077510810301581098993280492740763603212138240572043640951410692596093247702913080794187836040920810763743962032528411447934941174834181770189101651660070724668423579342910049947772579159425825115435095868720402630916303013438469811578345776634769539592013501455253797582315161163658126112283768950886208664449588822446040494825263757552437385799333770080568410953374494373755205719964530178595733725679808426406405087560074077861571222460611260287339313526425439069322938051205827213769683765728452019396194778293403194915829308318464385643891338845425157375586998000972876142837189004070968837915646668649887796662349046873685812406351395705094929377218815145363033946515878655035020093351590541190759004860141380487424805306811998600496278209825772642827650259533886723759300627508614840730741490101611580697246482741269204779582495908023698414926959859581048336654970460832738369415377413376314705623807973736680913053756554915441871024022793635851202245568869388693990784047428044046723398325964302486039021895306546469066840408809409276564579667756804514490863238813854790176308378245823551661249278506256148576593699074421172246940130226667180371592703521050740124143487203622226792331327117818722178461462697345212737889381498661221462366236145907306608413028299185930655032403392771187342792815667749580292749528369986228417525225982259585397771645499350115233276189221451331488735154371720749903787317764334376835956629730260259194585492116010530929660777101950135920261580747615348048718448242233224492598059885996299866202129208992861100644056818268465935573454294011417136163565974901958299553179425990174193545816053625528431651515590587261616136082443950403176459941699543722126759688546278598936785719196539166797507782704528154109997104198270967845390385874823703127469152295445326069020270693942708586078805340626652721357951566227043565544549016531682026485923155456548722460650445012020604291470244971099771523159660033342950830238321708503171409740769320920717828278182991671181695421994881937665378323802759472587350568755089199711757176952740703967472274979836703067084852886632759133836463582207765926227653658547139926306827900182050451152456668534464317535469310888027975624998154095429078223098528465227941826988498482167236841369796681400505250443326258100179077092593508028199051173584840669939638516373864977195281565563062561678182127085738539612113521763801192777138849523597857349270980718860225042239879590919311353616227778869799359803000038395534631206605731415501699716793858091118690655572134999673539236783093580936313080222339881862429812248371242685436786047372421983027379564074266059160037675453032222618327624642679764640864920717479710861267317577100000803271124741790034099554122290142197624679562508762782310173534001583492391453627329623334980744886899757002825189303712405000303648821805585058693578008612277954892069429206602296111247061131780017817805374748027181646173966923023476185824807025519347465320902079295484365726649493894829232575033848516601741523230781300225274919157146364013349391360408945902413905306630049073459310778344170804617130354842524933263292438894535882881789531360453492402406819087861107659844146093950647649680762403472063018017962867110227240038644149399074615656929255758839899134626174055726520824161204225927706607831581494679761318662486875576902558755932800076491560097642993549128276706078825533434753574694058160787721994845811545827263620843708629688420676965493377108048418698358559194241054537040117477136071325684391965441540959776923802303958480828814488702822530322820897118121896701430755222862303437567649193763716604010322053671393657280160692282854068820004124716595578967927398906141504072099330229273826289600899532672473638618036393582382041110164889550186285920682526193381548459168490650061268772313661718106736455794203243032681037244235533468561380569420913179261004482972194857687120636310799846904714954021356638053711475419431573166919732150614023464726960826755051339502020816270125916631500860497222783370573176593468360442037225947189854148556544343472811980945243529057101774308745828667909370525364602638678987528520586726387537754728717294107377244748655491903683996702949958137378018625470816249261645347353088559225847642091950733913205147613334534933264939222921937964784245309348613789399071762561382587938778287815089293977816723136491415994247427396713264290692688949598194583144045819506750472411037526726240201706290183733255399925429795544699252838092225706152322031500037675106875000938257695640376827257221122388151678879706338034100214519591440847037944262860537639282398207562258137210950799124492758243933044614423763935151096743415779756863929958715080914415742127966468430408405881273593628361485281345854023698851859335325998935224221934899946505882264908963567804441511535498310259577362472486944248507433944160220181564530322258450827477680562734924581229768722003832581855241961816855351875986312647555524767675850653438528815301012514835246248235692885653266567021402199472031023871712177906093576472724082830465004464235328787046178849839313684938821632165311354085967460520647360043913623895391854888775254781067769841461587426037135372702489772092982461480902521752888940292313887694418314202821461152690856569101101305178663182547826087410855765891151102929239620836097622792598680235252980229497323056363379119527250050318173365167311025969400851493532865072801853275157982024612848884799602547528642547310291436196201924997139376443690897282020818302625597631582350548609019366146045497147808986310382729698671856650700722548848923022278630212999185582252967618853432154932992862118702058273518880046531167376710455404340382617096554560725064765215233111294436562311858565987574290363541692519137944392685274720850389987770609557990052072170761783113089223999647554540431478035842084608681433313025494586563880700895947127530981202349805442328186866401926563430891137577276211479091535489959173408014041239079697990114150100128130039763643163365724220776191521302670272067467744542524290424879976658283335824983317970887800755270996740635599273968081800782729495419390390062303294941143571792137757889247033196050696252525471035059199992683026633141808256601113339858474962069523611987252527468018639299682826613687447519020005779763989677552703554416596058039482764405834542475022933707391479199250685209480151771518568314292062923906936105114537645475417599374981903513239259014666881808918896750540780559977943033356496836205151801618662866716444639115099267385831543616915006315897659177582180510842609457060441720999462478231656570593800487484123418555111350112426597070718426071898867734824669842647334425528828600625915059077802434734532087118859918786553463721447985247127931983049444356565723962748711899749278379909722207785435468544728776518386677514238925916467699052412305697766877071849052720616918147410451268499017937383853417644521790572231342129650561377670870770512072424892931240841053097403755396201063596506591634222746445513676251903917626927488161794326522629912737063060841335295806862689799887802267721416296478102430923836532436772976416693146315723303534432732645329228071141438371075964584038779319098991353616294985869974668760021415149948338020288384867432084592173577272894455939478701475206827022099298049248549478198388023112058247443722432914555073998051365421930090858036057708504174821799107761848458764086616018740494926384311272042365586988545606853075283424725148853399382253666965250310888761249861383086650187088600462301694865205633530632283774005933199582410920537188253310955198596998882559025713590827435536042193236548530414179704005228176223917561369485984160341974829870977882084936731199204841843045765948572578670291883723977174847378180937669888489538313725716652021719765988908889152126660263393461913511493782207450066946039098472080281358134850528055519638688791075687968473079580784806061637935276646114834757511925711832252990293562315029896429303705196077246099769727380435390522691051171141991088816947207496927912399643532146661470848404168318676599894620490329976789442721246937759024767760490958307251689974298339548840939015909842296363939945880054867998845547943553304833433636434809339183262897803811384045720576291780023281843116085753645508574151272648786735520070851075909559220449010959490689707315434203645115482589851066551454382996550533767003246263046954656955176854694537984847312749429311494807434351702768476701540707953952135603501380185969570955494758450536646883431095141123113684555062409169841513404394931029188823304514800142609221954757669013718174915067217386890039802751493279506500169792953186212249913654550317136634660745840924644514127333754964367511675845479366727521955011133787080703193545886798582260686392679949857490911592269742656340314955559823413779882950841150329899272279855240076165522751942936685177875883560780346481604433457861547220878734433815423321385170292615961481844855314695657645038557393758604250019282972092807613926045968354915834213133351328737097808244865385825319605534108910397805045140503206679382796676335614311517627528949979598287040998127514752525880422543400046307010256331326182821675009209441507559916157985695891332745928573240074597856782472304137686039337072984355880777450868537857501830952136442997423212272574630509988702125529752122714489000177857807602445541743281401252537473724274043646631136608117319624003843139406947271981504116803790576031524168543044927344990006146512473782170076287881566274612648898622360941014374601523406038084252925962199991978529154433768086178192939922265187406159048223021770069692999942626207834897730586779337934004377212180994439599584654027568044159725317989169176419129813766194582161523711419743699593571617372752232440688848493769093630752437203328354001177242854878713973210892704466171706607551347178673152113065562708806030221768163731485829754109617428361029968112266010701138695184634892682363297280309189735869488444667597920206266301535149953363383116136502116121028055380213903530458786055849105414127596692506566758478448764413159266935958476367112346650134843894378165716832727430607172521668483175565134496709652536276337256914144206017536496242176036755551211841733244396792544417604379326261043715682547963684373683316152000466601875245927367306411632109366348987962843738763702319486289898472403255984055532670944980581134061751018069353228973743398813887724329725001131167915764505067550995855668770088125469916484367592788226169391316144723350019738594650276263855196068661128329688778000643778135139018162725082910680258461393844086620175794582062777916222596412823998146753651662981830585395230865853884506827835508468840061533655202695308468859913292886116242827496846501180208443680076229923712481044601461195858351082982127520953531517861690098771587256633939049219222542740732210574000477984810393077505273375747077646367741370077526980761974988581219929803282298550307006600906178480826222954818633591666230223601096026871978250136367172609231414523292264692141833185939145326344024405528927614454852682566361200964854979067459034825987254241896178684598993340629220136295010390040358743609120161152348276301324787068409395636618688438925449331293929616610759619568537776392929171772339471817358368569905234599744835153993980287075193663515479767404399952699085629216363859986109712192776747337683854077523858466138293041616266348738097936639452791556114337283229844201033641949924023934075569084286570582075663026496781617832364881439220290474116097797558364677876312758700454122642002126098685156999630484107396558165565804634669716540547392187210210698334073031538014639992249200466656201914384276076928407598959477376331185860907345691205514146344146290257195490732518093948976420953174982432634857542510535553549942508147130390557381739128330026655693297392105601298892797119821928863377636272074618703667806165539596381282168098910033476677908538973093826611729116073482241675731531009805062504146490462689133894261205636532873102143382010600162585843480202867158797886628619806916175014609889546067110105028889993654705829021598107918120768163804665620084782609729089326173121506397399460400041431800805477890809490837342579104276848592751947237366496649605139713222199246623416614403291614171147052834598509952714803474002422221303427314370515307522442586239852346888941165028421393962156936212692383227621085369599128779669018426211355709303135437955396897369368536284209012158433105871798462991634644743399199119755801449931998484567492967524234049178588184698928584424362850644713754779456183494159568127683422484312820347655828194983074197631825851841843079798795403196805945547998048324458405577478606833452390568950739656479707097908103752654164708874534030424949094330536081403123286899773021340017580580804247195550932962856600217019076161351961541487476167354603555138284387559344232424986484905472994568359832622624698562236742067337080565092808376876958071408730166336769535450827016169637799491298822218781825169134581749983306054626008322187547258769015923652819887413789202969712630407536697990487924463882831182707264078338644893180484288174274418807654012146421755635006206308890961281464226331828519082082878388086155357543960297460274154218029023431917252120780102132814119687921293352388428527452862325251224054045142950073382451373406043696683727050614751043054219100745136508145495588636612145535761926945460550982810110515751967363911386832174055000865837729492479479794074083310657289903080666352707813392866302362643005883393585057917664404628496814361110985785390411018872968553940443462130469815691409720287349599285052694696307101795817224439740717251251072130253394400738061112830702147506433591665875464754601089904507892309623165438587804675468573341957975253177709176121412695867489161683177989572423345038169263602144745447812112371527059634366069388608697624095296084815554596546292673922132935527291788820730728418910448455470197822756284236987269434415201893833985090880830801609810030090950912047140477747095536576164958337728455124885910260240180415665266683395106887474381920099172239633716753741876638922901755654880687948811918810151231898271901682242546810228361101190842629165534384086443027528273985911600004145964271984550374937111224916940848976103474682781143207680377274760467659867692630361423360443821970283686709329954350277898296507574540045378720663120934183311628659251613065801833196812048222300839327305493568483974627929225406342303190567760349767606132869157678518667365751869964460560949576201563996182022196427511706997659905045711870009371916644065123759120566142790444035006978540367076571430813160356408256724212192812986520575384474805573178865090765241495773271602247769207372074820763600560944085182068960653805796238084261647455804839810835474847119940277407807169839747724319637541080386677754856760873516823805046922891121538190054287292148590330411619762574610629778816354437216013290340334918365601673485403461917621855179272961893678339771171576513089401981645195923861431225126422633564349014769159231412625478883156373731432090877202757559552625397031949529746460082817462501289046442447661290719832928413740709942687380588015545059002856968125419821064054438542240250838360657826517786041470633769321608148172722398049154002474341754180578722340095122224596208039804809026217615921725434668041628910155667024628478741358847321266035533365663922111448605219508234841430022291918210085269297968516633233712532406860318044509258769635816364597056066339702907705638212786505751554666184981999476333518457795322150381248892676170800125679801297485149413204352798945052398305303667087346338597734103364174838395206590348076693488469304088087710382682213680557043189370211695354803477357666333011813258608099982772242643909805169473431093101348380803356994477984826985459842735839487301341394062408981138193913455061325766503303179855265036594585044957255071480557481791309456373430596587672765519106846073745598921764988123087240174271113021327558160914895612839756482335125243809837588069963336032605166822826162165684008323059466804594515322943976301152982816918839142011001653985115061525422630522919837389633937096531514406554231976894053924700713811249440013783100006987422216681958887338435276042161923698612158881047722518184336876865639519199797247161725196310445042451953620489382314355560626936143560467465193602489151899462683604454914247704286367136377121909341160606808671522627338841382715402893913715859244933328690215993738099113648143278355938316081615229695317849114260864986981019567109715578668262571719299802746903256017697955148437442587823952644984651367662169934458401654898386401384254932765233579181641132107238961697153611877689599351064242169285845001688481559675465462056798384426662687425869555481384751757345814174656355839621041660584172662160572835715510366880536521137534291690843325704881522361927248980955121216887353556224014669980355525903173551450076969647030309266622324409005207290349763994775138352744767248956246904229439283625086990892748530725387326158963765166570003623211892037950674556240016364058673183408896593917656387042640590547614093382432354529523618516466749891020153989802297328945288758524538420521551593557182412178639650977021083653559232750297177062012551449321994986026875677371917942790301566264984667796149837668457531711882389154793462274024683778947444723286809123557554267204801479240872624379375129837958079039524452331307206170799347379033327472981539558375837602785117198156330655526403547490379657584066041585291746759994258310158296185778420358657897340652571208395307348026560247096028204827957128494924627282318317329225815061974397711680671527845304716173841672610611431845185664508484802836714702795270566373628734192044697820117087014827210838320224576550787110133416477037040118897264719584474673712028444217084272542543877189253712150990283640164959107325934357640639657359777290842343612706249965297578874546126798874322229772198753520130356417660318990444030599596836852687915949306605821159428042781738136103874070779971036782702503271026337961899284820202766721902538303960380322750979602067984683126746187192170139734642623211542773364940673370040314985193365825641363695470452825648626658335066038456125441428590078945553334023307304255301221700569619250623362531384152240808188517573407234972352584317587038990520568812338721355764666562030189634992123899001913421873639467640191792779940593903072137938087255483010262006007800723745908031949349501999467411850933882161602839413063899388799315392249658393058565822938935160861063115724964907874238653990297123361503944772332601478479645335316787252304608349329015210397832271226090228459315773898343950247023448862440926438947475875446429077191505633494935878895571256115574038261732752652735176145294898819942956092649898861857628709945681068431320283319637897817367738113796041112160376592105908631168142572489480887082879632952724188827669325018570430273199363646368817738065525991483496918939364288018192045849689446444615388584491015796123634645816535335062041193593379506574093569058053106081891240213420411175953913841602002244691743937066915716377761879873904609371900379505111181548986126215499018585095793216132911495623473502001932580288521421415891720234287736693906579414881597404961827566803080585894702169868214696912574207496691284448153823793362252972474693116144497326224416428272870544049581464569002769760922408197406590427408088971472183636406158340947786607568529056240919879171709997809348862544941964150232166634122011142302429977921713698730072649120533537580106032822897489107260903197405541810351170705301863032948891653522322459552891236276470089167226932299222401708461856065772410883451236110030190747629525593630313575677783942154523149595310767983360193746821263727503149673570469381969984060550210358061997688405525953224142032830190606347538327612896914777223999148812744155323473504754577421201683783650656341832165007041730300244941140548204061178641860904104028136879600241290194259974413762258920073560773591823936323625381822026015726002498201783799856954747409254426107423344746367229598648040856006154412124764829543548759375329043405463193891101235147411806644486851765683958307601127021206565985162760992342096374972032717141276023317123794868603757917040506734600185514484629916970716601029666511323761613285542942627590286870023136715397422076165816206450752967758217344979737440577890549000665501471798359139440474524308807375845865339503877352419545552888578630449695383390750444888938069269940592752378213841348928138042384410017696886979856031137543767514047726692593908745789302110585102669240752631254937234608207171083608610870684890802633884423425800571281960907999146464576176285859633841582762232732874553155926846771949271368008273043926922361233942238451286933275981341841264412074817599795469154661374403305514990297130593981075864316382891586846433800037215308260380813425740037488204140408978565471531136837032321936033947743115134426611531559036383125878621899135109668989424356881375622674082901910330255699551876066894395860226504171931732485044208198687131244405370729222712144545666115966223811165499484110408941914472529453967502138719463900050971368818385738390235569532710437369289840247623769047548811892086816577869389082922482816386633903808052909522539868723372537929567953702270409242780070502651932332648212034300403898496599008165255191734518517007334537610246163004313409539528585200197719914560875161129513886845679792158783966837647723796732075477905102294830872009830713314225774154220955954646842704121937748789430869819968797577750078653408669162142223513258279365019064651495191465829647894166325541022236069607458408858181949880084309732376030019543904805236721028873244737482861626192251289058854583800356101035908390478092517633814719913419616674982830579096845443469284852128936822996555469077291878770013548898089591309281941158715753617756946585608970819312181310798384913913053490141941464625702986468966363983381658292588020266864076350110215177032294600588840617394466822529175709316497919425787696939853407661930882063056578201728071105178766392403408171766442072925011018208491803131243350007496916299766398929999095540076895188420122084959729736952683451012793537026294433655837775399469902080937454711475520918875899373512339706885098546753532822036966741018735431635009576292840577649544874686576392235477020273860388272477896944501479985574285337755168419211772793068195465884734090395421668749085398721690031708051902191526070469766885869450270348046580817265700477570339633576169196019301317114778007417294796197051867207680451341947716630474540471572617981575100845840863107498070517375335030080674741369093326493853015308555650835923434073612745868613003417249186047447085359747147583363844595816018328275327644126369089255533267319729278621682124695568797744662574725446410426597356297126467505159241018059727251911478885567179052522593577900642999990088200650065482873630036392872687492412145800611110888758681104983283651492796592790630379734233747235323349832293443152169525684238926084614522496286685768272975166491204975831588181215293990244183661003275876494570535883936636912695647775671084611891198072383985207130795653475706344231357930968828723134134851638525565760000059314372979453130175505321409144545579264902545560895764004487517525351466765277421140154413240913501015195687332711040433993820980882394930570329210504935053509124875598943997217830267416482332721485298150920497375611149697055840605749559639350590091962440309062367140229200902502194134887672747484766652746367169072789182076736332254674738125115876029123481428978869376202314265935099446396627541494846623825586311077211778383189473246998117940731421003250803929163442607769266445814644835061025777859780143891370817164382978264903940786120366031575575165585081435241231874387335084102585592625678174420330712377840144019437942469618462173645326414399721809390228156806514339556250173833412544878675394774033123299033912838518326225679143877541031720377133451517289968440173789231240973479676589522121606236623336691665768678461576069821243151691444864816423322837239599899705985686352864281878066221835203106730332606274112605923847259524156807950002488114337495401012902346841782064159060178096832520460005614515906904431140323142962306918387367635482151896065287064200186595079548705338857514258410176295291256471515934294988291456141982580749528181147387560123311897475348587868750684912794670929737576321624337400524646764210320850483326973087474785545484753815374989827938268246878173327191999361625123945677504069934884279943806227160910488543807007341816477767387995756379949487158915095060636482450360539884512791202887522239358647425915425178880980364646301965167365194088207540575614661344987855852834630619020503206876930726241668052315163501035190204045893315885895668874883401985365327850234808723248031433855386039604205732757814915255957807598336813998101340048778859133888830814733796382674471966340541360842475148954146066770137855158635601225195551183371451713065875707954769339129962412572130091303631820357606455204036031103985549094262061332360847152869548112839450410021341615724069755506607692033005814104617046203646336254467173834207548405405231630288302161527576741201888565730916903700067790416845345615926483287171325905415658275768701706519680539795322220077541259131404103919041094298301556506981763958179606387106733808038649856222661711527205236217929141063079249384862268758730320685605125850869296349105840152567561740605811123455786866752459953346311364756105126388954967845434141556961328931174718245421063473128668427061716806319348356180247778272110077024601709369387591371281365938615228865308637361016716537284948420962856596563649310557008314250382510360019421581841469352427479696251009288639280625483456210305579030537648909980925397900704650460481177376376252304843274971515318477040170114991760763865823467855206571074821785067017489133360198677415155342356334729682604581692051429630166058790319272602035218184323012837925748896632786696074878468560712237472515155854465002124656348738489271542155300098991329556017079372625603228681104250762855854222140776181594637046073496511398148014037001953355926193523405776897837313092802362378683617360899977118570208715986373732935561331819954000017845944908063875597473779964419256211393424492874672215103813736120544182337722225888315623093547090339025115913505012116504651463135048684693776550165693441066523950064307881813687260459546714409642261922510431556464015998776082925060327854584819598891935811770887353843035365852691491785171798468722742130757618812974302459111324817920687271440943490700984561567231402648894701445488403707852486016473774487490809439082305737129691444795724258460416390944875837897416024387136789408588775300461356663619050186942143208139817132939364867319230913585034623166939562055406545277438770188793494577720490800230528119241978080548796110439131843324677250385417322859102816764610908000001755684564150350815069942912718331300090665956663564817154592919742765454736106518239700978435113910194077486697151889972583959098602194750335022433365134804269503260659409417871130837510336262345053474049845980739473931843670683199030192753294632822105223662027856230460539886849036433886119101951363218365558150171299765517248128731398568595154116652310184821296123974977635820765380362119703876180590993369973473059980331316696616053984049315178277659377408956780946531486081746979083187398096291563577514360808909076938031824190261455311269434126067383801423100122543670175484057294530715346916313175717496843092820330381579462601301893162357419961287348581210591029200835939452858392378600745384794681586637421143680548184898283652750115070312147438996568405010388603129114076033212298384118587983501913705325179507153736694033018169496213941266262709672050513333143233618682611012230145997853550762736190815172141708564259731693598004137253462906385204207512308573839211152998251181118318766869740379898885143355221888861515077437896574834948272558107242586213251596192299172310227179489570697729102802985723149713126099956983290860029160394233033816887233360272825684154288373105545788720297033072792920615717520340217714903179195998702239471033338723726145373012068723407271694377014199644554006165696809528786077026564243187468748105365307734171169682130229723418960590059431567016017150974330676085466768363576491557644030417045011985643914577106909551983256258667829561732321829941672104866905782563642349538494302923961244211024348243730587151574691018948091249807426808229983580266950026030862826464947590451008513592922202134407655321047378951731331179220037584601625085942701493473800303364291685121523789040086144918821541207137557002705962383050424734868211429262796393667674180580278921342477151636428580715506979922945574896848987092822750109310847386727302874854585594431250905465821432661382676170921456362951101292492122325784172451230264539428675140025732859819770260574720895579426446612209870229134432538925288521115221841690028065194700222227544657933187916032379117556165131663988808191004119079041533182459766673961376823753750807338284618794707455903344481985206865676578666215054898846674055077109593569133288180263230974068052835268474379289171190877814685553444096733529900116522459355202096996593242744455095326076870182040058267978110937616910877540214316384545312255567180372890934068043023181030706472334809647399007266468406219474838060265112965074452485872083138750277899485098995396536665152438763784724561117198301203154449405331453861766632932828768985852365813669333256866752845500478404729898769878041483666047611733230307345545406606688238443339724451314174088570919501553327160998431414739553286960130090190523298448297619896019547187184144972181979270791661319371355989664219633020008401238918954536236291947033432612042213677045932652941526218357928301255223770198124176921486556462089025868401890416128923667765314257063982282398583108096185110214232633109832396578177140857200269348747137385140259975666301677845945657413988679089664912518622483612954819809405086820489229747520795292220292370096942496851596822045536991895577131938756093231797127919868924710613647900641620317390241695694346771430748245408102314515674875851629043482999632923002107944318760661062027890227752085256297325588870202390737776284599971039381142919789458249768130889204817336227059181040603817865199296346510793273911214647681520381030274704769574512067135913703719092738010669708548020476905299858173215534610115859575791068083686772538646388846087768903510693755560691813495184599091770745765787050723648248235696595834954330598290968811276315962419377719474944215514173242302482049808424068639703387203588985645146785525247078295068296024263424606155984885446628808429299602780469911502328341710881960299845672314568291544336165217221579633750342995377062627789679679203437620271405620078153321838376563473121044009053539488166482812314535783585295249017314364200090385364530977498592270029357753592538712033982258236314675407184005253983564171414988306212616297187682142238151777591736916990034856206734439232167327308710783215477949041129007154670090985292310952193699584120272858291237436634921429388422728226983844202813601044774747040720770500838898618045384617344593930489913616228112387505447627978002674926088850648930574253720706002324057325194112216936450967428208340574980885681138695594462454902507899837105933640298649214273334447300787014999868555631239837482661481323599009066336497363089970212440148391497611724585122417059421757646646292006281025764323632987152956720314596648914687072483024329689652140443372407711052816897989152682023904056295862548044175625633195022493966328420069226696309256396091710865238871338746497233271798159939893610015362171590265758050047796511153303011275608448395509571892028660004666690454497981031973824866852497247223530731065996488526860432450727200159614429545582965078170217373623216216022387798850422927653829057973673941387271972597865332695301769613409823674005796318317933327293300842626088212432736786036410237422548165563166502003227283809026049244434718664578491135932917061879192711546304587167707510960653019068784291526813348820895568523315034614870268227963388315524826103721165142696998898775692122008618523585427553518202016653873787672841489315586785502934218337622229932364889894216602330528613082547937095048870269164564514343958695346207104615410169263991846820762966932994392205809195476081643211374024137002908122617443458595346450450782784090992423306474471269516981706027727467892187871723360153128944929058377209422420122792326656792866975655786458282012432545080102526228556931239538617784894091566543917154852432678886704972393521451728877331522165386517468344328180617189922984949867905858132060448831029028310927073942781019175129346751111415629489638227458147117222767388430613596239361684786909770612828191945956999162629241726482027864283349690891578293766979432902789320039924180514769360904446248084408461657484139459393924069573992788212350348418403723257049356111733602832502871713683939747989949149714949200333907974709232912416619921509781198181191419386959614182895800619969988554174413532496767177177225670283214140973858379027505159607968885997618430487336043759533001876025409168392428282487540169969753698604111881158501314514885863474626641303409842346158316616251658139667921246532957484004293112146501125717989100212532885976474074241717950546457958753555277652913694284818115763188995928283785510965922640622009665361654081295175925066822019948684541881260735406103416667356438759711265595792253363460830164077372383800383225788207071711029697082173302402465390420757240174863352810095609030850312921090185133529006952629241723115216630244414300394524853265435535767614199936932085479445350310344902971407936610646189389229986646855072246584940863067472418518283367769470243971274192565325826024452828831916839196291347944874156226058727702440414590600530074554867379325453787582428858676043726378447887006766648880697657670972796161374813827411844603513008646501997152463364205730646913405000444436039640403007066480212126009972109418000471075262158947622275756104354722540046714036202059749679644120648665254681084037156179359361741172045629708079448591285248798259425342354879135093014100285793957693960188368604925418266824640393214485260052834663629375661319110754361762637985602767095566286650046799172882346982511323317915069527366913289184552540871853991127474614715524320684176883905877805054496598111243112685891685286702924187250946904341679899800127817694845731773540129501859480927627816953781296723918362037021901303357358453325840317345246464919864510404315209913633200312029402990620481357838737334674908510343115991751777067141430168869347265432573787623064155910069015410749491073005200002840869532476491175019364307068519201102206886380083360530103963714664145420630985931326073683085959630203720032811556562303449496704707450339541714713316278394423204581471133962203089382492756383354325529447700393837116204183473677975799545353923117797955659451605091834919851932401445304153065568729882494041054469003984035343610309578349999463996011263787239806406101702999601571947419290194345741191252886533150502239309861351948341504509233051262314405969986192170411513157466455390549069025143597801598186688499077878016478884423109833711410933667883042988905675014986821918725040052771292502720871404867770866364379950245985065426364714362053325772281073295725745993753966300585103224537654743944745480720391411770031905685769919524721826947476013678273059843077397833428808493506014493174168813404603084818021041532281817615504716082307202417388969320981876335799613708423554726349971797221113780641408197897880054845022879399003943013325993525874281241162643459751849313620117981055036747979989328219385664755208446756426598580512892874665974470355108827396821964495032362060010427506138667097512719230695522175803743799139851112666461207076390699135772368100155926617806732847841851547549621705413147536038003374387482424292302858873091378708928117450453969961345770843932241805427702976873103531796148265002771330884327292700130368283628834075324821259817099941531812154813796677319633616830905859474283310583470831134063882916554624902838472785419118777951191275420644950525326325338767548545138253177335961388573816593014388682287153943955215927894795585808946876021432893858361369870118479071002281191294962334478205323609936824340029683588938381841624735078664423010163810316137264340418163916024556861747758630380414917728917986518912052975023185745248230381399570290843102717895890774908315112059835139297442897744813965818708579329896952136483142809782475806003423590319434480509851670395326122255339413642675773830518092955377642496828516053176915459637269982630236002642580962093576767409517580962541680962127370012877904043023307109966502822626613685041222271808232699565784081117977752229648982564748617380719199605125576061413429698078618556940806119049356964059957167269857722274332873692420568736956645885365472288225066030425494411832163185021519169880609910954218151478555452870364500700237136365250627056614382493608728955325817469556360302310417455044405972764087843702833215958302139363470753728349209040292704237320543147183885857170520259717007530317552979968326132487548449965136871019120609199536396003612796657486372672268891320743831802640444896790772686738573421362315654747542071278465675545982419923022718458093333773043218858735895604494219494420636084466712178284644299176879191983566709279020158728351261239442635190881199414571079621636367297958477778372185310019129138377112023514187048136513323571707003736131911568069848902065784983766294124809927557625297616274015896425801319063439982121999065070653230986527990774360243818086663507481628853138475837774203277333664997469466828282538651281075118159653131610383684237985177225207973879270259899485001478701729436899968878028064602596033646913899126138605680412660229021766595221259045185097870342560515182717120630104379291661280604316850046043273452947651455527684226566839574181649058693598658450893368904519169563276632126317408293985746982898182011402656573709834773395164326795051175019839778402875586483481556480500616882000098344366586637417054250740098697167105827531814904529015213579375057143082521722485384342070558473236010616024792710311378987360045118526472568004047612015977198672175008398346803820388345555228384511687173108269679303037130643123804117398569807113056500603860354475498954543322280248974672231199376889656154792692697492330555198908759031322055678500766066797877942445142088197136835109534718222878856240281327646843727509149609513099781970707451874705845771376874387635809710604025854220612489570383860221499439464732269737513350366711060905547975636025345730796744598894383046042385934001390448750393413519293926928272977436321071046036774692062507900580906468456020636831888301575693468800159577923135719866817662335569268936177826270080761356614798205560974586769397202248848311924011551901550813142616335520742876979404028925435878656055519275277684659195155216893664842171101755172279175146679073109415535797730059225981225506465841422910354832350259575856505358487580140660386976628276544969136677069704450958280997457892648191323636608520429711232928657237583790774700325702804630840099190453834671921095395171191629948728997401836624374072498500693306320326724016404227897471630653402867726053219869747790883618006505695157089341842432392054262773007141910343640406378109614941892261178178061760847304855659420077310330751164429574003763127292930101330169548939332423527054951402458556370096591981800703900156478671069345614382931121588254370403270539498098724515281260558217135198473331201430993358054457334493890094404653895097263638658834511203079465089852316961949500381417368836233182361952412532271988730127119456954113683530935363138179299514263370979163858306598403392269352504298797843741442716242792699545327041370836818757134012174021348596722462043110500462430570301886970720286858317965839029001431830101703912560757496726255471895674216906779887703694801536496147082245224831935615227103821632052362846708718632237598155883328067661760971685247378031431219936789818980008562440669517380774836130538799853530177596279011047204194455281218408262119923497460812750310460392577263182476265045895223751929662076562964066125628997168696176498535558687432116255940330392022893644620906112931571121427198898939653410345723952831161285065834891219101392469810732626025871877737720867192353368700968200717298515302131976548365217429252990898899658444933482707375753163586136189780044574891334091067998723403305089184277112460715292857358600717687664160641195409961216611906516238288549524473986607812010664987035929592375234455111658821397418129564406717607308794847075350405339323969782767121072855787082591752268212264009808779195068234963035581187135959285549714306566179502051706519116347508939352460903942113646935454785869354288959943227888740329741255835424461622588687649657531560274665368792327584046322110010906579294494124017215443813365169930297457041108615709971959205662887329690007518132770833493199166175049020861456006884077948826740945244356424471266261124557396929623003291436456783908351864420700819514926206601799759522056498284757627562282216988930307594030989827166489639619643175419583186986083550195750151677929954830724593129320697282566297007349694425610081369411159889770552918509781624501243109398547797430205530049391138469502527264704456758864354474707459342495570929430221685960348934083333953976355621931182463333925899553928129023955428058457519213834565967939457227466669091254147493704934420666190007596429216484390726075688720809460592087220480841688801988225061328741802239790460566593908514789601336179994968952852520514947409666214783323070356872353041374476328260610374421317745651243355152522659616461938637628218202728114224371169541971010478528199803616907395541346582248809188312696134208829754167861700917289755701147124927434674002702913889473703644508222274513894847357832791374866864452726163867800366579008935809103605607997566878540343767966307115344300968485060874890986477528645228429878279215900772616356650893839170776996461552485278527319516134037156748962812733424976171987637135947576982285460766586773804608312085738629571891525753644411197135728829234152428394805026273695487422006217880207518944606763774612433477805585141665121482076334520094836647318540473843117718099591420862165008763836936650884468564111955924422421731468424928329857781095010712547540876575842768677463033189099318043957202783987301134613288105881756575443660901509964200509836934727028017931688540744780457317715250683883210313555116228246970178058004401661594863165079673243473428029228331187574244851228345628942589376270265594590428231342018966790045670409768372741467052847417716134101307431858872784465411905748134794981298742792758370193376460123720390218028591471930212482654268786499170974126094433725494949893750754514910647243267909273832794011044872172933504531300558848017689668248954912875469270207832570221809040510060516452027349405098852894852921657824377438786193474801185452855301392873744121825271960211183850084303308512782503710709146916515411558386414932768199808637026446206613153988922116818697930400107016793579587548953790233969245652828250309376977520219325587889283590523520094372475321762185126970000032947699420336328818471210300865000254584775790459284531184869198064991420765538665996264602957913164808473168213280803512022370858924250994312378398127875700669523216400852212886268952143786483479876708456405750672168402851691942233071272384098967784162193167047780886844660806429389401693212265476987979394653568661531173744672402359702784778573519445259807966889769293514624519750301791214392309699893532619603802879887173197442220671762296633528574731312131338407165106825775668883903502165715073065252977323420485664950474793903845344468295919908841477583129412101920929425688182896501929144972086546043441076836096597184034639080890365167692777080671296339324464616482029895499187664543223038813868922814495350624880764729909528643192982356958527658582988626948147609832439297668546320601830800835913899257642744288874227040613449827159564128493462053648384747328166370972570326201952464431230270746506330704813142576894022395270098017193309497421787103483174221774677170922855924224506645058503206224299377411016267978679564163254018285861587685860217707790385004422963899976501486055088101992189727035260694001863726888152902943592887244799454023573908932733415201572141007332387379174378848370475597035621117537835969244120399354049574067575247344433168485307819728919014940614167582642282080377426304190281851717795559243520861514082379148006847652966356817138560341730699858217179203850197942604119771869531436031378452900509417452364223397768478222670370786604699715127279779541661617491522597138460951971180820575655266424676880092127616418908004741453966722569817885823588044528170562937616734119381887425187238377742224705023358070986465865597696297388095469541401995459262401302583981903929334111044861689755711406826038709370103529915140571647964248827107756954698060033498575655832198592478208987213696388373344528442966189344455456679563464827999819664231907638932455831661829192708544332817080904322766718356200950795135279267675445619414252162678803199878433060956976458896112728314690738477390502603848423149895660767969441125905924282431096519554411051542964961672707510207682856782573781456182475514877932996940088094715838550073858006585246704233977414941374742442637826520739085705479815227382771824789342381374952636202358131922102616147912284213503465812593245734950527367054075690582952601252082723028638397850332783267244180796792355120889801258157917444002073355304881540010731770771477939738512175247843766855617402822220857355790750319536255215202069579163234032112423900637062661022284601083459481740722931773581063390195679743303609461871030755392032384428913541702116727826979172144583518820351272459908141124713896095462908978412127842965768033647162803250204107976647314265249417308132296890033214293380814703361093715348280794047415601554199314134204905202207602484607294684010565703356218917491566472378274340455803787922220217464532306399154725596846104438800359987183731096351035868253297824229788832260989404519250598811961176101221156613168106752882729480143864131550583879467914874127889371629872973959605330307034379719888539186376515058589489674284196803886659460053589596748534858615981659362115448046359857647055168026291950472953208416840126196119657442437878193613308169721703467578968426366548521941261401354233953679580929735803272876718636395081686585872685087013104894169870155990709679688569291139271817575814382052311540100189792409087598879588525999134564140751585688117637895369622093777113898347858724832602424033553176015025516675981474315606261097530848762384632217742905036233829592403275294912960857974510991142439772400575986127614215766200548762618007335145671383304615736620469869700938977725258286669732644588405063537313346415486889933742930483068334351896888108954062157906666010600337934705535789275321197676458083458606557865530731690913432630186293137958699728991612804899230153816404770997312695300822839165342485586818772348493279657106987566512709092480327813003998461575297403397165683459822181634676729129702393629329133719837743167345904622845745194045285798465071571385262193010168447254118324105616658851660383532359357240558523492738253198605161512856991574141426298017273154762534325855668886785568063730957358786823605460252482070147401992442869207277355065461732362094680920388121019233554265378578535286703226714094433182649714299109314772031631968609691394313352060179728219317385858460614461158568167636694917601448225051646108003896046720987642120006355447644320096933453920139368913307764619539461498758095511449696056184362367621982701049700950877250027557056397075533684958898069892228513234982909547389075171770973965708324542676819528594220899768677191117730731303012929063715367850105281041045348856659103117682459687142083413318247684643781667407602183569460670889382110270977183061333165969979385689891389339232657079052049357980353732917044944356966255226065940880610431804772256577164872023382543292522451629776314172391093060022448004998741000088339732029353731701522950869702405982564468392710516128262031102280364254243603049984284892351893703681362356532549498785097264527593388529056593335287308267656220947893181350903203287106184694035076931160180946397964474952871067656417889529469185706872926224567948475269326502978245067212427522457347401010942662260880743268337873613399273720405377975856063269837325412869282883436814986448002132258069420143771164245192947661441195065210239079134668286367247459010667905253858483578342348644877522851947246530663627406818169835517043232426901382990758932819243155878740174990551833101121060274995835605446860597920554242661836830261956996049765329651692791849056714708091867960328376626036965861253815758641054208227195694739981780284971825495437785551621531560838603807087170388007009749458639765468839893829341715739653703190812492548697664569716010052359635377769769037452488192970615849286243087752058570484725710534797783758734209909878707458741350304507256882126457405455703618358489062730322577350959613074993125146129994391370449137041164181701732115390958485578556621933740798451982535834907784387288964002829848510779265297580369041844511444202803399143157042277981784667736858956101676004051700152292070388282839378977892692770763278223437353721966765650523831799975769292446757144957954472570076793925060530355010275650247406725943792831283485669351145953202511831378129410676954146865324721862176425517172280718196085134024016210603642201937143157909367235344119418271477039727448356479174745827847205971139998546966375273567507430709650366775439243618442458343403908358877041605515690371621507299057928929113710835311125414708578901771779606477614008813944903875855232156333847949746778745350505743031184266529883389772456963273812076786821484163123969196556548489055470703734851398959925993827076332739815471790518875201540242167011920933965394811764153709320199584348935384190149278845060901372411845368325016302145609112998453720972232316872317605217430970239180503155499799358073881646428090450770552711627973730646545378193629993149478937115044837844886038429177358403821192540936575251023658082591261573354115661432149039564303681834891179260309403382324039125879239403498649312304087606692598350955377868089109802227969448603067010100056446026059535362801701576145277343079897899962181039209626973162961329683734379809163563872123345870950902545487968957389021979004298376180438881453952597101183199077817226166052941461903725566884591314296629560690973727457696529795036201964576528750941256044105965009200832967433463421516315471552121523708749034712434142263251209370459112592863851246949413244969789190922199831090534722166419654436618515762418427997007192942105755784595571509325369700038665443763364820872124850478996556432051474920266388727955391766549158084819875562586906090460642596878305086776191220376166338497265885858780360383403333951707964179264361873980014838862797430686739012195973159375078860369877000760394456959077261156935842748520073211531168661260009407490148845562165561828129383056011588788590068786407806825021545073260943661868858037286830883213502863633619545710578859904043372649401551166047624645577515351106987701339600747390443318643348036792132650238846074926590872664082442185676290439305464339128839896971369143735636634501455164216830517985451535434965855413033380201368753830185717356496507006510367976981421619298236684448880010744410517624919472821251070965526949957214610036741039235509341015390427606235628204227292800328684157520938006182008492269400525769225431801311201226807861123836069796185984300088544470007035811671598125457460800828423507080291150742056992402690196164428368556219407356676386802389192877058323655078927214108536768876527563535957760235764008366800033431588787701069679140692630128061733978678219477811137479148806728461537123181600577873484659775286587391497007710656160455950269206325589311640131068897644071253357286597063651662226543917426960790809671884370140579421712206356751562171295323710822351289908675276003883095701454156058511327105957892304941387244021531953284208450072292179606268006500498813180710027369242292180274273775778632594063039882207165018404474936459536723135985894087938886408890539110661865479911444180138028598897040902801853959545697952587271460015346152655311142509042105819102432393120670374124598455453241669145426367086722609279181377858138753690198011053025870979152159959672915061205869935407069116277182257818506496994482292792437077711187484832618359709936844598638893216293042672092171242791033623908131817227879662500722192999214091374834228182944163860037307176236215696088675077000370556605846425390952879956020262788569055809176165630816070333163139614836454306074674201658856546272957400582059619327695526466912588519225594399682905528966583045320381481013106275303659748179856691306471185743729350351361498613026589347571681959812178043772575163158856608450844364101179561716015114572732543369904245552010767469425284355558106311663047572542072045398660542267356379495064772944205016184167371395233276559235222444865207252271573715607975391918543703816857149454468002938153133963414560960175052528838590058009369210201131721909416659170274409703572786056282253440231850573993505722224329297296820403916293676491526444783243740837852966303705921445514880841878808207344683932581951737064453041317077004829325230242472093200818684690808184518024109032266846726556885745023398371796747199569357270874665112735545733956883864085800484415795769505969233401221756096796732589536626263058838482252978990745806670566720935903727994249478554219456819357336934996082010866467489266410472412392406497377806855514112632393745092843094284374458506871642039721724685417923080994947206890258543431118693730496325735875488508651221541723717768263406760828429138948350036576625497470909877092461145852695421359990202397804718073800575302461336287287324454093521003244976807439828775338139826856726384048960471660002947128894106514211831618859207498306754852516336387261590054247155496142250330873913749968324876582738848051449453805700090830051669320314972033794480663857808933639383614290964249185283037843056924269218279970091400160518689467139230664761931594123622430089906430218499700091711877217569810167809205899435849031391138389141579262873560551428960655742556725144108959160987805838580219502924394649121037802560161618592804821586426661026224191093032777395990899382315077572574149746527935959354995656577683506708995228034242632049010826591409739458611563926997460529742460366810845937845664806956228286996117453966845715494478462987137220941967824890249112103621168295268614214437633376233974067504997364406828981008276310824212032769698630399559951003395063963014894627656187358053871101336865381838726679595121796049594937774739652886895428804506085834825947147357714596778901321337087668158193518446739392395079030348593256045993318500794772316381160127920223773376597254685466238803925482546319759663777859877376694062617230648416858440982628151062468461658534142179098544583796306011327539202627796702630873727872538286973279691190944336166901869643640622557810042791114994098330559831061006444126896123427399565273398255799823868339357053586656234086377873680150701473294525798450553602477541873344004212996363196911594727223437597443837307126433922705662901046662980641826703484111820629883083262478850923452567000442678656791064594857577188280637161491439497000903038698832943857454572433926642957546304131377183719076038867804705502741449060433908519071982665398124712032816429590641448311634584686713272352863335357820661848269040225907356496084924467422468701421898674173434564095225501773210769831583620357331294189292607672019521044832757867486334389189575673367419013135962069243457314961469134349568839162374480046921887705041209770035415033944305323974475502494268043780168462256038804630786266493537360484588216582133576532369025551044615933959918590530262637416767321175528238040486202166442997521442296484382189130200886263316075417966888005234041210256483092282290112934865554841759544806301147413603156458433340778437924049492720257682273913493762742756687972266473442364106158254279747418580540279862901961614462777243371105635147859853571718340552001321953068658777433912214953797893795641887095150111696694527869556268964334781332869885942371766067423984854775153288341212332124678030356813928845418835085900428776519904302453395766231954310272739845869129445509839851635270333542721334149682645551921459288019496001570427375991701412453074027269727562435899432299336446310965639863873462018465293745881823097050479227921011874495902572841075267603746854088539242661887678426855139443357579911309903759098398505193865124209930874170160932043653816479940791108885268936304894511012121184145766332889078166225665571958026675308756728914967797947635499543990335620292388189648339171923543132773319013801997533464106107351079648412171571484660825357790784567338516921058416321627492662856409431485936187027315504545928134664944663315407025088829250507930296224615103363460053120519370022362521211112592387097229557946060335988479793660699425352579556494514988619340908194250542031152491505275134387707623856985216685016562863964902844943536699232784918418625311420951801919087277794991278966897604462936601250892591841636545910926547227577023167279728470409012572197390123505523506754934084975885388360157981846710617265593512395766176544799721238991605824314229061286224487162497069160191223622698906521482296917521761826962022319573007768512339995868832374478099940630312163058952677369490435764987391138075228863196275146864254270497913960857040464138625433854381316626714507520970002738945451424482016773366774103341707103161328201566530243978859299425750486977480646928213711716443239407153842917049710006243227581480255551098610006552373489367601722600656499525961856042118842240701451665870216913933252940819856270397441095989929239289131503653852211964792174683995910999466926858194558628513805516255729343827605907096101282582439890794654815990696550351674555225117158047383048230925719415386989103787967323139644561327573750106703765198414354508475331523572267008680338588421743126676381035987908168886843081914511502418913707322199420762727551981950365932556284519021986713381512457921045912068838568772433702179202196199494442935914896738481771981234150661965712431580449647693930669522559759178494535366913829561915391702233165000308002437559919418410210738376220882803507603084948814171728957205402177297357465457666738055668491565989731532492158104014898512378646190297035954886759519055370526797837396228009815568851406112036381157464399644527168662007577852234474583359351604409490125392882049533811527650363058411964930612251407277330065565964455661206697387713521228305207505097705582813148226198947140111142233992788488248167473212304834082140412394587471544690377365794347796035862148806592309200600403812325311040988290164095304973460317734922029461826755375381402862015573411121685867887131047370294869793763319281293151017454989132635801222732369067573590611068234072264071080380627659047160743675395537765771228303164404260668800919349127505997419144617657487701235437153978978613866516571194085041024527591257143711993107574421854404554745208146337131021505638644859847495380950096843328728064249841670541343751116416076434159704858155100571566440138142925741119364366085540125751103606135888407615917428431851325434521019145668201863279051713255816328209014725909321027895901599707765192317142348540031329189675810137843120165891799259232904374805741130702751894197575807242832388662283365757123871518821216185827892580353329481611169351895988072576652208849264716284039273419039379878064788607774437556165211784952623101783306070708231111855246230601883661190237550557586308383891488769946017667699443010852338812110743426029515783654953278907088029175222048202211288858790570067371886267139744178711672068542276022479095268983156450369698817980009194746475811715127695651227060820050367852111729413090431872648961986739676706844007681733706667800400663954831539910039617064441777335664428313131966993280746944284690479033831241522134861782877823005950200253138956749272242828913310327902443212941027271108486354008205440108546701872034055289495252703772103568488041361497858674717529483003945414275773046015107314525309179104487462965931891498461616144142342605034142840010864033557877032094159861299001630109090359133654618633365725306240664988410748807478201365442096959312976726765367442023077486385549758176695118025996359981357148217852581914834280806680002961047601680072030953452928722160835701114663342857243010390585152402786484635460579752516931513070469761681772930354595931838881303541385376039036422659138215514035501507762611513620927506863512636452549147006059483664398926997071025093705628915066450871421599022102516646620576024563031435464773411780002912721287732972390945533651662507856281059151786021718027318035198057507231803883884553661277964314657718391872626142537803945626244926410881389992361677273574814147569616808037976796219551529490967130518997542519886873927130675980180183974206575990072615258003441712585331964138605342153592232902309649840492203447300870822749543230930804428777201404686708594940481239516053672707761039954328901179968612049092561879414115761723731011419869524901920225845193895557834789253414555725800404597771436627084751632494308743223063387199685694466877691438138931853538636323333371038262588824910697032877103239071407637194357193658292699273109849757054310904363389851870244134001602855296096167619870880037859534643190026876524027055357981663251811881768228948771972114253448999354232572043400574280190509289462309324658414474645122769669375124586431361446483070555276983973674439229968795459547005665332507144424086432929613295411451748646358780496153748274123083160079732884200224010805997995942097007234046256750747425743029640631174739508307466183990307381471075172712188811516752811619887312058290356479623852833656142855085859571539596987023436927776381081949179337228821339770079224091346719087007105546599475072257843584829992383946783066534309864455186742799293408452263077840893307217195481997164171398424268919769981505224923574850087836626122433112823178469664113003700426497313914643530555272546062086482292194651713497742013037061180473116791480836449943894322660714350842941430996606377357458080749869043733068118719774684542765105513964953260973128398763780476394548840895783764703587379221164376914870977960897528888654247528047615498029756955404244997567315962997351412622291460230372338602276382997431810552435803325386065417622025184395862736637425264692618395516702281658353892380121712336879376172867647332152064616878096869906283106455590532395164640793271330779868499812563173706866240072915321466810904097089038759824501777188025858023930937338491637676820517701400582552198882772515816781260948969720672274882578543836047629171748936599468227718208683947781799944580048234671554691439943615666799392103698754940798950061311162135375486079972569226027667832509236305427653935124922126847435325760318926109279935072668546717776983393062499937086950345828656533881544233543743440355723306937572459644124090969402877391895617402470492139556347818224744321808485946138503838216648234656902074615712495408822454870449383313436596672181407528146740306372787575312228191721195154072360206261039575315256393469399661881859723967296519664643750718444071614990540954228409070045938423848814150355424328928975558590404494798008052735186434613049778810172591680736116014401015940501129370062384662476310595055685519366344940714158050686122996357354424310716691699407856553838524440440448527477342308545224858616914862762372743337283876808878488053121004611373656666618421586555134935022674760555819349956151801862351950023610061726806867800182086630405818853017016415181098190725826953329003558981570695726114980586672530148155033001317865417586595320937237940569602081663382799544779646377358065003430214071780125710254226061898147754123286305485774422592367059689925185418793627005020865222798447777128604059458943669545486041979395563799393850161514402293318563269168872480470691262014227348248778442612691455200978328519983087797921526510431880379492598725443205401093451229307959941920631722685674931759156529896852063164676048363053143619819374766738824756633575411067296916640083214790096692974969281021527758321730873688216715887348118742162080409937402536109472947329985665628263610127950167537034270401657832551365776231000829820872992556880288531730387280918526989843991884083954455548656988696904150292015350458316925204558175385042029212195998358790875136325503022216701518484981517903350734326114921925526543238500777922953123250380210335416994949761440541089019253376973674796840991068497796569395984771624801228688393465817964481844117335770513460882185811684634116050188699547914090879614272889918611938934427100988434753090237860305036551937482865019377155007229658651605932744125781698159150838337552801965679988252797007530089574350953981751352614983220943586709084425321787294684286951727169545588842517457785899252826781760471296668510250966316738429442626303080334221361319738946824183174679834930390052535826330481385985074373976035746754026297219598304446721388916525567011155229336169640942335828386759648052681008690795949682769247138327500762710287324328970380493298173147906939500496472018922950675481409619052551284961330323068818873130319602575263987727981874157522108547869747496602983613892753560852278321984980846133866602418341174022018425148345703345064687216233820129367276278695068645486288416354714872227973483426593641407841455246598320986478429062300215599203039672632620490032878701719843153973759411588182112034351072484575761359450874851812108711971434898272488994463443212747725005742279053020330364339206136492495479386963135524994365976893285143870962125704128449965652586699509563610452548016694628027138895297808394468547191317512248715713066138915368715668106086171889434760806952225285873151299393029521816397724503594169504667478052163566256934063300356116994879513556472173600771299926105542630497474445856906027379204770040487057060933875437833327311982455271914685642384288089037978274335331141142500964257725808525580416054807712027292788042189377578370008671708126123969060397917389356133238087700813656069681543846180460954080906295759775734638015197637578136005886149271001464577567791098649146579346338024055240795539152783613113161553842753060630280075096924562530212185465223709448809587068610727782733242492215303014900047719203955227654742970941033823134929853777827677366161246470883506331053238438914426095839704093265710782458512803890712830644362571185486908196204192911425617510017191977226998241703720464771329523819397825377619971892003907066084088051951334835733671300257930470141186408759775792937393227953832522695994139458548784007155657387085661036610781878867891548527880331008291441834981702180520627500695813629049718630825168550935079072064096408314277510501437980894326069697820142703550093836505303041717800112404143545895192035742745829934025421270472797674685423445810304914682501241830726000698970017884800786716037904211204897224184567335659364472545369204794089054719547475947492221454820070711943640191862400896772351355160208059258287769218443666578712008998569559071050403964332869599814030718831028341196311747708882072770032596512603027959960499700077178085125815525975518921289606472945001188058269294633717839040365367993876878096343103593652266742849368559533459037447012958594907061359561042988661576814700751856366950564606501848001921418312392026720341230843844992429660328202158132135922411575954901254685468636660253922645636058415213695313681649798841727644449236849962808901606627563533248643229989729816890541275831812955903958768474136212888277417122568196694571759276004815676786379849434243884876477413016037143608548698669256938732102357590535254399233454434852697521957244559254957473977632948713523311727057890164508643721136080785152074135725619583738707256975227865089169252118250430318397199075183155446658717736489328155300110558126385186598903049143087482506768204190726940229816893366243165124903088082817517749981932494414092843639648270400490152068160601552387433231064580210798741692822918975114120897685301729741394067485621493661955770174718305765213619635641535611838718194247341466435814147060791395130680860543057106072627143708004846900248622029029480671737881083231232159347295565806922347225132779785333201175848614827753415527365022196657378375209343731684962305889950516855505181786408845913410316370797206031614074392346166393164319966652436071336145505334985279435787043831758560442141624622388722977056705189839031275790470751936440920926076388162817875308541328152125811685084492878084093263126572357103217366743941577766312944108828425345210923960561905528047106102959053596869440791585682465724082452210376156453416487492216079896082862131921530067437364081724342093646917376295797487440965821571331620440883222277836030128155353055479573158383163874220908602465499791804427785095644938484571766044726496551438464459023061811693433245997409590771889742450491104400551500999730984273609055882319427614683689076988681419428612212746622418355670557561364580811769213101753780867799524358746669489821790838784912591645623942227065213219577220010680512100085998809193531546050466843339789545061731268667032342092442073540846591226418160614267125881222991147709709445103426274734565147825224197623256978326947503099913596988296819457735502479128341700476205115455199338958099846467982724512837475085929713467207178792844152278611133091479326943576733191903734557838920306702876251712094776025679000222031045415948359791431577013974556887734139645508569202907262689795609272710530596417464809996341832500880764169412456937207834335531805707166049192984263256183370963826058310623794109756128446126270284636127791903036626627632923389496875090460829327820172000462784953084541687160713019293382229977149255658644465282567745415430377861809417168171767883819952293585704603495036556619004862377917063555228736389881893237089811732656396490324847062222684231466489190705366187879187762617413277784242057267611859957037797485183406139792888745430932012822600270124941259444168726026283319817815672792691019635221274133251066649118186226028415159744011399957354665686541745728214502232170722782623205474144415141190532413569704293562158022378227668785520045744399912547494487527475780184528385272095707995671853353595904375811647810717969330744228144787247771012032447614406095343668005368573646400651840752064261884014322805753081092908327466906449518399803702416285263323011455566919982079775708943382747988087596623698237426354259810283827982934305886418222875978971782877944819761523748354754321492662049054185832105473476914463868555100460331948464807980615060161919739696338548471759210584220706597246488193470158195005674767524171776435147297953145209755758921972907299514856825183052473712805340776380971542149651140822861510074896515862187877714621337060776137493942326444631583079475144942653936769896465883394045463233747900023309528765053884523828152661885155746562215042779835270941094361611468339164562001136450665133568417366240453994506918002415032355380764414625998676292949842369775450248494287946663796641176429667352398865944182749066965374294746755363147867750275271553789529886100853265717952305845206326369332117535160055552151867988369295393897516610342083853096086089826181953527021455764412280115526096944881491227042699856105428683582592307334939417414695555211376468675523344072845518415402753949845174977400147474185124561978958957687338346407164617987234760626526427560926505259068576675919557878484602580541927545289153512609760899590272717449451249556459989613762774762252005285793303781187514991077648273302963355983766362099929835779162102664771586573365788450057969096613787627637564073912767177721162008363800435813825686782159510906470574701382407630619136680537097644177414321478466533595006668692035481472021510755305135221363062946153698119149715982365024431590977569908651526823258933424845876875671749590164063621468238496650172196205993489037817141801753909412425285393172228518331404315024912112792136113567081353925733413605724258119408988793821811297107393533411897692192364928053106525747272329172345385615183028694304381345856946327072082896832631120433773835952313093367942398010516656045696445510072550015207690895166257147059689967445402666586572918746578907887884445706031278194110635056511763979169576325241674313957628706637121963460568106654037083250402114240476792028897902024438640475097556792564386024959707420847968234901674318386268266756318923170169176173015409280286062183242869622731098228344218381891058490857046847220183440076534626723454825045418324157598458048498034603348027941697595486544011220657066547135109985564899370537768623321829054321830773260826589033989274987408277441538769312908741129278455068689527985773610310354687412695454567862680541762265028790269210359371887400533416619965236890300431652843826990332689768829902791494223442952611807262405468826046930746338216424455994877553221870946833974708735424834818169622252258312655200450242434187371112954053237836510980463946203853088622428024570948844518949960903932839446827655530294927562718723210925667155861958658364724941485689772464505395224194418732832249965279411897367723655522111207278262895285683730822839935609439501183693299670843390896370857792356682289093194819756632658485239214219433474811783367626680267632939093970448843113391823176159954391888243784050583977142211296240268047939324904307997772328111001166642031174824512675328982681469808836448403434728052374515952686816043831840602783906333101756590917758146729180489890402578313256358042006833103897800464061653647547136182857011812602148759226618407954781191051260119656384631762128916990915919245800919428752001091528091053599448477624169779219236757357799794694831603313931879183965218406869778077892164796045161450824419132290318020552269020658317331768803017616417581867465128090149082294422341504837221591597323427483344943691345900523750632460511597984043604555438571980164829796205009025879780615781062795758949229330268950805057178296955164142937886408513290908097617030658396807429625444250023642257094272914533659439189289988080363142124567720862527755898698829071291798351519093336475230540094146273840555603751355823043591987039758387532577285091125023115377051078113301587659054568852607005290085578806630414788836648417768043884356624324084098957611277349227853442383110691093457305273517898544141165224062140491119685975119742589603659162694715360688837734801593259590373753448361063483534746412698785341845489656459005115350866372512166425623688870461328995213026798184469281542774830405819953689691042531350134617889683290647169560321707115665094038070187355682226761120017991310621088048550401649584253102642546787406797314782007028677911541799330475157242015938452594559622639183441765457236311465917468933099926487599165328823040011011941742761135529340721693524254783365657723197771648747125433346102420533824461482725448861208369650326348904538969276721698817264029421978675800513300949153718032224473907986054682495920704770606698786363721813905030947375416916911933247345394540460944310734902403367615383492820900066996457585701268016953145320249789407856980667534701588869731264547419363482498062925256725307261394343219785349651987869682438177092882909126274067301780229642044607491330356710189846994135295656246832053271412096646936026032125349918228483069652704039092180289693460539364239974087762121876436969927235058791469982214568051569557690016160827896880850615208083083751574661799427952966247057214052404945610570261342105055751206154223824595219216678050632304123553022052056393625820902445395847232509547514726660563374067251091042066695045145698687509054018810901434745121741442835072910896236629390765837365132342065081558514561144516717343827404995571407041104314647167926763984822891325547446051290248298672198862676464241036726225613441454314471638300775919555737942124899036153740910560753067416747561390618008871551463113794944706972951486931965393849321700406843688851904702646469761422935855855117554952712326508683027578000866016553932296038391717724750179238619937477613638801227851841715911561073674719296172698666873529420917545645032728596475346543594260062953658227593324146079050702956385879369212351325638123294225736556542844780175807711554898875588207074243767988741189931706230875550447852128983298486899250118485519480962366373276932448565747835304991866579386498176286437614550462509166155495859903152999654628299262721613491146539487535664833722504649333025219187715814577288287372455004305320057973039386658341913768934167103123343802696805360667594822846711601737225247472440442440474849093770830042934474693972384989540373859044018176395393406192362741711985247353931209601585097057961039671464623916965314254166327196107950418153672058338400028223062188190793709400532109417526777581628335541671851685140672348941500865331633791657427085516444044895564811177427819076167753285823747737156988855754202453255172205727539833106593833116697343209351506381733721561722198655602110832409730604472058375088557958743003238298558998264596785750776817624762526708013059231671334776207685713140500705421348544169953049307448234304185633863034072547264412026262309735028544685594944258286291025442699978057646163721607154937654530648990466465279669156572950845845870794812743273908731744004772918961775749253495868176440504460450351205239819053104004496890244952892414335732444265368277481331164024178679595566315928271890414672947081619938810622596253489632535497509762361737571759515364324280592205723941457045897366545682946744443221715963913261511648377082538243627362627945050769445229467378483995793253503833843770392573213890281567419545467568337569856744274746008980913661040639393538500328359716544213337738205476056877866625295220834355232491118730683667583722973655001219531275009085859704971912310751237438329844128658289531422471136317009458211712041570114952121293971235938956953367677681872116101303390739520898248902643063317451859422455542482099400466326395447905235294364180782789779472863247675712378945360418257021434512706167859295641892091656215330859764750834262727575810112073651752553257642446188804526474389194007864725880671390302539869204677200385174165948934358809811124248624961312055160095906384229847764853711466312257476700538810011276917854145295493807957485152583913940053141942740717761424628329340589297712038093348096986274128929838679768903465839872413364197531406770395163517914619910280564693272514677864507768157892831058981340499016551342703662561734541551020517737380590144625398018601422946002319971519901062659761811053852048079393416379041634836453519770758213261745242387833991563415193259673813419912082022125237154495602399599372666175033194863389927070830700950490471643611521181712920031147209653310821412796851510835898604219556050297022105243927459967072658400670507146274393123532770475394669048938878473337318809287984539320477783285183599709861267260493755762743270141081635406425350829677628999512430271320961742372325166060950300214132648101888323776339782709862755888709076831608995326708613472495259674433655667659299249662403833866660121462057992121558044483863189778571786628573123544262231249477213527740271408051548152112775768742512085900377571112148866860800735738550822259331184990355262152805709048951115260863188223138165439069019180429416103871805018306545995792241208770375146099041789404689090819451076333007456361851399219213644868434687515266087028770066124266988620774497993564126014379111426070231952312748119283482975992553146339705151713385872910496258315050090666315070212408521292709269789576458012999142257729916346401058347360962830502162162978296981149408341594255793713591690997321624528979339170677437678431378474277717538180102608715672089955914422922146108164041149259240975354326284404707042594550722175957691837369331062718621419187799698923136768379909918361331102028732091788486195646840740228315431578696721173126910605728246213924786420249807255775520176889444207095324276549541439425572873110324680699056259267223699999147256410943117520697882877740702217816370432483827240046866557683389035573142985890512961555177975286113919179911415247797028832787424678063202229426169184410734293990400689169603818351017194263308055691489567522242508102037618749512449318422392933345883697490657154614946525241316348661408920460539480253699681823348264633377003526248666724222821203168196906486195180711323642990468189412035857675924515485778307316750159773214047236656489566597964974952734303696800431003252936017187584894515924463150516740574752271997656919499486696163566750563402716239505385332041714288465624760631326223360932396084576876135145417481509716427461818696763672117442474246727575731087538212582952176949812114165642303107052442510754715652493833205965150719588614948513659980989969206826885931289706743479833963011903043682296949386180983770932128982257001314030537356371925663300429470275443058029754619284412201087830653286777430423546939463380224546742540397327474523611603689573661335040145793304219134300128886109317760664029176273125149514730205806772842470059029429236203061901715703698122646221271071338176783363244691729479790183125850598947798733138126035935474594339386059802932603674093159071817953798333014134921915806060291518998709986789662707552835639253834195025135258276285837345912513203668397855984142676779717272006925962592586479908253501411934704353297512986932657854376346071191532311461803720882029773698258026988352437592140235777179822380558642838261088366039504698258958104105165395824752491663968310305942953165494251475193416762087541991945209705540414207635780088932898146956083786689309298915848823430278025467462575854838512889015104126137851599202841607201609835148357669728280234160125982906129311641278320421311349661335585574257203692848594742844374014052426587440478529525482740553879107253426817365715530330227400608986723556574929267569019397236398976930412585622307322162855832898049084929271830993437103568490182542109840354045452343322969389797660975017606600199361462078684001766759786555706092490761809741814709518872723206177876625329665198527774121525629744578014315205571702939111987664115557196444634460407665949930443432554000955486830545102460449473359106191343937586541843146796034989733351988362351168152996022175791227255176134558231382323076416451012266184044417718560896106196203210827779935108775949215854021209229683654530672056350997823817896823672342674105300074324166049038398462287309560289685691419000041500808326108431851922217591655723286249854891268975191693776047849588560458782592486178124301442751995516767996530078506439902009777724685236071920260936289993743277754854460424038065208684924378786269647026986670811752892840916838384654634399474131761057191258931806873866597299434217349421341002410785485290418954425143392692782295991859265065617413669048741044404676961199689661494630337362802304677468159391402357336725362880693231833999957490859758498357438095407144599778521234628483622732254271834783058269499475476407932021980724874255955624873104539854238865243383843135495773043091291512367128019023326800838321705769959856007837637883161135409535890492581283554469054513996970699142125304940841728854192467678652781183228050330125648828559423428158293009502235647967989988837095278170217048954669645127620172926465378699542781016721643553643961981162296609402706300305911174207613825114427229854935043397124960698031520374088317170581417986012573886228743862636697176835581120646713199986996015404565690930905899767885264253874894329422033684495959756410986908077115344373846112162494816511337132731572808698845622883651682955427239324759081299265377743460602383924514452207328700155477774167134392145602991691129617601162450759127717652452034890648140163160343147411766283499646387496332607279641654168513868881102900020390854860126413878711538292366685459979181702493606938828516579096043818364069130851548616128680970970841657028143873722424328085426802325745737708921823696434392569094966544733690733021888995409614220262363187658267707000144163269566047246143634533565457552677728935702273748892437530409769877413408092282898253181451976356730902033220565939246747828819492561306122861717941769313320164926305049058965806337287353596360213181249111680523304136772145608634028755331095638554286769409461641992887982799602137185446493807893647217253003248513953703883309769563543195646563224990022939309909151767934848386884930305017348921498217508584279768818765116257390263702921658316944674637094932411353863087182104939566196743604457907703218276291150172336573424758709472066067485295609877497076936837337125085958992814410115680778194416885298634328434506141190802251848886637598408027511849218387086492538935128854690381234361916522061425840565108012529790181210658400427460166528214215306496656880557853785318918404862430084543495716482680463746314091421203735187375508016935139767113488206768560796345244952281128560567283789194660356625962024679867684715563715250997838167174007919843220579281349764436469423037721145118214494859077214848298271759319889690854095538354909052752144484354659743539428608403017952015082811352632750448973153228975388532580365718557384150856394536740039405247774311385589780477319600699463400763286496436454377289102697835347442426565730035287544947088923778586326665826785739264196093389536690040290050215071606458431592841702406442983264934907722047984423343122124369038749882820949071533805722016349791528003313444653658251641887825083813697888309542627318666336807062111440566617576194572179401519170150868482037334531673569775969276491290266154134125759407136715239931684696797042414651428627646069945792765742714340805762882867624967991190994341671022178017054631301028378098311512688144041616565293748656245114324719683710250145034815997068029732792226126020202747596804587406376032436589295734642856668388987454595589782064638641976703573545468580847903519898446815594131592555395088283296935059125975357708419117438947632930899584866224320423097673121972657079546114364546384674990990233018204528247386332620337039025095386536082307651494891568488888179129319876304816403152880811834629977186956198475341778516498004487283633611713325991232917510075701962819330314940133137079371789273314649710822983750235645846078254073297623142434901174805302444131760440819202324731389173785311210603973957618598088755555346983129781898777408492515593280673358169284176287596518283029061196740100890460179931218695971621728718126861722601247821013031823974001078321584250373854979697202333459176294126085538503930517741450559542689334802135895769270735525938275278946210110328506817570506601929128885917253937799746733940118737701833392083402967391026779557990714106113882700645128066842428739829865539543384984774139475141540329960252803835536053183791447829016534793263090324122023776744455081639667887342001317872219943841416559318758540551855544081683508463677812003988717676523629467654544802749605355910808676447182964916812940295828437525538047118200126409078280628768326857649212119259286958007792241606799525444298649658004115881696496801974037368160970178312806369239427027474444379051430462939031821504963862001856351673739249470592667569860787759106191751688053865102016702940885474022090922474342715278587919162323567826895604238292271013484664957273823766615603680455267792141677725230897850023146456882283120264141738253947214037903411768414002401184136958932711975981931260700990558149791862708782825070107421244815048572800623578633666415966485519793964192870625183486711681400329742648795401303186566273887921920834348031403109347015702442759686680540876242291591278729439645913064244587488624818099475350632418682513174791277050474036669594865710156820915767723229792521973021015078599141469827442450959717722446304427073324316137198521891972222230610142350405514469826002482567835614094323688067867261456931595821778595713419732296830487665756751418671585845576617706421690619753783961601526273709262883153105086800446962620646920132676395964157086481324011101682296695706502636602124387821816045005944351313333388005587435557600080311914129126649056706407361302063094991131950167260207408733445275875633221093965391623028306406017363857545653518363901077333598546450313798880688300591559887008467720920996861369526732036476038739473819776733587278315237805313374432184905936670464166523692851558926468558840747298129832046039357695536509927913981812386064499628272836825019929839486177239310441177549573897684253193855144835432877330399385579753114119552870592782011051075635583944219747206000246929997080580306434993915542795683687361823259748690618967825654521860364603360489326459572534228874564242536916518766327556776227468987690762403670820639927034147620960884340926557334981826098060884914037478171834327448643380250376926099243175819539648821239814020950864841069334973762509548016169175386512702519959366187666918113426904375518184641455980007997054436502799006976109769815358573351427503074431688489451910441053534030763068964250838601266657847857418118834975012346750816813190938408881549236435718445915029452593291135805915281188685733315946666574137560891622956381198439534840769770225175708736667732705396331937376652983424912172410774057654747356336392926797681596216720997114985821571834527737983053532112786456348408896431043452316587018906919891436840782445181898849948912899415854336042993735641965182704794413949888819312953827780413426964790553907653952215353189611194423064503983391950300286250787374500629921545994229500488501257852880849518751446098355444194136201850278468072957423912536136166340407753201165977468647934332652724945114151400475099609971927506308490744822170248790470324588286003588786938246962349774252026970295353391676314854751812877346366845502558638064062791940096250539591408322114854207415511852136744160639247248362648658555112268711229009295716642949655222705025405796481366224640423596989954222219531161931939732548629211851853646547999019790150455896638965343246421370002855449660635169473029524914480683185517950524696612883209399736317068859019022726012101438418870441709834739924755749460277333231410471173136029196365790508438127375570581686611955695025471302188547382255175603940205973703054668501974675614812076648869906281640623943959160751786395688185959290599334566314691115379093392379477432648838370401403683373334764247099113400314159382762458825574534745191516215875803859333197181203476666907313471640517705621750464459107264731957551833806343740182665411113385296051223476761442590770426471563472406792071762777143654987673225810028907666308807301167775965578887936779195980092908376450532577714584571814306038067380728668082432837065399898599534373583518514773410659390561451988971480874347764763312760278842042718655502747775333488337778199714386554098967343987628046260334319712756655700826810091597226297651820328300451745783660545597965370273767544031406465367512474059685786636955527726442382425856511324700201921003758369104308870309784254859728668711714007033810051823426723582790436320305589222408740858488955652668753105295819589093496572054697851464032574689341071557636323422359864561830591753307336301223890339013794178367734606591655050075676609500774729638799092843169918038835219836507577766522458857584604029275783257842518376023855902340345231115645033245841581505623637460018118146132730201185340455379092746856040840148985213773410274304448435396767682076273336091378730293249733964243314719283347494043710685771722830530463161253640857993004809220919597519386372877659484864833908459919530275018103453434040913421135952062058870568775231686228258612322248328662022243177425191712097883676910714136683795799874802500605874184077900335961311599071094036684571298459934528493416162094408550344837197006844670258460213333152366232231716052151282034763870263042062476684946682124724829580879158838541077616839563437815054703847701846196597086731324040593155392658428899547043955700543188423271466990657208283378963349671986224040203513737495032419997792560739969740749207133224933955879239851190371966397817879632168198573072463502593270331911897550006431270127703336745699743034506094859148713676531303054821759578603178789887520023160407336561140960180587609970572789638604772881895149864850702418581427316853589685803318050038880357900457896298708824544347859747957391868306177953621709828915854199177448224628142737404248581577468740614742993942607408731416721476217995398528613804453916842700805426078903228637834482151541994392033473187141048801840433381745349976438240472994397111911919827357843581953186721609412347268151244145322421529123872601707058585041731022626266287204450068789971172393698034564821020156563791435037682043982178159238195685429253725280354996068640199193053660790802827073964710732289718490051280315690774491233245514741132182859109948928273061323462299733257314016669240374318792025459799198282444109326449381513938579885757950676111418529507062395945116725431922186229332645437840221986428351340344005852759570454028319418741535702904969848675616419049960608856572680861313396425683583245321104228914645762072938148755243677772771847681786161419460643897553743262149437612161878923198827145612300156725935121488985664001762647719925781820491083182040622842369883566876923733471694781756544897049103651241273640102122946985350459110662923610189524372344803641333364929498242540616600220945431966466962486508570869098182550016609005475190248464019843970915135977142607543379539464033206997470845758297363491862860794343067937593540736826918390621121457471190209612479806745211542237489489720535855903422605352166791257581007726493146029776470403104792395959936412912063085407103814495068243440546717938887405441735878935329308923178641193415381623446214361509390106462857137586952426677514904724935654602385468015606639027177313029465312823155546506408856437699774263163739033792720584458834874155074564124476690009442332107380914606936873778862535265852951190163717529402680436820947991937579094694575411817406721077588410646625242813697343043812513583381110622036038264176304801764187842542115854454679209107478179888482993689792571537450258539571065208971249964184875310092550773188230973754664100811068937891443634254434642515119887275052466558951556410499336141264873775976197992253658118577205394936832928302841647385079246745009604627623964094794671612455436870605930452106711304803152235454722216736044267193638011180613026297527980847268785893528658537435394160549129787348220444908826881829902040293510982070549211622764053001532279937478390687620815903470546372195589372394287686474494382183049233182298158912911804379411122060365282056812881995183954329775704944078110803513323968903126578117155460710321867101751840401299565289282512086226896714844767154362633290075991597075999883502026144463289571201455489981991274575024738746081462849600287978970265047640462335260416143071587486996109416339167665303498718539817657063701645677457399563534237446736638933859821004537599027204316046118976525157326549699293882702425690215702137859205151409511982771048995721871736588284932232188588000492028643344147421296830187259391338518745878717720243825458811170100184663290289127359139486129522027801463630759544981973684117421301983129123992451039987798472617259772636641219064378260045454401857466712411826946680762106719558994058743457674958794907231575819541813368191006409153711258470343485413851583162359566659247638227780252144496447584610179985397639223661818323535566765871909770001650770236430526558197947863813193425698547614382522841752159883003954628472249805530546287769042409397078898896705366207520977220092339063020996281178548995015352141461857516124005362297814392887046480696839132626650102510536148194019473415591599194364661519217245276085245269309953530241968622314503129946137959812389358602173896372614604016829898251008953921885473388362020567123491756402247611648810130236256600381709672871430256213324488109161930373637094550397527815958287613708175046878850841294891600348193760106050934522529959328055139885056039766704898239130601078063236232611541745457493686428322804188464635460309654153790548921391985034723383415147992631644914857898301662067468997553790675115180636596917279180692505513528007102178950938550833609135308823634139098562032396153553598080258297945528048372016841285113325580972965131960303383847442478059539475515246046742923080712894092324092410484391576675608201447681327465743034716488204729886105992667744104546624617612731471249037580325108433860904294214092370751795993213227420880984091155512552826272163878782696831978215763222273872993305716189985236512379660979802701691714875524935968819345931464923281576312644167317641298300136412865134976740449898946221635427494788407064197118826148642995644072335661278627646430208060469572273072425497418781362227945685544264608638544418394160157891000060159290646456196837621863177226091765311943368502766898742045958965704385136507730752477703179911998421987738071604468773570154799589377487384742495210468205744010202004558715086639181876239520428725141035622549382109448751191718844864293805666172181158724167699067414631454694731999143373144616683438122786645062862179771979106881131263615856698621209818968755182401590488969896985931076793902251890807072722476709555041060914360982985256164570019655143043671355880007852133801414213167419649630865412557336564036535904681318461763277661240160519106913250757691356486832492689540538336975050310432808679727489857132668460769100672229028494874267483017182861919360114920322210862964897286112591285823061634568496433249763781245754641060845187039546934794875473649938476697494817975090230273005220677741900417615721964189932945756387972408359583891627752849689250776728656452336854198838914590271313893504702597370669883823217170378780949576710692458794097752198482691730607165354470357052501116390364891679623288540387506813694431712206336701693104110723470575392774785353284984529166043681930579378469882971829732002584409942957958694105774673947732302589839059014365782920749777940635308722072675354824575880985513860233137047631823033477357743844625050451344125461527198286208962878240533878935660797605061567578441344128458067755727258212955098855931215678245631469592004533444823497922030781563633082230173357541413159496474208723762379996105478186219679592905394830384491250049000351387563738722639904371912309295892235389547139565516995494199896781116018118854385869983790057859927909554741314625487020718212925758288305176870697533623276856073742085149521911076040840046884364245004214685958670641852384281320333862749288554236541561837786615679776291364187549848574163250623255547462121370861465492744358916928678786129103471985231809626567693837498277983550638708576669567807373924891434108772398036704352958515648500921273962925762995250537374425819579377987216695947506550145202799237120735783817630446990671642796623798040976700351395136195294634422028291091813412562261477303156357405025505590120741416418750748327537443096477581253481517821040549419382248711227181010043105895228284788595938103071813072711385796114155861916597780224084356318426191013055302839866551795125942065112940499059902818432089134008852864512017549575151967837884564191537278459515455392696760601459303989351585641311770689093672585083788614921606372375070600799286189613418535303429179822000433569043143390300159789287482206105593216045301622658628361776292307819705851889293534030835215121045970487011976146467488938757150301096090985566600920609416761685045154571913456260819419022814099145422612892050406214666147701049628268567684948350381822153696794315135327790467678597341556997914287692400403799073249533842635190813740481225787251827252870463260987196132012491733987728317599699886524012999482705501375728767458547464110337135555957820696643826846132649298551429346320750281428670676791526501226027912138325143628661474377341915947781540540464498459625907395488629758849428450540710204982624026779120493386306217496136116641984942327952775343932456261525034327174350286614234238906910481560075045856611403104030974054133733380956782698841970595730996182872086308418551903095194163934570512121961252755637610921104379849827124858641028558783947101131596639688282622326390578662196635410753666678810868695585998432724818768298793270643604361567020800157412972740130943801241751885876725500507859340851353475208888399412921595925012764753049028930390524408400114851807104900990569571261095880754878053261534954239119659240805380820399410797695513309462197095304690293905482506387565722804234049869267451613431218524690738248239986721507567297693756245225130230276768815512071329929812285154732731146416242971332255188289452863280073702722161017248792086902513927147537138808296626679994868303204786080527381969736196631964590542437972486511496840921648213141496784581365474260933115655582391035183200607134898973654914684783760883098008353790752687282911344953340736231053457583160132404164653229927430843653120970849461563669358055228300217893734357788707726788304810704726729947026559006843965024537719762789016799573312631115189473441490813142027115390369527575814431319164212990422144898985554439002846434138414553429790382023675279989482744188523511205807038497042434435173411122744623355140723872853083002630892218009488629776589016209899886336596854061458964079521218246437048118302492584525218377646492379404360525393919726771295954403397154091459842836137422577865475309366237160166030281523800513841066006324100919627478248671895627069314348249234451012659667626763828029977699109874127904734560067428438489214332467886307222311471068618583526126659974983848463815889156598469563839146982096047863699008976377537631762202417090153436784507701129858068697095963383544242617399394749659806946129700940661627284955425427337776537718235224520445554659386834399405164051195510586972822951808102075297511159316777733685963777896438016291619091139371703862874725285866795259173599988310752084210873979352236137022149648134848267042859856416202282273267650160273001815716245773111395750121843743982075033306343035638518418129005447893082894304613479520790763793523574091934391806534040057179962386790147745777935743026010827568142253725820460531794632114272773349906806293434223136905771130836588637454388453388693758806396659474457730560666632139143118798280116321722382153213654214912778585602666957988008168696321932986564001373064879246486351884557892656033538002573251028971682700008352854960281120453928976679110108135462356945722634932500949564305331685709833547898243424331376647638449484339632430144068392235280018525382660202180840524881024963329864870848303858620436801147116754686018775142587617341866116649191652203819574071182528548730540610486068111628682185202442663216541824194767528724426647433348457352781048322422034574507100951317685721294815361708528327906040334931016494329744690918768622954794706116993030005066619888370000842658749945774914514726988522452937641192623420327815993678511460739411964573064908210837251345656330625148009618461705542600972947103330757844546794597507606848470017036880384778411257654053792769772460927966890650416588614192326062025512074711350633561764764693485811315818747828889729075725277944935240296289673258048379456462431778629292520043444967970601252270351256207131609339488846628094860841481432864345628869852302926964699626333719713258227660708681184656059932621856832929351022055449486313275091092433368433001252478074714285903102933397589254692570632302113382324006056143451664532830626314706717011963558192759444900511610924442361907580371284092308745608509513158212570711471308088602723241559350113282389786582575230293317770224960569546803876718411531094369792027400574739316073011024103612000585615520495725547264218949749729319618972211452082832727736796468466679893869292523431731756414314957072382274941970854397419598557460098926588988936787925666819487256707011614863311239696308355598845792476490077558430363146286640716455203029438894847540103441553065547874403378063384872185178380710241825675971763876422971679307970704050816666118761550401772559945304736727221409656230214842440015970163249201055636768575568973107843733038999014898725201027316385170721470033175234248870822307080430040101369209709211441506507727962104156042440777818237418984526816923203911370683637698973420287590163574456869715816725049367670691786707533133484372724400025783370053383369419050412066879058595429116392493572937362054322616728206630698726773038735964298592450505413415712477017580601004785200509310589925979857606630355810577117827971515384609907288538873590348563070703147376405779905664650210674942199568025058848237511027542194052340669191358843498997410942126529167045127720762184470733646735499708297953900555740223102507981131798420558289164602809549074758966747621655249097513079033479197819104561334244898405598800264465446664505211701691486456143423305086140776192817782880260678103709134278175094188582533746317653852119055018199192187338274011684445007314791142537444231640166944690210878236543477817296919354443203246303078639138784166312086052886818507150173901175769710538132792831176967959827604788395625183223865036458162919744088661394885632079271069891879892819330236834961889411608661260701174791929992476177854677873595342147482998143770836255612798394953157810882751466126091340701532378816959288705406270386096976564612216295886554867956745389193114483423072716768478723582040006566574788458437410299110726845182494210774117753435922108157207517061656868494030447714738024380527492326366187586085065047877865513942943573384234188173060844311301216796500788591885668483294956662810881840970195286641175281045009807187997359398295643949233359148407319132186614234152039856571225002874443540972386801280430403377431268798325762509376036569089537722969608550020728474314197054362174987442656632810298156126758382813524643989779299744195769757120674133598972386292741666715775486163101086796722541279515996669600683442893029388908579175973100643971548672632387141395468957235904834899516471508282956650589852815771907553406833954458664723455473077160959070597937698758677677145700850100265424752218305787563825892294997687320095042778966225907479214922870438079474742544259397467079798465286234396908450234463724389242284812351450494328173717759581590916740348715469287989736520059875434649376659371852772700066209097712533563087584835491518579131170205198742218078553836066249221111475641643176120244964685389660966956735858437249019809267761001511044636786338277737869630889122612132025901883593823599446302214493115116705081945033388964589346535647029661850280851420498127710820750660860890483256986962203565705101999609177838004483737703747951849930751201899764680350893909665013525262562130749819980510112930809322929375088557398909723000279737710820797230219595478946572660573811792671846866167636592462584034890837902068728530915976052998948059725342138806764168895600738389114693379046112768655011049282046584473668432782367751453674524867492020459869032335044929820798448546098804199310404482555608841512392586675548886247526306173485296959284491775106040178731714971039911946230223107447505757333909215938411825191309374938199649134336506877087485000711436951042831940973909856894109996115827997105580221181829405499283336363113512048841043014514240453488469271250639928881539446779423431212105401301059775441848065694992504899554514394969741962131832798294708277249132228109320795664560993758008917417747052382542994018707418486076248825502860732018446473344475444825781335682652569033563871026281015038047483076429632669589404284365151401923628428599445105039379453013402667046833842688397927464262035737393573624307413261180348829823801479065130910440544884366277871378565671192299307179314996936188668266849129755018839796897743170586720215532283339904659516743116847830265180979290800481159693211737235707594708818717985783431691130001806790140848726219918669337214715935300654887310657307670776593514704130422084216005162100050629985117113065918631627637917275328119791891135419681766824485042374628757516003606573223540137326067763749245905465681781907921893591876837072290263738313864626391081283182925587201157990844265757383952367521739906314533923218541000085897463176846250555025752791691518650529427520878170254685096695131357139814619326910812183805355421079749682397706388727867218481515346674180305965032644174694422511197871449287615412136600712481594244832264083949838803813953684332310359272201018763981149431006596303711371262516759556248897749028916089509745480932350063758062129523446501752601768031659098282592064858854769238016372093589688798840409581568652294592669501369878288872858462511189235979703873410493558693106308956037664886419580251631289136894674035965380995953276286468311824756617708383022446490046565693422170578042603597876782221473840407987654358040030244938582610038740067973720329047461892478778134260816599688502170371770641895813111680838986406899009684218162000868355205612547570836554574590335940120464089571612367010566370397004153847849866623320308267393387965502819463870216569023873892546091282583065409245331977964207087603708169010589893392052888397842686060453274402366912740971965558880648234882441437800056514069503838276433901567041069669816760697468086242971746543981960064555167347191088755377272403201438310347341925539823808126646101326418029647596805863755867159696531959048070515009630687386892238082276066658281142279880730712767737501478934609002819598783781843076128803846606195531465636965087605604864881460975042710704661529910156466507899642301504407212446036008188348851632702828706655394794781423973555360592429853436798027200257344940318713579589539956977825008161968380485442853762343756683238511372003684474813342770706066382297077941742140085648372946290830045308489425511795721965994801122753896044004098291870740153745936789231567000178650671062908227205725930971580379200165406187942044102645446760258578830968935895647028799531527564471422785111457510176090042120018162352136458304684824527107604097734101996036345514693362986761302776997150083548817547714425988355273687102441914052905404869949407036139740856794581044902274138914638167360129313046663835058509228772067377694858175714337686572560008747891649570950495985833432339805025615978765873914319998952600045837161833302189744383601411510470408239476169390719490163924308060890617472620166108046496555987428694485528896448122149648017080953889221968070794971698242265410997899054556393052762395686306756737485549390797599863229059490964648234873997149508134202858845442520519816892099305406537540284782444473123908654946947156241183453124985065760898671880574935395703743707552352612358356943491052724114882047230966760254903443408364826211203724244792011263673830649058661689456898646508335294145460839203821298209586599696489378672545044081504689051531595598724544849732005286364775286219477232416199185224431570394446135560897160889153512072429417649430706647710481610725950235357456694431890840956880348778448490316350185569177431111537749910226059571719477994996584503591044110446042034191518873532608140095793902051898705284868741651896904246331971327395137306935573223881027765257912656720006938562752077086245302767853063336795470158838377145006952718364495215474805533124312892131948521728735390330682428353417800253344524025949342475152062652154659734644326736829013279101978925976779810996293118630535249540196963070733775877083664661088166313713595179549202579409381120532998952811576125182507479548764500819504966368535938108866092655608848540648696514620618799324282189188607398097993609450831129009105532127371625058531242495985111175901773365927716775921723190250142642862863088784508398369431642409702251281613178101136646942083767667964562829605893781816204171121552145424246825418347274903703113287179008271498646528152734124213556413008235280950294654323015054804593510813070316160610452303972013464809292595644456535690176787773789247966252986563492039312829115763224981652521801126728252734581513202105136288985225527520743802360875302638057410292272739546617456375800912577732418670280135834149036335258558365830307720784350995274465323497627248426094280337318051217530935369648579272837319204895364903573286964712138068992144448656143749415838335921749984001285167610590695461580785469963402168744297209825582822163566005671708679198906903954729101854336943810925564714227064748289341781866130378727949658776307459279965785309179963451420304547373703051809892578451742995480031547482005948132434426134486807169775476549756394355175433502615211764353470470047177514580315401157268278029190914342737481649628652233239170180724832718499098846514189556964906092897583771884975794467713475758338238407541723365396190135149034063034841549026880650096445765658523442292617801088813095072111319494798954407659230585967520780370987864407873671741931670612314516107710072414188045201944106237057291037976395951358882646608833160662508574071691851653458649732691862381010054302278852910251591828143123554892248493231719537795792549187990236504880571812407923936642358464567430184039669136316401792607556304995498527861743646137604741957307726863166757570404296642202087956450609270030424926385227230317175798647333101381140781191614655680750077824397138548956808786063599514384257143061842170669704845473744084039779454820068926833665695548021317329445561247309150450733282384169215603668081965269126954805452530070205424200607329377220020816448499397823902766813487542833741456163916253135643369442139825667020697222866217882285644197001659538555478263907848665104987022208922917381473777013496032450605698684825669271896506935557710653406309061643344011630222143091803945540869518404409638555877810722150303471324153617878615582206680409130242027131625674462525040518880495747751660918078327545783124087478600962835068385573686583296402645998906356297696169635743052090021776875414555203571388604173386488438548801439793432246740038716469203483033030562143987820263651726172052097587202616035077132258121905540608542070081759561232360875387605109340166791907302753128075957978427578807427771686658686658754277724009720266168503886278416941844015929230122004553039461889502960311331923071156638141279907568790698834029146726646591962701824397554746166471584435307746114436407514411545829914639324709633008275375357059749170457079455132633196089470250353568478860693798633565002805531896754242937506498113005950078320185588985581935516410783664215923238293526548714091487529286131941196076089093979195440453817228321973004571602189917053011650197072384770941427383081935340191412693829608612510349673280483958184634086451714061345986615940736053716932515476380236263224476441102928987918792933520146711716002768559480559552825877278839007695209102775581584113694863621956259248458463067283700065283797731331357472657759847292930060623636539525894697714727336074821646047589099218281593403422400307942215716992790277047705153844872277697012685719713497309997834716167179053772563733258586095389964317348038286246360404222471012632638881400499928553589976513257162783344124533901532051255464455085220085436628764479858225279567223896384853526078247559045267474928057598635426080501768367207068207392532088440041664884962963583712463823284670676330886893042856672622328481654977463753054416799575355498110696735198978725649827833993307496257760623719792677630035890634486907104723634390243523565823000704324229571092254688496991798839159924054168248738409063778298420942555317729351405353364033389664938971868940226728200933435790167100130059641915158664909287352880756870856008131742690665850659971365257474956372322631052615373912705004103410565135713154953159068468485496452436037709823052529898212656268005105783359062031161703804478808997120702559765752481452064979828197847579150020234693827953381203611420690502529747782266208551191825383250943140113573822273920476551086772120218299171132029970864792641599511090114600270262088807498935787055111436551021406520515323958640299374777883274080089547256289695389564139367437509008910190990413516880774359904538663495399060541759322390987636654771536487667601907169877219462911814255376664997715130219145577670163880979671854880717346908971457652914735601500369815873363357746555528117745435489709857808048236743542826980415842211228915693411044348850492331948693865457853794706173445116804228461661818920782444843162623524710531850281345654093953603451939766159836981555175074768751087250305739878341905001981120204695605708941496983571523156595294050525947018449368471146635619414855358461364940944826556517878327779272334549056474689742241681480328796962450176791286600851586510388306123821964988128155341414007068755798270603350417754520587442805605742037218988991030384331278425222150503570250731965449767001772447907934107438642395452635919347188775028511593236975366558935215780521829619015691269976538942834681920452987692591880506064582515910908812830157412850901536668609738077310548121621601746204572236118509028178826247499756568486395773200029210408169815721800072741330972317053283123582218729160201942998475567931611241628630004436068491546241290547381978161873801778914762134092391444287455218246786512219969996143297106882128660973059387412326580010493088646991120989272386798979081927587821976798282222965958994846352002517444498500999066651891641811846135712423908926215310144106529746013192136406585963458228895626908146501098092506469391849107393667335593316507333948420230135828703008145755940569441739593198956404260833653711820050079628911034056087992405163555893357470535491523336396806577907013180367969339528149685718079591645163343045967551372498430494296583744083993090593509677466954379856569022354437191490607796661155070170090391600151154805738596206360121156285635405376973852732876384266401161431918201497814452171606991793109770434127796928822844227148830274378662541932020937020480447867712658443704566446692200344836365114210334231127533187039702878205196492868566396196407569102617605487175068060394130077797302986114050496421535704181719684507574876598795242684239447942776019097679530771313870393441413118461142607208176378113396165086933543637480294287141022390577858065079003931365589786023835073520301447758824537386740036875419259928100090034793584683324989634475974162193209253352667553544548228159936041417372656877560138432214057433689723578704273678819445605577336303360438393114198135037229988280059983429399917029480987171964328149118213780772179820677640624632880335407703275861593000958280362830746743884954597658513894790571122073561918065823796392257538819591596054415480756678365713288211763394763874836971818207752910353996141955111949273601834114685223949205313968849868048753823684190119854305735378350997095210541199754042339096807379483437154216742538277902630796460176489589748057259480024290508133800744075945903945520157865575856775004587055269104044297252440366520498209227946281891696208992931764012106658266888315810727270802501051517127062798829605615531798964432227760899992566038431926620245326568083289008310627270360200180220283398243721444623470024558068820174846964678684376512536722867681449988843029531570816507378766682574933933990588771754958041997592724186735382725918968381132359972969373212876320135562585511711896159205463559228703353708581334526784127293852258974453333003704595677003050786848823189912973886337260528844743098747836611273783503569798746940755339593487027846165411443762883424322189911115998730825929231416694304990859361769025031230168530654952454904404056973613525003980225847330013798198479744181825544361799331416640774821357019422198431416567447145970037704599153105343857469863242391423416675086429588993770262239943688056871555084735767715726592980457027234910371656805481436036965919923865968760347452340479628568784248931306228211039423559652822406480555385709960585245169925858542805275342242041087975677864929003339920608971271340830778932077170680925477996901310323916474220780060697250135114639851758920296856613011418590640931450697683988512193695897659186815446875562601980764362361996139820882692684017942501579663264076673417385517319903847939605024212739645991806437340206317854353523283629849122379196923948058542743296441367676080596905673626991951307610918389911815835424429216124991820828146472488950840982228972150481107781421771085390539949908143946003084935819283031188793694644196025215133634215359685338237512006716656617560407903712760883932637332944772121418251239698171223345986863003534493924384479825617012718478280538868316981972231946653301534357897035910873757316883103439550150976166941423127622647014849868399316112676924027996341103100441571420011621665499083857093175862126739906709069686098440578538733765215981073389450569939363264666327359060642118341399305060674369209156778231191961214334998811121649113610586148260897614731994752612520425536596711075756650925119149038337275445353898796337477908663769351552103727312355481496094818648100297539078813346950720160053348935994178682676983959939093775857002985462465269077977241745451108416838999377385819834697568191837187651825122108072087202611564846800200614558368362190084134107036993157671954200239481585536602863597432855891623202160538661095914255555151302292968579691528934308899891007321186167883978482902845058071230061423788820817173822489241646214732364249303699051405127582146128477692534537590194937589335546225857113952675363656890876661019586751993720727192758188890205205008954159102582013591776084293407396574508820946437227089843306693439334460489532968064422729446681942699112647940478559117061705500988215235391079372989214445855819498464711009932022140108436902278938754678038309683126426644732795215994460951170755617473525076735633102583228911121212857612980563699744395162003815801289335970254893272284779167135483140712752542067021627664106293181486820385840029606735684031850558576583235959372836883937361042204925234391176521130812159725805149158993107067209951627757589761968374171603558521307122968671518623816614783650129925913247852617350307394847086102278549419559414647827003508890473376842224646056944547153792748940847964794834307323347464696457550353266690174896273331253162290899984439079041398003323350415326480703628505043001215482230642849974472026557711084006045278307420550663454259301457332072379308957392970097115457975360992925960449676762727041176776266613894601857110746739328536116500579006311165499446459840050599266713936411732638673818048181607808726515381702772197634315142845999696725225424901428111127243722531244220402517500025824522493665428935014130945383039568564666428098424446509663905521293914191834092690418787578604471235555889147165586156265543410040261147198608390296495369102679880400933945498108982181856587508556840656438238542286845556081962605921658595833859077927273305688356610527425257482903597062006416022482981524404256699113039469924937251494523598846834449752125471918802503292156596924540229871608517318280293064129227266183466889571719359533148479086571508172347072152975749364421143938201382927473035740208476065290673278838948058529133377666116776240091307384141146306392005098590101020193282818744742513677616718481301885596934764770458784067086903002581878127138498577978480171339897892675871251024568175271849393246212217860978522192212649942536968011021128787589181167892538191311192241797740873763097471771195460294230870331132202365056987886675115953030736269347265253244653691088077677125344123915024626672674246505262393262071619671673075574916520561565913613016754719358724760721277558105759406504139230232237197442027021718657375165042446798881298787475014188477997954487278911937780394196592094506180343484785427813021039271428280669422826983664119867658863682694965334902872642542473702054533724956594715040054982764015389472471050981611791874223190755520134410405023029144570061572360359430686908919580665699108238271802175432850551125945032507429938278247439080931642102886034826560384310382386889412093556879571304019245638121038256545638292059033448812583713254741380188102950981002973230070288964822329819555373101000307601612355727966761590113544000244655845540356931072537232205874353633985982622156102703969093696999666486502545583605954942762605972645321785196764697258363062523754222289318205053105363334234892414597065425333024947547675602327885753101455280360613967891914571456694838945547005978964315452242221920864052473621248957601391190319370066947518992879928776965113790222491973930724585368014238186128447377401474012261777870056784686688651505783300587430127851623459057559511881372527442855412250590023836790840896933203003574674551821543805001171205428472791624243518966484159378954522321181544572458351190103908892855354647165941346921259563278973360411862906301831286104699071607984959910476921798215587901232509550703699567858342943459652962779818322062897241276187356944823624731240868081121500252290547299555539292703432081246573116941788992958512775215537368330068436577048738358958053794882116225223216831344372956899751381662280716708495577755495654320957641841377929182632887628169988255225076500958876895285625022570934030606758277723311088346789826418144903084165115162480034218629581099794610424582172365835074987359603027831264606266567397389621223930011100318151046107276891626612925552682655940221985800496050573439781487405366044777949556235376969899404278409361029041592562107269755190455232085645188033665726611863981435378693168195846986253639891275868533889788918252160137642209019181173154627276489689343811614408235971281957444561231150108092517324619356058468072723024813828006747097978043252620158692900155519110993838169127830216517802389709929797904656088751734885229627564494427630500180546302992978371515308434563367546023640138612897537864459330100739499797325805650987520732578882932002972532677115175756461387982984246922278544314338869867232452623110168078368316638822087080179412654294493176765074660017521426841192636437781873834853226399561789593932515671840072659903324030266154849382295343798896714942472786151694907810595846179478671995553941533635097428579417645647105113162754731674723684896290348812749121305380069615194284465337801809406949743591696348740698648696084015862430591133065305963216366787046518617617262239504977663116264743036756834956923179790067267324855754683412675381821994039744696457992182172893905887253965038159659906609718637769481557514510730186111497644319563049828306949923670487119173806385733274499670189922385952835860386054088624493167235242457254779171498804943577597167974399637969040583223146135469817041096660603413132069339426573457481407436069171911717318699630096670712160793888940826578325792956855165213423808555912419079750048247442865587724738532356535761295065334938105859189792617256653906473729498241687781425744241713880560556234503590081345108188451673100866249272861471559530683574671110386694036688512407734135859687700359812041095852480528543615102044444313653310932748292082664363921986562940059596704263429870991503010085222639971977399334861207121852039066284621910628185769087589134866417714333892286653101824564770863016786685744150990059368780804909595197155786854578805106686054283976411181258633481600658898139825577497716859867367680755342784776359129110681093494316923668184779342157161286768924787059874272935446552320681572493413269428446455869364617915752030730913110072988114586848529702763868170958930208693292423283962699832001745259850449407046521252058818754528033014113650952355068586610992602534019211303581519998856032011289639627336294015718450510334362840905461913689976004280699306131394344556613429170619824399178348222069442106367779941438858780097920334779118033868884629854146521106453829671749423037998797904838283233707798372941928299133914723978672795196861808735987343968776386226415424464151246067716037562194272044625363884624981921968915578771937527696495727197462554068505759390767977619970947705685060425575384145083148260741181823148177387269123682765224655108415764474070587851017985854509551464947120610350751975721140039083008880322194300995149760445106331858435106726175363344850802491556244568833920641404980052715082545639560609669148951651239296562226372847710227031807073476389377133963991061670756101952789645122356279148554119411227964726963700986397320764063571424157245475966631697186408060035644915588266572358875944661151865987462249519999592747239450814158413540796162524008203477137402371218750331500541937862435842559582549639787973580731048720481860314532251064276165231438695116233230802547385522999064514893117669305411668464684856539049047108479987797859775015077120028569829219371896096846170562284696713421312130035064245613451814841729779119412568403589853314686455589423174521256127692604271069236937362832901382638364655518219787586627180122777425945062613317018713012650997057019217660428550863714543119244708434398835112081981258778061108327376088290576440694400007138680239175948266046818893413029450496834294878423532429913650141682282224481940521080884945348577689773356804744547152187960184042081845854995829343652698375932519918027442080095649394254790029626694028279182755114251182414141883156257155787561240805064155204449326122111337504061975838777587405069796394294935424084261541086543410679558214745488424250106672726489823886747219766205482790706269246547414968126738961286986858122587895778403659588606072732296447637648770538243825313998577650636343276196471413993084098485346566778792385334722972866912495428283590447147170234631667303210927068981383229358136169259659335180819543866836631620366530835080254811704023359875452082880901161534820265819236114132379165349661016085126851912465703865172064372411598312163235503017754854990702935444150195521904708745972091526911808383838042167991781368646842371122499004920508099749029792333168918372828514570239204939493110596726338608638233193396305385843759872518460300965458442237186319040331939458458843761856187244775149291190822630136073380733522023102763548722220602016337577007797649871352356659415230356378443327203505845639482505150298320486684018901474518648166379794744151722391597072024191195746465984951350917715980072384335753684394778707650409993053254010034943931554700010061513367727634162353624681607023944440308766846325279583413679556074092843597888764580687860870920635648589475138955454174627894393005253813892196817510720288151609599503239848681743634763362265250578814134468278480685887129619899727493983115420975350735587461493490707269615387312895769800531166959065641631531189568982046587410460476316818164758988374675953587300605812521689049140028742615093228519131917368583768801094427072351216815351292866581836359693914694625332574355774160612529552498468418139580201414501469246755032573498938870192512868319073392957196813115849656513375413775760511939663885117930510614542463684641244006048294773993953519103104660113648952300981968925234915734908315985666198162326527716959896138707822712382118422827833060203976221908835968248857067160976939130657667385125601550348038869096371832384104910710419758777891218658677986926858855620937198894334414418284869689642501655684132282644133976329489901222478447386128565665405459936690095487841312898828705522082116907131401847734973148945104668241575206709716313526303674736197350314526455876016024900952842394013363859621475601666103261745015491717299716857646679178564930635030907327394011662334888677842626155480668739887886519170879684477122481536508056474356191916838498273388839734550084827809338561394644653325269157747689298706072186981023856659719421325030636571916711853002787669635374802583845862780793856551838002143367932575932326171138710185911283056190789796781463750410102736467032078234319802152271672427746806054335840460089464512764644057043363168075936976850965489899722499492070858580577784268479510427221942814377830877801968809841147128090888843252864495440508836610162436239872482535497820095573149328567871030543164279835678453098848313694301626127230916007674990468334312423891665283514177343978916752270962208155472337266130724911970107987137084344288980187432633620347081600450784555267441338141468849385788684369095623007174143531178031498105901621825195254312314414100769982006276416726213251339070504172385042352475805706472475554044626789976021469223887439543905045109267268112363573577664632530825912097241288672809479543959821419758571773019561207734270276210976830573118399377123585857251471543935668803633994261578543318322332642252157804114667656737008662442797205587488567047852200251365516129666271913266072447948748882742891448479899309313254406122746073817016380424826655208124878013166429551426351049205596273864151987143830384452670913265880622427675375015314300015058557174972741591599283221744401628121306043145623701626532719633970443631581423192569566221676715844110901196049940391123700158173031967403726053370504047349273755606506376563292190047915502239942806470707072311285406143634445405086198861128142562745868212184407059472189824464220508333620037240812173684118799059896893710644230755146200102845541007706969299271207488200777135007682275524101825848364319330800003089496621923583671555478663113662441672016187984909372597547530484174171172573144762109500127357059777136725082661482580454422271374728410174954980298934558029579088176695038094795779236082679141146944130941268152590093392295366202567523118697785590124561339051662412223751947035689141047907752057653490982475162625798566004727258572134226720927669790391287511518252607385953393339145261635195862219560552343763136264698587580366940178310921567583499727875575685873317882529165697793927935091619697356041264490735837577375377939417239852619788357418193429704165037986441914556847612096196824194820687606960501779615641325740497045861535647561295335183021239890418658757229467687812224614356322007734706509254414113768066430231451494849682469024721975270382372487913142570632004250087065337954190374598868411592955866004904827606750523674601687229713742292048997740799096359488479487969161292115647388877448309458830470802572864609461721616109302765986099726964259441843023905988988990542590644778181344938782535984206415535127501663729894897715814403693437597367783565367794754544222813656153447900302600940568832099129601139431970272814087562848328942438570934641321021173239431511971078718174407169611719619094174205929005338742240585941922077793165028768139612777806864726318319727770053811382379996609068066906788724963261637456046796773482718204213859519370739140800993478584269856273077294800332411380996336212215532096289511861596710450381493419442043704200418379505788852226055224633097476192772815046354209302216139777716823818011804230691609049233323432725225842775361330784549906559754443743919394860562051495921485136706189364256635918366215173583006095980633831890824685836471484178147312775811143906106058604435965779722196129804789910056407342979656288373896090821218080496403231775301143265592936743507819098489356585440400849930670438109884716680855970707973692769141985017191272012849739579665573372332541946467394603072858661345372296937876066022602441556923661031311257612866514948245748634850067281745339571171631120889243110791512328863935529329620305476421356655835911928468859694515226810715512055390985899574139980120669793572309065155440666531833814192553061847959231856620918337699039440521912244189023242681977667283021365160268297936516487046591975201732000527729876206905135545488282092881436635189899383422210327175145324552623338021200069416268082710261331815863956354614313180903517480654604288652775607784566173468198372238401070566536384023476578370960739965440426378389009010259464546711537519147745191820920193781751680723586431228331109145691735071191698999081975742999979199267749367116342377348771261563484375778794923188622403884532001442077697885453889752551853714224970594314602252874635966977984870930889731306164029645604917697178587581204351071309751323558782522603237677120094610580371182232322241070723356009858673820797599136366024643802501767316878181467309001081579428992342375126120018327608567634764771663208954475252200846800121290652983059020438759944304674554684615865297201008786501619346185171407618643078764371491584211419634201915002248375175431312024324251404211102976643796458712289184507409335698679674006987701722737191942427003598105539466880294387312302339607411534815916161032074228570287795792903199271278201355042579141062455079436584079432330724668047744551757400768717602734754616617831808662101107974683250605613370672302985330354522958149803534663618444865990767968941477164193937370562760983797345011208606307239406271706247920248938431145826867090452715416859368653914012596930941436158197005053299745401520301501184579050793124327509712049354550723444429486845642731317103704386412931995621835269413591077957355809212070205202705104955454419166850441581481328900809431684520891776439023276561507297566579154845775412360586356329075940865562595129852889621352768281993678056159577127450542301761854916751545920060905293297497468151589819354760444202286617876177818512717111951000357454436121800313707412270937324480105103103972307191136093419188785968496820179192142864173271906598847377110545393595524602703121307749364272922238601649023281716033980064641439995300536915192643174252775106956829101512290337943597617847951428914276549582463217687087221787965968254280414180079850444151685641574601595617548590414746285321434914177878065698925359917999169905625522673751405544353032574900054474310717714658920051981714376941604494052687662487252620100858716868883817341921150488780475710401876133700485912655371300775672437000196400482914902947323346107714342555438538822900753383837086716171781963849609088612165681355733984160012819412533937666704530946528960483371148424721380630571747133195673513895766021293558020805245796877218295687451624953783645689474591353073835620862430039199718762385208548200961384477463580490508467239875356389306336604547627013697194852258534056529051295138586611789295136805805613709248759513231317652892331867839549512926962733975928441484783958845864129210180571992177355732130983944906076175585195639112167757409745451957719979887756001953236866811468411995911146398331966550712979388576514679542429424234608127017879017821881906352728819944668292660332524275664734758275843314323374523612247457484768063420574952785074191405675726407891190502827327628464923524750809150168841193301288523433020706091815335724584426891649072697804760141379658632804918459644345771989773811902054281300323200897855766681701093480863222083687469058076999872079509952647154591177621668158987063443220031097574831018357299045442918541320593088876810123513295826182847846558265022756711458403236706479106678344096648159122889832143781572335119404359219997048243746908768551601045225484233078919099066957337698959776713619647354511192443512906756794775826186924211271469982319897697031299210823391888851092287917937655126798727704601123727586703925721277615940905135233812144393638712382791817680856821345862391926284836747173614691873854267614939874219992945348102032189418331617781095632654570882415996950429581187105544300291044329644337301952691224546903750784550496604991099404123664280773476340598934422882322802478922639183723178445551561801074129496682132811086427511313105428124464923868197662116038723670520687469882751132313049326385858434472135993129740356476916825631280947658859803966013651614604359280786257166590183180763444566554315134200992050724636360610721577220914138077981610888943393595561133274246703892814636223625679295851419215613096579674224110355447754266124276164366320811814999874467105913792880291595188155189286806887828792460635776709781206178791713773747687483070332434605057433965951041432713911111655293070713935866174784576933024150529720901489568863799964215451532253548612219603597443486207433512909930000041828480160241502836620724888355654598383386197017916222839186299578666938179833152270421099503681929193424167720361499093929281541349595188442857687174931008172692595918488180618319410468824414899278861622915991499511303869439235329726103143035400622645873382434793209055010160189807997100496683425817886824803594362427489743714077980815964962960314633232144008420149344962454991637080917075413881042792809253554062734807839444395599124495051165555754808662137362728637230083708252056873389684582206110368612981646936373982028424506273441150598453401659485499398745322200189481478588052607630524963426104244341372178177079135715839904030804517179012268600308950031110413972565965879450422562987605105169634686682989208337888076614410129261197335051896634218671227052413730694951187876976506730631251964434301064717409949066998782722169605983205638001419646016403093958443439050661628376664100729545253755991374099291109042018740559675249766171909443160918627755465715267268728741244139290439228580283177820524376027409159289528325465284937893158309628067581861697070830363084648211084394685141184646722217840833203351984146124262086790241214223314909071967961756273335543725670970439251905304319887745989627128524929164184786711934614417637035913372777627244847451687176725307060923522743141626786647851727473844490705126615176978554136639532602417772054781282962686707717001200505182297418154824523050227328725431068150905781086547792228469149344387712930191361028260251317475725573591354467244583380105650908047328894176063485369405335053814428130513671683446260740817118085609162046310912929718650131328062122299148999330440437289522163514072329878029000602584987059694377542883706448313171926733253169341358929642795235169665034384024851504686628536233363627568917037700771625008863795982901222097085993317880847740750900143679508270090078908969214992345861531574794371299514988409643967325728497752634530293928487024777542521429737103997969217040908493046219568834467681905869838926666327433542225508520234531763948902073978934291460175486925686908307920692542380328699260190300747870540722519161357799759941806584784258214261655355964975762227025621486377228847827462580023143714870744281982243456293940379637461411693475424637383157751055023418504201474397632892896971733287662679409427762128683294585500509829284955142303345225421472935748927200837449834888632001676696749136714530418734227692661197450181611558002859033123317102853264716243397761600167337915207655989643480937393627266520955346606481763229602274978864307826432703588858589194903400721187657721935915739412043768520856099588503716642479956945690340614761984214095966618777827448189449453265794645874648212009241305168526319437224837496965201592786101116171760924253664675504430350403475284594763473461324696484722304147529458015980685841319669812371450589721418817421822031787325336367603920685331686737730152059025368519798395434053176278942105438863877401914360033053380244277919739503800896673520820010110444507138355391198599186580081711707840295610226316296930752487202343722537177886475528794165719539532472464907252111848473877589726792282192761894557620320192421635607671461895851569277739097386456220827362350743781327195858208048067244922677179912473884464407885355114913589966230718367135227254794812948695590012527395040124218273978933720311905723973655829138291717797460141655841861738612456266021566869082596966697693064677081771370018685561693575351115048132884845494351476736050456935217952411037111528102124273584813656807696897654677943677557992199467080425068453010025072632441651659106192119907254388983775346394947107614947235659852482750470595211123492208679313488563128528586390366943169109173240063271671548491431053121999194442894615462480266404738494973557610925081912875855499516432719087518266675007231152666127271923308837212668777367298034538911300658402186588519711726041016080457468942337590669321276272284874133642558811832299318885750708072146256938201425648213112418665096010547607803594875303482399428373927473577080335789398147549335483180103335226747965679101440823714242453051309662352841199615706241132230416622960916867304481292570293898029458334052281683634494796058287970754909376958861497054946252639688403813775189411849937333607149186497650693232594885713719420583616737509466821199572486585478838537102822013715640435579745190616293753380211916396690037698500753305944598184119712046947785480451822083444415927386924019118426978498446625536102607005562618236519836768804535280229301227995538461670598367792199102010998077941730801089222541554930447674725512578962302464247996041106657687276563074467056413330771610107520425818027047100052218814628471918928626750045322234492587212667356632132758535227893265060722081941793520850648357851855313195711131019244839691444222766969132967667433927253996248972364158992581249514649895966785370107718431974883621980000909667796051012141105858268012831234374853820082997807440078889465947578694443136169690340160766073939053898857358389907082035486451852342370041574296353662141784953526068328862252097602549713086347096469949548250109824873376417684295227697572737118915834750666606766007991770515624718067100247247405691794592386509831972054745753046872475460852338974026724154373636059311457351745365252870618838010351764322247768572632576799028202768589863673439317317205653031185919025588056089583657348858147427412489976507771103248434081382450244336655899033899258705936396516420742143061062541972278390896880824528348217777836515236225004513724456409866571105353660997714519461306609855788770900178830197723743427837470939320439729944771359375624952737887627871596941233162686706500261762578865439219125324104624323789127041013680511134127865793994704943166012452637408945216992199597158830862463590298352916579329851852310451903976048864866002874878511164544455270275673383332647903471476760393221793632338451140477094475804509225278784286360902307798267253335769204610020862736976833790491648702492584130771462970616530960349889087644023082287196525940566556369583484191089322915428241849217140978279614105874756173326743100380568610508381498127506411562281733765295199451003688677129630887520783982388767011001827230382257835101473194561067250982046110685800211502860688880405534750919940687467126470095002667012251928253874022315914296202267005875195256641982035811246954616844142963036775711455438333152432796998116114065363055317965636205300767561059446598309281098550110931630808676706612258690652598611296575430265764751129957450477913741027392418394932693183240969490183327014569143560602096592067722646490709506870528978233367390955546700275607043517031111247502208600075255060262971405552784225122693156132662308468030822175264111228037764953835288371752451611646192367121177996599239109288481864457065375021250917249192206350115588718467349454560631513613315834583825968454415970247850276709833457250862345993648891411993921045949600932435445768803417512862749506164714664505835195336849356785065876041326781083905775906977476537357357542533198458963210709791718188956573878382735175125731074024707344590549216371373115974575865812981324522431743927479356719977971887644729089896534223333365878934946977084463463892605614913158433723320089203081374571321343026552206099147174677115036334587257419030709650536588036462809228026451146663843652059571373106166386580370576516350790579283694457195287633497062979839463220958332838890404686392135321896270522511511614188475703984336173592590204223356860118331520748131183083437584312146620058399493574132898318324082017385441666639275240413820284700670009192978247207839049818224058931701787480488751665252472325033477633905850541317315856076362066719494996280991672754666196813607459773241952266612833248552666632777782603131838925589406173293347484059643407925903995925476722627170630566303188409716769132135640429268982534680991492940207906649439181466823469838822130483314780957081214220734353554129514331070318857428845848107531784542071858883534275670349370347594858718056701488987848121825517017108300044935840988140315782310142342664455746021093904544247323789225452657714832043293371489960379627567785667160845016991627164068936880655122213033279126357513370287295610826137339006385961779985744658901776247257515799527139512587250515253172553582372773122202917061830971198293758104508145759357106453782620443921411073296202985525090874558165423877316046151819729058596147036207846133668716216318160733923368351826265560589176682041091753637351578173440028917586022701516508850725752017704840815334291967024040737777182295429783008759180559666946934233312591116346498821819759986228778708821128869147480330705302275121988993175346197127999717064452990984699769707674887391063798152786243084695091444434962768257433835502586626750409050747681210413166196621086411270971423596781452392513820521520857074811505961570414074606245413750637302871021693560142349020295873312914252196940133779240528584718127335778528830884072656406104343544989786703189527468313777218282257676546119081142456481171216682663529378357377143073940740963288086887975333109010295452913412630359959058176010344903321069052243961630448836140965234554484791773280330399823205705787476575175497259532154789457122337032261562921314193419810935993000262502113254004619436607925974311085821980061843333080978916896313221089503037177406324524794113397216473602484235990100882350316187206277223550724925580894768282528481478179711891552330706158821931567051514411868737166971029994129035236830404213273667668109723467703880957386969792096204199318855454350490489685026286296870878764792032026681947159477321635599954271137950475029870556427022944764693808049974319023298287884125904939126413221488667128492032071888503785482207704138848745189224706675546718736924118487596560194725971174778839206902952640426186216375772908783171724348859375182791115198454380281772951341374456680305988754125948472519903492258362096059327695880877257278824276642055212437027608207438911817132657312800125902255069405621268546436142113185590391470774885033863216703215608841069670100394640619147308253762433512923970631466239033782429741268391084376000698887191112926759335358406062038839187528786837887091749200026680785129306097391351257602335504752217107525991758677093971111925168057188896986383814176253512040667829230011916104822270752232471937519095629498773984599932427118252175926099425291130810854721454335356099702394833676876974158249356085426466553701399390989637882501403174108283144726554910396486499400888223983917552501656564901579646048247025904701075380230356161796670114380086386393104259244459219155379070812535316780954286951568004219558485735750010700813462535379760160249604616149293789613399213048014435391889955312464940323363145841761773824221324469216845097912014558217783477839874171174422170546828952248744340860296382105908473076175079766618604312970484026247742203005780575020454346605824876143506124682888950436422276140312502552083647610355794556939223567651434355494616083403085622520765415747950658934988131314831596821621137442409810878668190689768227185698998501620652963466738084258727949868151549631268181604986684081657271253774503540500489759757554883388673733033429774528747975628819973793724340996689773063876352868364170326017587530920676001819220553286776221264794427227918166766531792576393404069460154250605022937161079787061996570848042878796213754409350841836014201208383904215308305922953674014186686663446194195151122110049402154729340555411987526904705084600870648299741621074498981828474464501136612569741853395169247555304445152444121781565337933924505949900211557687404217387380736004528729438016674173427338128751605341902561293142434557401382995986766724612182157333395977993960698403160569741797002105964026664486703241731803410218958734510315404071645684286247185645723763621451780242070489772562806030994391538586014655695226455738976206196027365726673821132788942942503472599294130708326506578154552545516514922116173024017708976683474708635705653629627501822450225811982592176814992235595223053876398813357813154858613272993677962431825180550963748072015293629201606887052776704725066114840157677136353392371680735253904772763635880479215643819668299766315966658232760072801065344759860527502683715523208762143262339407251782816410046845501021609198668073360864184281618601041788461620099416096821133486465396292880005854062504708829385834280542718739498673728284194992198836181555809389015628545583755562773374794286889631621251652398218410371636486549815082467876769786023301239635130658259563189530131099938549668512183666259633145918966910488660874853658412843571795012522067475642526289462677470490865276740606007223521123371871365631489537759413152617483327160502086890657360358020600717188244506957821758525464828055596467729271480578772564341674845968538003109536203630023244686462985728133388853428966382551566122425186281567858277779584983600373559225937991479516537223709476694175586455147522695176369309577290621622281769743198001945814361926621634622356895332216115699221655859630894694735512572002015707792709714875856088084760966546873937487256134660188996379632242080724546098123657371108811737926906486499342971045878532851118744036985091091010589197377150072751313429873566377146941055722520195416230614308646596950159586545701705443313664335556886593766983852160019981472715363369970752987096229503524336987134655287266616382438199114783257982359827912151846786237393719426872809773316058705968211782412333117221653031877104548249221555685107619815474280590159261384737445666072828858306036885018094116787133098276197704406962221230313084014141368202109757231662776085079439383316063461178818413366780872537460273389330640415641055292158885709651436147367106816972314257661908174742759047993557964522311461646734980955430322660012391926387087891051123070452293537960211974512801139883544826458151285716613208935783543537687431835048871903159780428282354445942098505387684407573338664463882644047191347221209680253266183309969215890148781819656110871532974898938753108154642782064524978793050310522047655549454044950650071556285585795399469951954742474595388794596811807198670090079587480321029785120199834162540655767570348946048008385442457337446593044185659225567147014929302029326367681157736360903566534798216946717354222626543934342744995086632535746357590537791494198180468033894582161781561526778623547582624800605986113277281871189932842937619783049577748228221904638756010717188140403414121485262837682247834661720974243954539616576562151981894158898111438006368924195853946446076432600918456300484174889335401594885835335860273032637629701890953969140906934492727840152446877486453951939135763191851613051478770450844714688377090898280733612228931922577173923012464919360479529553536544370979032728110953229537336827229160299037275017241709587419202617797284774008591953764741208611959536054347805428921605375733847956424807100150394180237468968390324724585334268199987882135792181229024935824833078482844601712352110043427296873659527598762187477253820140739522150692354213253113625479116932573296293248731090782901932467479328228215339159242879999256559145620441701155124554810211917570344107386984141037538875268968219615326956547071337878684899744153331309533000937711067024349833603360038830555551848307212402414366600899540851240677481347797205289073083780182870850151820964404043264533773974771709985791894748869608549786120379743293597124891466081524980704136602186940978678316764921031512340712144678316339024751032246826432650493945465991153249798051399866287992449822831317565384839664839414535670146261133687330937062151233408098949990881773780978915442307794129675297503115843074968315424744570297304627814292268637234794992115197404666058494845606362309103880476327200509844221681041938609101699769796892707625631061947631816488198954854873775648398672557576284565101473203702241609572066528942578565076116653091857808923775739593094313497456557960306745135419365874207701546495273971018196903493073540000555606003260979856428144908887509631213558545444840706810269003389740351729755725307282643017550614746278859588792085552235980501945047617048225825047682786890431888662950348094719443566073447698755535448347723288972953800440418927559273180307286840256308701168231910676142503055567262132087189297493863351937702251494813204591704669112793305150190023111000645512860656190228767301780377789234706088018430060172811687102299837434312332807378197039075169365176145932397802369840287103040294477502355039655953823930696453878048548172429837666414741944316541771117354688096562310270382881182746008834901588501330043319272257679586273737660866414819231714172253691711158590991676898307926527183982525265396001247229107990499800506672010619406580214566088052071477454782367369138681906422247723597833625922867934942064158469556083421551689797784064499852885058790125518638625581765778284015748408365674487032381630829063859531250132770246199175843218170784098836142142628777516176693546574533786029533609214431304230573118778277611614771013919593400224835223779759216540175197107920793913824156630474268080098306930583403023570428959262653751884480918459530980690972106060320624817134213171747089654535525239071258608915432343811436254210804734587590943843382783368265972271529130891754506186293936126046220068762825838513683042516112458879228379009524692400926830977301771253057703075504841633331313015804199228749802289852528514730481233562304614754348234903801809111632789034842391260203941001191404896221330333605798459762613388613150237644850825815593724617281127220404560109160741519135085238382488004978670567139197597287558559621887474909839693913779189894200527612372275028992713825879593289753791649324732250513110025895043713229612134749537127297299491574661432628517446424954663415115678693792847076841393431092155223340140746943985620898673940646964492915408396103962123024815510545594057439192907573727154073187438212805446543286911175438856554061592580399719770908744256959060345999838212727247878252483964148254305407614316685201687804703260008702454659144115527433292347508723007415180354799770264926887523948861165970173560484832832083780840355360137339704076393000287895021302480024223002725240552343395849793189280767182184195016385574030774514588847637358996673950008288450202349493594128036005310670585437738227322701452074780113198392060472129068846044493392994617915726827164149958534574530685808992413127916349712261499784982211965162279124121077914363739900170236496109287524277933878944164545923397843504605904023090378190448780210550507728919948172479886517637774637406362791005509850337932021563604822717065519915811736277090788185350565106645661886269641956737725830135827359004632807749819240664736853138817460437822708027751018096064466044359399019855800912362448279696662153056261284747484457597605267946397509072884480487656317198695142507665409219221521810498766638245671314536049937940235249321414596056636761925800056567212236666276948547692504908702731888791560137788318660611406773778355632555023334702190042639696569256458957832225770509442350268597158153722373992651741790243948831421018365563473135981002401367197773783315858703843871093205667309039766433544892558369705104086157102430993396725034082286220872099154364897528305775735121634783261331777907051658787203414041151513635361390042030720008581606893770755593613867556015696345603051860591311832410947716791499913000061911319170990821281223388714249319035042742750232057819123417598444937289035165847855269523550559564124514491286923490629979533386595597050006920110846146568526056722673233839795074895839017444395548593931716625339166359661378854061087933017216695903399385221626957872007091703737272868810423354212712344014498443465583383186453459142439117220352539519329246983364451804242436018741674642748173071394134929133738946979378657012352941877234532954903348558740377476660049808450133808254876864173643377226811266493264693177205292821288648447522666063804001205829076001720689024195539473287727364780838782236701275642562584278394055267787801439479633951209443063961344877171970113070067918433518941809698319002836762160360358673752056546137513295238380782331819656026846038363326538843175483183435952655107408276692844142186010119083481270988638236434341101793824141934699156992584771053480666265729065720135814081429672649707664099234657747029152644894478010489909149587433578628459152658900983228280686195797683524724659727241304246807280123513518614380424347092862101098990761443586179597166102209246673430798612600184589415264067671617475151988603585804435545190427536922602148432069393987846950131873689887684200462831629716288032098087649514379037323437761927504596801235216744743072793143655801586820422337275496286069010419885593703340822821295524263330160018724968371240336644391776427662847084876919868569050262926305957468650600752890467278546608624312781592155910900511998780311455284705531009166753390384519277965349911497247762145407518561591008355896707055411703161584041081815751310937911887741281794259901937614636813071354754939645028300627331515581687105691100438782228594640348412182794739912821488487785633801355136325605714967982482901443119899476639767991780607725572244266093280991597443619201859473176967123815270453816027391427899484052891809006446771751274687983264268550831922010713070298380203807337569200001657671260839563007135283933919649298186570947707263621034392227998998557719901492931570793440891861099525881481542675308833881797172245274802840110349261539824774802312676160181121635264035289894663578610709542584363544416793242622797965006274161743430397642221097720084507401246494736422142005903193319950918051120261395871404397824633536745853294869269553655263370267424890424857364341881818434522533429345032647697586829841149787187792812169106181350820752144132189282565455876929583265619938292045249120186726648390087718830952004720221372591311192459244375441373312228177770453484935182768466762658539620752185996140113097216707179079615829545856402994894957967776875159139136934789295806009737569780337237618579202378008289864917850751639430808482856446766983598115409909584233591538972680275167701136680970421898295984816249029106656965080127463777276981377904936031150954646482488372984110895977858246002793639949587700249884959232319734461331098198834877533386654342131083286021463407076112407184548122868431979050567034871046741689929701047546196645082966659331022373665600759868965437985600320558441487325845853851553289262237589794643304984448727063894119911361556999586627360459600828463292434556804167490185870200250108201680182915489778536269769087160034945293144431715164088610058174228755669645891215204167545914204696706089660189532821030634584135891347798089354667077600519647258165780775132908371269764012227421122517426185449101844659531425804827165675009490606160882331569536497755665485730573597846994612308304659657140650997261464153930617211466937784460330750657148254641865413346294890228802024226109531811187004824939231566521089769431327670048530316446651902118945067619516038814535005484656375636283771399562944480210296844318120168116351230043246572998999434454609669007998870826051335984028369887445338705874346251936661059152918173446528513179886391766067973791017052624671978161918175093099160688617800858507700985758552463797747403391121489231578857852225681668760815461213809291147581770510846398051857052050959526841131713837282029476882616463166074612010987389209378664781758895583626350142540980337154306451355101621053336549586538360483094643793515399649717841797051814817455114826394495376420843736422026070182715909381986211965794954267437142538727350363438482952678507650209350038269629712422437490721347787599344873454872940743844149211031761180106887385821745510295709637775018902525354834353160907620480496411151789961136477880742726802808336569375966732169744670543731563604217759191911784456047957373570884486209102119375549971529174172072731377900781820181242036765876405929366136232311374717079930919684332459949056263388992004189674029435114874188546529062440844446952336972787334255167129342172861834918064529367898045705421258325731412675104346490681376103684945144922949374452521739786061403230063684019677602671765188504817277184997556830340088257169644472797003466869006493878244634205715921796850399735012650665920194102568018791532425524622711389335970561306060779768457587896244595550107311808984071595359173998758627893610618751945194290491104314241340861258249592538281826937176695461638163614191188311095808555437056421660849192604900556212656053144161283052692832750694836724329992218191735790082929805976748388807073783451033686740217688970634211663942126288676457016052514996511782837454166175231041007279912462590571853702309588045623646639055564312838811292616400425909766867353888137190917288058577770922409446656210410605939648370375718964167074593153272457421206823814509802966475134025150403050813481429672381614204051521858404918911781313217462385732791164646256340004290161495185478601901209603137939344086346233470878643839790311553755854305654883192077338324479686321193547808166768798441881232636034334061016444921600843867364169697170314073059894661308693241920358066895023424574260789424607936254392334720232088359382322647737114841292575360857085486126291554566953808313043366799602516473092760329583206276132517320359526234933799842953033623359853877693763896535338497499102293174875155074383221643054299649825042065702413148652170501440193845064147795441687606959417901307817846941979735594103524826083752718413187885960442135155500106370288487802924923133721002096442008530950788940320197076128801215320221284030424390825770315904458926499416499424443247647303118718098451374669702856805628214743108322680177679220096366932362550924011551543988079025450407262936822094577430376423236185278176830205242799235973264813855734651270270777054872899481701089481208814602729886865238937717486098203509009906564212419956704412081687107145956259530931298603879713866311658864475436482127305084176404569988236335313153685503122628409002264936560178636610706819354885760138129715464419171289716585129198886117531598680949940646371125295486314559286985184189195348371804529332705383462919533825423035421294339584270003495788445192026082441958534856854995152844154519440417738199884402344688887387052785729908710188646808558251330720834830880656784753931647222174975065785558985489435187154169156890534510552203063073572635489497266084014011264158166885895531610575675557533857236879091102162586423121097720620395616894446274757572759849901674524265543396033425912432152059132361990305288441369549611593662307064973783872668243111659231459155680397230331665015098442050960552223910125027732412107255951127309163722129898894215993977410305434745229956228007407236107154750087560882987549388579487187341309415486964646708337701700084752895278287891597766003139805298714839877818915909765004636102307535611114943034186483857412844130371482940791286804492911026256310719600313268840854269286228759573296367167578105319158481361035378791477337972692983623712114817938118610898545525419543635371902502863067515698473623019695024877813222050317865179069096200266263948286237306626386397809174140893966407354544435702048345119388255268931117138357101462230499251286775580125737521501635016192288300406960097700254708654556852156621074309230766804691349386042999952269333943269024350638282059848405684038293547785108978253493745573836932129559670142983954452148326603653401930518408072368037830512854372508300561951588947023917851378425105522463800093205895559560089150422376807439700146484654720469736045242753572493511745293808484955151759777638397439998943202629700996797057595765085532216388905818354674326805121354166195975688171024900742707543481606147780320480243012898285366976801929998649627835566419051024673945227038655552952834180793323691877573360986953217458098010599091784429685311572825657714983004108538906206366311247294029024283691326544059693216611642894412256243349294414321720616756496175260670642359757294202059315895539713096017828204556519471821119969211734198142249107096256826391287492649047877686546146252058068539989334429045833484751644969510592237193632606782280917353452578347804029644282942439975155809414753254484604467937961033559373059695549677077289141940819726802995426187439347187699682384418148231621303376889047040231140646779932134272281221290564410211893459483621917465702350382476528050632792712707523751990087355139307545091422781212726589152283914093238011162500475816848124461492974418896998703065373398562996118340367331888012607468479425813461219800291849076601082688879653335332688269242330840911274536590122724081923517396143323222652927777630806246066169983285153117889973239844570436458365633224770557430839837804378096024631185339565626113891786812658754947413489812457031965390970889471109075388850299668135977482130368765132042208624643667713924710499076088731279612582724339397059935838494886475546510788589264477204576984476784124135560428823911359877673139657516644533055651139030785028894860148653789625049611509869511433055861691267043860074064261432646131322234850020598094796798869694246948309812410906440292052683997749007667306107466981554248804776657059645964465443955484495668463967150421514660169751186533544998242946005645766664386878170138425855148272313304004741480899503537029986723218512214426976262045120036757813613866175238295177425423087584354982987804683691129687308419347804169528836891695602448450618212941387123734286926782745167024937599850182795113474483121096185310449593906310525266112995036980540455100677825409444532920999678553645459953389202601391954402478892911153090749072007496158693400136426092863279918375900615858124687359841341539112320810556258099354007021265108127514411689898286327957167630922286540072915210842776293067711365386148087721950921620022365929066287933279762251060776179063576755290667396169055022119600774344585771584272614287716321048823086679527181165807568786995326360945281369556762923368444504014997207808764653664028563933655038742274271168702126232741513129392935472288076949383706554975069348497444153842951270803946799390033063062038376991739352489406344414206979293934299257368379080764266056486286266373262930989958344475649891463711799161102706365565013489209909787825381650299803646463745142610332814516075250416766359255680466465188748806319859359612986584890522622492334970114385856747280061520877331908980529601911617646715913471433311741847054119503642424737369140020309640239479191698503893624095396244950917920349897267010396096568979524376506825466615141427346065928768808056234403662535711625322187726676841334647415978151453746620919426594887669260789686448884541760162425880638231809762427858091081310404128445595493285633522927573533365324275583306652502675935500484684151988072440622494776327434078804760427784876467781327845922550935068267124592857785644064703545563049071719465476090105428048744050225652309570900169766860133222845750774234567420187603903578906151283987548877876292429329239859570465399217186745938486170888879970138130363621988277799008099363939468488403471270815971692669288803263527507829469816893037584994659556261624448866054893003179288441302415565049992858862568580707081681570542368850275050682892576789654042250276931452178158882807723241130146465834870314841981651365656849394736915907985095888620979266363675064391499522051953570821232062886453049514487888880979103163297517663847742886293327793556619355882715979554093376773082475677129120322670238752622602393664622034608779287990845991590234772238071071563688122577444104971658247718047543945489449175045889158400116297419813697757497159486629921338800455972852551246441230697376348178375303265141499920426547112052120095058530138381203896519182963387768363203494497719893283929511342010746879716769914942519298979555542060490176385090243650466898637222984699528759482278461737928093159257626443127810896170584582740491801625031152844867677738714396369808537275592050746261463984705082060929122237681548499075596888075001403704630482337507863664675808122676176889199371176808923770348487607811904110005861282515844032051866810668334880299387806827298522508095698098103391236384434413772478379640642862835699465844037273120385213168971680253544819963050276395124700315647572217524497697438910914009445661117095581547612318318834010475360802616627096750442884383877898410807886847195724826084292956513867850717567112405731248983291297272434247600016373420534497612648207035208403121500742339626258112633681661510990337247509679309107451051470798095476571343242829042763030275884250811807082395745132741645561168042897097908495285510004614515439587035365757682154867454290924248360505124318816446184730356638667201507277556446906067070210927316948698747494366221207872748948830308858042109782753454831803661800437521132979192483263023208724151091860138035028329074291072779525686019523706511468582093185267143501747945359142083062381550430298036228092435092043406508378157777456302949300867394504757935339300591522964115082800305061560445895076355626692500845023732467886858892562415683219853113782443329615892775250242080763571966469592355241474245039922660794815601642257055643313390746145063672066220883880821806762167607790244703792531169065835518461264540647757073871735581218136041923794805128322600159360368681751078007723269121592707490721771862919900039889904512980243441091902146702634187448116552361816513407409657520786293450567837897364918016496014968782013849590988691931773658636701213842577929986207901761640755971503263054683206002875789629310345059870148641190874354452173037940143023051391945200062562898757556441444536650500295999497036346113568907697363132380696444092520249091612914620187682258930959820823389187415423081505715638267461350312173425125065497402023710800811118043214770503071057299897586275786311546282522578763077624315235463019041898735753911978710863140493444473057910206136638775835261800572027471995187300464645376945929950079516351474712449120778666907887121124844251537620263538423249090925435780194531550628010203472770380444315372957477052709665392737882661095548119899304866835400417415782412667925907088762606823472855705727219234861535436122366816939846904044229604378923329530991708068398619690674406828754685661058495973386363869232924440763154236433694858686039146092755106626326781026614897377356754733932383311606397098090063423771819015275917840783727884828639365064210066220831110481195804037074756036667315885680450045817166075982130368400755116457652718856592001280598187496487239036339250944969279696250820634669531701142554950662282056487126642127928039492018528892677640760258758314841469919533655798558826270952469561170290256023435742929352397066115843861728723799456052297281966853015596832908593824860678817343205131521612476286113006698485596399131880083374142238688617949570390772506841397594569862367490698991501326477199402234025066639893481484210130427338404460241085825014259592564728375919740587105689909059674865345774378051951653963630420964259439227616582803642695824316938067449943587355839575263876230367702567217950020224429656092439335680643778566569655545490935576588020482796237203651404196498945617236728062686969375810748678671648273782992909226089560496592537430770509367388841288901621957586817584691887442009871626408249327909097417579106206245888870516736870661629395438284937767907427049855114040716310087470371129104615885217447329207073608900859458187435826456143923394145910248143222980726782819058501167219277570983836693075819750287600795130185798672295198321570107740571889105858504323682242364720900035456648301042728272077083223307590836253805643518367770752726626253168078835203347493708766712103990724065743903891720538100534157969477041894625476996162048766077643923554289264422904103261912093822231225269065226419606379688979622054810915839207315639829155451679317589584055860140831884052781645747789942770419483879686958826807015235596514707433285329212865834692292489224824114373515296063530905261102631954572198191273296939326980897143733158643605556314740204472457673735374124335246632586430661832910781619615549175686123620831120035057211467134386536609978218250028140653399943543261695677476531216733883342517279792396029701057047361919932508326820898836071451154151872181318342370995668100497536499336279312255766399300260807991020869547775358270511852125131467643976188536503342069774675693057106664120790464728446116529109429290757393827178378209884853132450063970985013555747510666560115264331484137145092557612891632113408537753594913287977193530414897636065049638913738979948741966125754422717560271180114957607646892697042047858669330851483044511199472345969205660802232941156829145835299332956184490638412185680447295256722288506634163757453311920649402797964516539791873156527672066185867270019872060783411694841476838075804169108746324967553299927925543309671293640559360858641853877035691241180754412759940747491581401869295372368190688128183649758868814887209405047305808715003227110724166854769735196804664795892549285581576847782250008901133472092733045036392556158858152947249575175231498537785916904581457121893728946153334683750604734584699638874361643293064303433854570375597556895261122391367483233977401515367452834934116944672853822235904907017117905054317268307366544284214331491749379147810617626971374440971869143838961098240013083361249306398490973117662452650475073558815987330232318692899457551250729449234234622708326044557459366876489996072548989057159227354190676414812614836396368653352096756193242058011558245741668374807901302742953189612182996909580088879732161188419093746558318785089196511270730524206435476808217398390603629266130857596181038790357980942546579150304115092244454518728080553591528462424372691752546765905466159508593488760471690640920009637981847951314001343870340028495964257428732223929699620262439324619822324415780763785786587398901219277549070536386058361130244286440994534829551645839220972177886608867194435155236231411997863164958607133850781336675171194474354876451250267120690105435301151225244764081730842734992718192576102046393878894564055419036959175284770059290284239844615917858951669033035439043661152190005624981029845031080200161783434460316805236798729700140006423124842434201659453398444844449885113760966929808056551943086049568313328738682929301085743498536710869374210628871705597007322642257233746506733123242202520687791720223513995849057902397219405864006642349495953126055682697276514324977853240023911014784090109246359605323282928553321373052984004011567980363207995829514151097934925501587340763594473412149020556996944620639289168504770587520016647555720921053581181228120093578734025426952984689040638454617181622831081749635283692310579719575930684352258469048582078730917585920734150351370114259949092607328043970719732796479652519640197266638524341185683394360784402743911385988453915851625477484746224206991084027783818484396566761095427381005114755085859937442617507100398171702129685318246408070790792082291268685253211411023346291002892652219387647172901889755487515910312426808942817557434904118570224680166356923264443304904937935148313331621436789075986456565066842026041058446013839542848060534826539241687658286342112879800549976805253662968325783874387923330894292083171296451684118913353494937891362857178928417923936961193297379471188888358976242641327355423307068836129318681116368228769403531075636951652607013364136380879432120800642293086116332734571871774674679346982879608775974455606920016555428617578327961746494076507398697974664115192298341850359909979972988270699311883139388009156841323996339276401087516876886695336090258632641284243513557950585630517210633827986609554030774965104684047723119222524432667314873436835977356315104514195635173204048986455242350630946885274430987938975668359444427242395942237072176543886490341918750168904735803056075523845510178264202369897566536773882304019949877046284757115602692731098102870376449250967915293902323662963820713504208246775414068004006877235423482695183327518345808844301868262606703767466994624521662661444677202854221865839655023429484808956718369048663255762287204284916211921688215581410626295859170931072017694076534853613266391318968376750179409974093335000783726877218571690765021452281205311843882135577817743688722860009066219001134847460810107247480737143147830776960601306336440609364509763449297546821672112274873174102071433270296385860585915262051727602149386365938785411484371604508734900985809263639083102995722510930339591430800821874920829177038659483071162014909850175293544054643684587125624897673785165672313159369086508365895922498340325494116987145591068920473382208487125045306204480156454902384024836082694095697102925947637421295490136932300720085701099004861037947731186865981814235548273834302783625607304592638926623668864990703514013171755231499981496624864416891411073004567335715080928113399226625110936557009472241625245499564075139277404712586576291300839653238919064777549950717810813305617775486841178425311241158674053681153933436405549124899898147552260669882211922777798435127456238671719770720400933513492547817642642635657172712428945447192063761652582831850391741933017727434095525386568986132464525072389196821581249156987856626895540900307358688930036113556341453802525952309883601346553855000461192861177400639313234673277270892076252006276537684555715827269445301469619541399068807082046239100498169814891748417212301934957458393554335446168039355860252409155185540894015048076491042103570812355577126413772755270411603240028918408655619007210978140376029265962992444130568594919856530239471840231531670924244629072698803094035239970896105666897040313481661722938201560494443271909495299920995362311809511480006921331168135288756761087047258523222901820468647066938966942402169658361794319687678482332500333340561061274555902836452115318855101624741743542757985832613176942422090041136689667928245018688390489773334037518081191979211112027278587989801490190575376168490004079374719965148247558856248397375127692872179639620897747745315531861963458715788828927876784399605794063629840979640402178414872069920840556214761761180451895238662058846934246561971617737045020356878192107203070043319154735958735807755207484720679936837583996063162889657573891208402570518824894481780890972099105870623396589948089183135601703913391163493266756336874936713569259726091646649529855407387884591187983983218474074443166243445284369535468443426470373487541817563380991878004849261654063411130173421158150379253338401098148965764094648989649635330002075470726055167418649880428346426487571440401048526479781374125145966009833825110837955503414728261529720869096750038280530045574312246224557776641694389405312216961766293378588003078736190198790870477606767140593865884725105480696692488890760920128160173436544660865195736137708348034347045932463482047492720514264512334750730770162440536070843037988974114171978357906556634355261767159427724118945121594498294231383089573158712298546144992532203528045433991797255674771129936561393713399930554396139584497641960471640311332790227368705831139626556896215547159408910194605034086116470057848830399896868511396934994970454158637935246702787548784839169966224133412530024086423412017088052088641089829053325785255154479287700755391726015644213088057296022024530537799896799025384615327922703420336790947030623376611537801417954246001281230601106067123687536908081358401136023467003947692863723403746710456408950851539037943551354430520994626970214645206518727941862644677146778865425353013153691267006242170748450686807830464131810120317985944578761358952168239543460708416198751442902270095223393431715353741839752638430668164762191190315025028984943358338773833426037251432144928282765048858688227958117079130154517852664563864499495172687228573163011143072851207600647291491220547576911923787264851338101483730314581501236847158712412360769109888399609656933205673256091243729608681439267435685364221056136633598596848290236999571450575911834131817250162154553772929203602673166789721380716094082011267138025619388140603561408197716500971885784310437122062956631939629446287450065543876289930392374147856350826535748233293114488465132185432863415808238529704664427915366313606380486377791487147342599784008113712417604939527786843067327003653023599095554719540447074794117954897626411625462492992029420611636584385549015874331741752834486133177141505713315463368777172575246031444050578289101715059728738962811727735750186268867076125674592213743910662305892184104976867208477372404554608344843800791887587092585828794988039089409335321824844273480875538941570260960865888615258190739801557012275933089302893752296853718960231952088607097876294989601237035210129260391748055115897394050790836429516858757269606152783730031692673483297579018649951255485201405645783199930894980005543609267084441814208083612453660127749341802427448510641724108379045446875349585690476785017540552848030055582472999168527424497612558563567669668594474083527969173697717312714455479319405086961593358576403216522494362272804917319512461267005350588389784844406055034048730125334441236393346387460019413680926495046561717024623689347814967827231702275186010261428625119534009769579488272252019549096890768458765566447795351083423815684231358676737942603315632508971740262043725175180190344195454774066803862415593492484756716684467249335146790088551679976497418271719266392579283658216182340471237402404870214329797020166457837776764481940814856040663999378935203028936806576323110525233436195845963813700462131092483428378370493807111412611412981409437560338099077477739456293363784467557510789259462688560603704962610966860750835479227181767555250311971909027446554459896813318866257150855647672780243151043334794811939508944599617016857629765145667996199214121493237218038412621982799104137426295652512898314110876773514743661898079479096703765267342012204546716156836044974767920363250082475610695845978855530074676645307019738132269075721037865948203996980352821756300185970922938970574087770163022640381192765257394049313997305416544684337209987116541990446211479983792922241677995791403361718721473185399085954390078588741771013846192426226789127067720522839124524680030229719237098114311030467419655601805487537817183732810353556101260581395228670591279302618317368429218046895673023920479346943911355031211630738657408493816024120851014551353213116704750766196565861340745469261887482022590379948846389972691550466758143175183625931999136610609954875075921624610929757764421346021484816972665146787947779414250040172751805857011175732482697976210312344745081792103127098928980577526012904654798966794347889897598153992685169735440659613330050966395934134371660709268896894888483592992268159430644680961642404917659207969249841162094581224265812807031100173688704470006112366596315477673186153675758295369472265970593485244090637911118460851150739552962112466992025985000309082786923978348072779774673060272655667102955537280623888483917990129273848652119816965096049161877602917682783417573373385986348932303371773938439635406431959697876124113284418237053897164815285101374798446660251175110451957846973284733213090706051418606999495068584028550717821010911048793952751883199697575453372544132599653417322186240858940292350782501878335662753476349452202816646232609845326410623507331627789703353480567322264242851560083442838295095168385865430460378300977071791714155291781978749455657724576050143364333828343819993426520529766699658331398682838074979913838741803036162921317978963844122051181126178191434003768633417832118280964345722049393663405478168346798217377267624329945483507684133472331308038913428314359642200821086261778907060065252127186446150979281962688790646022043274955634319496778820757962509420706662066441436266012222897566063816799666484425729310540332329893855679572954321383695531412132196564859339444610892779046430755829990015736281305258343864871918258065842231327504155380334315446493423672764502303348983544136937815896012816876491025352079627580094271270671914862192737431406269440627459971398286594649064284729055075397519466005166395994570403636634329782537117849841575912866081308057817781409115355991779281303687043475162646665117381390333901666679703734460234457578187295936811268487668492947145244930989227443984056593018938664449833249361739516808324063750667748512694754374196157823544589291394603517800400142422104369135368271819919937692134169266755953697592048602957212130413480165156245564091802755997227407334870540938218373740684911087883865068501478021457960594636319828581853374825827525224831843253309570802617471613645065069781212696770767576649122183738098721619728316372373960554669208866881857565585565058469569689454098873023485950344083439122844054279187134604298208873787336380646373724198791260307572013222124308467298118588074964077161078655566442042261855352902711853986017189550445215011013804485859299776958170320753142148305500619855779148129522711593471945158493814470203913060489444390577904280840755730844449265465550961515812301140278196517006178321442824777492791825945985098808695708000674215620291194319768317861091062107797262504002767050900290338831751331667501450806946815251246355892193030255361783346853095505741208227515097716226512899192339242228114832331005524731089307186596341532172020737892096502195816946924616915708558992581467449569462991134913242088026293983416598201175031406186738429835122033614584204792535923041187173684939494542000059189797409622889636830383758712821868634539973796745900189919272207209058414659286584099853727796553780315601164828765433428837423585581181565099004772589164564281399545885655135458723290171655514981898991032823078535949796317760920672285036477692990022081329073483025005688175576261798707963944275184330453846852283126136670887474444793773545539309373995391952695347531259031260748730367271253982330705960107070488446041327258104053258582919382990934865355995362806220596988442329626579151681375020746459932250791048800114387245119192148304027667148204725227280897830555175386032325047397776490281808466378984846636135803825003555702792757151650930165464553704656310427968222281074226100325274529174541191457677198268257208139944182625142853886212304899101321918220854720662779551687126227619118913625774357285704757487772620557936654384034969907281039126487015899252025916961780753100344841657696814145514442215154032344420079385650045023959096698663540035987153529323005132598809811884494465682366294416574715665568985318584420668061703874810304339335204810341724845059544206594258604112721479263896679254697195108153298533243843022288324446963556273123670456787320346084622213296908226447940456568284753526995915228953084433620068170902223061514608957550113056684557814539354479006452318570813832195675066991851460652547985850649658729526596603730362546123922529104576951581957534676531907609147238931622273738920736019233547863257394466007741731315423396348987094763965612075450122715699666695075765863072836293573831267002806888758511140743457694479913771285672598468138659317756821408594464276197580728044956541336508995751338391977463085394331912293314640633429916739820617988253016571887117450097477183345832580352948027131778687342052441985664224371564085390803376739875033278391110253128654959508741782201612592725855961630979170854072498901326301194429734325190823801627536167144079627162773003586586249584647598186229711743015910387178845533276211841769609813589810213162539174774620973019224262496513654216084596735495522536371747235215883271158641162137498765592227884773055272517478500804494419049737764504128576839804764471174991049082913635083147316650980376954094512444952307370033946430376951926643270985706380832589714886499677963571184114456101156157632918524991865864024792955833379712300498655482885366031353001868348719482322897058118902677562707380525021746904792087462908420539684039146605248433939668453905274774675161543545158880423241384621896040519004293263908001965697568368201804847777624709261059140847376286318835931741379954652453095695206695630917642817767308188371760593364398962660738327051921799520556156357210153789492866090058252081413166505466041657357557063607905799159943440600381972651821895102353822983304555389924073495249332436736727108107345238087385241597384111301803916138924340373471662905914957257478225704118731971551439552293069900164782500771978830509579429076005128145150648556663444816732945169855568913219930241379106742090512806745657984271934018500182972346873433511167358511107049682387443073494120466705247082475473604566994490059753583014323714422148077653491069425771699175152744710762029011387977001864307288972680632004944679536432049492948308526479801794753330016613922467407947192207841096749719582586935372090371472216014351967917736837199525070311701332853067211024177182064067185408634407246446598911674846979952407112903963296859787511182315636701545115957991803333075049156559187036998687061083990106815982421069767239590505829712523146207458601895350166721281101848876922884116104377356751791918951333915494440518860435887849359558261219333572716657211029618731605018644750683429320788432134582365803553045035710489151533474780102622414844598343999246491366822435260484826591996648607389273397050964288576600604794251771871390896697120688945760980436984590685965872736737428489305084359368803464067623405956704435108954152748769744352143050788761182871574872953277195879601460860782369845940032518321046127119148549471640434404758824467353645231248118072004606271610489477498201957273067375014475011316274071707867071236978197414784223740700443404006117501290787954053785671443013797017671411478780250076543766333291645261318157467604913205150805417194755930540842018318781404851628058632749823478902059008944084923567721433799237869473582371288088665642597161784116390481796833938196609868670684412230717750673911945129471742821973207465355822936047432024772842632037459224366708492288534638188823764434792784707484676090984892005348245940581474410912544759577241142366262874552327325543036204415251637386519731291093104449887839321023799531709221197042100255465304418627610427510515943259962438662345132523472747524184853520900445893821186986159520838470943667722249098279829310659939526889617539170100134628915595569797261986432752845714062003304708957076538104202709486257941917073251826631857645425864266803196176664197010169708071948550290203954435876617474065523570788930797900703994256212462173473308722057131150556047585168853548307651455374608808345871095730947101851635713133401652943451828200133796694099033804947583560793955003867799485673163027611730375126932818784471386737383977276056238404051628725959753899058928652401489654294595113886174839142586316299777598450904286711124703111939196475673220125899996778112929903463217264517741700033419858441755207953818818929142872181649939846161389126981172891538269128799513819901953302316025821247675441414884067265531082433229508624054351844303252905153879637322891015435190718473938647424273440266279194469687406786472962236832602430914790746878531216203443139280974614528422702732972771965175483230820574144388099529957534508170923253449782459972772402398781444361824059113136437682477344820743247062106070390616525301068545212685421326130720713093976264341942738383884719189234044846360952089607583642883181560092802130495083196909739412740285915617325117817484113281122399313097760669568869937762273762174982601546167658575966441537599642006511448437924345906880378313031646381862990565891597885895753991290580900689744612963174165211782047751432881747986008234962641634518323911252591634753355191708364570304136257826909326886024118302138013431972864413200195710586997921638754701747524862946648410334613793588246122850385297095050275420975466371751639054388339378863343115651805445835210919050428299335572768992116500795446384535231234896643496653457473504025463342768997883140714477553001506395339098423336489685913650583543056926917607732548750100604432125711978077170175209348442806273009318445084634538271338054412453885307562258033935361237777418773241730567256228135599527826718576982147754697103566834113488822485387915598221422111689062353125773645084000112747321850379979154707246565093445989540138980263760130929835677222808674725519509751380085223423148055288076261193760172024900556890677179212052503877537304177767805892883307511567284758514358926536914120703066314636801274734120328887447974243749903724696443708303549627045180964802479661375597719161098545813833218642991187744379615908836724116713383757573963460187897200413512902215606067161189278581999741776090945906324506730433276968925567385314718076011879037700314828242722491358566229491122733541802807182437003908765502451098368592218483767417667083916544232751430614086252125889601844672861135569679789712143160983824551357065086969251789517644275991013307119481309987623654026030118622553289247185385638380470325264164906800340931472086607628547404651177483234471868211122520839302430953299714432497493471176445233515172185104370428571201620894984042046577614929332305165112929561359877091249796732434088204993326292890018087915725179102081632419708484648706963992043579957111493562607820598610189224271079674110274816640805470003783528392586863297272247653028873113680149796282406926338884374620293786153537731038531985239922614890241999179430572978985325028847211397704293961550250591307844540579735546098067692014262036446761043441908423735199897172183338516671261283020568237991734666292706007612068965549075984626532600115846403925599839022187008308153414741776574479570154743259741344564321869845965182230062627161709195357288670338636637989637931189404219637874336608331055674799708350711002827394802414963206141207876395959368624884365283303613277611310644871121562266303434728542819654010763883804438017695852965130314470570960502041447115913823582901348583588367083374449281930317143419755180912590718728567109651668662053476233925213077077758687096680485886046609978270900081215516580783596699674683494098459952210890056729911460698030670241081333944553030308507336494602482340713672240402139113181352234878498306838786056922268983125937845613831923521028949736077907357259531190469269088286810747262682527408202375299224289954255440033549132891616850254799063556767117758747249731057739137961432534614821671710492685664509746021022440253901590175087148886607279163330162903966964508741086548412002636545212934112865161661711863410837897837948595710903537544458517503628489918259122090147063443304862746274980536630708211178858117873598708687408041969375287706878728489307090783370476723146102609966348109352645060780363841038546410316647433599063237664063693156712039425115912352975558941124516096731223016788721316270975504918858458267915441107001944905945596890203362628659653482311939793874548444954816625785958924985775042805765920520660946396252132324829362110343984347442594391702085039370862666757269851929615193282146329635241843612868513892741362997990395902334321795999761014012743054756320253039550913551940917030853839297742639788653919474905593468595687329810629720396252992211611087654050671970929417856550906678739657754780063912691207516006663018043977882122602852784726435441045141262737362593697410220320682801307144050057997233396603472278044354314298742464054267460252691854952929087078103065800288918561769786960422539839286501404125692351719888996102142504665165437695449198464601387619624713697477090811897329371367630948509719979455253622701983357029494568098239454540176627587010298684152238059408485305568347598705009748952131187354106052891933098225608241118286471347583799665687769492435185750650431944853129363855821624034035530017884810197887448365091216423581598792716320285716719585299375746463725060174453527353263707377929901076538138792719792081207160155929576937611658194765830580237676025355650326696673604266274219237821185646437796068673791893323440802384460163706257008300375641616852132660438320448020175686894690521441978268018816244379795016817779940703476962687195327677458593544884851547044083375118794166590639364425299085072221266919315112370456562935121070789371117262259635735934678365854598057267208929937325078396954991331408471192221533241905364418468844223291342815966013840886968381854698247508748012256962959563085214959462269426963355792883797224911044647967045076676535454283272734954367873474023951750763945890439915745537056921941850700596531999390061630685138029806867919079326282426064046477973949691897350899912010188782028927254235508704671385943315104310913788068097376708481673793855135786504675620451846038098625070563858773333348437745277826480061640517852532152413651525190275676670294691808670058813252419818594023892218826919138562698780110973685624562704812989944509455488505886294306802032276089742599852361975293804560505442843009119705461487916185421662450526484257641643551613797135068736288667506696003175226084143621844932481013637780375862043961466889522945454364318023070704565958953959656845874142006034704238136413016207329097501675393478436923600988896809341838003522557325086657202556251961584480808853252298641796300182944522829976682446917321756124930896715779611188136726267029907329053485091349826140071320394173772753832033488245843849435468099178611377798249153189257559826581487462433786077897372522277861216834409850078621472587555288726772484925890537153175274968346758876682402102024997805363375526167839905089252031047876690450679748421021261787482945833027403284875565019624278719001894237237609104845949282075648772359648672361605541883669022712593372340281573490996193098654349472806204560650749742866411984040683054362893155456060306490602132772039206222478790850024478436631194300023899526367603185983210688327260666527058388500789625972557081845439850816875861424642136065960809398785810733502527785449430529124295676133397512016456798491708656485724694288972351930643048603282122119733109412842727802456646440116403417943210375454102135114066073705800532675302337503172331164905296004347373824943946183569755798233031382989841537310835338330222819242349260284983326633131180502953272555524631141419239781183413115919573538051420827652957826661356389390699735522156373427720492194610726133952418285108114204975109242823044808192935796822305796655568590181880838986834291994957303091537034455469867287827898264265737952237877369204211831021904674869323660623706442386269763461776305154348023758277388397224163027200810820799210391376640949280302704977214744793203939865144531551972933748502513907227155080580285678048918290322582705011320186992890214955586807468918922424456036849363321973873827994040494237696886369844606493980316903733303624330114165307890838505493412289100072688371302292307446617482538404987751742875767488332148262762177920022610007854834582111435392657121188580898890851047674055161173310998567733025280877946150445414865621398934207992936483367743990058912180628861112535205909838565197818792989015346176794798473734876604133691235865052301563787011641805476829407282083382665270064830202675227468610468818077148976075655317509943793005350643670076748748159857402706752424948550083641801584459348730356887686786749467805000835980335239495661877130384788060644549626874007468540742338166965114505184588147504913376663713711434438166300873597051083547148033706691942394116855437315114183612034375101026526983533648266804214471588844978899406079879896733104200470367506913180098264084726508733655459709613472763714283804474402316625762975927637493139154701369411029822388539518380903568840184739739052067747274652910884477257915389233473395455808140308203531885843266264360147758074459346401954334827941420134491287567423500488962982746189248767648292323652854952729528842628401698663006092480126865809094817808593342242454728713829382108662997631360734321689735675818622171458243523691372800315810625725676711286181411947575412236150637123276114661742260927725379624809577537289499244947361035224649487666092908137869890557278103491514811925038223238991811012281278289081039859763657697959934481694353603564426652743069646521066822977414190497761133394588371822577721790268960084374882995839350365075562921114795841188242247266173611891715773451346510333516386726076926551085338205071614016805019288809465017899139514241168870297058847844220715328908555954589824337809817500289855652697051644501453807457054601537806611624906936394756517121578058614005837134444642826710744105679274786195971483075343851214193184293350746198563110665531836284299439593735827335016016555361190658722922207151658868612274516739429161919977837699124581868291857064083383201552267286657162725850623368676900467664362444072438339219198108157163007165556537026289281060508708623819450342633956266699935945614835981089237875000228728610339458952908054869579809900837132956816699074223341314667908886844270641510117838418037994889447897087831757894980098273272412286505598522807561191642588881548035511431398580508327621797382289696610906010926204110483288586605189316204607222194273587920207022157479600306790819377333200544334388413095221887933207873952890661174272691657792361678337744143146353946506356829054987213909838352621335442899218402619347425091042726036084723155980677180211620088133625686737522772014726663121776105802568568781230221180145045925422260257240170707335421486955779627644666068473585039198127051601681735135230422969890117210904814364266077000055846548326627850380864761833954775970425521086203358399428618576708303576251697176014040538970239687999430145524238225475510562605966479443356431263966096666006259709064469481147388524479926139891268189396741021253252826912623843597683311775723121798498832000182201417183139175814364555996377404578186163877130749823868824329197505558172736632598824576240211318673367483426544232461704515781435047446901731322289594197407840616242253889854779517731072845688341228122107782398604210789363703483872520907262573488935085728676127004554078891987692261344873543250152049038477503758250488227180190732800362480356828137445700787610710874182165059665690003668256210907454256621186531328756004097948917142809776242472225094942159221868657087696411351307017424298073333851003853972198230384971977686446076837400206009225435151445000656601961579927105669150125718618786412053251004196374954070825202850897139727418343603725613837316672045862809024723263335736075111976525146078700087318108919691984123097786255437608625829035064436908675571655933152579969877796382201208434952582404469476618645708997386986995707581901288792702143427934521064890279491877656263344550089095921242514122032500644473621535183566250566216414795487096651770984093238480038607289214175641633339326404703970248156494304173460484307644415636217475621820284709964564976084284006583468757833089936347120927144850721176172958562888221363498999452446623415918862825851085222051628547331558078229505576551458258165854736466753862978216703532870010611717529401817041586725734204217845282252590997625406151519697361178006978061411388379834283488472437035036683588525781979406353568302026495110648802710376333776901891018523069437771010004142574197152813305849421945878486508924416186383916135948587011805108758452370938897826106752522944117070822085248752926289663676352066257311898208141627995038801249205498862321502121711897930289354439276210710656830464870830319664444238108471593480609273694593267095190810166429254364998075518257467568360722820027442922962373730670944030249027784442415223830481400630486775873347030232583776357826885527876983619846023115669093560012850782382181492564171881944177188576677924502013440531173719705478563517259674154510394534280184402102115270301909031331141357740491026035960954540603627473928200374515991118664292007537121075738317951502393892191936516990141128001654296137102065134669606940498773162507136421471373297139138127822431023634402015933304090650573951304858814776345151317645373859062272715918354533932530784747317876038952654020414293828440836430049143131497969010375690313601716837364407450850723097160619465435777756340741993587639685837835951975518076659994107393124178272842769597205025336989734464476347945308539560065283277247107007528470371888105948489019145954071774036040345214958923789366764780995670343904574812351833082478620973940746208252995894836098832080969716681562386521623803343167901734208841377909012280865155810250898850619933368127158268336145461982060644954150494929335489727101481219878940366610171857277723290743004126071667873944482826078239504178974748443232659298322301711095925595064915106144539266458253409534322594387286765568761390166380013611602634207982421928187848490668474382317395557860150955178062818327700123705016821400674252017326969855014226371988180439357902851818392954152556032286845151814787268393404609100062387936567677405672807710369152281397380225458945022797801086279620817543677340011235195096682137770222001762926218550990353074180371718571116452108954642949222437248658762644736079469611194395740778275144146901925918865820432067954395193531009078365692909556576789129878920579468876226596465979694291201892124125131963338013225760622961381385478537211260533908700937573981518732386614662866026650513194956475938960108381444923270175002105415348417248331087197168491528999421145377916361199889817478318892594647412225494412518974757495021629861676047756660945992585793402746522447331749401005737105081145954099351690405332889275220194213698354982275397304434017994272489336547237425846944348990405328418384172330667970396635765412620835569185099239550151532311044788120499916309244706411707822840087225943006460265323598903601225136555002620477303590569304374995627150883631880627868455450367103383781528380940586176512071042801641181100641128926394488630456154642366039250666978719588820680473582225542638483425573766067349575455627938382586827617038289591663534826051493246788596853192046840987966606252617126181002013651147195618776966313166951976315220556075146573417491334214967435998621211955342860458997330409497528431028847643767979190223152280840643327286258457044438702924664189708130027902202648170823870116878019370738119070163529186756402037176404565454080178759111211117971603668821013738874791717799401994230499674007374119354773408985059224836494295959036453921934879801302824465688754462846410458941010696182036210735350745957073153065302556708168715405533536209237644835851479747756923434437500079597827760874826847109851063507475056677485053465764683730232243639629239925553335143252869977550142647613016066622996974147499661886138662182077574203388818547594973321039071802630003262338771268561504968256247612571672745547664071783080678988109650615826811467737410688875702872087113264219079977239859930058619207431079039237210356050760211275242723647009775102443915686659637461106600127896534361664297791232441132604491998378757203602105151489577352248870844320069376088371729096863218570615633470218450671403221324178944741597404074914168314655597200511113088169809975466043739462986513624119974745905195948387143193381432813962181469470065305039120036458764772726842283738421141577205145048596787890205435927061625145216406882161750824278797033474121283063870169845037683911787811023996828030973002591845252296229988791598912831236927793912343119459568496727518076812821817083986626449366781070286625859309090815144705927449383000354686722753975187289191849329285000146569685526401793908845122837465300196461492025287056106736545695776586685790353007605318079743442655457225539331330970805372254999828338352084645066153908219700303815156078502050483675842662824475396088852919916349748609063313225112454306694600302663926676109826602203125512795857848910098643513602051193720320088116517182060415275672825823273405440825184778224745714252693875408002481994317907103480993591107735015371142448206924902982884337267804255046816781106829024188286070551098893184270076466955693059169059958126054525781728498289544933755914228544106820802845514062581546177129836896702718741718763503206563380998129691617938264699956606385985861801772662623479619805114906970426643047699097565727130288577194019019124731052637530520715053189134547657644708686538607941072410702480935980258162613987452556826441901635734263515552457349157639632689887759115961351834231438499373297448101197604914893277811557045706878639572101059553669879670184376484867235225207037733532294331953554798216445349400992116716964562258495498591491721064894004843055337176030154555815223721033868833625619196091640899074443867665945192580091956601658160311360091689223040958437807716929296067569575753908636311918042814327920081153938171155870677097057357041012905298747812100105621965239031812038825163138050997546554686224187970616645793848650502992729204295475872374826188281892178215364368838959565110284545784347775070780377384225074308510432256598523694480715493122484986278205070300876446691942333775315533754349967254823213238352233826807048199074600099371441479968834628848890710278919876551751282598929854940294359184742598377944028618940475597098643671138973230031603766162087171931931275654332482279107706114821643239942363144190077059888072106622681889494995231886942899567005271668062857497180619087371498574691354911401951144054682805213666469677696704312466572057046129226516307664102242475149666408359630059662356090023345752815602128234346912429416772459793937681944972503174499808355915613071759414815469161071835288035932406004286316070757307864512147778190333650639175579882931860047277303539959378371021126123940110467688055021719063055321795793837011652698275551687959579117892187046476468215107195347945250713384058010338238139668376173511634449191315293757832273766519150224170906461410627151968347498114085686941196020687101016979960479805936555745665688886516701174338478375901532048972465575214825534410669414574996721892680749163038507076072462711999156807534830630159800716689359363086915312582769057182640027457284547207552118153406686951986619159946806280547826094023355355266071155448400705720089377082707001897294151876624279123598330753159182042151825591334287405642082860493556500150683451260913285719737900651482174202259331155591069861084216060643454464377345651357137809336419096780242502325967988679962365356072162354733877777354844980691549000884407576204493156807457703195660137590185887126815037383972373433155496453961581600556258093563557814299312366320093452857410432281648376508163948711928671761642515431763611372821618344871420389501067547744952765757968843651280540118496212755290322767886059128546376144800430164281147241203651967138917296214001453667362896755243979668841292365530630084676209224419960575954176073126801664436113014513657823890867995518841177758904806844918520823041969206934770901231087936419687705752993975556479166140913938658069679430169873450121014610198210777928807816088275604935745680044099675075444787585017807108299674428828354450866953561519931010203694094576700469234488113228014634748487769344866025832839261901785346864827659224248659863915562817811572881643923140338573751060776340436313164368500577308471848937463418815162201346947104979958153881104069732902301529268945193838658250164887419048379272024074582221216990758966678860523908570017469946687385649369894861378876485339183325706415407900995716216678801987933241577678502255101608855852822131082100786477180136634478019790819590057635837688893744772158180059851271866416989613170394254144618503828251294538400979650103684893810607803862566422222545021583359167972758854723221769726306105238578284726082838181103636849973843633818748327058915215769111149374906651466321272986912754368665825371942689266495052912567186994723199587238584453226899843550971024523079616360564672815830013596454989385303880862460036055172178343553139351088317293731027366025251649416710859171971247145541613521941507309785588745892444841505994841260298581428269807748591682361206472859264261662780883579082427840990752096777870268680385153873645077393277744577821359367124412949874328934202650411075166861338789228161961108929718554757953794354057294975121485586520938146687922382765621240497854904972089517858741565139183905365149183896355026978437981144403242157028759771566498492737888914244107129180106446062088494166473506752631373375348843705206346146208538830392441734889674044106937188718803726623646685928837309140322967126255685725194650537388639550603757854084498701115840696347943178753122556088896930788105597321416108788832141487474155850901256361380215151953424394796461173684361786022712669469247518180616126009794839104926387127500223607801296748649578024121330810180012081255702895277979508395179842188031451584809809763092047286868689232423960321815020783266441555810737381124200740473832009850624233687832891919340801837683812185948891268459647655505753873398259836457053718860408426427538621064233946299306395959286576342345358244160052251262285246061259239976563288620539566692513905851063285007191158103796093241049250551113152984565563289324727139514496729623154087565270928216351447418138126800680508804037968630152936360214886770306064983560368421454930318527336195393192941622262673923401916818667144417128583188725716141056953686190974660556546420324116824679466342826476357975310148367357073750436845165073229134339055720226469124448958965243677039154258503354216177837104747573994189163539833448896264429958546242378082907515896398049383346812844200208912436355464590389109998378385968455440926031184835808728867891715633259766417515628546273759874149954814657478198052254437080931397631556520497521443982212127458438410798207044577305336376008985519018254180160444224096694665073697420948810889120128299192421662486989079701438632954925071598860596775345969931625509128377766336284384041038551157711297143403542658341538798044540362874451700981709697088741678773621099563461827623026159969396385883984393271707995897335534601605660660031130103269576507812262717947099118978565472080266223496670894316780485713015835406245199919982940394196060281270241651512858947006980702094458742598661030341112430108006427299300634302295356513810022037184926008813033223624812954910269499067666817575657898256315159232535456678745040569584926329648007114109808306930913138023257925928689248488482946460826627012074714641556718124512685152656343251866572372891646821813515943529008212599501242955882420131517208456093937952962522891519439368324052525587267103330065667416029346390796076086596523365352416391039083944683474212031366013019303615009074268574400546005578501343000021846989452832332936849206232280437621233844261577009604886201646372864135999741441181104159673982105323539115913752493987918440271589749129266424658991837431754936108240932235805029925055723307534849658582422559864977212259953311659306473080426349432730627049028171333739880595547558351774574187905754393320113181649587039854507905061968059909044276096589682240652999732443469622011599411411396738525799484340977925947094960153359742822073213850664608871990223280368097193651775526063816649154455856782330303455861004540947114268899986786779161828654464839924603325629329502151731923766348611706976489362240242775406364886402916450071705136439568885382377830646281083039481249571136462753586556009213161177384434675206665379774127340809813751334539073203369416113970952632381271967998509380384854839547357151458220077928038013023147779548659951620953999665632276274447116587507488722300534488639331275130806287091090393941644368924917812601173504698611175802957088143456466039206286099380471165058635976160592012034203695285756507285943158210345155773441522190271070172608776859005992588200460072258794529293656391459497257085696765313240097289397951462131871344643933929905017486970904599449012714714975299414927594581548790331341072371092504812375124456110842782581458129113488341559842530606245910226049872186729568119293164687927832761567688368314311388459838540487154297354188646279568462628755433781974304565833833672255618627831433585402978274545998757881993811227026247125549259181135074380666425941432457597506901684164498014966215585279597345665331936728693114835972705774585237232120687393307005693674572079139994833168728789504168250589859175638678024552519922459162516709504341570893439857506943616886259601266433472175056217065105193083752857961408611321179368248192499932425937778912606350873720911513037491393452108915844725437049340102875856262667854615295055120224815602279598513478340401638261083107936391747720735969943430540722019388127701262204289827571251530251735761327810195265757520178408889347057797781916595502094423675488257640977642029230931621574414908050318612152378377705292902411820396451119670397431586017581843428297142360446596179208617411489110671323169845805350418186961173382276360281103501283111844102274834357518784571580949018840311742274398978671904602050883030793141198556964438306989292939225630057260016484741942283967255422755530630777246858132410354065904344585543321450973575426314665373827027861601888640703155227408071748454847558305680518628269544636856299575282277916608910734559975851510121837863934439924596539234522979924800589339235221452792611939645611661140702569047427342429770956990200460028126228384167140152008427442758684756226550244710451964179147322196617747544135147337311865437335755412214670560841824812362194684398234639547274337794080483111085022591031241475532359959921740756969259884988442647515583073535507192819706843780629697322771640721520917586732010406361603552154934809696711779206293937063847143614913833082627863066809892791283415961807880410334963340914003269248698414575634676939733818902735439852586462646595111327325816680620996611483530352757854869164511691712735059373130338656643545769082127358030804614199430901230966609072599161057873112615883493313657989379610777320860778148101200840063438128224828591281502433465252540669929851694122633850375670553917379047228689257202326477586269557894581471437758713215160803286427871362595442284929853135766865219976388283020667629430793067930788281734451180469607404073542462754138577577804910324026959816611824878351547608167544515828942717640288040936540510269501243981446330039554913188616625146891150922411008240403087117637271246230621719672571003378386206087019378687288922602820885198756372898001735709054451687918502132443314764555267693139251384163330342274612727299855204017227046301497031704350489389297717190445901848844305744169197245290250968783887803357910470602036415079593615393509914631510505142019669762080513622512145460132772433683521890384366228640022168704768818820676516194425307824606626484470130964118481347349875870762411827333568548113679134089291870937301123560247269453891581502069999448668792911287556614424352582427985414852747216848893250603889620336370463495513953673816272649268152753087009731451476149636275393077584682397153345413608940555136027911152944052652236241107489026103254908869922783911040944849733057586446010424414516482753983636761510016571500161745466649171704400543171498565930230876099560298642944183912580323163503455855279753937810014334662108094895011782758323278375706287480780168050960743026100319314197524584172717343827839661478135082663694930953049161540564948688979719803483106835326723705189499649885409144404450403598747853639357007228586488445853050745249914417697685018867880746125626671464004993417116852529459395424981546110367991677492398913850603370155970388798160156710598037275465258001289020811896998703971856038562683490574839245820248701969640662825775333169038005738523984666321290340383739952457687532577588911671252369047230863439015678253648679590640511001178883621343453803158088145924089820638471883320457512146546936309989776724800904251124023489149898778465209383236990103318831786104928546864513969495276212288519259574257991363104289227625895806126842537370137355261235091266236889578148961337046937012949971684373193685570773611405609556051810214858990407511129576177243658061202650986803204315503756779672363980025478026119500854680682692359041163055106580843869326825060604499326587805204919974808469556954047625145198669103117203328323234895819028772683407223276139265003401726337392934037740416482621485891992927937431894153496778817642351960724029621840860162207253181638539773543040256997515058246188257664726779844741705366705814442865899255318638104942683238896714394440211457117071462031207655736663071039347697633142472405885117573834021135257868347770873004485994640509315274642346698730477893839275189852027282802732588452394583481909449056930527999950582087967771661329630550550089117170049486424470598794539032397311358871215111735963320641541644381463356197675494880035230231680330481555500143271332240967509862980371524673784623734711126478126746845254168900925223876333479357502265550041468695921625756650937836974293080520290764758746434360613643488723829903649497383378856581163698095281666610065885605185318185682221337000924302629606605512984212002947812944295838522328674416805215871868755397622877731003239976622356027207677357720300192780865181975253418031507532221362869229982440655371274671794011817599299680484456762758525211116569588529856433860547153200442052375073085545803246112854947534734252261746410615308134437223760925456860914999126172889768867677206161682072841885686898573226422766139007431581037870496243544067113537995246367168923924327878280592821707236204760940773736861656792131952119915660795759436569593734912117150269148677774629766570755229239454990426098789680969271998413564599864387332547813919836123240783123103315351693314476537222379968610113914005983727636077506517263441624348661624730079974672968935693101262856784860656412150608136094632327906089597769024762796418706784297232979219008769267618606690174457084556847269054874587433059022413258456836341614700913400743863963838527941426013190743854155348214160105373568779528915392629660515103671129608821765293320430309104864789189762967810579689442834359946762655103080052247934106251750271061975697163009004238445738305478394040274107357792085334820407886507600221282207233784667218557072793714101299117920067766655650556550976479980227444489645153445691637631751076099218840404981364920007170131985596289349014036283732595993507098571971410203228771732840981704253813265373728379540529334484123587395037049611125630176998991640605382826202297352334721183958598064446620399869802947162521534816175889929391703588557949985081370125555984982759619274363579670287316962962796062865160947904569261526545516078854152044714517820931657694349668916117052304132860167814944404964756645172178103675640409452305150701231237835050193531876508928011972347889381173252133035714494342550096984773490059555386820030353172738685126000066000575971508634111490719601603005890442541954653926200837885684369724250004834567313821703709396429024773625029845494648146529172830795133998288741100490044468142955231754544453205852632028391238120693650713859765789785990323472723670496618295897719242683593849471900376904017296575434535085760765212726423933431600910795271921323539815321780001789031207187895728755567731933891755786432854917892163344265391906585085959135104268799679917985481167126057122993789647609520737501503099051410319604686148515713402257650631725255028420554129265136866948895827141355602106415244444445912784045917392442940709904923109914079599346498740606995422304289791426238310224769372466023208462255342942854298330926063999869184338670508650174021875814963707840629190594403616429028513972418172937027187020777357773831394467369791189845701464858968462210074880310658168679812754072437522179543035289161443889896881034777012985552341653958148921181501636282307849930020515445461954016971720912857082392502768654119938370502030455023044548320090303061828055421558691660959643773114779841200193787843177928815500866961855683258891257984403429409765956613839922842522689786381081197124681397181861830283333606365093047668577111251508815394886167171772366698144814671662814495632165023972096784394967412806893484733280736163407774864664394744045636820488904549896263827280803844193924803110656404882718710709654023472411027523779876923260217957216541953711660551913149488824170857040804967421336980683295365373244707203986107669092185429739262288105384365861060423971087660229436118118095236870511557151641456290253449186061745847397907089169382483029322437817266875880845934206751030020976138794832372061747093015172346374179124740763646628116008295460442300241761044262258008135780521791831425060613310072765717532001356287978377648506428693139777759980559896884503099873009543027279776935617974049140607255917705135675942664838776569214458252116816728921882642943981643681574784393831678896174065131845166324354338261415735569032107618831953683842759676021372271040736899309209608671986239150350406854639003597366096931514562716707487541409466625872835721596780925467688664771279488453311307957952125785628475302372267090718897774060879973628371131846658244887965425262316836617144781491347101733942766950532773161077641913459961499073544942412033120968430888389032094809324503972434460380288084941981797796500258709157882724262488412285889349876924479736620894528938420941421817358646398315586740852810671831432082375471271761303585979783618339478852538730999478921691521303341940322480846082568949599786546439841563968412550349085349942664772278637895261131213491138841039796902375127092578197488883299495349927122779200949234443168202349402729718433349889314953259839359902301118384629456439650821418277115580599447751543926594721393427663945112136635800649028397300072680299282760869730932744168479719340218197513663846117649170728427003779975501784586715804245012130270386341481658498526482080550515676737481158768992215679140430015938287139963033234556506383508961724985939352764323532619970224780989830543603214065730193968662607249995348565988556787486728398976571564559169035275161360082490001697473730809841924032874657366307961162696961815988899367031193771491078968275712075395895502118068707112288223417546737887814536473442241371111912419681595639221003997534274222213650622114365284132611652960292972901254837745443801059524788552633144846266655273127957999648258104546616403117518263025397811109942456148701240706029815557862169703318526749992151015992903141170632617317508813814946837784104868943612684791513709627927467518814260785608465588951543604148895000975507385021604019264577697285755607469787109535589082400712451442589910016431600883441553593769238802774928685947651775665715899357819374701812363578222808691502471561680380909788609337629143348981029894307548199019996382446045202580716502453581846873601960946664981330214775221935344767393533171359503192744020928689945314050640408457488991017609884811799750267795572521643744379619983418379618877065244790185632988383043542318076702341991637893229803615090843690783728442361040131943963379085916263861321432547476582905893475776185712755350768074483666466764070449356081140443108798608544718067663510390961062584125843981644025286467722822826445755574135187043780912265426082389148387995882283600584586062218363412987835517493590803435166849671336973243190038955724262303334783227632488269986744772037702558897907082981612252193309779552372156690995801384300958412410115267689375614659322350451579610657671042536163401652889838711129070148363515128539243364234624431558859312543616950439195153608481573140078219255812924661813826193488121602118234101933104121265747313614149655493222687824651179790462355308229466580188674669596226767721326748497795372455857305092200890892080795205398933450690024597672947265584233056432163411449832895402487844441108926506067354029241655759935024320167086570512629046486322215248401404037314113100243989712275670180296640228587125869876343614940516741125171742159696929194167918861154048932498127629712978100165017496402668468842570224525984243841562735993899207229829654946959763684635008140441153128806810465010913613616346509514986090361165511706687218000740685166295710730974347628891145869832496311095527493209584261232674864008854935198288944349386978006287967135874634788524395015398646970262325614593111606803086838454774137789772514337647960600320736581494027690922120061513099951590537002086351043627811420621721026396129910762572391275039239038332976881702436042345320816767282029195432975349043747305362582123895278641281406732127932598740046780675942291661799324052088290817776820159168650895238329257760751393285720625698646787527810506751263424601399467388499097822226672886467276391068925792396271010378784974293209969441901670438623473918214118897369566706722697154168876324128243753022111514368082098747067875920022889075446132484047233056765873153821212309391594252793553840124947693790308596674570492479377404509583537905599582047066711659107941823463350602314793584389826671972387207116859705560917301390280283580250610825937002481069551203981999961129320526223695878817370329273856909214748763952981826256549954737001737862776711217264493061337089809235116399819344323398182485091609816587255261980636070745915561234830179625333616559798424588471569429130294884729201401568365142256837437541950922224369893891748086896782397410855740184399978971279144388232385995780187142075367845182752748161323613352814700158701485116900103851436452812891506517152620617834331248459088830450569133440847281190300429051146157616878245742294624426313871846816297702368983957211053736332331033015526871183397754096041553719378534386947129201229121640072859735404182258743690463730309679201022572096050634652580123345199282022055341623290989853155713708165861068418030266562716342588196623098345119858081525358831648960708999899750903761888699394224662923411458384682151852691098464302217259669128777392498793285654710719446480341706739783750532544108699010136060446973088471602739062631354597292542383319874761858784044708370202439722328078556988940652831976026440730097005430035480048297389342940603066432818355166368348556914421426737129162656629839263008236380442980988400385215481147553525702019509413945206913201097460527853761847806580458003454042136940911951634514742379680481362168929328799240628991159914573488886726486698081315610219797440480631951729791169300968376339240267071203765007012161721648598561878784431551066476398058755180248882071204600066443984039601250862405976764552002925884312921000015978789835038639379564850805355010329308220130222586338224723420645740347497277298840025839056915044222270716218110683065645221234958955143660817058225559247515222684527171005861285506192936477021045507818860886906244592062136094635166788081229586474502089864648471921633375609167626096540381076175630771211794399599497340331472976192933332588329027864917092467215822752251370055865845789488179631222147061747697092396004614139181838638536399661120959820656303303519379199591443519228579828213318353280411417604070701679927718606230683096806952381099482231109244491210542298913578889522071441417206218360336052105077376104257968984193652293892925083615332310629893461290408123823097594143470635484255006100426287795940290754508709398069788157397699970096759683164269685037278125988551805996829919326331364549741275980732545006922495188690739682271244567768212565257633282865589687207652801143749022837333110996038149628251873240687790625490609752046984072856274290815670420219974636052022183690483103029823499981520073476304900353060300760343898180146051375235215829382644726332131846808788277729284180064349948149260351287343140870384109524001096590138878123866112165289365591497552276816099086688632145857683126433195158130215872266730524782537525359487566523600003816821782080492316986116552755006619749126778453186947293220761499411941619889580838540828180852255552994199278577193487514400903746973198064146424945084833521089118219518901935023430383234378714201389808425201515516996644926418363385295334568537775002993246759816095748734843387058048313583280519860975471341575380966478963382446375932015725600371733027726452573819322440137716985476729031268877925752359669047068823939726631058347154191153813038134875519388491011949989388477150068554361268996451639718844231644496489178403080799763761933292675441324338040310882400965904346810641863043944163068508232233985278163583203672224631314093027523544835984384726733793297348516616287884289711082655818823679593197620925656040013354811676117096063009899119685365364984410703219055024765225612256444443242828382105336665554100782514074251528061093970631385259778393604982101534194692740735352901033203587444852376458702061134583291487613580095892797512339692450344476060721013211636782391336753747158917042324079459696634459437746007259495969195453106952531526901042641706943131953582212863107172711044284155160568687632539994656856903010057911287047833647661915631818045748750352717431826872808553596348133486841949019404023638079757565272759955624443855997620914206858919495712836849959930383861290273927026525334255279401512903841056109105882670254106209366180312428812797454461493593924624010863748933657458164017658396325340014937990518127772859435184647191842147804113278383521227413683423945127367607037138299047142865846316383991392674501423319341800873594646384250102201119180721526262645561066146863804336489128478584603391566747754116127986875061250769823492039575204386736883112535423480334510232826634950684794626578785096249042733330860138020875947240038193071606031205176556439874603105775033104196775118158435941075355332819684503050017046371064960234601502246689356130101131668065682902717055689686733831087523262340572538374317639945159271049187152919342847356487356723813180537505759896263532824314046023684238477584856705935573623693546011180398238192660965470771468163546322306749089465315319225125292622458415825433985173277340628221487377735407180483224169727146153969715147511718814488052821602379959197072103548880432663714076235079523264287322807029179669742013128712262760491086255187058845492035875471913112718934777578940357177268446754327360764238795712059747683120130530196813630060789734949397628506048296944990248082717606088989979160230635165285369165043234394023401798881877150609848998225630708211496611574262797444417973497680961697978582380716579220958618484710025058065476387888955652157860772693889784323175012191195482213888636235341403123444273560018331346627963281085344669097303366238177246781714208738277100594880968350544745769327145255516100103348605903044948744082045548840208880410048553856583675937949298099306620785382770064043691564146109939766633822369274043201345034188089222294420607906308627335258067333287302193758149962495868368045270563569530895066398755224712471673733370692353367906997831468529492190747476292865115042767482977925256822694188056177345248016161780786375639945071670196730238561710617067401962371570611768004496327664478000246540298439875630774292553494222788295384140607469276324140087471604672660636427180745252823494076816582410293077359370895151568271127381948817198145221936041550663248237440345124159499735842060108854284817045671300613292713516274190732481278596625008871748888461312577467029711284990900564646778580927945951222934976573127526910562985446470441825335296890306801065783156777896114130977483112230292623558188152120022093916025862859756822203788827905707285637749542656152720361392621093092393407320808266732717253519510539887500645474253595115671431120125044301613297222367563370956330397227012543851484780559134341828162194290380884158054617108788001049640701360161917135108843150426280096276101203582566717742288705128370840094249744628686326502608773361431775909955861469843021922209406809709501559407198742459136620048796463903603364267706402056887222929681319096936783060818564691584853610851640894499313665883315942708870603086661126695991553624355937000900628938955290529710085819540146772912996534289349198999484180690687031816756047410357068583461614728010751834893073653873581404705656034045728554154155054862739803762936820696301887831128304965092186968433218083309509323989244129182568200823380727109830353740036486068214399624797685373500584900474386011737048926772961839577162685978211194213170596739562784354291918741826717951036702494123807862028268095469648106855446484622159407371231649846068338005999870726084302256546665459592242091458007134465374126626303927079399694542230340137116213511324260976488993722495626360920630503461518603185213952909555443345280891260295513007672837009332685315284655568492066722651329737686108511163797897588576188227227031103041635612973837936736909379296182643463927902574891018009941744353333087975369650100718591248339357317023574047593047808999886042975170377196527482101315091617992769235349420177215460638866496241619629087107704942552066210021054611459149923049836999566668512857981330486009878546619913616739641062797114027699435209353992666523379709735814564270874912574996521724764748757124962021954826486963483422612846045617436910672359894604822770507524536715982581977361478668428418666436467609651792197494370252445570350834578592481342207267062092939741839600458522974685271065432278801079798387276087756400820379981031567858805477887660761056238065732221344114121374745664853085870452497368504751518006998320753570420193456721631611212956816972840045923354500014663090958946223794136188065081396182330461068565715049134869775407338601635099937377790476010160496174457271929541913614195639213336175185652433171679844954867112674092853686284067069664164217931103436304838174663555372959665689621827198147104937197724540734119644766929840940844706139924600433641164047409725679647846932567920848404247167152923765753940029286513850835001465528797353876880090722096049825181587846724662278246379399711410715543846040881355132739345124588149304967932533533518052534444546807618781180509228747172081416904361959748329741241905922837747158321579154126807960415986123824547651528919637759351924021221216850814145342631562017054866383074724999316877137858386193305222224213121499428422520620786454392841141241884442744263760244925164185043380721656373501658505576625424127847153181206941731735481185917959263592368706544915244813410857827091150258952512497802509844036973243292852664178454732518870139752885402035561043518100324759670402863170673589580062126045970854950709159005349936358849041182991564650497190900397151011432466419550446480048954527796378815072623868499167750026228393403679967913408478864617640669899746068874909526858981116908293248361289850979237167184696358752553455148457461960785784144987919134008213107864095467922097023846378600026361588337020253728111451494175387475806133415856560586702581610097563395582877392045725418483534394929064304722352639891189691925385859974088933453478620011483485189172591864703831114199917881392909772274845042824490601865439856872393029259585193024477752273704953458049396668992584633219845381912973502988202097557312151576069473277216835973508861358102490017803781574635255233017626523641117735790470729074806231975789037592172398738147153655511685080781370374662240138887118747875405975777345710839122287027434980693245024816949646426351487830829968134094602748225629554194802108822774535052701182979142836592472769316714653804984374912936351490128400285764806370158156163391702443941350931737757660991033338351539710358292681764170690279643372968540025329195944121227319389449042000405810074485776953852121332356392355264035905776841850530745302749827733137862145027922591924961393271911952169564571510456735783537104840863012393699171488202282281872624194093075826110167522842458237136486202763954334071969875621715258744992886139149467718085959551635179911732462239772314240482606676383498320640515912487758415803570491840965080168708845210651281886138396893353600138649385024199243017105855306407360035838441755063305427316783082571904927311723819545878632336276628760802553832599075791985887273019807237598739727737907812065375630123895335451582834860772842522990449079490891314975471624939760569134976612598954353018802097923617995537726834443597709471525782236828940248544392428120172920682526638415112549391771305263234050300413520613672437557900872781751758867690402460023605401911060862448584174749350680446120024625975580890233336283262510672990710410229931994603839699603714181762479706891293941553291165445450637379418442319462364898428320992140607980594962414470855912245396873119431152618799941415372848458740728937228156638547926465585957568676005183313275970187935274646178469516712945276392668124721364946109644276538293118790540993853493525641717698034800581141362695197382391653016064506028320965757042806377262370315640509540569446708216217787110451940968455154951756677079843994724966973544869809642030271238262422062919230100988300386355639734967234957831441685629752738220456108763529727236028499956890464669459208976541160134233138068424563351885286764119586177598773516698193901000681450685782869390299894394748886083616389056494957982890615491326528461342163421263830324518488975104076177826963587292863711736520898357983616635951755040642145213457322032790044366568804949978237234895714891626015653693483137139249575524480690861790921470275053294037547334879145342885327647725918890398600911719417170923313421317430152750305970525633168365302985508303870923257219174675307785952271253449742107961448725698985882863987521439182548925303041797628418741642464397742842803690832621746905417204251828898337889248439808647835474927545356139110633412140498048429462675621352248909747688259335882191530890791407861577921182960427880255292012489082436526034966583176596771993515586134783285944056366134601629735288757216327965590359758715775760105158869966988735044304409566286722540476039139013458046179629142076323566771773398967076278687845656964817858839184780590598416934719185777105784216575721724153044610863697026501543460274674946889878012374171373050609202912545396403886412679138254638450167222175433976758970726906983574512786557165140803350555181599056468850890600299682901170295834148748698802881242834713619667536148602424311594009690378806084944745007316477205263222025452642808323881697595209282452569109127579348580792323814288040012967942984422456362745381700999631424670268425871145078151061612064957461730661747064006039244244282296468838713695268559661775531710453138601270235830622077876737747157232826575911587733975771473051573417152934807993076320914736637696915205693411898586250628225712553733767344626868008446831920859435738755895589333973173799783590027079631687754091088662320370759591105433763303099395340903512229955041134716025809849601600442996279146353199409698966867314311741940331243578501889693922568197740998664775673479030711409068575362214081254992858738566927355222088029880159764751548523753539966222658108471859592920067947067621263937903107113857360677176689700750228381810395956871221731176212736670941509958309852072142006003950746933420784524706418574613567719936731992364138674561072176242902551447825377720237171158316863032614843075785266136013535917757118430549523531542032918500806042324239630357088158841692586685633943172766217157376103075751293240524406461371426739250859385800083522850090378423003925847665240930471080468360426734785026990432057481398804277472693202143539780813690636663217891153252551589426528559124498914787180908280633661019338046493523364361859117234723816773594706204814880283696295126953534894482471278348456899669932403201110136856296573251963125637878383471962134419332709180558191132066875940676141034517217316770886072366851966012076994071373317572265257475235507654572299370093941504726825226620435847817905897779074847191469689566839995435798737417042729448318780395033327189554094192211999904397912470885870746405591441978629761139567372946755376738294606851856602674429398187781513547089649698682977217839515691614786361892435968906643475510296075566528150580678483525242725257414237434310435271392776633624326550522652423305559121105471868295477376346604114442007606349944802122122645590271882436578556872359079577744592729847875367659563798167421806284139654009185599306925749752804829979192385272592012846405066228593378475906067328950231988058737714963739845581091294606448696851596626533902477263398399139872438917505941124004505400250662044663368155270815513373621584447224589172429580698779733867822536733206244046401329147378880635495724676368205382754061003733854033776989713168184697213926247961990567615971513086762406998704337987650692218281406025382578391368369071318735709463956199304582143530873288131978556086597921117759900362387942934743424810690807178670801342720437799688224199489463499131640499448267807604856963666888678315060609397556450041581910266701608969919301502360078588151972119173387958966755059564065142614432509834642364353553977945419068576923446725446961583447673098287701128927918636916294046438906088838908756133457923620549546536372020312147935807095144899250346140225205191615642398211816281229141151377523769839157278361777807457524999595202376030753501972156916809068763089352611541012656960546998542776167692624092053116473824220365037929498701652837139305806258477632327838607845614168855794482200253449842071919979171944876548884546458158393907153549752438640174111226998767307496349811331771173264224668631371503797235562502156253895107075223548223455325365813849807419300762141959127429425722081981770020094347241662009216551737977443717133098270237654992889835396003470361036422295269160218175082856613604835950883425694436041584458543983428039118131411636418050983766323302998722034073810195076259666643929223778836384431899206861392633697904750511430697407863104355107992872140070673276372370955862268831265448770608525215507861064205898159088370705229096252591391040616674899833106784862454533003335428770395731962526880897126030365545693215065923193886508311153370843998660086488113709573268880457956792147708808129696013730279660026836635676221621554432838526652577918125478891382419446301477722246362450184191179056905223779699777820205385690731157777612628882113605757718295679274562256999112607704667891092590185793093927814703860537397879219180769611504169725232976654613102304088784178253442513076513693409717561003570543490955694847394588018380630243100349036858196780050027830048894966217164907326498621086843842802899629278907559111209868854101706506715179193600462254884772570973992032375322939795794108583708330344224517213064979895933178330567166535994267801021142805946194006231535331036983892999377037203420038750801609691535822928968060763492411685937829336118018853924967110443679782208876257894762091172317254793736012531080643064333449090033640310421546786611886735924515656916067816426583729296276209475953322376868965338133317969918339514660220917510285105030267535365643826749506364457668193556913933762613799747428033538976567534644867520527616942917435633053638729190753810364548043022265385008463474033104036180267063726160087433883174658152688901929641582028650820435456231734274915533266566186341682059331052833733578864636608984410772487218580779010822786786822033770666441762324778385414421598514041533415533987898425477162092738488331756893711620757703787562363144349656853572580776418623390179385879494517566998869246882986165850962628840523314980746908053651406273828672106904657912793199441743304133619661801467562220658177582472936130268832650095952405214885908587699833923370911989423823030097722981777997937756458564613847223746511472289572358596286702671910009153307957690163961403064049596822818787345607963952336308546286699690360974273773871529539041786231773800522092858602325009305196799716867910019788442470487619325799573788167151100244293161345095948707432498195165585020073275557030968052070730581944955023449488439041616308756325104128830097049456015902009669101220954739918461866659672115918764091497490153385009180217056190889455410384902897344866256822585934042479892199585047479638360951262770985448896276663840135165288087642922944907066786638533189876928397682253136107019587070080863323712128175630694009077827120420141063468821017129537956306275273987790108450264277061012709141656649235593902665525173244680260262974585396111234630346309023518666277699294298263067197105426980116196875250639088197610874899003453974156539346492362259086614781887219257886541907839328151192685977684379887133710732202768290979358277936781957859155958547448924675626403754884079411022186586086182435913980634745350408776741890000580665170158953737109753178776165988035123218281263411767848300925343979511169457521560921213493058812739241690034911271491908582104252405069713952525983658213961579087591906229592201524348390232489556095176009037726011953150117123151802690373415514592673637042773657011207110917449859064219500285986427257177318360583710063533428277471492956557814575175130516397646072923970892039350250245699394518372898637789513612854787210117262469047047746757664780525944778707936494891974575567157193207004162776024222108181789415346079332933434186020507712037161969818244735358441708046392934297034012120031730924586050420939745920523453969621042802226376737382191428605829949852107185212884579648675686059070998491104043725678494633829033559118672110544487518881621545583319250480310512443028953764763879535972620592226039726950721229091088659299215529974112412384611079924927131518732703128104947483065003186787379245278520585955527243160981307496838143557932533852113491956383571001424271935868740023349449811517717350452258240575831363941647386446193460321298286048887879065627958963051821988778142441295246408720388497380036275218133391390904487558072139902291662551240956959635870549269681746371553707385222825460713172204729237299653390611669787959352234477465985912170327118914990656039179508010479453911222090742430652677931725890450428414149452985274801896497734073525487056514472002219216393990521976511603750496409868740666391531461541357836747740185788110047030948921982908534332956260917372707024924318592016357608762430074967487222297220383216605165133477259105130714154975886974862254341158249804801093792210119770698175062765372494406962125430289930221378710612044219237009919218675399195093792784803514276988456015835348577446534214386824401783911989558103011141748769242666788192882255873072607405524762702722913106310605011296895738135810361289043324344149719943107616831123583303895663034578043476555745871813854615461855837586006662713152414285209766243910512688942457680848760446223668937738502170754114826321188238985533466872466374600894458626660167916939806983734264925555883121967002432778812384854241184237411236987594085679629682642537445130323168122236082866425758190541009266006445270638265487911195934925886704598116983971510164688571708065903051823471726253265244564558051744965715955063492494410129938658559041966587492940749292923301086348857663445014893978463524943916153742049154134665767619592619951993786784311266739351490757296475797843287894163713643776692146577116083274400494225985190287551850498861368662210709794276249751074966979149190475648118112464080038224362889659417478033730972277049867040917164867262744782755251578962902795991027034290335183182726797106100320965099938521345022712223646795063780396399157772122780755680047553418817890250832103254287494462947141712488692292066880181535894295644058390740332606672054213631095707855006559219340232149197100743833043860244930705790091133687188500354977684468463909626804399954871461680526641360198647522869848618637236638182919976388144972077343710546717218960664954712507520572959803681818968392683069585855112647347262705965537574587860566066695805355624083881121344243705151139857485383534238922775458685237299485942530075286273996428163128872314790804141676131404168384386413805981852588511779658512607241971579325087971692731694044353323118985702358832884472873600604305914504386024034110552136315377243843796473845700387443780822470522324565357276452907080730592741330611334446650694143925920966211030842171257728840629827390689972322038291122416583595563325980377649439863444212398271510216794095101259646342590560138462830832930366654957875953130537866042920255208551357780030959156763232634534905573412098804753528359895905038051932467888348039373810756010054525584859528013310076757976672238104686039351115929986026503671084005900195547609548751966482192157928651710955714977035660057193282352984446737375674938678734165952582399295844990946140825338385742082958517160818749254266422102780356878818939124415889138923195813633811378187330876236591473064566826971222017244393534167818627033514484720012851363961647496450714711745842829693148332924657526109261057911189076395984741983474927029006336749310002698721301183551843131641101108259599957473862756653803029150311812370477761786271528185660720621346044482451030512090254593585561102127749911845680493364014564044857692526321930440913951677836292795549027129363402759111655783885724564587740780922384925254752447097414234718338647429963232380972433693117375067493432439660674982413995591221971713577287283675978465078816349359896133600324313639201632228753065588839057137088578311245536557165525557711017786016223487140871983799339207650860383823209103053390883476200311081970153245177255286425388917021602212193974156438665811077029209239410391213479154329160682592973610174296718938123060827432511656052165668166176963819104196558982611857432015383998528304878425471519128550591874905679908469770590899685043718653488559769647257141485349200619311382769231360720925182711622373382636718752202715825924313529085289088375899790795759700947799087633394276221421891720713320381239460753570011587598134520886958373716291635824402699243257318655464588126848431144821177031529427623261630832328090511240866136885599820785214745366711952624281325359431247427610903873626105391708091920861562110501469997055915446317998256087489091945612016068957099563982225606659101136358646296472434675909218074783156725763525870695359968157355586343020613812531577048239892930919247071640651449091080406651083764390227499600460036604487664656636430956653216694317014379860231059183286581454016368071441734706868507436559710196848731516539621070309087328657202337413881419653980383037956696562076067615337820365010070834090954111974121917623690107103999846119229258062980163316441697875581226522250179602401475351653191224900487813274255936072585545448409647234673571591272241017924048507452453267196260224940052740931123126391678241230087650037979203793037714668726126897669278106494396485801840189094482841130208365048114684333386982346049560606941952627659188650142877002345001101938536198747849421729249196487292883395718434639491279216282833329240558845376691859116852748737020467867778243986106379245635992707797036928758662432325282405237217302289742288545323390807163785874391064594619318256036100432001681827600269338331431761056245715384228686322758043872996593970354251052429874238871030272508711321673946910065140895907623952467731785392581857112770870832883876493014234891314875622708062922435541813270058497691901530937157447790993692063709665852291468181756868817231984682464413484852223054453629470977436072733984052241508081076492649351416033887593967225119934193999192202980895468957540051046267612514262446653434951451777533023462754482797426078130562644822769402159006443927767072877279181706561502636303538294859804607757465979306321783380029470464100691077306073817376037597308575674029560776853392947164640002347542917690092141487427188559481800117667105655502235413307637137195603807744974588344517805684624910769141024749958581469306505487524899856099362432851315121239152893930237899809471101635379691381615038422205069817326780866181395796147953537257400275368851773463770341167915047309724888928483713833490945171248849565374441483133180661704267571792214243454100049487472442765025142862303108150754413240208973437446639302125659739716674738549280402611159970942536366369234716546351059398674101523811724843331009675046915200432355904133208094381404617205716891650815177095900469484226035725926219268566405112338852451573824563414246630546960550397093291261265174501889066090209272471220783221913688645377053235201160931066059638535007210293204277634918686103369272410748355473932827016586032035121932718024566213711358713407445605622381857630576020199318695473105681144631336300294896408355003165076820186520068251916251593750045122799527288685470239797030740506808855121562707877446559841878251162076193334004962565971626058309265253392622021206977967028432967758003641970610200567929610875951376674259540193039073122693960613069232609521873341320769348468333983833813102406253876625785784273786800620890239628312216425707954849456295312488411422716771467146155677438311075371100834223501023486253464001463390629370645841002237531881417882066049002110973016627169055003989262306939302774040317253863586872157294644993111784435558468725966907825131086214760566618101390363296010555349177873779547955228621316565262994320693089673528461842900566010057382077371354392070471094706783464686850721303395775744261890975617963187696570341007423482826729169682819194190507286261347882247040485305124078171232694299015646409781057433708056518027949544108219139747092369555762096834327501418900752804940544626980447054458205194354524894344020678801743102098548218706009224469199772657593687952082741360557812660634900847876917244895101042713692152824997260857058588116122316496983378710915406349889781949692598898579858615302040323787158307930565601255836222444181253170428270489755678339839206091369024189952847784415167192255348341746595573387240518410912627511542658799368652866952772598340779391122711203406726017241105019247291596597810521015052063921828574520919578712693073243179439501657340040166632808298168783967933203173543599441897703205464157752295263687074695530682083714858232635491078132176417736050767669259688237299038515338456461295006895582673808391297082575270448589378645238720680936822894878602747551864192384006101506992488223390798271224439311389134921073009108508356316073695939122995373820895689574919378954757849361541466983055084542278292885013457486696841715416649002476641996124452388804269048907985588380465468202103163193616247937776628644127923053936007383486416459803229717500283264512100934353278159537286374339526686177910891827969880526416677103190439751377811712433703743349013947950128838954436532178510223467715328366979334553047503247653073150411578477273941463256809884421727604143419867867708117372359914233181581142746289509735025981123681585251143980336730472763642648104017696234169700944925822605974970002847192760660967203647351970554461808409687532416759331231485307978581615242115575734400525803903826387661337876169633870337498637738563750243180387571692747138919548849944270323849081871720729735687964386499397094809476172699854917994416220257437828844924087668089689381920128849531403965897843677109920524419534038459073727922267674227735889400453247062488985237291689855449313465632664215451563100055337077252217278703274543183316787310148424756221968838517648711351680962474642057261174282079062526357135371169436459359392973261666532890193320360617309525416899954601170213538267765004041446285205226092749014642991449495205150380791744207302150717273478454823286070431494753196692999512334967273797358574251280566290401050926084428490244826843922533504993029051958576345087416218215385025086011092108448617175477005265023956453506948310116483615057142415015419893571994148807418870699762933503958765672252373833499266251604979907209729145533584170040664703061779490827439698142086634618270081181128928485236374262199122978042989691710808672225337822615294164831383830073191143137203004905854505293142356238667343703702585323404125457028723782184303819308097111054629432147027347344261231206400669907855440186381338310986445737430490329221230521626666629351852010264590823755523998916511248373221852004663044723805776361886785642300336869001350810928599601506720364696815537888392284601853875661750422917851338216019596398148040142673040903685991947573862604162549147916410694286123878398348635047741541683870910442883897043639506042466808170305862124602609479080912308712532205459381963479985580812738022807107531120806167115695312414995722410960164686314563919743010591196950164604586442882573189685850486037860868177885235440004402379478759881218730570892432120698455957421275971555883379818159688219323430060170170205511789091838835379660762516450614319458730230663831337394014720908123363806985245492968107827561991824052385808725860763365549515385121301112424798418564361482528138842885226453028245149391558165151038825404270199528791597398961674721234749741951020865118530086829804682714971471798695999567466517068424380216193280208482811434570553278765070914700821085027197692693239900287008076664485294914023302567697638320737583595498009884941847762486273691234138319715334397530599274327336454748868032788199325221353470736434669277512450767937781819215207644438322419166413409896256491875294047211446661205623169823964298131307027029076216590771013821861823153478063316114512839051906530949132273356335404183394097530870493701547571022342371438823938146809314673182325298402785399083748111128812149666235785870097921899817268208338266702118499869361280043320571539497255192853338936138121161848613979123039502718469549419236661737576671760056771958974090013003310277601921041414978430459639457116984728247901112124975567604892142121092539568142733631321467678225195140397891109169700913715727379056389093350208283416416041895491858023501345362907668882833644867803742237493816725434886026174019530199959648671785304213508640203124883343444054668626920043425228445809222055140460087588936406984325234976248046296475059745247862519296774651448807022377076123212744092223970324811446467920644550630400057751896292385619018309780456139196413837512125850163383903516427205501941492906899170078582606744912194531043197854318144890072470028332436044745113731526630391026472550891405544757734147215878514458791851586631396894357432071297669235620614540039356116927007629041403914603322652257761059086832858660895806111984352128442263607600192620553719934368280901731605394167110611909281724352799829194026869534573044362698371861832204387119809031273763669891704784150679969498290164774638818270924489993967867716554589218012811979442461187300938127968464763511548382884869804399334364143341509134372706111407486592117537163835706445142368760166953969506005840065667196877945720166622439823979369066202617890789411118760289230479878401722949600639356006927885763029806680889789296006191301739050939461702505905741962448775703757155633357788369542916579542866072977209416162899211505685534229050538832878391768411307099979634586349458383232322889324493832398097063053289978301692318981820934781522098652721980754694158503337577835213969048460592179375501929639481563718445184124171250876855607478517282642181387893396577601408587277949804782138036561355274051461720251290435335554865747204969291830641592762281140616544296099355673940043540251414949305399307695544695441098872569619259637430845182265322812752819935936564704199597802592879432472313468939760999134411003439467989508607825851075433243642037295645254655669805681692693543716727830819409279750135557640581120575721282739833851032828105556711858742105132893822043148097821676072922487014508459648759925656956866911594690353528970361729711897097416658954368451001912381206530911673461029313645850549205068129780506268371148337342792753555097451255962383230091574196289000137496736880596446609418447207454739167679130769351633661120419774864817229654395409580383689741616055605281673406783767362789665032355072755891297819200382165313900919928937626849362459381184930057108156368567368742857866238993007219541502407197162998490904279161281167672075345348446259968072433605808492505939821562382896810318314975144463555608824790018583658462143463430473301525061252466729246780147987817687834313349044366645090325670467513315880645759979810136020563846321835971198438194914963953936609176123718410552276478027414304859042673309882734157829350134177981352635518574764626766046113507467528796566737636386568829151241291098278908737792170298022160244836380430057601974972701702203747435126923633102241736498592829312720672838723039169315065881366152888344861565462765809323272609048123280039798781832707637801116131241803041839992590766295977308870719508993429891245646965436340915600829067856011848846819224568671478797539025310500213482994274704557205233570041327805053422426331946557624606176908728432282475055946460773627668286508934149922219894302328070684541001709547525446405938278229511400742461502535322356272127875148237797651340950944860914383591669647901803780449844967632514278374050087619665537967063237893380105336695537019276977575669213473643806609677341095557530338457289722943139472050208967518711343907442371201148153022977557794448163365546588862190750578892590703445095016527078276556624918489070750668829741670880222446962473014356046193164950843622967968164623845350111053348365354613387784378911495411066921393272237612937970307876012794856933484322273290940199290632702015242445691530514539516375729211759955084069888453583909084716657434271428149336486838290747293279536904174464632189902272027306251608319610426119698827563353007707393460096153031479864450402528758569255743590072426330111828765517260716899334114509015248378606564017839193545739953007291493142873821525280403134964660274547910651731855853981354714010658017430479520621314554077300574998350730068409034909240881360304269854654423361842559519827935030303068100070191374855952306341616663892381464467772710896670999968446192680310837097494247489648827130354266184986298751293569199569234773637770846472571225580941568916347521790686683705004541207757665392046515997724164570992222974252934983005401590446662468261182982901641728470892199559943757259830855970130225779350615112742876541003462376110705463933237820978062448148180959087371177569951444513761234795757043441462947063083818124332366396346051631809135537973955216455124635866281790319579348143974619072606880035050073260325393248966737839503166161825596920332402508984947119894238494805794444412621411380763822458269438773449447242014644226002571757922031389586822861017738412268553616754124382869739395922540142260065247732280412635729893679591251559087095209778320208938343106573967502192266946836080637849929715008837952743802020182018691648862561695896714603815656780971305378818054150306595417343688761868276074899581358873135039764351993450452987002233443442782102686379840311634346281765459440825670429807141847835155806820289578099315840240437656992245865209424734982832952195726106335674741410541686516279128521993646309924726537302588914547898332433361154072522232144952250047999976273812422620942848351544804386681928809378921547950054813370318646447712382779098523919991572890205662081330968647016518474069838714563670213708760261231954837647308941705653545661850249511466342510405608910656729434179151595169616837978346041989806732252264803364192791590546187536916623815804339079120953065249197435576116291491174863178344894596792434682589862717059115787085686801817375574742374191102354090676691606484096432117211378355532147296031014765960473079220477831173037939539362593062663565511258188926089776951963459776378080548385504497465591576201027086495323880019325949476252221946416332622403540675186924463723228595447023797593126611478917678599587023685418249385595132452238925503890955672373087091965144047818012817127814983874753695091963234680631318108019014048188035015910123580128368751910574178217421343720438077369282502656694610192272437736905672146879007855406287055633005025481818501006229021600997880727107547458173306805687257270474149122821751944245945300280382205488959713598556909960743119936018495970812723777483910971586700555739283731070163800732120955029967134098778320817812346026692863934137136087953285102196330529653091338694638701037123195145090859419709138524536215968943244059693198525603968772134250126627155773732641937240886513702426352013159566488342202455810638074123547520923352405522245430631707326081215213571669157903662943559211327886091442649145003966861281899388263727647094767175894872212214371353347991522452941092427426120369528271594969234354679230027471072907102157205574858451177106791634346657987759719983209571827959120728667088236094237737575058784830905124795040059818891296705799330123137523782454431243442307961119988554542838385649341848138585899806613272285375425936494565792146984609370832201325966687632766594627071035016999922226521718598719308806751366921581144019186609817880832419333725115655153349868280186972158761655849245355994964465609283903611825271823745342272469831968995391462571420352044560588960191282398342286462807613861611631157023694723585590811139749913885135083213748692360150157589082616252123898873758880583960790347474898712612843693533236901841366868951276128349353154644697631314391795386844075153784878802496417028310466427741761585256767743627571541762675547139446868014762626008973823291063977392674718718216150979466270395486745387296202056684522329272320279582390234596823883800141432639938018576777558398857293756929948992997689626267931720778637910416412798850901757217814637939227705875170229790378809041185784792089071176170130751837204095552122968856171256937120435433504587149148696560140354848791541468237739902766488185571512842792765401542118440164206284561823195598068628719596081626726747196380208977896664995803437004385240761834395088502314547699584124891032435870737010336825584472931598464073716685831899431385271823323844063692035835125074924943145671422760833506738138523381033104993108229917719126435905098365201759135315128510745691262646488260344346042925525859849462416708268867063920563235830616525077525068326342371080470836226893253630655567841601095269509691517881657089718555407262521375572567804289425918624735804010400971922030404695473319816447059772501012958527655997540325520670732027222812947080424820429169691074724694720057704618288398105384599624227294255770731233048484065979320813732008250863522509352209604433630431365726083565489875128787585037718955323064968461541098549463888443259246887627780783186141884695476318875974712001647601351412899687012067141866239880188201431949277629151658533597006873786107309605105928938835011349989201062103402903400348798580799484747391471859042043819434851382058692141229707091567508131019527849787506750339383245541671462639456190501979747955730252776867009794291340849248478682773147866181135609647043080902058640390257146374517290088008006270434213959884749581154707636560452403423229394829167094167167464166019509896361375514774626106527775354529397567669386554926599365281085006285138122995163957801446539336224604979472491976966036671986921116547493492304064397840697137881266202731336202972021524895696384081863676122933508616986670434860597293419144380568450338259320840319960763140599260439282079350261914438163983456901517340746728806914098374557874394417286440852870657424073137737386991804931866759634127509134771759674098247981499160445243244255313696634709747254702547242188241111759727735733445793068046341713177541463233020760439312413819557972738448295107308173457114620329034612414299491664931139846274232188698805944996946433843918533817751261703643409795036386149172671817454617877730313042631457314942896039795135843523993794070989379648741993652003494954604819250554383490076336094430715532945705002680095888490946175732750190436284682221121285268587385898280714403199994211454006698689283785774218323148855396317245203507830971230691167278764599508845523272488053507956907512701757314495078358324941807226322504238304685325234989389018832099458955261243384974909141730112754344855973621961723623596858488469367759338968858917697691515842334609421516373855678595584053440518032459154331087512842480996483408155835822670841663248068816537695842792732266479031957786147493191115370351627198005553427210959768580616401538215003979973589018901421173384321275095132125671013826631996842028294033990717678067086517184089603442926864767564317471264238025428532313647447849838632145219489166909638666258344651560238461857605438488470100071083604537768880748079493485758323227918354065033595925761398589653630582212645658118273961149475427917717193153869019579020669723305942461853831789763366134332332522001983464433255522488821930480158881951968572356892143857299014215265381889042857018709421430698271739844189388786598203525013866686013551036539340516282932272228295154339565180604420355641489873216607178710643066851733495507175654691478068187334257402890777427869621346809469318870251698769809059644215609833198490889226951399729900159096530475843289702500596957284359063155381763371686281605298154767092789701833561002297401567890135705120495580005063341186473892023826438279173736330723769725100976728465238160531384971157920178054607571445822759938794825388017961205522059509630730692866711882292148726705955779859229500955341410956654175708023154258689147194702020250472474921164008425855854969773313122029013604055472085463569603883037626598816940418129189538980840084547670107946288363888252219779429516529155689893284026289050016117602931226246492693271679328666370528866068449501591836851083734001028082100720202770449449189101868366125390861784338120838527134883719716321518258342526719354314714777293979690940304797163063107983670300394465335012230054168053208253661941849358763471911844108004664154843705697951576827156728411852584783855286612386361895503168457798847266789283340653872008672120347136755512714485854128047602008977117130039689540569799792416903659062942621647090068154212147681551543508667308304006630558916079798368942359840484064962323958742171237701020833549027540227597899308385177190911511489716275596233469731657772105468589010982385737092444397047219296476986688493472537100244518699828893041705171646843535943895761331364525478053522787070003778930340113746730304266529571491256375307548963192975251960829878385953270726492357733589171425870323660828705619743907213187878039217503784901682961532975190984424180702354201228762957190660380850082919389373090886305699016205680454996472692545350518404472808908075335322509916382328056140379772503647232064525397183534704108343642294640819539699612897335503151197615408009829415867079423567713112316592371328895350642099852565889915264834198699924999402394177745264014601205370604845452729073239494497974582503907112540706720852249728291872542548570752784498950119471221771801176194628833703120580097305489537824263483173610493905851579624235144933291297445763663277714976768141196685096579221071650028490432995669143839108163262478443798095425568398870775582255713266777569969524603354314526191386877973313399176367668835689928025559772859673400000686607364364176401395479018706120340162457358460230976203497190861581871425911132487238214796214744763843418429907136865645645266832253783014091036713420772112947702612170865805284001237263918930483754290751512668422505736053063295932731867333774144258592372630898434068819207300497308090081176044874250781167581508629032640790487781488901959184163547923935694852665693543969968670128916981042615082019552152144503151943663854725427957590343803224066441574968748240404947548031303411790833439119766179683741060641431000245354852955328225523933501403894810018113960514104412621277087271105258917993674003379689905711604880221145504663679860794158166200446477524984997472283430141946616475136568869979170543423477562206654289038693095438531013396537735304213001669190722078507715763742098493312961362617404413787656462296450256373697870167570884058137189905474763314009267605854979554780050452806351597559036055673453152979048842805178701967591901845874271179419513987284782338511920038735790973825255823531588017121014538425731880732043190650370923862357215990717333730761354738249066622536387989956776947177665452176187413384038376528901190571285446907965729820091063175190378204431306454289688698278091469760527207416143579715723034743005992024904632876915323422579850228754665488005321931871566631148566296248799692896208944501536360731064581599441761228533735303642137774211170103740959353526722455782025173537791149475574905712368961142649666895587040409702018151748094618707316943100012491238469479949968163859866415556857926079970124353580683118740643834637280019000024313119885500759587859247003541229607858837745134720240813111740355130721403905015464544122668046308547676772437904398180039001094568083675244022483558085747422798731552884720142162604624789505858236966438364566025199296810269508588225542549892480434181079055158794462923523032859973518868253296256824173483780177081202487378123425318286242463129625309942224327533776401153683080211133611749011673281304712012374739869602215510776999146813336763133582544479987126528502296751121507043389091059962552440235709026002532671852970945924615475513859716520650715606644043032925865778444562019796319223423739412645381604986307718737042377710948056084672203248310586167199115185171735225612518067190188293492024456542444964933859633747283845607826312419848431430436108174032927330523302179338914296824210019138291538148620385086736477162826545137459378864074543794735538667105135389766749016300310711962518405992598969083273061055513309589160545951960897159682135820181349590328590521649359683302824648650751864226214526904570203646950580469627746453536776097060683544162748198592620752003215573766491584305675923055369716569647946820612200180678461720334903464111094923457678859998677217700306631789346896365457006431588195500720275993469141347934067173752705143254679272581921825082234103134416537622191887591204735422796764319136039581026416828645679633423777150088671486222182486695013904219753363271386750491928932429872661801708568449284745391540942954248029502704512456412533379339715828828734105150395449522219373452472856577044895972012748926778878736087540350504997125231547640817064466096526458675678694189610783217082786524766393173283980378540188526310413387494844019669848911851951426367219896359050411963109434935138338085340579353827753740133911617528106283131094502189443568617912670922101448457880475242482326433685187889011029847257269513246139173280848585373925254157409917695526063365278529162813074190100783402018800096493840618360089071288630991818023299632529657403017630079148839404222061470208082298115278877563004059932241335602655655038825655922250110303392293358732582965066674620285361010251747628242652669673548306265933241655943524371710229530079581094985967088926838555537585196051461513307570213525516197598793766095409829136788752073877721584377955817609177696495752071215818953953936646242396154884373576164639383267116368208922648472883145960315595907170477616588330813924697041242682687347294011153250153741337667782650700427950974697070213263467548868660161806470280191487556650371996758605156915314087564819218579722588184843390442224650846447637574645666888332041486215977121820987824904297330639262984753949643428823828117604866736675955500476133708517020817287627761093585421457131888517823769298647989990983823043652768709627379320728250216883995086721942447781969565507727679703064824018760155245646738714649430084617462953874788959534310870696589050875204139159028749343826566037844303832698946051288527630564955917422302284395712930248491451063818582560185300114669372880084347340589256701984834959601213661088177362416449235028462375087731659089739680854147482848340976817239460757268557132756211284680751784591383387840209031708893163154144012185633452999664075784932737799191170882287486809396706415980741159257044781673414937753908301360613738348150365431729310977361828106226249627093199130020124390157318029326874600578372750717206641158607281487924706565908540399514647444454533338803880321941247876799855329323263815119297836416808448895067277880638024093369217535511143856893087857529537659332594373546330098015830016772113685992273931224070707540539794648080491714607477593683763896381614376606536139556957688272602919097953815189040134881667025534351148914561748223967094676853868794764266513161294310431129413160924427859878765352966719245639556114004821423843872017526678659456097871513619880090114719097346219492959533415548237850665967679983602796585699549340437568534047430750680611138421326137635320977340440836922503182939741098354140275500259495385178514300464964894617910473015820126869118024159316434930806545775318770805366363794389122740471758222026399250087123182298687709842358080069703488751369922035160377073698591235348518811689244939705534068436943218228420981653959246525518610760477037533102792371656782862144820629219900537856523853906963028753785635873944152474166460705397261751823806868260043549824745353353065873004464221165147842582777245874999610342127773657445970980128732525626171204584697789719111306334968224248408871557658644514444782812485111742868758460147247699342883532891636406997623444835358542813660701318132067984710126261042718247995942199061048411483382140598214427179421063847090938913094784464860861077758647835582053741485225858335871909942079146351933493005612149456108648096596164967112315318866005236769821394924700674080317436420043118586506696828850844977248741270752396106677012566662263376346980420722183185750856412378548655673889812433188312237478455815437949009033148844328778464071372059312531714279091938933524200325813408162397348428157612879644365990372629686866427880906504151543279851434495184088736339375284910115389305855149553134854698318806916254918534266757257285681936596860246004657716842814875454767484684054292536248361499932167564758680827698433847299090976805703996527078645049890676391984108235315969940106460040012330170128895205513093036069902093987946069969288438752013131857443504936331667936462292535498081941540906087615801383695259484243193155711110774606119151979862018861836032630095516875271535639854855185691849847259968484697208540386407713686837496380174522145125179511639613412091244436082762101694594987595308714617973175113091959213823932322007287014563562627788291525463402596885345595351744062392533389272542788016443308263398404285343679174844464711238388785861425356582642239280711361379957071484206880485492580489149011285881226282287084427808739060890068940477304876621513388390721953877604157066093694495488004972955276595365503490520091210146083029187268785082411363682139271221975137620957460430056233218131985518611990376603435074849351584422360413714850867220273088153372697687044251679933507890506341989337285562406730688568041098098210742278316693418643215913175986684174878472868142117511700636590207754831731309746058942955974034321237875261805463007167526364415605765134476160709074922676997963717087773757240057864933407153462592204819850684604430929919025216987836502675202485539545774409807530528948088643171108447839630470092152533427974451807763370016381923947099430675282209061699139285648802534948589757369600666363347966937108041555344212092210436467311851102521654405831495189652800333757607392214048100863988513346981274696712230951632281404711913940365506243213800160504776407053302647232671751059180607459539796880786438164425614407692381292156823906888480633272833209507242659997913455358525396039915872065902788090363829107510150998376351800863044803821428678562265624199423055690287297469954745400836475742714255407890811859621849288512566217905233976221500461779443773860617640526177986430417577269806128864456918524748483366938451392150500936630763343455208063837604601469550027585530947161463656401963793174915361887160606127907823403066439141888532166920759626941331067644120233403720074324674639614616462289267367996639808547637261751756877354523557783776689474630895016816533368164582065292204502260269865215413935660337771523239269237939713564367855460684007919636820590101625265070577558611338871826493639846163751165274516604631010300522259953366856646545682940050505854656548841236330135479324723945534716599801308187677165361908338607348502165696166023475871131689733416504648029439704645012731300659695013053480939729757144182747176653320753486667833398726216147210310780762521973980483707307191912114314993317194050750306624183898703310233475920615111515881188631693207133281362363987613306626598980844325533466310613985307080861233506556265102899832181755763626135183054521047200163908281160369207250892178083960159144309527756855386706092119399035126721463182588976295298857660417191952483843154802197546408162042118167201067269500389447332743239391910210932936551790314707995187028908618625655587187810186916867486704246749674199725893845687778922701520398316059150909687576482950660747030263959235719996306260685448263451941700965686133862701087582021654726860230585856956961498525184633561477534748599169688370294623303545203986413464429638378010141947672323375322904517913926987229458105309541543183999708236116312553443400720444971282754180686234303657465429864882881392235401269296428051804453200857095791601261341994224023679056255506401035309510189662234458394700468188481827684649532007160509101892067747673337879684628352684716621060822877836827731732872235275705999701810915417737247375906154414090269253439580869014174295410600009672883736927919370206160620511768654235234812182096262493798488134071215134336332472742419603211234681814387078386066947449742029691103800675583079707882578726914067536510771283909903737645503990983116399159909314606546983456038899370035478450722288136179229070600307525654749240610404826835177755810475871727455967600626906320894995815953349993316130561539533695690183580567942744587872924891193261107165338836566699827552794927431345772145408594202005035645415007340602403548838862342193606434212549622152062298525905283102053612667639789545202859026687128210019542114528792443496396282259579468379113116430111089783141965444698425564416719579867376396584932904446282899925783210713217847891892961275048408520725965638483516183311573038177788035784450488018383402628024737269454235020796068678523012645474543228970050042089368125675962596119673009863724716790922147573288696183637340748293373213469185492211884243538737076528517947082771595273054072636992966929575029978385513919764166258338074360365270512571235037925493778205498941033369028137953285362682881182364253014377128532680217405776056681809073329857576271404927422232852843531790307753149413582212512573946268593035137030876797176764200202202050514129209911794286908216002609230136233141957442186237951988025845256778526120869031793131320260076457641823561942370432379896219932103299941498981001544628859393161127815338220705097439720283426130894671890630026964827460206854263455219582411374572523752649586299795983624687408660082471723222978234954107884301098240992652193154816884862826698259124729048332947519019560641742241172286492877878400345598180064165625119709800215970700482647359848818106982530114612573392629460747596118953160063474149583408327334930095701826878110604365917731711198044810963801897879227498120046340664417417213661460663263724154391571883666378018735840236393709863418734909065828782906830605407687656204484131092020969134721655004179755465558547068967443535526440924159082728555070818956704372229537682648987220543913924693917621004375084412779331338361144185807630011711224374655208703391165316179073191263188258425319667603044303885116913032110484057180050699365065665622143163691186679011116571370616201186770187984059736839745725372617019353489917813386197665535168973720425042830705981098002949205473071597769955713933287331834705800525275121771548492187638919947177563394241849419837874064897033102889287224093470070348721044331752521578626715234613377683858603406874414965998624098198008812227892662451126763755136525828925998230241136990848913312621487521282776761569583433743372213997577610592445098624591948915238790586023633252477938262673359043566701074985396234786705526720131364851323748480437449948292708693281228860527489937432100637316234587159492922551073006719639785109552552883239112148709360309303686062314048867825889014004381952015477024401308885593841143233250047982867753858659402631537192290720918002708126496908666045964704122597909151178321511226525189471817112382929035441378295794915239330941406816642349753301749596061628062104495099781962836400950657921648669185844710934254535624023995489836564470755138485798296595422136464714390984839435333587898263882907225811129142479167967812028718438984802997903213294084220533742690408003994464287233448320858232373950902425457675239716052104970775777463047871686947372854071758143845499571511944252520220412146764113149454793948833790230850463878790278136840075362505247213973957450254307712838356452418239625910584214085173783426101126480526875939491115626157727574312716020664256223956152202605084624717720026250720115369828886805978864065037317409084538262306104279801133514793043010588796448224164811597060875782011008404681479435416039343405691651805419512409260717053202419803369946400661229141130175172646223752402592536537909763247866047708151107257974398466786346787604645671365349794939333521536861809795085375604213896484642350481220327749366387368671424694566974486076390765610664307209075425282537698766590516815900600762620035768598058423678852189482416563740142063881378257337177165795140108767323079094330868293119814981598864581132169467442124040697894888670897313970735353405629269079240484654320738382698622505864188333416582090180496923993262771142375187098692451057692970049479184502773409093788066169034772581909147593284279147982076167816674105765033712959946313304136473411286419949647100042434002452098110365029025118611857852258741719356952213366523812664858314499765629655589629322666320920252620273059317650091485503451557826609891267684546513645415564092647503417037736748235433740289196751859517641269150888333862214241873694697070930579920897621680706956986264149732576448144448340992211307047705083994329139272930642272297894329902527072139907831161598681558033327409037094316777674977911883890300179835304347142248367709455905249152690942889658699825021651810442362088185008250098787566674927985818802795550834243378322032527229610449407349108104181636049730794421664029501792246783088175668304935490479951195866463996724671184928693866937702523436256416924149312588389954329685178873263964207959917862201483565378757558307383750668297598191716149461912473572391922023346612485721273065693967899972593914507254462919984848724679336772263150834816536021508919635114828882457424719389510824008133785028489808913504356414661043754325171665661667653673266336250618166509596487058576974813402420540524366420289457513149256234869935413993985052121752989977696607895182942357668663579917493671309501128451225081473642971167167677535010561157677308013461981855377821601221742574375192475357955446905243027570490497914655565955479934204407938931757080305186095464416401579703342343334787054624361725473341437689490362552250311254800496349544359939667505096241820141592828589297017811460258707110418191494201192958042293993619665342314964188423998216490319676566676179788777816516920909248450368195325033131746930934186284552303237147245742068703889211070514696162732298141941813423600462123889122371753955321657670879513513474684370651410926640073388688900282285406059410456077649730615858550546145354755672781319109988456841770799583104505248101060115512067899644641269531792058316937169575967135805492008192402860756061171474212820267076745024705779135523783047623171411030777892517634646895455767442660479262591056714841373200483503724352948939596078351463073111698198251031841301785866690331776758923783957575496235871000410503303105845187727664116248822847538469807401597505165768568028674575730399223961135551021767036817851643881166643650104986879378456730167072495342104303007923599267552576752991490427324391571146923101486096432756800543595722730225348346310663366526921300670490049874078674474277111980073460711139257507979522788506150354280755718061562214879295897634946599238621332284253194847228548046899979525005288626196789241510009199540931726421572032293159566367698581358148331692199301437278215066141774662877849666941751862890320299011843161597244693337891240504932680908495152297772887609833002748773686379509226415891174091360573977256351103141369122169775852223270602427735063894010141865787915263445089328626068196669029746013690960739644730082759482181731368847742525701688681436670038452441700098389665512823512767811317048706850562938467570827608760270052860099143554950718805212975652180449406229676538671095987597185994187512499379333255103505364991228790272145338971921660754264468718394064234680536250655366398202854653162440999505440155398582600158906451894265649230985606220896134888984550894374983394236342345141580615712130264101503270776712009751434642316471128171195337093377107728007989261533721051705675435686271781793946007353833664802472776911964198674132307492662564668184227809812872298323703748082731750390392331931008753589286219358586193748946458079391955804294624950611409366917218779020021105219895209310428185318772870763401360112821444446095318690220401973297174205325910168753576876880722699809352744522722380611817485913547121894831973779757713612262927637331959666551770539575865472201077695473039496139732501645852197858261570759091293636470588003918902795530260889061454273087414850784401911411469461907567818538464493643295273053709743675006136967281061955851160100684093766278859054359487194563438940030708742310400629297950080584965686332527347897531449634112093402665865159681512141590480212735916931116683952689282914675930218545426142504724835494850324823080394269026616233183265913190729072901684341424776830790896625779582479758404741418625101932579437924504511144419158839495508003944692178797508157827985866860358083978270468045046397317024584519473487170380388119185084398222282060967905739749336297156855918600327209698625941934275225263861357887557535177175140892781993483650673994815476770165144917658525859187399660825810384625703789829747085027333254820856279897029313171201597056326733315650652914957910760105307592903305795096480717371687126008875837677055433924990552407864329624849601562117395279959509186657172131169909199651761445891063025499178044514359828060052328044007178848127410827211116115899014433690866180747868578389670671139355087565837862398619738066365395791333859473278362529829455521676973774327882699063017069008774234414956575286129252708285413224778759797158593398379822224718141452746109204872710942901245030095430733162896755911911838896645871508293894361845761134263964378710871251428558267398629208293734400269033176972814733470197953226355295922174254526755579235152749162833672101901424714789285090111790953868120409794504262238744584593714284134399243864454758783652462754500280130079932726454537245021720908826239410310241791114984003411330175906589627538389259573501480824408619648045371871284461414160941377279329230966602480692357647382746439245594299097156357473223643175372760837027043124926096546235132129028656212651800156604467397119122519755550216536512492165360454617798201863878177411817781628876551367644038262842100026965285856889730488117399087760259327635757050960292583847705778619105316003387625208696558879500982841437394024365454333348242581601962772991550657342716841682216837853802454279129756912985082577485264780796084936446223252003246990806930439516316475076860457730350466467594299131011481091600819600235603322641896662893053889045574472718089578527076069400153465150936775166292633320957756619476034891370016256451343162204027982608321971660903509733950025814678365383897743549877058255431350038035936854848487043421522634168114092840323624281122216348817812224443246966106961050231074739531799389348373705557477726373467621120279073137920339086558294510949506901784823359159362487730556207907062796463528520178043327801259542902749882032856544715467541870549704823155244893491543793805262209158899699104916252872605184915903902729786789410808146880945288498471115574012737136878071707729334296627799483737940863493520402823889587509488216449487599670889550399724658017030516279561224339651775762517417487661889088007989041658101103354444859537440965991601115074286719074015651009726300134369412393550643760695361292833162965320651940072507772805398009170609589276451067538878306605202822269990621847130260469472143816372913921899952460745440358345776765597029585537169760883008393342293930595587847339905383738448764004207763448219349430827797313609414663434177336246326811978947763380550200478223508431370590628743353520532385276765270786717763134442317413707860338899977974537316131187140066094910506180088434533609917544042191811583019710508834960866145317031186930640277693384722422846108501099485024842786728203765867587582268800998906664058899909117661552275615953581917478713505868912120275202125677829480622118730001978106361323236223792270816919361791844313156532755473054240044007455943930864339225508971777452093035322853298567376933032569307495165267383050187400106337350296448088132931362933157612393301637583242546376283897487815149391333701660900380698967340182045314139680621462769688425737945028545500481215272530976998089339784394069307044632409518155526863994792907443444686623481780572922938656850804087698712573138709926876392376406674563899924304526716681817108838105641296144831514065036750024813331448669854810902524812023507026274526214637230189616361807495023767707783232711451835820020565583772986343536615046740571737936712966637620795556149169617498132323117995927211366179564184718072704657097280553355473630307690589187196132294503380104491542146511744646758345558892629999151555161954123663244792805598937963813576198207725226278963641534714960213467693037922925281954905141812071209785500164018618515844487044592383910270699484931026128787039450651910347219942253983005767953127342495975580372609341062715985227278154771046129673639336998733604428588321340954044969926744071554893372355472456907794069498509950258258297109583721881143840422306445863875316067597627541661369232444401776745916385376010981040578659877892540218976480699796201483573626088785711279664692687734621085648792859474970929708483814067646047768511409845825229758161607056498919639865971096371230898220334563008531973604783273281320674071949888748084592338776339717472959967828454376418288343562304054164615833112121490244867777548209948312461727951225002521452262914214963939798158752229379400608929960132887035867973324128753146024980398055657421821661315010252567021798819166185661716539621898917984920294279104025312461908908176999390755039039735964024091676387539005362478548581621933399211711920848218933326341055821514517710104784044289419015885429816098145344041377834957138200066494899023416193595695287234400798899624531892024738647312751716082406857663087216500414837629749572657954543736724910855669224248309007447437572287463648776637883551112778480151573441685124408233946521946988765202073587872314934918869983123373073213143874474964136341134242979560653293043879682828347710655146950352556648664262594562756342748782197337017411309091806273615736242092478694704914322606624468734457569054168496346979694779509333564088284950581953244101410921689784343794315193955159200737384753643565470434703991797532756686488866798830356147603523812883654046972962114894542385171945480087684587501558898291453148624731392500385078461108750002231814332768612025093738625569641211850497116953455995156757584066867351442906355784456529951674290675576741650108421607829757468508813582952271258314212467567339853183729578603569503904321292474738525289094502413054152904387072625919230918983066316294749807355219306566622864153871961399330443876641313753796972237077188614262299577338223525510391410083112059263949805916496113502130203521598847890732569276945477002550039703834434239738445666897892237396929220753735518402629206544348709897056400905738967923245343478292892884836685417178701470696685868404465103888367231417104792704097678115810236861625668547762006508760775533649778800222748694494689910976311916302468085084209098028510782033549200289005238964250708493183529177487185634797964070925258522997499007198368044067328954581024158836830798199013866453163162809395734167457424037377727425753844621008005430336717280341020573361153555301858329958193856699320428226185650907292051739564497205251181191386357832422594800215877956143016045371754130161655403857414204234958153794903676782963503532626506779946230142243926697123647900609416339887197732333627121655980855867201625230766352231666040425459806003896730284402662052203770134036434889060445049983033448946753549807567323479483475163143218285377928793066285784552706399867451296405829578162298135007913639636652077862214146655424035885585633868809149529169433409287599995306386721203933318811346267116287652968510675788317916474233592783773645385430770296637440047830278881788246826276354418648204918428841850796403169766212504514643268735052794991885167950711472150000681918577670941089769437415332693914413423371367656754738715140834350778773925136786530477112658963210731365069324730189437620306656177852233456653690144624931701960150722208703471318810078148328931096240313657539889882217513953355800054768721533478250165447605963938772508437696050775883326473844854379108493365245635710231786602366720344389244097899463094161435989786825720760039076050184608940065161046450515956270446368645247070039691287913137012344642038302155060059861657503493311406838638065572596521206747737593334155680819076694581936880839478879134045777801067580155739565769948538164869120576482092070325212404755980574392775309383044803747929011838970129334983653765280003753074944303800405669202057165618767972799384925992468312163220377820846631357966973291399655822084314113744161751097073280717921014407959191144819446963945743157888430883399099761106885502159965403781346179805706028882831556754461100324710612516994103118958018183561972478432654815256683073311889592671591616366763490123324340487122799431420938291894421739572217204250847719488898982755353389171058006029979808048843960083205298555017087191070139852585273908027993648956335706776837229310525147590816800319230209326153700785237512288960061077304970960812003362323903094057344858643504587279571159672109061114186636159935287860377708119301365462984298369867830937211890312752887034101625289720412764493616786891985742691527305413650299814075103214246507394410243528232346385214841022294838992747133906896272227714784374523479665491691451007527296290999812899015126295565821820792775230626938809580558558478120105081392122707979142942474123153599704422359386473353852283943032537783193499011548408186763890941397363829165816865272981507796399945923869658629818674085253716401670425849844193646622481646626438496937873022652501327608535589346825814349418397657587701034307221562070199798287469312017312515011417377670231025322995905211055140927361516487703052198026447497878109219691414421364972606450666589795801232646445425909475777363106140050667822026723496580850923454711047801189874625734336610632124582927744011164675050105396232985219615661700100124870021024736101490435133058227399138214493554911380789924486241434026854207985372504708013032672881118850839141483264593717602820689519553091119953452837502727482492940401259968630643890580461105724536214706982145410571577050077048995633631187748536159721211341932774873752465157739166704551078588233653457045190127025656218895571101967523544833772395827301792886850935489666074108179793448773024198890873488774092928381227016522024295071653230839092335137775226351826962738784197463022688240795765807927789090588124227199126053929672114691107569830331937290520585876346218659153530715875927849655143854762053769914980289553440712619966041300360383275459547802677991790351682291326592201441922274465616758915315461726589383191025519871845479626491927538130763112503451157314697519992784275192526048855067736342640385268766079984810928511606803947395138584329553956035878552997564977309886173354801193966534089899802236770142705126115601192668450780561455488557796858552111626095083450259227589389863971213223243279858614137883463627259871730104853427728618019394170040349752754742919321530017028010291024179343878510356650882403657452379908595877675520235634504361102119534986224684145712730072736266880697938365634084950130714335125226375416985894375360339883746873668704574178536449085341511262016244478036345594153247009738641164340979059814740850031006964334880132781422424612437105631898280110443279898287262546805972168730121573182885157386867235251495568457147732680508621228117242371903417388032993256272972468315240058832480119745748291725627647808335927667805850233361326450858222327087709880302032331845100441436496302736756747492465374264914144751624996037872700101475901930945083667710145465289354744756696993948417722131564208613773315521365846197147195735495608961052547959360738977679617028577051651527820499331095062328790832662029926039957048215861379889966979664632128674443365655326941527336922884181677191712292529042892808507252039478848609264680384769778984218666286893711275926409510568666238569064132051636969153899126060098820340273666790379448890760138048988992004382130492740832758375200565470448367710959488706896385728025917979489940410339352108962417711355853416175520848257205346940367533584542292302198208654045954379181186265826023712925458226757890281946655663403730426917797708256793794224124973869142776037602249867578407793401134509312696498153354910019683512571022923231345133731325029700699812842250125576738255244049709198419421464253804174016513895470327065207339035925921888686313943244878671850524673601384524992719795245150623899316142527314734730052171197992397862912344657883324175111562002786329961173189431383744877255019769622550923802739444676988923486419379683858430257272198860882966356485691626209018720382093763338883343114986809507415252828911832645985377086030225396128092385298052584113976113478460667293297222098278670056083162485391497659135738445303264059189653447948708223120450514044556301725299021676571153817407343386135947318316049265456535966923999336331810506850199862243217608108247789049110234990601556499312961893349039238598615010170719718413985255889298266142072531104678347627770635106958450008512479001985658560145921064769711736132986810467463068831674039676037262188290750827290518909289031393991408758386388983588150624193905167705871969628263903560811906142637116616664137292792452267495803593117171920324446417246229236641208384491221589165309455270730917170789774380837706696815455923038250189413483231022964176278007968804513760789433553293468630325176610578997648226875603307856587511399012094254616298759479342437768073943411624362601465962465627451141699358316950461705653515371445491520286571805047226869630540615848446642414469791678622834375414013182989314706709026924019714241845221345679248951396807497331558074588261783993074981284952297322328342021759511461981262883949007662824363492874011452027199406584105135013438286551631823915526417839748626331360373320388181514204111256897879994534240152754220815777155153502104936002803184221276850229606875821573217482280281288544448258371537761832362984554658213283244657322786621951495579217214859472457027461054512460855247844401621010738500206070399062011164484063576626028185801617466925090815713263278635902481054590802769139662562345261588968790985550302101920114658712824281039043079047186405007030521947910256160333089782240582383783198899549238823104729086676895343450507505720096513061575508127599930540448476278695342025325340120594010092698189554662558664495286943698101733167443998870996888043990117089989383243543817349157043031652878472683473653247572147244625763729183427025497213098793478902112469823063702857626548381066034509621562724443216057107388824668161926683196952935830061433941832401401344615719606497395698968788001285797641086873385876591657173247808099168985548941480923860622565377723672443565936917474174082287029731584777695456092606685785466384464853927870914735907289772505126196839827524054981147925837787063919171950775987144883699644448605169282177067248034522001708408627792031388856716071629717683898114579782034841078907245278638325475126215989979688655650462560332877128706336241495700912474708143396452162471796561821635787470696981235825535426118906079180847938850816572719942517951117011274197895298965915610600307550107325932493940099084925442406823394489814774894004569331065531510237590682179540328773787946984756146617444412410542001266399713913239695551043060565270290380313382401386487746460235864019906719211357415906982067199547695134560360008694751319000508086179183452157836558902370311672228072458113855555232188384714112760198583722952583901048460291182709767442930355009227194797516774037731189670402985359130892268487471694672390694719249942225984004293354235106481190316848965153503058571887577947615623203830482224083108394557048960156640812573814276404047779903414455200450035706719470194050523052220480596056814066444420868253211710144688413564056923970518341244433318179080473090324393558281011655956127422339047113123324293746956833918065544971052748695186146416175061407000833631333261351029290285444463615500675538381627974604947212288196144635000176064491173133596451467968631582638995329553545891227162066212756631873971421782706237908691011934042051193945439217773556677488149590949792932285089770071589936261208346212751257817584387850170788811552933697641650913565458041506866629239344412794404277370279642636102846373765506936579389083339255684425371679386202798104251559221368529135056076434754581242022696055351379829309374326110772684208196804698786013957822572145620844622392435346516194101867381914436248118714920810644238013846623831514095476370597467042432438999421010251155146527512915978221506140679722167032317022437311171626757969789541084430495492046358185646942404684016025675370510523011059114524472799148517998539787189414717416658983920417115866564043730441983887617662178086479589461929372869821314455695622482658118731251146731876792861443381052123742405371135834093833156754142410892091471622210638034631378647574029385418468616772399785251093319627737890145486566611386712296432083943219331986404999841532079546986011234943419222824095409867799897168083807893429013014448984014896259294805222487033850392907121406612225738675403656096283106681013274239405013246781796288498040873273979440582072689756016675702546729001602644567379662157624300580845326207729248809834722865611805537203905725683788965240626354540179047570481855300151881996390927726310386036856745611502167401289566677716810573615324773252857658232567149455925565713529302161555176491751655478403866977523371285038441489464641604753641394897894783055102472356863262801372072183276481373008462220362703147072237915884476068092248580685211221964618893477864484606885431530348078712723335133033247510845076061528913972982271116680967637917587462820594761377134775579016590053057116987157792473413448900817143362098174381792910396757297418797855632846139184076912502240565226288695403452616166683561573474897004529146728047929972619530448625166688424875482920503616794334431647498292188429020826034479929718051448157297416037251342430672066846000269391191621021537231610739899107979522761539658232547834840831397080873742782133789745096324795646195462644594126048843427788951858582980942125146911523466500161039902976383287547294242780050350223754762828832757577219584846997352053697855894645903468163847826170458748388924932602700660232616554646314957109885634702870250565783446071034302335859912514109675529250106595621089253082220176137999184532195188927684092593157081433029726572060458347704636463106195763772378987739985090499665566770453663604736267514825785129446092864959559545504550472627116295478287983258030876435197328473227407273142239042826317653023518576935005977833552876320388350726087706239054619056287280839455319647214420731689178866538442247299740283442327240129448418211843670391548006415480264161089287929154656401417358755294858801361247447302218166474070176448370290289118623642336228414440730605584392615593525953014265080780450712454200383814630842819364377781124223671648925829721182574005814460569622083700736507516488785290595821454749589658820547445947419206327910928781260339451011328757377894538611709117844533081456026231111187901520798002037519801441579167997138063852457720181652747868227176124071731897713559255115518530470785770204914705345209083529509104795758186314831647937530118703692720440708486061197067118090491167463200410340260044062811791659770099452672389031154240530763566626485545686663012565791544810032730145983475223902313152441697192102358119409030585844116179902720129173377781930462955734527767234420252170326452545313981789703590586650403010587147646156961069754550092858074088847638193129749987408656167014596201300068646426170410408749283822386034492437285506797612422920195777396903330224416938090972495735433532078193711949301339304946184426618897147534144086492159801392193651743677184786560009864790882065929524433317936398803873755616619670803483421465619494468941158769202476697149298523696497813151137415398414124559588433840529646072419051859385829715767590583685850920198899426878697651187687291905565447619241856075194140810805227268696628473207663795677394485672434730928941550706163460657482749114714581767734026640204761074193200925336835638041120236026341031022339099030941718471339084166444747790532634711576493765270887982706834844204717818483339699870733995150490149279192798193205453427188137613082833027585001943862512842318801293874287152195748243102545798169399481327111867265127349160662836558706498574926505391407810959625108130122890854134375821610791745576159235659510818403579068347452690893641514683248422177471819360489417867136511789897844372054345341959979151921605208795908006774448472203883903364787723609741859706545825301133090047046733228724929508084383296141543460676197880384174807171288503727368216992249870625788187149876703489707256647199310635834021429595619353410371292612401892088994136654347008322266708947670473011863629426046648545953314646877749889711118903888352040645640277648740397864992318839160095090071910952018567891922039098459148961658906238612087506899437618404791068190678844608091180410502494220447510297130657068025572383531370492017170958837265354673116240794546970919696172517214108091115327043707402325866155443250297566312036059757926446364371425321959405424481128989873674072194154084522537508778222008241663519777874621713982226842477309992706297614889793066123944877810220976425313046913977042832443156476846050381457400141594793064105309323049083977602691483091486820408150041809729359466985238519944878720978840839583441678424682080175420450852586327914493155845286982554486574718784004713692523407484639204117480415928264935254292982322045955221387169647503902707163304167651287427749860092410407775913909799099898851407720696566461254366418836326723537336019525702504674061946549737379351790463251091455721301687949937581040040556201659647207440305016718901397729958375030155249943593511159760687562225362998243560662399577877030807679507250431087770368255395259684121684229303639828862944374200605898267559110155748053787911626823328791153369525208765636542204534832863728751451809498520413562834353455749813003644640658944919303270621381401038505403288336079243821223671145370307113030974287433410108999549552577024932260336144842638842686394875368235694779398636556884648383221686874683904580206793717120754931757696563426665637806051331448731525760276929427827963672575434617217763332958761309088606017088920238971838690881770796720190277804940126917316237527081462860846944245224874914525159445709434273644033096801424582036341079626395664279312535892881010825730668047627029748900637928959528521821982567679088469855624530533342373219686786793660778715941720017716030000868209810969622296486623363776269631422043157526061233577839831792672244313457557960675083074497223038670540382903779893714223620340353501798936094790775938508417395129110172516989520238312330345116419305021146341797301574345942919108510834295859164372204350942195627512951744275099519317711837049349350007582444832801226776714615701707167922534579029373286278993337641557588397794803701790103380899196406190753365849935898190055776266583419019185990515417766473931072864159218308941040872345675394008055525476191071367699287273614523138470033697486675203145024381450632322699595741421160395009107089676688906487033185894636140446649391297797747010963884891935006925097159114538322628627458869553429924789090077014617719205821577207088807018265252260209620509058206690822361220980418807879265713262196818614228493731714506027220559483836095167342192208426193596219785938704765492385571084010478081633392350208874772381273811719330540201102664023526011585281009654218564916255345279085053397668855574094349027029060895106426363834582620216054359324807510135609980224382968314654035154525285002477181825093786940929540063668379817564996461033692707109130565468012680480480558639676325706945670531663722039834314247024560790186508560922161749656978984262505566448154339360411405917604942462544993914691654584423038085172777833004581222177810768870585593875784652753535294690391180269379034820883026844910630117649354446334436446650611274147930584703136253789698360572914517839526571043283037400889060791996054950681403741327698996400956436808581734807091265403204908012299419339738107692944906704947371162104434746725837846428144902106194005951555867958149284861437680674385867945324113734912463119910311142480563368207689142786827965316882632463145971087449646264083668367540206475705662676578841507798039661797276866338007342793157090913130094165401910834911673647842664469924361867063162485047413162632091544624755934315350428280491649428818575778726702266638667606779278489063132464836739132075366612854130295294464487070582519441856046143589393295778271352012433703474395518665743381765527664373682896790672152320115152668998926627994745750635070143892266723371244780078748400961905962048960137674045346522442205861216663766068243851315407802146201985238455906616605059801960132209003037182303304516682583019468814545071063579401574175695465513187335976945292768541670959621355379944563761036054677510794622878115651803519446220155979167556483222973829787998657650750349088938832226171900091018284210991374345251511190021415947302326740564739791543263123322902983711496349444516162134069848491082040087943599043500059997516848187924792700259770188670943199997260662358027735691939461871160557095591278165634277962348695722728125672611803440286590167637998980141860392089822149368732971917682729792468633199668715743100804611466294698643913193401719736242321965682032367415837073373051406988361273234470674641599819144357766395795920909230467303648318344484817137929140278511261682396654872678467461353454297894377904940947214345353414277030867969699360930188846464088120475538671662649770528362698223100721717031691724029246280807586380613515304347141423986424302720945008829426041103185291868184825784845806080758296508532479038612956495467492035694259160396064166542828419468743020091353414647226549911950219192242611603748405542124547816294089377560445019251260934458012351542180188858116499447396690951870124790896268422815546823920924039199606792743780728323655066811262529380772823777668856702408770933911303646529161068774572107960948979819060535019440827658026165590480045677168710853938110195679439460871453577799111998693584491554755104813920830878837853586806770781859956543976911034611111965407282029252702701111702112800628724699997418834114338344214081246324732752950264850502622140023042576665913720353250472952284147885438396707432426226192571282301679602523282975812252688988504485213909003950841121012416627679446063093834931374863652143337090233835310972117809815867882853120797046081451031853542478763022583086715252000025700524566903781009445825783694708872702968806815735985237902028764239382723141161655585411076509302160946628508274085744902263952407545896005154940416158729108510203487129628936960083213049407761490242702092907600414318282083437052512254600906314790973743731207209410424413114803403113673532301961081099494783039001034050856711631606491426703669909416133391273987162897824186577231183154331760587385718033622087123939402006358273014266442971208862838466181866472031073602428029722248267095820670479144650048978566282367024882588856918560781596957920753346426946935105940844934220689828107441348864233214099201242271617656158517523308298270490286892410628096285021141922027556577611004851825288730212572386829619436958093092345431022546768439842504111455320057673198334113023585151344947106291969408258242490900336485729902727431595688269843314849483956989155271990845329046641606445477473481807300819475948761322018921589842268407393377778457106001018729782941985603617486425201187907027853555128255544904405530175033433438235409878908075260810838412885670904541525173018672372346918594029686611857749334952085241186078831940979761033394111460327350651631930418251634723445525817440978866850526628818220544243381798861932345207721967496989667377656811039747445322748677334319877710846719735679678485199551895580206436035034559541553483525620640924967625032336811940571650441417103657545839734615705025178845836154204695289630426496977804385750023294375028695820570717072410385227915237497782903213608942289032605836031935999988100397901958548406311477621476156895791496819322776641023138613166505765438350239236368370927610865233899053654180572085378950363453804445620377471433232501425573607811597041154412262769606700985713720158282495739943113305319043988375584448372623813508210647288760311351681871796425764387039928926991059149636309669673642467589769096338164811068055807184248619855506258336926459416102685754476592324638011728565439504541995461335518137228087416324773395806356505953591424496165314809090996695326929393281399660753234955860818825466633939592712193261656229409068220894831412645750689648323398153727349918467999203447690445725915323898130174607548606225299268598545861905726031085060550070964083993139059291072384995741135797911552681445930809100980082745576079929800606776787941337353145225367910751271367564552604497768165047928837893078787879778213308536646677849087514988697581962139901028882435884355490931209540230761559411270318603520398617783173164416009826269491881935869659209392806192461199744818696044660996232373133204963877089134727267061591671583820082302162242457618333062742336053512745067166946954888537387859470732562660372177281573947605341377179682869628449553823410328999655630296022003232007443605206567209063852584220330551044929942333181695985749099416361969333177238897882660983110426770107569938358675207795844721205318115738356986361739549463742039648069663074737705942673641662522832680633034637927154846163415553301098065990777822841633045450716743373011261734996882945148827376773843620047864016025255099237306348885629240337815686729667240306434349026276178697232607498746864745209687080951756428215302462690747408801865619334922279596298417657104478484159212457674861446365040643046998625308478494717747815430602393513271008459929259083009385769878951787277303585573563965526283238757582223792913412767345113915627326151108497370967106820552259613871191763200072983712488306090615135871271168627411503548052707796183133000041020410737564732055208995490632407921005846513636004958822378749282399673488679901597623492628840329105175295269863407179964734214902560728608970228500685995699406116762393562033289507000295061158898570423675527549917888687392558497698133008047558922783999877590135306368542470370737293453242810160332718028066640288059746008832103583471382914246258043487547044263877377606710698254467974879206002762693097035184349809786389270541188281350561000203599483028797724929421929343565224666482099501143104091244830300974606709670298024156751602929281299766014072991900783388737476823138748121191844820418206187072624637100632854887979054548787865677196281792313870810250535176369404937460073434432741888779369172842717601779842143580085650448939282397432109261835914797069171265915258578789853930388505068117694275058259539514659225324492833700970578275415211619583189055887951999599568965343379054845088112534866287369341161404035570404299535201148481782682340611236243279143200710586790815486067224460592139250857399477799051782131903075569225288826907368746862721733106381641052590009646904961476060800053822678754905619414823040819192824908469454136671838498629538072839889875897726943669308035537925100265995422615901982952263382567180684511450113154437388661385209713262916081444010967173564059100746539580201401107787261018986987504032210721105794845005089160438805859160056288318364779075164004696287511576321652515265015648447528538630413200862000000423065995863525636878448952318181315949736100128257760547721440969303925231194179016670883285777439673157422499533277575846345415496802459228802517806775574138292978897035765558149196458327614745783560024168363292200549071950121172863750795462941464501183257842663421147457221181818961991828188852441614491169419098220328547566493859918073075255505210739164849506481391109524877104046972255316981479632313292584720201209952751589957201429064486758543391206855679866307318647050754841864709212691109713953377455960147609227602604996227369722371261396459429861243780133362954578909959970526148512953772702353781772927114567190971342100962061727345321783907478806358409648826074479302137938135883778876173388913063825660163826380190417221113641614275374478396150793283287466010311531365430843765311424943672036101565505630247603509431296095703086192591858437878353134135498967505096552306815874940337674438530173050780672796064175998647219933202477159123279344094513441399333885483646946321070379974491151289335035182942900389051914543867359841166704412484620843449077508504694477442410421169173701487772983479528570080691736246908123346646724101511463036267757262994184309739178444609446906285332897503565436122228082741258703840049750242562151674133851735339122478648777611496672276113044338675421154693206989497117910106150558899627546986905555927508078589429404742711168039933230668769243484350960230653362391348502235462234455042817754935272497554788829691747488421353440371141523050523847246816343371705725572554467797781837252056750248019906999213325551588806315832521454880644175889931109442697143689909356495346481386404223205976410035123863784559336680069389204461371952430664735052039936504905413905295417929686324647915418911260236629824142052806189726846517765134499345697745939256626696153985303173320967146486480542996508305719526128233002056356689284832434091663595355051150815833586761362097739301711556094555330707636462261580502264092777889116175425665628739918105986873841174598906658867157876634654110237601102730146837187304163916111949576061655061968557420346552829656102346650016963932697707438544412449780066522749086874075732735091973694595462142799215812584083550190435404979770974616029600151612680729139032264534245998847936485999765955783249735823835312468774041284196056535618322321424212432168999629318633863337619427267612752917066610722697119742624484272162680755203585657419392943157834865916871756279228676115706821610695935613960673085064601651636039535806805241669698930149125612492258307719011958956629817082144790084744030493020259297546280230037207940706749133253216526994768651288492049056957474569258564783937184227194445778453606088198276241927200293634548338724070918694176650903612119753143634642253592346048780488580119718641773326279262059341645889313920000385180670698780887836235494531403806807901477511170432565216663638558944115480810299794349693772961388697616752180123953935573926246377617062888235814841312739263016211513477139690420499483117464040621108293023192858988134214003797514152250082389864326641564021007375392354223456638713169157657724841131925029039947402814365512064890957193418106512089931657271006899549027053305136185075269567754005132933102283260642500752135741998039797235497137192472675244667109295634542669424884441393609215103676727079159905542992795771089990634106824654125703625858196373269484815069605743868829317811909940765398984664361182415903425253509923973845121657435582879947953898053956349698754768176054098058826699459571442076733400027178140159479921948792857671649299516902980709241083132442506067017000363148076845651209362043721994998540995375694210286673818969478981226148379164660923539658075103120303846399225827171809808305295427330108336426775519687342470501253273187903400903229488528569358648765448838235637440295827765958998394233310985817123570191083620242913834615719243164734338216941947854301758259077404298595155965717281175857295279569951967449524185379705864462390987528752341326721097212753764866222954627102886129498042797644855998464500276594464518021575419302222176633813267616156964090073599076179719514054887992844326508640742357700393928581753133105579963526014012737613811819944871743541134697487053592834986398398258576510286828190392413947754950195326907920593191410210793290921783337918897378467377913030226041138328832223263238464803098042569450727727659350935691406090371169834648298903730274196893338317631222682801083806054760767360048110960778957309001887303612976643355347979790044585170659832592368372493828582432553903963689971552200666779043555374004439243917120646478464909721104539289116533449647805728590686701720818297093720867172843921062273108233890734682264190860798714378229449076403371502989043700241340476404301478759435584101221082400047028998030476349079855468131178919239345994569008039995952260019547293065764412915979165237138861470860689666696910277843827978614565946470429645049854077992339120399827351770639355658143918802916818903706130950339441765825462291991280915269545467338554088129939154331827495041157137291872129796735473340688338782297566191343865185085750743487579123301488451498405714792958450273767264594646300838014791881968565248762208856564749711091902989784051466258125698048149882780745800954525293476988331985002829125141944608458508892303194487101137194893068336376031712782318306742426032454074029424455382832761397192685119832228659135322533755856763642581179140911825675864356726595625151814874643285972939300570124770272116413367998737315170243289688657237458636582792132669987015944408941218838106838322314068937651925923952514073500478369966321379636559339863304552520903120054976303773810188087149082400851762066106561622677743311354294011951105016444879872077059574092603306532954776389714486533665516264851455309460000940092487837427335898300906228623508411760275450647517919091624392641826457767324296679569518586877382732345245032458882988723677737242621097740640225834868754542717695705716923507611318892284819963885612101985372524146769118212196654907053228692090419887303159104819376026636069091133413942875585408030230972574251719660597670881857147683007687407109074066454246808674923058884299562575972957545266828349726503762066948758624288855898619492360702639488014154133689963807359259862397899485499105230276468776452190169535378167014578231753457881387625133506067138264115004493306188648861940359120696764758749780630868528418884350945659080286197249868327750237460515115826179257871947670167456081056659925076801285937186458390583507721498831506677513943571980259756807552558192673982275783380428082057399526879039706098425805160020916285446220715478410929020522122652656826104454258498532872868109300359306866356928368151376904234434206276207449651756023436197941923535360674994219980868125219261311783164031466112454165808678408166718015116725454053802809935738494863439919992582929341555794716637306282971290307339847672804849886142432528196402877246958050543201840055723243267878915372424164100246445218581833280429539747066760046795096938942139808194244180751593039858445794482781570103392864078054470877034877252141592816152973701063172231986828364121932886308293339004647873613109167716964012533558425717957545817109694324622353159350428566966968504193635902720984594169344488254868703699916549239058042544582154055328785594975955755324433719070731169604983960592769758665576121825964387627368676549425847244800409300823470303463984095083956026842596826330024985023350179262007999792877422763694475188299931460691776849106473055385641254912241669527058261899391671852066426766200054292645621210283737341993830476468375253856029637814985342075954642890159058326270904526514299801187952831437839786791527719641079237630371120675379804905578145468234142713571734131929962983594281317860423298688422767743090573922371401135016198984869560806814536088570376167161033391510382967207452001376913900238021816289551012299256773949538138659026558051994508512721450159655055248748767897886618601782653165561658791824527538346520053080891851002732915897971820757873289556098156012468533181682647989264014880866749935188820808244671107326876304871511132742503522462004149588169084785896595715911525464103338681129182015919652847207385294825710251708818316304859049396810485139035280311369439114753996030614953084968297689699388822990567011245870598859720197879796982405404161396536452127221577546073408015562760017068831072794443402968236468716443156646745852518156175570651848704704915657603664467803865341808179200371394737541588835036659319668304013355338888083838493959273505211552892774599985263034460272863028142000893500527778884382898234742199818474981905319675099101237935714296807299651641869894616668178556373637773658047675461552042264214736528289793788532563084299942138512397708518767370703398041733987532417269382288372343169222530023364370715295597503930578892989447971353066030771686424544607472795177986394767954150245547404843076978439902062191783016131469858503312420054387880889027666448913369050726163715498794719299548609616087414729356052638376226146277982566205306755451874724470253260855042529578228687352122140231665308261690487233214770106730481372053361943330124472373806047752064840323214845701713455076260747618209249311491273868682907832976571609820275292260298669915649736019814257645741606845430011630773786859447563626775611017663156294007715719385280046608464858062811949096361492979659877869675633193803375214289485487888293363697929843517542346117475428267004317368912171879641036411045187423786185205171964615106041864693351974131252998478413332576866941483677081764185844989123774374396846868134486683188545059541431651934050083038398653263238489214392030898547209611174693869708986309958003099931901645049296300953544168382035320972374923614359459109403151792354822615456022644475339125070772923421061978847350913875745719187011160722707216202884447246256082420020910525572162617910280868158697883317224500356119517066230473030160525952622412362680216850446668683123319497845199564568052209088925593536781966832227191567322532582573484880938110600831929569131008234980248820303805446596212151692714024523531458409040658307550670164265913446221678962824645980261096679409739409675837567988144413547100324612970426013426949389531615657493898244871386740142991100000676908970073200829598642312791760122731879679600074723007520208545865052123055022315681921300424679893980890219720742779574756288848138486750870036489108749170105737095977601733421844823544555647942702306780481924132385832482366257457902920815260186246639102473706466510102581422179273447771250390615416446275983082044104566796350701923695274763576605903925367034763165477385462999991269273447363562221666775346213554632468302552446197644398912653667320862769202933460505717036590675980386829349560938480015168164704718966795282574338793634526165371876150413046610953786592678593304259594064502780426861811536125579006787982953129506167179248194566122057845825067371881457804044618035389751173500580714691265315830780946392823989624136169914710883994810184624041816322962263241816059315765416879600193977286933314828317194405683099192185394753226288074276941287290971294950811191741113487975347006222362971135906243271261772117998820050517886691612003697057880896142561666411617079641943068226428409863250970460977907705625088591479483039002058087129697402760372330802477705583775478888630621939253227277868647415705763325888285826834895384719723497756101738114636276095795167056246584420661994735090850839572199816328587087345386937565961688377430632300199139061018310423654336392797218551496582706120909931856463285243808240291667157783120180534525076787439777590295135723454158480621222430283938903645155331238546534769720291807001379804704026627317545238570357253753605827923099390452438429243449729320961208350665182731452119485177103473722492243997117727149500322439828658669092807456154282691551948834512950408020415535735649847371809596237316262645882043592054846577089783241823910940290352125140100051273877714859068737711749862231404795797750801593985813339671997012161449161276181995816638171472570220637937340122927310644930185346972783859645744674438185974551924762012927636582695191836795626134083708420388101064329834595365986260904598931910798568924984364075855770310555028260165549857176988063566731460082240040197000247297107162378649790079460701195278554778714009827115279007189190707043773763010575053459236250552131459662383690643255600852602967962454637937608154384392246340144012805325125720045929593713537131605209560908106900486682710998071641204959374059811584452106975999598485696839751562854473239385049047224266957738979395758545349611257792122342638673792723125290933732432657304113448455324150582392569288343472382173294362316245202987727418615350486416804838888622537556634524478497286568880557851518604350951934388371257344767796341436126558839809527295808845559504843914719958107163784013558074418616404367897770513101234520805288709608398414492106396952995912852416792573562252636957745254028927933244496516993105672993243804483303525255918682694918932281880639380288785109762066465949239698524509103641628744027371441554185720318115401360846588373053469886126403389283612964277923427084273003466699851421751773035337477213452483962232262232921797597302938759770859537428754310911128034526393771563363721394080084814247382216229585551536350312761916932229626642160443402089611246901468536484215788122831748211889042123669513971282960331105794142513877898976529044556466731703173789346301311192195086326441986726540226365873582361686400884700057116527481571149245087184340952850708562551480187125311980819744213103290225915530513152638299297434684393148432091983545418787552500843245677795770511172623946975597555049770812640504157439042567822950478404785270256303098033662979000006356894024573075520282930867922962113028781641170209994282944116045972436398718550450658482015300208472017343104970751611654436761671184957156041235496613169601833601978507559098248517674702610359971155988377563476064902406247339320702238194323067516579519726067149449686682803338914288171640797760021274218731646993035687275603581433897938105808353548206340694043020933528579257346489320874946294979022440886287737974924480098444335526675452773806159547957957388869723443633063005905789662467710028494171221068321222894029574267227596646037712365993243952817116792921864694468925910086705761933230404448823010656332940701482886910690270755345839976631706572657489536646373561747992255518358197943675439861831454444607534695318491218718087853886821591068651843592791285058492038647920771722169418013076752215940101659936470666248006151006045482408044803270407234218141636718500653812410793753341250989176463351564982293835511112253110234556189920826275003584859189680033994360033757105376483765472077137901224952838974242240401315060372336523938533198182281200658006519837652711804474874059749253641545500211803961304625439748218971990599548602978817078838941071866330822310539233690929802812993396727474402133275600400393909201956535500066645623205773895688283557846942417817144242348279213904895174611884194449504654957947914044890768822318579404941170809700976892706138232120963625550027874350671667461225616913151966974872645174965144157860812184953459148865206843840550629470811148336202031297712005955671690093851257066037126156336286238735942228077406315799150030762711990625906286919227596594800526716459015341982824928195725213988761164173440424254053366978955638494012512258879706191994314470230433553318343287317310927631932300849809092967883435229653896834783041701962974920118302427437218198207797457695007857770949460666423369581017230409042408341218284514589451238614053638852549857864892100849323251123030563983007933881427226710806764108705978042279479611767322151975951906929640676173418675220963773389166164194051360751495119098427985796839674431411508399698953839505007257415632504197186204342404518626981207892365684539746484801664851822011009828244744050481812772608096988102224068816324677424606152589562534224075105239335842593987749503241743422182946859810575633789923186511536657349830937442913336571698090022630060294996775819750496415525016074149924690769516989784388209921078079208784185101829347185379765916614898585628215161421473288666508628196287675076423496638839777801469557099952818105493897556824677554422010561650517950003061768274865799585538700762635676892622726423138529656589405358150979845139077644937757640969090391589991089999134013182407407366429485291287489290780629815653951350832679524327141862574270212965092166326302224311890087263227197093974777581098241652193169753059383033921997836061104633189118762893114529438000564619515514545342262541981225080621682243294760326565200489851513392268785284455496493600782339355747272700076685410272022209130455897175460368727257878743839947759330448534200048903976574454168723869889549313469989866090544608846041662147635971614887202656986423851794901439123972097778908980597754937674279089415014451676379545637281790647490090706912836440811081814660072569988349170695091454037223707925713268713483452882005866628141841223645622098551651294866153446658520937447715274558750055823878352866400723223384280486087186101975834139759173667719319804616297301639676434319845694724674782292010124639595452227541382626421250176074355032902407838720856488011085908190870309225601509585184847071503949668172329300210756653201935119145907315104069060104616368650074281818975484064480049733530084402262861793498819219201467365308032997983846057576749464257919867814747602102364892822704954146349658892207241205915656501694737824679736923165753662519595062893512062886430341430049503107945279456454981755279146366048677607574467199514285420328210984417964073100662967696039806684877829001892368045116774769115745749188839405489889767442225644629804739823772521992944248941723949867402580332220288449487169603135124699439404929244973071000538757528318888480264323614486261739505490904098438172699861332825279077238644650977609781669116259795392346880304060830012205052714268859673148932746697311486677850152631012035810474154681884638649603555672128211754748058077214285817650638574779852504435810655998600634754234022015171159803029093046770592622556537460050434321621074048817385738063903736962882919610173873193493979554416019808517986034203941362698878610295312951694157729687038199236667041862578192311013977838566263567345620265948542248484591566947185650828241189103479606435266600094981500163630512240952481569086215676503149058189687959941763169367009802910064398711232184418155249889767460814927987688814836259507722372548002842001678200227309425715842769043454643093088615481259976564533620981305175985835851953597924862931812124089435107985127687775059783470489017362224916160355907054631733908758439663520823812443370125434277797119897264403167001729217709333109369955963767433015645905318348883516246125118366343923269047904602737037505512534157627015422942424426472530807234347232397959887924026618581351269355188771472040614771133362415477573254289997353669744019204278190115079038913281582180848659274184032802761665574902064067640557433860597915971793877409675628924175527322870814220101099665812113998581332166674571498731439479568883291306605409625765747914031996942733312520302669914357179170059413543466645993942618058133048384216453249298446140803595321862493397753188239150769255916993235142032816220268309635486843882229620442217258588500796949960559545585381903672218278639164495667456302172727858910129298617406702506494700469646433511681084254491310011155254405215943982405606052782437783651624918370061134269876010380888417435336660092130638983704972861655885670844925892629098092182960069256618990607449684908738738500385663403290925800835972751506774722550412292128794692737919664957269889994896433741272657703526871245276284703961150970105267298695532915954237928142708112926307851273956623122620480339329247777740682206826715226565280320036603652420420482093678383980325681749884965408318123709818045096408006798805915545139828564509469249876905739614584889636186266744869721493964747003289872636788615935696201520918650484588966880624708994120961722626172428650398937432975766203517152836187938753094199318093658859112784744015227021741229220267159443387874835386032880935560831808848425603247711782453651443207589008229539825732689088442736058948158611310717215407460408799497440746447354998387132942391470139181930039632815346365949855116476215028173560922166316667399422533289603122414535755734314423032601499247701638995099190364792776287862545325376956997428270028775341443585742104699965590113378724119019663576587748332307765476418725806231133552356027469214176397691114823815053015817102226490008901937925296965279837371780958658694710998218902704234080958376116256432108442406245293770544431322490719837398224737225122592317665704677695889838480145910642237409875329493377013271696044866511032861129151454821070618585373327886896221942279573414634939303732243683101105173217159353137339266659673995359443281184272259173884775919215640900896808400524440448339139477763546855206999720524849853199281997468096419639199122781326035276864643739567423361797616354890919598759708231674657688900273430742031546612159793976983347809817598023473168421593006904458434698286013944367760041219892494824714569242888154858627432924725498876187439343392249237269626935426241331790243833585545931022538163486824778028914037460067858074734442677162509046791114607446803407793092201426868087090302734610838299611477658229540585014006473025691490639876721328713774037828618236604419137676168789677541171456104023710457397696692868448348409880770694938018823149622786241460829927888636196220141088919462198558091157867178711441229458473202402568078123711478926409172767671876922995153462274465337304517258032041736617513897076598450037900271837666061844479876675697975316360243307196537578916200291270250421446893178450013772890421559869132028320824551490230413976109938172937423461233924684525351508415781219445407564360303955038287341081004343377282997459077956583659257937654536201651871510499459374214816982007609109665004874957246847849273284286778329880371328595459974023089386685975416379960720601851984367865992121471151434420008620613767476753973869851750906369753862608861990217586428019609142239731706189787062309590111113799831693065704742220728707033541555147065691271336225146123391675616100704864388796516250704223121044477076143590393074288592984477295535068204075673793334247408220681138148104459520967608106982369676323442037414278499554337174576857908176840195616871164229154673160706968619502489212008611363658517425693254474655746130634424868104179457085966783389335930234594938381448577793504470190774731059395586566870770229450193119106914483006108905529646506493292001775108617693456961245348494825524424489558414979071234409679452423684122919425422298555660046853063163611232854818494454635085877493785621661018393420791730101388412396589393160927583398082500110155575850053841780526581355535816120749012093144655964798876835461781099931915376248397190352886551498463697508624319466080259567453279326686632879467415687008863674562112331532682709132388290007377954463820885891621056494885478965896937559963389520905143195972840106049594770266491895045097710071862028872485926345737269122333384757510063318320041370402484593548392591146765542148194901251360734298242660737266231642486431087255500399923183050237142916453898056111895691211621876035893390402793866062477507167626919611532916761589103754190244675029602993561790376042396060769028035563567234195996847261731217395530039929285974007164949075546668565167568974225292717777470295177476871606115595386139525716159549591881044834702703614792151087965529859201194708303728071764848836944618771853271415705173751571461638707830607862770930228037151040002849945590875186949023981195669908404910261548536550299152033439478508572240060460525629926026640333724134565776779687460433938026342488710179154972622640958680576104390214326427164317830820641432336393220708800972365800820220594067034386027833788233076609232262347806974851104220536688308565769219144800356586057856889026918113957944127795493468443982061211672281532070941565479858862973421280927454525825281958528988836120456876840215950392994575254675986954732076958615823553874963209872163619925001394282417728954574640591997860020677590721706782564020953438446648546524481445283348145927975422929695746414846626597715210347224288780751394191032439678772638064991070105967376749328038679596464181119486056267227125311220099465659623251928098030997408195874504168734525051463472233983011062479909383449986718235911051818570009811392321736659247686241480756506370978411723351918892381688830175628222436614476402515751538352421841853091878910146417342976460307947900381021266922377055560532838635249149195498813033648144294436025715705338717419222799165043918841715095234367958060226249208667805096632728117334605510179049964342124497323371133433642066817376038274130633174749087052385942426970887403145083591007071394160859918787565962315711788916603330323961331342316725236492671808385414398047547320207680230058068570688588859549828434239818402405864483889298574459535029932241909879313416957505559025028212758893850559078181919973393649789165283311318731689146380829253127319628220041602737635996834671349947233386940704788743917405273629648118629453329167655555478986005816269026150495279379900519871230536266779792391723219608354180369846575796140568541998254299261315124558670107309126622047697848743791008544624357143066989926336566686370505361598400203039790024280989625467705738658114214939347596849590807033914796014813077714864880345877517875079187934682238466727047165742418973485010972675242356787709024182078520226936728091555923956814084279492440369301315851387703717438817294231055978568609984569375986310815146407348318474135822204593649116393315731663905771054436121287710071644627431557801936994867679256168882892513782958597048487722670272576595960104474139164165870999472741741360883691329851695613190156883968692467010643301214577112354054627978966106594202321312039241929473703553932983450293846561379024702189574345651629115083149799384058777779053425096863579420282859496969211353972016518581026401434855956747849620511576005338198353252685606611623872982656488963243923847498934561920872472159626151021279464417369263194209266071550082302186193627321166534331727513080588051820618331485493230195815099482730648682728340444201998636630578550115505567356116571145320840513817156562745588533327720841249097313628303881752837331340828202482997503641250992686874971498875703982333595697364687222097687229723134671097624363632924637430396507502233563193794797552388385254691523914361725280763917776726578646932040439246759841376931890337504451798986382735803871085430488661748975689260768175159280506240162095644601786611658467839518939373837399565552332764928667763463050990110732665887865076795447871333522116680603045682904929753126893771058464342655843340048492735108378801501274413264273386816124178096210173512869807230647744876517821872028028626479688376222282035580297216442614752707072542694484738098803913462917222981962370934577512221566825404329584711382562346991018391533687282449338980663268527962751010509422201730732863512306880647793191610001215935843248274957470693535826269075439020953938227339649323902424956503929975805954698455495027827017813404930996050133680045843266717336037022952672270405743414053271739837552251554956559879829959843954712063040819415580420164892638261405483494190954955063944489126160223403513270792272252537163731558172853059426503705642585023713862992896717563534301571951303947727959477695926282597239270331493823610708925538940573969508725968705634186381039398920292819038713253057858643361976499243212542070454962599435860527747861093627933369759870464198631068243204383433855122850134333284462864230010402482978948090427438685019930355752731472626770712419178606207259667616113589202971353785495215349170329108080406377206426980332861305498288681187643190282115379348435126902518817186508949626596362016045605532183603179422929023640615380485531960390466782589236091158059437780793685579813276235791014774080610264968521364949058576260479255562975846784753248684507996503730724017145917630289809187277659784972158691125283472137330412544249361083947168714743812313177419248305354246445803415209016105151650253902346733662179999747987595835700917559361277235964873823383995552712266705649484133402830229606279599977883822893700105257011780075213023335804268772138713160507804068325621556468921183873261937197690691283829745784974866516337178689566121081848686700093869278039019299618887434450000069431192446159482479011553277493231963912392337442706965140056517028513914026819569930820746686729658272001403219196472209047654654440352777771039661605602844204257676361141508106371322522573805769695208520512396655454041734245075728210805665228390647230370484505783084818946588652332138519391341439530845428819375737985404179071108626982588390181612163385135765469372018867905441592653969482569408809203218225955964946366025447284714908815700392743052070974427494150367960960994639081759632486442972088007751939617646311387363709340051715854050190760334344594319286538933586152288482705329214165360094815992314888479772562446545864080610754782421571647979952691644233011214964044529199352150212014399513317059151846479569495978405690104733559172556361913213199726945369648281544833915158529958657260897066500626886462056203003289986193254264683541108104509201827384664282942794384841260641149913833630643834233250737819513394900662581304364181834566747510950652572573066581477646778534309378369886483514576356954332385707950383426114706932450080337771415194506345038794356951879756917920333886620010217456798357119063400244628959480973241902024649653868296487361902891241321303449633810336738276458591337801770471821080140412895317135614148156618666043243269375246171438379135618984977725749874893539853934623275549943364854264791082207999270303899536049659973598898254476142351369128547087942022930335384078270944422464895199265685457090685127560622582082470419243955832454464859450731294571669523025499769479307994867930410733742382305048471157734707805108494401549129679769506948132079659185426591120930790136225988991789986188752768516998414687918373627792282738942411971000628306652039747007023265946505463270000586355322601983291483783369859503213811978393999927440220653866843543105619153274485880254222891636342536640914798087274616337058661565162003851935419790071619866838673235573352729943293650943648202745362941763282754231271521286093522890373298743381046716244446927292110135432409203725603443612515651444129187360115775856173204669501418321777237574017661119122959434656433625963744685102608233361971576024265923049854847026952793810973344693505403970158518705579173223826896051437581197240952422460470591802784351918462628581994474691308126262844177463948270832152827329596943200500209356405946824082722281261483180360998645239422486897346057253563212169855872417105220013674124978359057809891348132045837899694571553259198487182200058297429471980274997386492856514866701388767111387215985822354269142207049352111854209573059423454804283574748633418153685301429565000918299978262463897549221686969446025820683584393532730567012410664333022600800551633031131720220513333425972073683214829018029512816405537396418544013944828700972960530792615767260439447559109423981061198729705659314541981183390299679987194274216694635043608813163424676987228034158050306515787854579941342285753378067323473163704501350626422221176531551024084656522728938465431031594029892599269121206976363388233796730666772358669102644493133281475725090361419341144585431286911442758638702416646543070081570818757901056897273495773114635911847130542580963800042230179738758792140251798493020003228786706975273496064733284050619838551020577288971451530658747089274923113809648049763961865037015462732368594252664557501158918195377789940291321360828599689804452074635709850031331174148290522430918917191028633578124079435587052427044184999404941505333495482044049417962863798802563353633248941139982442088191614785122397432384461406596824152134725159529032999972677295773548771156674039067959536417864246409680823275200555144366894901719466275820360480620557107875565500085983894470390845779157947837492795160722437469769205021042024668329439408830929310916116876470180869526367821264905579331120921814901429507052891647423352883847118224409479942955795913861696434333184969234925757245219343600204828952706202685826630203722921008743467985266331167736567250246707089409066340096844714062799942534856773109740026644142586193837056930240926535402472864237851014981529610441942890123488844174226925227826941118644725020240663269821377563007386522340907962418874944980904186439838478009715498695175590343908214280994128165640216077879690864677174028354615322049439254670650136685515767618839099979911323952708329136532386148405652921201219593644834046805145817522253544364127671718430176914514713857571411725455217631052612601557363824601737153827237610507932574796701979931935270531125791997995095987146390441571624141412854177987682256778812221626101090138914462535314161368818298235837311669967576948803942365995065838388118295978748595472775228406783356623002834267705274578823817310694282487527082246132833910035006735791960748203422932415737716888315078658921486910642669232984039852320334138202029041338044710018944583758986914079523257272630758145275067449008345494358403855421727246181229677643660415121345445168535591043765311935938266709064140516398228392334139934405452275610150327781930840210931752045266695619103722100593260215399922931338006317134338829766177769695968086010807558655740442095624341769985188868719470615394894319410672360708350206242432878493996915117032662702541597845403972082358668977547312874424010003309443871188797804179041678044542509801255356512625571675376726756956928668918379386216333572418889751772777964462340553695049784627017742018549193678299291751467159023209451929011751510117800485388280357538059258637101217727252797430193653558324359925902561930019259576668128046974868915946873207816803301409974713613834625841471624454624105625491659467468182650269052046439883618497955314893668677253209638382017416752136344321759133942548979310394076937947698595498364685424394476936111602562936812697251224690680519495767032630663762100487179023764950642535221803215987832911234962438723516070807950202387415335854940309530492859623674408298394400808323039638223600128568177818377012463153161702541337847728248167145490988861344929526633450665288862316397486821752476545471306072862023275191824433437374783369796070715836254289779513123587913498364961353813008915013589024127894549781324214585741336434829344623916250233034969912986028519202871295343611777157543706144778655931078187413720225187742699555304688828456175102586486260869447134865522932033526717262406002460875641535560267991040501003446732473077017436666185013487259752630614257185257328638073539928182115009850085507117917208789373672948469935250312420386034835325875759970182981065868699418991345909969658659082687035377895321681394107648649410736203479394905636094792111920257602370320156099129063339632462708705226805789403891680236329437171445000342725154898697517582174351853718059126798128544043759568264085847413478842137305763283318709356818432536528636604631237575683589436501908931043858047324719737835830315566475871628521532370616577938633999884165440064353088560578042468164824503183394671664722386967775230320548340594278868616919882107889392062825830967296299129411045654025898984601474079756617077485074553292754944891366896160180313191520881256486055304686807764584269354247739378147910131628650260935845047991042011996440564257779717591877456561858382617730265237437526536013406359293723244959416343985658649761032720734934907186389350343059644845279508224171771665685668760940270564915037373140256576476800787327899539057383130412498811029061587860850025548513756374983110588631012897246900024283979638143803143353226455544065441720579488643724512030045272383653524541539920791757608686858118654550423809443084622263678657406259322667554084489233757179955964443688021137572774949403835006481194364072973936552523841423580183350610535346837528243993370043490661485608758908181766559256046076613820169526127520326451312190266654314273511928179537119198263093548111053874278123807236496340883941515501861710015266914929973656660273571745836264841985505870414331648672823204784002534046643424324223073201308727952981000947284735436404792643618648997220583309990540257852755732578564752285411318377772825148028041576787560792036277322179923695301454107613200843677327164843972392601603966528436791468277873320754174421730497939838102950013087255456540384942714983586889422791724931125376811031233224403019137660160868447759250851754343846306256375374280234711773370608743702899010279214685172260820118697376348707910554019613658844757115704846837553034099148549751536536792053279070669623276136678672394914979956419870744771672855348893646770199459951213610020181199104472773485082984094187250823234054837487586191735260267956588402015236156472366821549669088152631875174106977568524159447149559296753799399885050970544447800663623584211169170640097921921204753553922086449536938768623151362039515547695967774548349217873171193515713693762181346071121011745384502489788157615893686085394148470971336481072231241887075903862926006567797454387429160415248148973300974258200409732469190940002095902104910153446326387582918732676816058415010625555333257009473281112186941295112523582529760343085285409677197011521560117017790631041009215968964883155246427331126398432270586089693875514572965244104454233809236820815058254701117768598930584756659005055701013689047395766066265001410646823274662690386234700298672371790044249035853319567171631625949933866254160311318934359858324430636470113631876786708443252282797365252314582348729347008299036751753889938048911366941730335259717145629038342271009918524893729054286747883452107407740671064465722550265104498052807043124081986116559517492205418134938483902645924474343928082877865804576092228456177379469032842509832891427217005640239259750102461104488714424731493144622840711897131042721678989705064337514368647402118601049598991199266255027013234289039280655816835538189280769580245161389827492950037242312824130910480409965083655475311885767165642454088381259477906167818088620851339111291903097146526555300867122317050435188503538009552052662614576437125595378014763604320564818555661187650679669208030325607429338658562040468271785212838731882189642035594451054885088875489331444704384486229967095538844534024700253233535085589478577349932403285738760731100847152062831782136167554537300461771635434546371536473743633260045919759735250699443405675034819757078252716343036503375606801887831243216541135087518953668033364452586470541626757585461850841693208901602797070074763994912478665258131533557688460950153113868295735979866094696350307585475560185217468662788844033041408619529891016180428106082388353187042446759716496372189726005305809045195182383994104238343482983268823190296823340277546021886429120756116410047308160346736968609548903875621836003708319834040709313126503295643646801272379958914491664269153617428278252671164343295012348002918477176333653642760840722348875882259700017744119529198173845023766764866681350360518779348128772804024106322839401352989282381185012388998920321695420843323586727129437868564324474941210184515306149620731290711530797790704475764279502512784339025968435918653130963741083123340844511550333472675653597764459573467795585697521515441579340405464621352250042152948782443786775711717197900887105565850501970944955723823787341968512079472893420156681964065472025700330379647319156180635999692755477406678214065513523548191252358323750372942697168245711908041929687268234324967793132264376540339034222006171663208190627888978582549452263196988869447322059475310527722108523359700424787786389036015512993611151913509724311199660579311632776333270867256277278512098468318229731943258984423350674483548349066464594902326613903474524354362317711968275528924735446730447376379299013195801871547219344372063213948360552843096409831487469402218990968238229345522914206237581554447132525392827186595072805428013116379345368783433002823067980062530560527271666692232211692136362724031337937808182907928063912170264035834231963924028982268247086065110750852774107678832125224076165804377070487262238563968585981399494536052500605529370354538850245882690574109105816638712794354391762356683688767553816056469440438818462642529170121357994475824118457000528719692839901335995870817477420480089066042425449009051986278027301999803454559104447946571935583987464286962472497135527946731431671694497626343738893765842980139502646326110175718953317834814684259141970846837059893179579779809682690302134717524337198758381072159325198175652519735942370932429835733814310303861115051805157636583777256581465271776930995502917951632787846346890548336286821714131052291306029299405406114321736172756143747696889742916687679638522120728927532406706457760030565594287522501685269365994698214871423054820441406100687397431160548757118488086530953275940244920889603474301374579849621514973848463370522874766934941331951430759599013960901425577293998721828081473608632123881425044700730317835012478623022872864055846932915369876870754194283432653384959917854948247083637085478011672074788056603739106698645640567195809439067302164721071115321152622673950410195311768208263659793506997257853377876694870463287869437499640320557514343236918701452187026978330340863234255137583013123770630181965344289006344170131690429734936640388147338510242799062943846639848935774141593079865934874409149666658205492094260118967074062406209298969268393843239454358674125453522459381616851501543340255816477298750204000014048419983235255522816359223985010273782774406870267584432456246325133075711653423486804718469976716690139071536138938455877853340870073983393684911966837593423492611531363990436384043073875377387278434763321493068962448853010661559635946356256131533551583256310267628331044553935628077182995796242447211419739624090766716467615515657024341104600088326019667427407113919062797055946016966193691412157365157028974204486056363503985996533306038064782152663943923874096679279302191953072140447498055963607337987917084161435825642642450614530522640777581406405398511932762298243566725249407675885453909281684650923331915623741154785672183997490480412468182663669174865803701457813945105295822544825553905314293236512744169481031911019670506739670781782667895996659862445729798818329126358266387883732017790790893119998533824684184742288037300100773845612906208310445465171072276336033009562315069080598333055812216872668450680723273355562379296702641499837344472425141891686787626218372428270300969007937009677409789116154892790279385282133760039062414820463116189450990612138384596503977164362302504871248525911703132860741728073687914809563554420160996929550788427684543832421771242739080512667208424782112661006594768606559570311293319526006260173107910678050456954756338305655998722225247617518756955790499745348834494590081650048998593164396248211673848600348815862035633988539599396189289959001527206695662315401548125996065659256928325605141679678506683546609964515924945954315474005862954026494955533703397567838662502401774462263197664874700986072376580413397226985063556812349756905832691748089916369233606719389190556981548994805715211823024793982318930108845263966794408059988071346451396910214769871506206787021784752997915662189532824595147610994730856772105165372956987987547864846663624640149511618709711677786572289019281461327265110259664406434611459220410241092395043815209659901557669205552891580309961130938764853906728098258131233750103280093078244540862714979122983115903993824755252090618445454239664620055162206122587779598823060445992572523864115035117728436658430142269215552460820527304659081746500633681974674675063163886038601420648490841942020315458426928285992333791327575445625228021234778121543894019634013362794018126834261032092299204511827506519011062684548909374772322408550346652521874589455536174821042017685363823707457013958546018650536442308181332682111124681088854547214165943015297702449601398182420384460217423976135537411046518053666087506102810182277595619161760989965306573821684670451935136407268025252705560414472572579204706136674395501562830537344765571942752266264726502267637847831700950089586731227089174638171518850048436580062599055824430026942515214576634587964411303952528828139019165144783974403689324920457562083462082628835324304982708242018907485390481593162627706277318364613989065773218657087109351247302557299572604308408633318350885311014012763177259397554741724972330135361987173231032966089062737446917701412509230487505738254753258104994844721560903843335371784141543335641016974438992705541710262914123114593844501400294063249423805588500700694097825940333330713787703647950866283144029884912274806345182384339896354510375763030787391551254499399185637741924380549708399085350624396107180765663232474819652609641014060188514155321523674728668551863249542392352417968083790815845334520749567580913237900926592419615181858326842627268978058282036691228133183311511165147404245967617868518714482213995165281417002072869043219082231647456025535437975829249510925054858206623357115145825261550456255895895525526629071257734646489447671762316864759565761752134533400762589306214930287445438834620486167976036501620826397319360066311811307937768438811147856914791153827514600801345312501927338048043690311378497759581806369523048670779218651319985973365276049002997472002899234666688250542328066396584439890079540056863707539203100055448834653941406358274524370864133876818517061217682824813414553908822020869913360698366903019421417435832764670483463679113481998242389700628377042888612384501400017270427068855573841051085188630802602550677765254908220152538601686121008017627281784053684526556622680454963592226177993807262183366327424317632899347417067208770725359187493002597582804890367838375687976438951641999040106037553854234744466188570423656270067260056412418269065749341906197513806913139645221267228238755889669996724745109989455514472395013387223990763369166549990043616917769046129212989804473773586866248888889663398288390325129321638009069741959908583774091221998761756441753398028748951607006250380500524570996378671275991523057315214391971260422497744787358686409163668326044970207628875331214394276323192825694608884793929060472283588431180203931930116228382938109152920759096201657416644900494683659667209963883107855062175562422927848018718476212525223223541892568556691819924435798785071819711390659686177950568008787151412854143843082938288496928420305382333036297691200508039706240066165998087961812775530336215289651415958647919181796127995613377985358562105093283171634625387653536112818198568551780080461633470828670964791138665995702269618099521121130767494545070645217397747153113219578253275643518812710582077288425860336541251410871852499346376915644062663464649150513123842071262712467781386550215262527917670246723221546376861868910913595704057117145887102379225708773076685162281154086815704308950547558788650854112760247925002835266887332807872472997602863955251951239680277745354296576580995723324621700916016027093042151916974371892745493216277728379306774921672791060691971716874457611563330967191066266470929604836541809991666677544122263390591816817387738450972451597129320429854780848180639917774415058314602422924471249643031061061067341567045825559739903244593061520170691011844933330919806924008182834112097130605825168861742082015851359206070337112624965864087220464175997846127015454632127333338019211457622003086481310653869281981152629796072480893294317683285786935789651153825785725010256256358160432189296814000664723809273934305227715470227967512569716874107372488398993879956475524946985984665402069532405927922205056387657069394708894649254978124187392836918412654275826302496348331162186173438284464483088413418274736808046074964102992611433335716895946148491477088945399414718385291735092184225049931377426504462806886575788379767406155459091782403239857856511506966374680729874463199773659193568006180747051125400924688883574826344119682453037044533686874177697720159968929223741406483442216509542966378409740505465448400899335721805458469470472843374204685320432128609301705190687282134229635503137298842196853341393006843914585138348592371968478172824452542777871012617263704662392442958104036172121506834176790859811905510696579709095616309114153018344237576205767084038936470982275328471158578121835046316047117441732805367255074386288638032175641639094468082915869317921379094926935349253634894328232491520510510723495146300664913029316695273676842796495417097252220791680475129362615658464108909535520499206286657057196098378093343230712091765212033389010531945944047045071191489726827308372406907569848977002160208724740316335518429057918433343181475218349132271778784501332834761888772976095555005215375185047711446221224188335382214087510533557011008986769344660054681827633543259996774188599137934179776886662728477492025928429717749695688386800106932791096818198957863409358720587469659949200655022412425513132350376110573017176763316426186175153941565890859652998088719176305724874151852359665036947062925107336437547166247716548742775993924718480012558123257698689579099801236228339279719223652691585486088517534391172340682225026921727521866140445724292870422362012521844524811640128561579087038078005695709578910073930920305624296745347340297170709735617910504030981391089607957882907596668516031328860996801404380176680815752849798537576540729956683972455950407506461368780059964869634239864021351538629668242141992142173183753708789987882606442425052234265242745623573542777602952070587468939525603171981757380919902657270821464987417733741322992321692840141026790892235566009768144534873862063933453603065317240871184915891399061396916502764562515433620993417907917340487787998056322800347647912984326870065326177802313506573424417768484703749500055331448365174054706010989240668593202705019102676471073592817888909379103196766503412038996960867276863210207863243712145991803748890484101535970205109255137848893022247033358874754989227941186774605415194651653471099330783217761428957771432953074764210482825331588575466169553039384158374773209702424595063871101028727050231167348703383597039045899996590540505561219788290487766010448791458530415323494553649417313009379721903530883691189652557709792911813167148091222354765873781777463466031507206374968651019005776210210600446952851817942226047699849063502074274825248398605729772769481922536236646654905618512027273669682206371682223890818838201458069105544210630173743732556857805617506613936096496528525793081626033161494815318431374383273014954607951396137219246683228608322231442148402944099493879142560399709356526324878604260627934706838682639004122562552333608627300853081383168196117231592513335607958606147445093816752458111043160096838217962868765403084084578503371120078197615090509208512718531930790768764497794497081389399698761743558577318078608701093393362286217049890199481790538435323131354653959119715912401110261176243128380361031744531116339840211112677322184381940949379666718195447603684807574588323433332441907827426116411565432715850420949537066465883831309226379264174554600961759257944099557884539395016536169534250408517081581978923712237301368698527359106903853841644499918692410277154607019793983369993312813715865818055860011545709461797839470854725777314877045231803369960313560216244204174657871491397582479635779914973665424442763647281867859459564225761697158331080478165664389169260298685471722755928914402110659484827603996172144428958114369927114588970174889740562633711577282007875459977219205295977233064363258632652863661936191826723551366910250906370524023180628942180714183050766989795643298609298351270949893057959677575224637084011782022025262962636869053172132580837898867816010057578408423973282038619626906409204722093161734026901246146556792067086307195658350153182741182932410450220829592937519670121218863443299649055626515785225085857411379868402061293902191485726980090888248715149542966082233051327752640922337826560579820711566999400569419635853407856961530549433809122605848516705885615227772255804348225984127145760574221069020082673589020776496645821400271809216096895975647826641613222804837583755976221198596020509617466338483111417780740502604560356224232360907622558566423587617785425486894526065393603482843522191541664961666922737161380282739955096060275831478865722493143122563943450409684038597690794439100619355063654611039364888994478204373189217692283739698887205927327238455948646510699195917411982082779869862470324731003308845798469328905502197472162601375523060998799240918709515902003273995388558507372339836720985506168920135859612481388498327656653755899879986157249823535409300295599015105894939640598161294882580669096258993404925656181228463991416157270860414293015660329533560555807084012871416896783332098519380473803340282012518378871109489843676465457630912873733568632053003422235880553644222312947558840375848552361193764599401089016300934134083558250561268462599078208523571148429299376326760129701826867950040394966822435994172268151957798799934910366863089038045122758968684549837845882634799208477266527807724440608895387194025665062881794977316743343863038091591364120166768832843470815689435957132365326444059676581634363465704096102267326734303983231886055568986102736604808903366531776334157973420184811070151308385479498430754981973280227600120939009874834916438116981393087962377195348457802819278288872099040584899516392239081205987066690289908707337844801727962820730923020355927582860250052441030807378783510009573294887106914486616867063742187370513565135876705112442967078078067718144679371592946259004183571135804747318030546266486279220802870445683586053606205266131963865208028299365068863369586263612110414382033907514890563249201906806777782792368184539199866723274556842404266519992524108206362796281061682181739320917291179858301946985596869894073663115399018896694571585585725154796867743683730906457508221613376808993607626061854895554240388009198725585339502454889834292410323216050590484306065467016976223687445167384888520892922423469442089799301909944851945934213560274125215822178113114652576093760187951902499195044313839376442154902196709645962493712151500417668327485106248807535780200255567456505632644668273596391867151632587697389529144979604287007605330691635375397400039190481415778196513406938635874159603997447391259886067055785775668255153304485480096340513830740913054327320862172664745604124280257733092669373933192438956532694709194323688661455518680070098546636884978681027250732320439857961125306924161494914393822757479541389735547246479460253946384824194794681986121678215476317772518873902212494669501966188827917827823375857678507257167229268779453123420508959528590366825211555235200700868639343400208901182095141016939020623748357930070407150563712149203472775937337020493579157907661645879148810468558695659318046011170743710912959573541575386355885907376066944350461649183012885743114166124370255665078075900251302984051106231286449487614353875327270051179289893767575854489607174436609266700928292811369351849517862279297323174939841227350023249462383157038189981195206765068832557861953630932830098103094360776937459717195162578795831546600962286832219752072401669765242288908664509348990606045707788470054734293456338278106159106417141097139140590095091624071028577611861761818997090508232446410057357470838945884572689400784957900628246527105195354918417466688229650334710191787255997875007406119337904525604042118180375603335264290680303234024155504250376216025038182302397309541529737286919446025939391606726143669130627282006533358222099409927929522478396480028989074422931792478714624439696132363142300875250897883364153887185403668654245864025444537291498081081725428382660054401629340117061183022613647328293484840246338567130699744988615349870719318888656244261521500520586021315341720642874379091988757640097793539992520694438455255071994537213256471028461233167232162634949949945644368843977384297232346534711264900372188733017043220651172343435244418114191979536438986253409470042237184097561128367960039486925413081799922150341684782686228064897174677757421938971891736927043845044606948913194245302589156237532272654963316124945339412818125077133254296906059839230337674605630383417248238622449788640943524195715671325394533194633909485208182168230500972775356187456512251582017814266114905639891371564051637820548635243288766849091133811586800419398051772392751248076085102567133288041844243190218705830359635121313790781521078982416511647982387991216743712505719181051780879405109600635122082940279304146565842337178864623863904769587624074668527320615592874659183435611187191026513299830497135592907118348750715370466498157248340333639496888870563720396681941347023020901845563697646121174555255520830982858323140046610929382431764181560740603402871360473463000104961503994882243278831024236857483445428452754588847501525005836413186742198962470520293643973359114301669868858870374936584645614641842340710067055251633614006318349007750609034976737449993900109168469372803385488406175328841468618660812413699205814330489446127897810051633104991843842238084991805356763747514135602930875188771229668654641067423973270553041867877040414461388235372926387614068126502507149991245931741698968026318971833630495680663433372802881750371464668308329317705145718249299400030542647739759094899682146981995313676569607344079482733104641378200510094152539724143711652232021708920340517129555067079600577582630109530440442542860560390164479736946650752071388018060561332864311258187792111835005678385133005496318339234053758402071845295246788861705070074573448063698950917087770436116047411884764688880856162136332411680434846560937674365232584661867421689608260224312314247674008588190358259908942174209867491345952061388161533265071470027272988778419296791877059992427011757338821619991744788702152526165022267198219968548179367479443608757964101220019321557190237184126170019887314498863075963011113856516092292246912890881953928057144186460335524492022957808944723680543649432727027944396155194407391237755679659331317324308061782700456880383539330195085376450342887267131571539913174802825332684853449991966862608955414652280968745944345212320723416213734128164929823824022081879530626048477259450412870606288593180318740314249913373344781897043803724205539903120707638752621718303016314334813147308157340701633785955596992374887118096089712737671678730305598937780297012319657938677980938545401967350537125299677172887483266170754870111002614518833873117563358868297476127470040518083066793607008790636420514215880596124514839899475923725458975128364833532484923894286761146098267807946616603752911223280780908203500592942669144115118746775713744937661857654517614461040389969632705203954475965179826657860008516338898937645772112608563446190629965480968857925579087666874813660674953715444651464808862596209944504847971113501988736024698364850777059021248254364735137333874335298608723743351813451623523156371359100513120407432779927141591582150659638412440856337434873561253733016588608053244200652878173578789868753428656424071210810283110546532713033757771863713266291271165827868457875431073420712772302641300361478019514841645354048273362225972839552117653970563542074626173719826307838120353001388099204199016581697195804185581107677292183598041844110199403604829085156621926588210991342495132570152813296630900366337130052850286058864947935974710727622083958273317248561252694989005342734024407513216488220712764353579866698401028283495090484672491280153264863370024432194471213880445307668654850448371429080029082571244561179007147195442601471750280811104914784761138483982714478299230290486956242581387742555400404874193601060978712041292878721178422955494829468897226671424108880800638225224299489321069791814747953306934426526419415381133999088650797364937676393575790312357932763668999362988317694258689948231865286695028473826575634284052248164290006615790031932287557832626460359794137795793879320555005771975386729121381958809841242374332371085068126105971842537690749250923422672528818949791987197136459195172227527213747647418753303135673423312169829801163405833149499884898197309501811676352171087133566097324366973705595041987871520138979662578153079168224036257458744614320270930714937038893406158168834820445985628984273911265750200965524105230518445815053292018072024919627395875096270442816570596202018075010541506088732667923142165847836523964874198158849426093580372679345309041064473883125233291654553828087132874305600981595510352687585186514810164448101373091317920787124451700316663726453091838457464754266737454904738049555305011581491290413161539102715701301323348183868744146768327509394563781227403716019988793431435186751229011828974672709527955646751302040968461584875441628921395311025306573998090819903422806415393241717464755499715499624607618560556689882699079998721456329201209313136967346410675012229516114714051718366391470794600909020133543029688149819298973752426138058575643594035151516246127285641223244121406522618232380669154804027603189756691364463876766914247872698188083128733935526802312221766181479124250013460858021788106962568225277627641167839632428118882121525289322850139182112767200746443961576467377794773603460519545993735036739701563964478977132744561633519120762688702088537278017173258243376227542930448498490064764027305422294123785948505601531603446366798557059223497564738295825483629453924010995755690720267885017612805611862633786497412539491486660480987106692539166720894547345798337608554375307830178901483837999314253059652634952546544731181574108141079583479034202141963937634587771809530575960191367783602318981772065872462658628903853592242477607937237216006751581298264697352631600953457582140814189648664472437698486061665701539121502796961244507240120768886002192136633238802647945033818721669751557673209665401997003247383611683505140323544679624069649926855107423357609570084921173915463616571007524357738585394290964294367301260772346028374796198846801581539548402498098966925459463450405215274397487438214362822977320843071524157986802930507859739500225212351301580350130695047196640726271888815231611984368218444714178524957213135451213789219126625391211698655229909736279067144064480364229593404894682966336944030894007981355122848564976285075931046800329129044503591864077444225388676870818186581927456222566427169674127784645822878217903240855431987011033720337963425801340929318853963084368231663363932538921410376799099950051656218398149873977453494173700340848915771626044750016320488514306778264667422083124331432764396193932472006682841946936723474604977587775472711240627732388229055385208963265198255788784726926400970445069603186567939711320517955771133757660578931214922368576705808657004829516126149135276927131231286939524494199357096192972065454270154861225614085666005848525736679706133637458223623299346773059817733936709809639847575262097460411438995982667075044460792336533033658077116369208738317685293605927201051503877495230604333822457694987951293551053868418209085740747869743489845052656499323362643286934908484708800480524627503886545311604135557186358638746997492675754511235968333553635726835683543177248828667113730313504862416049223888222683965425629527473908049934820818233476766844643994315783591576709566684164932508701189467550455050090268850973628450026136807844904506865368338264405047054060621369470082073368581104248692758538002149601713237261583341368743403186153692764742104965725282182841965261974178891601128178501928535012474140195467886793806753974181199160328669394554505723491695116472471017862380785121515433290009221669411314312153701179643738831937958308676574882865798292364755725685397744330136762980490174482828540046395577165524054593321228759529169003795190784044761217372851223135859475201357781637250281062934518198742460156590083827981390970589652932278146251504097997505770864595192174796941792864726378674968170015456385104485165111354981867908243772668091208287544053311556969807761391916862445140186328379135065324609249345099692432870018437218829833196484274887648316421406043510592133642682423695946051341510814007954124354206118204353175958671491708966944782374098964526194564534956734887408202744131232352335640661895809083719058279872236766018272591088522016192492282018748802527266968211498553822539048732738171876430307968481532420818005197726296805371311935331206711820824078843892550854842588695586913838215372226471259950601928470398005176979753903151142350385593130210028212836227201505603441999412678752554479043203483410218424484254199225196277966525767521691221081469491551930095686051437672624751608927988844666260559372662587702483980697484013980739053764181147214782276318876678444540352266774253335681770372838208690455313190931520049555968693146178992732883483855455124959137378736198509717440957403103590142686916977028957692236232944075000610314495608635833102676374516193218128238137849647109142553052832274808279368802158116937221882699193145306615431105397766855753816841714821434871729604575482516351875063283153128738737191317875865327305076625881125226217875506497379337673050986377301927602144048965407136727021028160557568592485565546162794586302075671028941442602372198740320592958327522804434414477041111501407093756140046234054476909957376788652863368717756444088710452903014300687964166264864047866232484594518174984859047635750784395924556639829272993324700675173788257033923326184633949731728013043484222901784633919428932645334332559084863953772745626407127602628583050958781580782849376037115736812136403179487553155725235360659047743574962848523809096699350353913663090314339692912128523299679971842139455116986329248699840105749039452748032356693179704498107303666533359223614073357471515677173874913631398946012394778070072303132889658029428109010545072067406223646487020553295825124360195367050704183824025637647100774772735633817894363449422061296843184925485683883785498965563522391355221903140113077768609560309613180037378083339475262040924159331992653383869193345646453922143984314734072061831964130816023049581926235257527802379814177131739899003925434230734526726372126189382160420074441761029046729937378949396874218692285140042445328580587260749373598825175155141229392564587760715836055725360660233421424548588518766122526436721700274716443712325274762053703277101935767350564116197883366813028874280941823967271620952760185257201489083658524622859673384322511384885759110317954814158086610093637877105305136656256108247223272756938881803934638122345085391519593652617961320954120674750637293987572276633995309803266714447287981263875942872342120856119518446772645477268827960275883264748283960015962959914332734212367321946099324521068492337714973081568418426171448825744491203837634442352161586212778748509505424109052212796944708746974867389599424466516379669048683430605568345313424653768255041759173035395864347275140196824263792694314945318050553774720127914581664990615003996410557780928661465624716029702983848683038106284617922935161116199142107510931964562957857575188524055580805132084241461055694752964130311904514653435854017934374071375106055099948230514364630834501645408290053600974895982033298165336034578701039208890398087763668016517917330718052325912621964386370720676848021991145927211267279272768555011501018317946763841972890411728763867146897749038528876823958179383947179934858813712779629852218271223143620121029961347116166994297347014556107120250628314267664919169204403423012685313631184128231212050057459241069705839967056584315656494472682722171957669766639377158047114577801867058986424265097452406182627567551399646513137906084578194104175624910946511497373195481553643521451868792338465608942475983499003080172051021556572328913277074072808848793967829098819438773948669677133775968938245427047439264337557357425773894853417228966517782945777521421730956265120465502798574920475459654674498740091528470222731491353440859039279875039453532841626688545267391037940944293564257007451385239958337388097713488154058002333068227952680023687230554613988076509104078845571135075996445637013604292489136628602408162403661959748515580866146848728899886954522734500629470268859401114294495488779873407849545871447293636402865527209012914153080429237149309440379867709708683902792642009030753112662327397394346799370602271700132636352036298531189138298672629120528556453428895338140529697920583395059469364327615247486184876257294610767696009953149419239655031859884663112497494527679406509563500422875545209623180211093513280817202008638241514472932114284645302771069585214474576713718810335727314008620346547160879002041995407094197369848450364277855406648867880246597920534550431890396408842569427990401765076224290859006650488556384409234842471895160597302183242043211290171021942697595875438400536930244887664049062203084971575781213090021197730851698511234467529817494424460511085229488146774461168651112074823802492881230404823942631882035610560702362049403442950904522974950035848526831659602811269094869789499307457928541498962260479199663306550680228937139688031044342249021831911932720469882567066970050263056095827195003878989302459788511261029016253915209050503719390813866476252225702575197310645046943012707413939746933205749679608768908168593895590277550963024637599956811843141218160540314232618514926666939057972187165880619154183637400457150620749678262102903141526006475098512450790894396285737714861254082809860265021219457894717267507220913047190588374505772851243001324955673145381465043794565361416666008323922760254297256274429711268729687825648693873935406073213437050710886566514634812958498849386262414862346128891183876767359181888030101760949982957969561959000095514045245603265669115483583990560169970159692283255209126240014286264976343564704505167895624343212601918565759387644130554496334655855550451183215255084375041618413057566963919399970789602281565400907596137484296603456551091427800580742100537021929782599420860242504563518012211320571878831301972742334332969507040954785495304925092262957817704235844852492816719785859400051865238467464718602125705755547058019350408969604305968016758031993565209043834446358912488957520789130928365755714066229457608622037460451195626988341002467420391414408010387330003712975600517819697963975241498644108397178704449226154297027340852574523626963949992149525499045383143483683008897788567562386126050986359441599629876897613730989889489697665012581000916909821144864142823793977516889819179054909465604944221466261165093973192127598115680273276794450002690509825716829922635113270386392953587794292209111148209680751489992593237843693426427796416220601949289782825872000875211817456132241697309548572397813039205102741013332365776487221885855236330928117072449524525618016005833757990035144534859336010444611346571523974890430003993295529825746586270012262096179064766505758581094114975660336092892111255801237674261284628766723149167309249950415911269111763114762940532901111150284326688096792359532461765869842348803316973416611003811354014917186657954463005707282061543344889373339348263907489055967571618284993359251193431362982529724084473767556010580875195596244007748046875539340918739620100351752083476738616614062613208216449102953588768417683425754582343073856825297071745246979600075664193520957388117790350247558482741087222929518230211188438944543064094612315696643073317612323726520768496193532782089498069004002395445816299521555972141542991299202107531237522366112009493593706888805957364683350789487817762273240640946601193149334063770682942556017159904782747467816945913659395281187112922483617212558298381150589218893615037352913543952934656051982433317494916794160832748044022486683639139482604599064341740585353461984895501359431576384260489596601609639143903052479062488982848564150758406538184233811033269187197050881751890013990309133663139092026853458255998110521873784767938096156942095596159244707356473567651739585380136583573562684408294740563427998303428784490215047159798932559183754733392046052716678679823816072971537802913986030032315050516227237705939995706628128185169784313585312543546677467681345906931595615609856879213024750823371251207955409826794235848839254640200628321875748214455303184775362793949750460696460896895543951826936492759769165690953631753136564400644365795277171753276780298613577857860060249974941823761881355478839500908340529115284719482180931677192448296084115199252578320443186160082793864655681191479531389778623833864444969853688466168176757700271490949242556886721559294422624736180643786617800389363716442080641651911109251711100321103116650734507003783161715773870729547539730669196958965982445698385509206814031579618708001296077241346860234830673850238777068607239829040733721822788974957530828883455695975767830271872071627597334947114094102882485631165139814393705410774823660170954752122111287238521113272393159793383781689906976199190523063245430203459370712071916085384046005408718596683302995816080501101614083301214609871367541738905708369268781890462547433147153621248422520575842628201441902146418091617947538947666635782868291899043428906092624764167367389880786310619390283938923686403339314860093028391568078232345675175153594068708570059626527197264723916954102765000608443020844095290741429151263895307890534047029562031644841780963381910817539587029061106446563917025522240901139080995175456052309535735217304536395684182315294926329685648376124992700670305776094715305795598842914217235683232094534718868786360044489916555960397293113419183663500042614576443650322667431902213612904502356644215362645165624229018276390758801057473794072689019801540115059869270868930146948754985592396117727112705769258218019631782521733308652589363578451506393627776186078810273773486799506072010109975306227720275125778936900297456180533149065621430316003197476026284907787641504440221164771844440025002118495797771794680839743912717455290497674621308652132680800156543541185445269519677326182546777365466401964199343947398279592502210484319094679893044223259435798253747646375119039390151062507323007938539915113825412244568919583078921198905321030900310887841890257973612854574368395137129739606350242123415037033064447493304163923937368012514972445784414337973424288790201829053129797531447517195934858471575201193060680487143534965021228244310440963409045695623908488575399067257940149488624548888529926573460095493183500432789149814753689846700056898348007953824023810475037758861196809290602078898439252644957054851304957803938017884645702497723424137851815386499653153434441880700841533619648031386143990101261726055199565543774080911273718201291400726120080929551205764459389141296640043422717946880218366767717633933418620725323541133823686641594704701876430983612298416636821911222942886953667641590886113179014683548133604028105906755609509239236211162806540287470255872799095708517118877781933230082904827802622766090132962208204604668819515648176465887420655051556710134948747073821273821890813786615957005766661054969186190525823212424998735138510185308455112099657441332607168845512570372432584552781890935226551162618910987255247543117211681399954617483648991203178644583374013021715661510544632875584144537143471690095308448573849724953702736156021222327991317166172868164042396763023633001741085912928215417786782585928804992906578574673634875743868037161693146806499224557860804449782842658795906542443078234228824702801703035222040713543724997448075399559223223213983313435181234630193921888766799600906443999320387978023851463005717063362427533524659210356903682376854704743121340462824717592170374686957765804079293601865156949216496676054998290667985248784933303454632469132766053214495055427351627954091262914163768463708400195354049460769386406451826593439814295547351204062269856113250675766626317973700289462206669706829067904265720651939629658511005719223201966422950765717824124635456180256622328098160217219947342559634319407925862212124223996959737610500097674578174015819409092804967468039948460748978868912549930356562602940329474774175837408611199927080040323796171877673440889987110542021590782015718559872282275284004061455748120213241883559572119604440495167200801866623426923394536000937934617577172913555207190103609557547303934720236991531660239344364709383276548581582017457430756092942731953989485120879075617509357236887410731313234478451297759562022255546315027098621550551460090449372727916848691365860611750972449151305869865927242742605154551579126088774468112336688466170172440962033604453200417518687561003745196587971062126240933976415336584148707830267869741435413617530252489394177186349411075556892166375309591540600368227114917987521183979650774264119930139352385283806808524608161221420929440557161361197008274494423082695164057217891901644922016675582801465817054595680199003653176883300565686191153788121702016277614192554342353444728829723377338005627317637490461369116226090342693244670181337080997825121366727760356333265829227302513983771894918669654463443909539834618759745978190771717511212225517808741433605060261250796858507283497170763195446478583099009707709820022468133974504036084322158172482667164591202980192143736995130124418465114715658146163801718862628770682682994226526413380709948407216256091396067147467620751420731839181087119381911501305121852665274403602567938322442896028465771715619653290968017864868317253142333471423090399235331739616561576815588569414075791902132128589846087249197669407901457000903746994068096755773301135646946694385809788286753440062409255401344229268801223048540952016098900349085641576317081561715924174453122031207762892132996292759553384201757258172626928225780904460285217690019323524313189545527561372488079736259252184326619744188358019868327007857237543681492224253506044188203655533477830377587204614746509265686771531407910133919992649046691345309660056406710305598859330648196377624503278054884820205501617995990822464174919580013678580751263162267410324653257048061789796172214646175837227764660367393045798344120592941374360156969911917943391187435966075037056488230659609338184052853605980854965479561319043387314158712068190799579971008026411438942539217176020216760343203342655874730811827545543415306269351643394538700189155786218035370112463447597754563283820286049712706293639134230795471399302693975382207556504255490271676137958651058445326656418828324709543409881484789347196039862722986301227653387486606470290079277271276059528667810705088856317793570365347711945791056665249286685211854110700190532179170396823560881699569475429553194874993508616789991603292763313753565071048977178021930488090577503146297000469554028933590984007486720703259446892135972159048468132768384557534661252183773175321005884475060108453596675164063768123939338517469028450416527981450412180378942136545653561034860558641776567213280434534333374279708756288081307473613032188591545512630490584867509907941654460362244667008454855294745811691747717904733279295808823368736901732217315385762353432011993251257749716889979939004220403200357154986776642674466628851397905759888238362212145262667279590570059068601488637456482477771322820198372747907182602015523004901811581537697535960407182117160308342816024535609990502688133441283097850042949351077374699507161229525695973587123461759562749828046098295797128898853354126866953173791403213720086255951790753688724453667435355272248171633334807488755273339757691114748579073810407624910435440284609539083779575151026462547613009397305284153757654338924987244443743957063879250028102138725690222002527049309320348405543651378177970926334685561059043184478328665837662320061898806288141194801867527681408168324605428922276227958021363500478862645933271348868719106939341166312132665849082087603677585825262568841882509786930176399460341127742094970546514904168441176347277794602541000834045207881506108113266517527432099950870634712154365270677225576090009666773298436845604798636650120657859898386462047991393531551955615509982109853292685356530183664518353453497193502813273581371407606302403425423554536571738032590999271734105112465951279405026518621237584789217762413277128539985441515686109537811646269824365444864977368344434746465174794595066836571671277225307231985033461504927761127408430311532627552203780335360607254696038517917703063208090004103260004245862972595552424114831769513784010062664404320068343807805407291157041605209979220233885659503081407128976463077636674086418344931240786880740899572970178618099103255383522613002667599818920862629900669580524102780715286079643454715738565051772681451366042167188610457664342209085127817886709796999723755107532217345070268398834159964612793265461787185333290046151963620775465319109666918083652152439164103116922736073792866844530610321902951738746543323824461963884019096870144539750888455816573461555385761088079471862790391743426606238864351905117609170407476767573692783485124354161639246079421294222231951544325552326649253014411427997110743686917452263384301161865675396518835226584165984054815497894657110967039184989351718970313641260747854405326498543690914039227700503191884393189178625441121993958242612896981900686748822366477102423396730468386305061257986536385790495845279541157462365551584610570685603248281793702103874197702919372778450152427793759609846202121337057724295339405265628372977357538833341558336024317014914080745716205079615585181893784417386488105098103835830537136849850841403763153917039433269608793914549977961878052899670386680652806452977156894873081547396949589862350739696618696823085940441643318645882841336943356897062777171129589609851742081043740270936322075663925872339354098013853245876743198594404837463449007125080357726927172280234410212483979286298010204395479027508278123077839475588425730456896192077901091242433593654746988684709053158701075005042199590176389043815944060098343060270384929573634994912680615078648058059393609591485772207871470865584396029216004947285072841748523367889128230674849820762805380544240592030890630416872003846871683095231075448427892964756944370580499385000152785082422418537253833305414054930148535569346174342021517927369387805384420269525044237595032340759447886312872955526914570023710841087832702518621464898607435087482202990255244019642046549547539063020264397806814284787686975992952533887419671016505962736383534690877182016687908726926148619114479368906826725857532511878750085486766329465141499714015235300584282720234994191747841581185575442426582586077980459016427211612040972689743852546165490642762623526259125192800409983801942841084134288927392063429175672419626733393436621609865205973292156692418780495361689978044969770641469437267829881618133807679795763649460642515915481553566543773375931186699939437455153688509598428151095769333795298904985648559238837860403207961796181717802553980155487691785287082354251315672700488518970092169800323245984222806247016838340299458995066144495749292620754197337468741501642317114233432778942794538114794051138468719742055353518591549109221372707454838991442812900818681865254662343923194218420378594968245968757132980804815167744175854463512857643038948498580381962265719454126457997962295580675944490096030128427594255522684798460764546713446137080150609026967092267210224413580587840126049625408416505682026550908614729805897173575073101281814984256399195394305651288217669452331102367962272762911549932450664297258006178110949761239151913191628763367493593093495485055286811587537779909589351074991671772791712382327927755782978361728550102139477308837187913332355622151282682487420663292357022394712739091944865550457438324643882277646999423656538654611558125708702097310849751428046142059918460350398226682367115507703457074009730532484837987350001171354821958087045859847111393216283594249063205068469360771807781733153683768174259544434092556093966158064687181313620567974629665794599875889914733983160283443527322344584494234017756302439949814544898109991229649964224132784425082907547788083191693019875726862558291006581255470349830279261925197465273046703154660916544577469091874237906775672893288329669058208539389835160296229137905967056546668603900202062801368632670081747715134301446244973584580918207080791959846338818456727712552100747301613175163793223059489587876408754403174588193356269532565434960035928540941712814223425165760369096515197009839293572236930429257856179930311303102946900169399751328657834132797068400748937913105552221938254893062813810441495723907078782288408688833732014442924004578958250619628531360265779109116077624661936103523409990162544270967802925570526894422749693079501888412565785852303365510489067552165242314583120705981357525580800866997022466496299666869671294455663129836951858247951719149716005670923499305917165576542965293616539116589813744316466631102790503161619059448054694767277889907118512643044458851539525839151962028242813722483636621112231073996607239343282493606500572136658292683067380772806574009914329286188694383519731752747587760892738291553109810480133210550721815301300871275704520556024249731645339098092881859124051083572772171019887147869125351879917466469816526165644363694722658467411110324112164109588962571272660770801245193729366210457502433060703092214078876135821761821877807472024055491190651181312633553469678911678459772826197184460252878653578172046480346582402446489777727064281834199251305493559410954148907326286876437089569497738747561219550186950422937588439132622098983800368333513101096070949472343063990427228060468288453756155338350127086804323467514179429869925203907013966688102628281486222636351691548664734373812550537005556920551114444771053436785866063694633341628893861355077649757656904045021102209457230081445553971425547528850521875100713333413647570757662430615251036827449268452557247275041225108289958344146899385197870034679414012062297995393607020691480351611630921615949044261389529218801763161809033056127450510129645412499244388523223712954166995986935929323172741669126604801820732846507961543262676445300448567378901262666075007499300946425606029734533605180349094897253913874934920230567152577498089697846203994560832870324070300929380537899166918137308286056413813393734360875982082055407805411912711914576730139822181400626334257073501393261520378485754174041586946533503667103824030475089115625833397925887246194579427984444130195691980668716833350325053019967109334858144053102925740590247696351537215795594850173408037997447775112508922003618920053665977155830970123133632313110344953127631279586152627282501714202564253493439071229215124882408682129313235409406281353286776336795600733763829700299738366289916441772788480093211753103391369803805594097764987028403584772453253979218164077188621518756284931168929205503758165466766518969182440185754649934881401121322781891383205686913034990269923501703394889891754058890399863302645849430039983730089734591726993691276072031385913383737958856281274078201664448471458736461985988573567718003586280326371998998779624057746761260115632278394474976937585377922615009728756577609508942970357450966474770795734191307516107166562988938382920587585554364601693392575758440501839521609495848443125308350972445825559028272315890638724509526630962137520634719485450318781017435543773450038373638792762087344585273793359009478750948409065909910265634448389287889791500534459122863499962021686163671537425464488598340728777031583624527037187714345749348805657289997835595955604321791116395927698884503495317440514013247751428126475354312879863036511382346628414455503428487666448605230983780997290717127143022400409635835453060648336885053640426768698388239901581971613040629578466466883916316291986259518805757299801961080159023406900961430101999387658681708734077159632478356769140204664541141929531293819198101903356512898265807503474223993728160036078916665370904536484107055566579979890556716770851916159603434402004344551621693540557692677915209095571065259750110284981499187475230544328175887146241405026424373184589744842116201737129492216860702987696765834458978679093549804861772245995769650061485540735057678981541644944472469043871285234845974100342340401643653487890942562713812120945450936621900234575732155980778092558664305780354200349226192932525990619631298530847239669287302342002726730526938224178696520650460353492792472718666309836327089731993220353847038565892518668127322097484402446707470844346321612816739149337684140737390347181099252079232548758195586468022493627931988993244384444873652409777334806351183822687175464515270708541876523188566630289994956732908295882732049720453208737485819662785741205930348730911637891887266020501382488959609304017867648800444168508314142306814892694788022882481358104658239592215640076971310633547512462053806201156282945303286543517413873561261003769420582472100767621773863382183878498406915200111037792311562804400808225869157355000316187056307817703443338745079244942382488332199880394856965555524914422947658806767703744873036982981082920599591553976022011400507059675167190209788299773036396546181227482803307714211937358714151925549836755345658442274211311292884567958378878387896749309412006995912317060504480251191985284374994208409333257533203423719083000906451080297266048654611795771094941574319969956444587893583596053075487916615026428806851537439049229995708389796623228350270514915589810211392449511423082107854032160421575417014127955983004056918338242543287084358550014106496519684653936062197939493247746296249530840885828727356045722019547183699939631734411380462684086581841640558741166998299024530254560683216632292831957397407950003214604452879682736799765670996509427470944794583083259977813287967662480295960244130647941677982911990626719129893469164143629039520386150291114734731968997142394176642196132498226213422653169068345831726596243497794755700851201014387776924898413912539890060944847133816274312846138809420766093859471706607913599035106311206456757178224777991928650561139540155148973860403354471173174428892843143906141629542194270759785407862623302466197367714016055701524844145577632486058473920207631585248705100988828407686239717154284094230463659677619519670065945687625536569686907479860779438237817783114984174905490026152310777064836334233233957451624948085864413939102403370896669840227237704314274064061297596326928473814987180152458294555602407353111594499387077103339223168158400418825458753899275161314981814142668196418424812021409031333208785945011425891117257551072703454024302939278397408015650821540443700977526757544504211947098324229075951527478207028850566305843276229404071962863413329323305687031871665809204693363706954204905987504793079419536435888291535614307251673248667206694381250835291546909797119654886443148077207045121014299812544209594167729691278536556997058422322315385489042730124460016868992701108814395299453890801389503123799085007536167749852350768820171244797799848676218928380233119152633533485696342217010284379029625022646281838916192605291136758019140942672305028496015293961541225317725952998784283100286808030153939640685173275851783471570449110985534868271607567117633642729773582246387009815904980393505142501866913487512077716570004559247227356437556522175107947261429434294659612630278731741425173487685634899799788184373102037652373326546166486403106953938090055808574932735044041215681499321358805214774370453758200375648111971200859928404813487851523745854424794895055176066847025480606986909998232754098579161925848989071601485269792594216883645331586833697598387193308459400120831681891628398832097492914252361771741334551001196701312013005491754632715009693478032961558530906547913140544875867050215424930595157690608086820432897782626165729891542753454046233267868167721231950443086512268686985583100744686451112849163118767612776720297048844704708111755219243372000333890449584678138627342426374752831465689432604377306913626946226754678669930287653850527686262230219555829770753987155652261995159071697697207974683033079811403685329941390698429071555724623162341485932990958805596870993123668792226313787880850473824264833877300280805477459009039134427013469972963340216851428232215409026932798311017959688962579555564192039344477691435652228978179835666139531145557277275565855109363638204297595142849598473128904897608243222665244340676389450450236994525849359367749326098559183101542155943970835851322184500308460011766338202356017286231975582831193712753813853988088005906706237090927183061788240803953393901740101062877622381895142117801774049366808566443757000742038772737546283203558212536362176873728802488058312765837558952808586326976634089483170741972139952542000512023712217892338196297066421974392972414100508562626771613746387500855680051352702516347151948311069857759623635134427783009932462344786966606781086641479317784411820669662263051603227653215768808212595485692988766648063190561006845930473814286255138191335130151850887362843021235999232127679598152213742883333253906775996619966803643029083658088695520240182971198039412025285072521560949747461519058798024460747895862766984392753748755810817544767205442877091903496434703437606587512068873878936333282684335794961800772378686405638236669560530193686022925818735543504307405469910773207184798677326404042640920412470257049109901892578747793273668050827476309520411649459388919977160350415436706174751769567085091061482405685324527572647283629085321533602002198738368997401276724736051793513441730157626465403176557404110107338413307392552973842697212753623620964695614778281952220762071728310022078678336018165429493769806325327093087604233536380612555467972307373103912297232551452513135759712514262851248211576917600890047596671706531567500823223124280679721205574585053032290782330164890976707534240310544821961717928282937531443806837511444787966619666394850562320157349029201322489481698670005648570874165122353945003411473219105031009578536745446267391549488937389294605421141100303948032632673437481030791866332994763986621285007482377431466528679813613590218960151998315489852877066824675424847254979114997778033344685507948597680401051898645335844492341787771851094098173880382978831591365365729919204435111843051356976328030165600393158069505783834329806240101226587100701603370702612465926476089986885219994531978686825804740561842829055622914853036057798748075397034635784488787149989782202372038931011046798885557769685365768555601531234615182269804542835476397305090396195729123399547571123993089812867986262429383279558279790894236432830681272690123717577799585774715131082641144495938204424806227992482079765960134744567102089890619960728130357058775349696840191075333501588842005502584865739274045657560676102501481040161718012782897751217452674250615872061099528651265717591620938070249631196562047943996727933680127804917397925966813519340407571672932615715922829675344202498738806495906873608757839578220070625382281762028621003097536142260098975185989127284993789393704039930854547890840154355555202113772126853823435734355171781609991539022287929485225493081132722858433796307423113035011588536873030144639062728128559186879381881608742415665411641224704374645850965701291608102391534209802674724705923884221252484446176210202292901786957577160958722120514306511105643486781839566262015287403815180973565946189956912073847726236400776193359354355327312733749177843417706832591106205858483929142004980850254124363054636966135411508428254437343106517721947447588913025993994499552893657432971643392455360209822746370266500336892353700424229025182639326797860091750083468595830650315796014283598554987341996857558600765236244742497950208050570198301177305312496717949754050915575367083046723032961607833132097225343875060860249310611314080548127275911026505931071536662653673271775509874003984688041703165422992795999717755710706383068447747495048772380466736414563817313636475174272536358777112488933591461734140907628787020347289563604601076560972092964035703873665131682957627371051990379653421273015182905039540635743122321014032641329952674989095298007677124095820803067202083038755083825054549451605638561633939604914785568345823724199151907382709599996329242208743626834757367357208539985624048308177069929636144151699052861541050191340686241612942500769576969523332155979902279313485423452353720693101010064933733280242841621146318353172500640325310575979391300292731740032874260729824337185718189443738760484947490405815224583607922217065123043220444738706593333263097504140331373021087791029694253715629448075894470134886211846545267439385217783490944437682524160389069329892943748722721729139158797823749101028846431452948935711574618140034462502675926726298180485712008596957808043454350594842748985387944075308830064889428437538060284325729266201987441264464736748454272345423248604282039985384078982266309444212255201953373293459758642895101200429199282920811589099622318280557878671339849780023636373460088749220464168852255640726743883887438098838101246536180560624440658085403420742242533050885578226193574912232099174778314489095342059603616247049164609544021505844088308360423735414787288552031204326233049967282760905594041246433253762910688211608052602279928610624276271234661097768017620036231673722716079841714646040519650761808158403022075159346333977488584980884202334969878504149132577792370068899890767529525834002890797060544081906183720704948744825145711536284811903533594748915998681981774782092494554158649538116160823167490115215195962452021225616807495917953030835174450198312640742274441321377307027002199957335335718086400832681067590857183345908550680407789207977846428508767657599612142994568771995397976021772543776478384987937330185975801061217702582858089642098762814265677697298137647345872578133694597591692260141205435112653031141258911785292417326430759812663420076275153585105071130617963229921416950596392196191503910648896802896119179430741004171218716750164558610562996182571656603811346508258965169005761210073564857877983978824283640551947882591517091604988931868075195543961074542744712833520183077679942715760004419132403955781878947536814082445807285152329683946446434147951845739046360479801870226713282548118797950045031559468687305032770499639255505396068179859190929245287557824255240500381645651112505405580599988363400330795368246870269759717991936935550753736426388824077460035404723877472631083200633719314301184403481925584859600998234079444320029052655856596741904900002111475812189213614146240547113464171114303169909230296961541255976852472288352015373530560239077534833204196016392575994477905430793328455726117956570853456860601921757382662758968745291367052364091948175495448921046177338638873963421864909556330354722395702880733938552024386057270402444138720129550068391317402723112775001732441225174385255619232019241027005646507828991014489889234252708846883497786594120163848999459484485021830767735138462594698196434329091000606090775501111271526422260606257187306346036224866669296297453666212829668430221590240765238394199005041827669908035524532095930542401880161223351622866420024255461265249433363162977936462389725692453876413067496320388069549969533215778656623361799871344094788651169759618748456021014240631155899856564404255303170121151526158416853802931819653897026050771533059575372223712352676138137106585561249687375096168813087833083166251080087989512749313582563745595865440498610772471023630980816807175281033023050902224995852377096703752551382052654445658908356644512827821815434912902611549001427962944896151106219734533494317403964208469910009266704246248957643183792978467347410688371908198077650689338026475332299017721096736477791544801119776451137812223924822995407873368865812092597675072939925083107828243893933095517240403356202275533567518501805497164232558639004474360183286141953189807768005013041989763103833270692581743727576246789643137880204727432257904930758103943251840236136292355518900465957051084877492140156766475276221190080914786045232455247109977600298968165961771945930530670126064437961445219029276909172439775756206930252075924111633339105258796159106514736261521311867150147706189235626815018277353419149903879513782432384820984821092601447790033633072692312918345656779728725347462062679609168825504171814856253200633372717958006030841856332693805545408463130443314076656291374866805831993758836368817009929978354024845883522917919470032205531780133326152281256449467544064879955148634376988982021366066893593845464288034627191432046075113813914598583483238039698017122677226610618368141372333306824475915480175697852757888762639287536319520730883625873390510914098115815293288290046848881763766999803342761932153939816743034495126732008918098811617774468640371065963660669828976148748251959468782899738012219943090104807252183654992013101521559791105901416691329136684187060842321842044944379291987035970432041314225100159166230040368202593198996120507130142714037889335516557884375790032595473035804631010805025982918472805940052481869367136308910660589560907993216661459120604093147237778412924326759758979575440914530256350015377193485983452443725093382961564663389456289075790334553969599659567355428642820547627056212594592032168257963521646459086549285573225348494956826851461507154569315185635132451569653535477529337113271506210916727468497361392836230798514128549551481112306104917951562563490881355326585984255480365609149753346051779250080568056257472084682730817231276420064272168599639804295252253926514576347242852624573213910837707623798796411799599178433852033425361388339288224041019559851663176838033602542197487628277476638656149185482669688370655089081749871342714411179908399117867048511163980498081301835655106443983828309487743336783629866581852282200813076833927167092151871567497919935351426165822799548155824996056236670904381389343117950346279436864806504924964967563411519554470071742005054397386648272868530119472035580029947659636491764599185504785829007600171165245217269495442909671150300608645001683840606091425147344222787172710579425584945768194213474353032692807690603791534970907646704668213707998294792524320960732622081089813285098827746676869984695098599994209998933357248971758677824838394573823021758158022542439016881034814394937282367641878118456551280630222680627376635817190211246341046475900705788829955411729144142156958212718401576491646352796213974371460989360641136158082768249175226613329291470750692890878900144127374137403506161036111017335122491375935383694741710802181833879036204155857213417162581507555812811140862732019029799427015336944723816901948190850272818623120252915225420104550421552282458647024832727292528005506184304543928242756296082542435451904787693790891069756491475388733541037525286350535295963889521062668870062450762578046956543700204054794590646933829422280457002212220336416193345053543165913129876609790953334648087762453406037206229652979320633898824565144968720962326988278359766187677562827565201724524138691829236700687615330792941540181249616431390335042234073082600382458142520228401350141646255535377793621789354113857802739011357723089230112192313995459258635050313666653268381294192158318184427749060003743902331626721526255125346529574598619382188448517548825468124383660329657332837376039592924462126929075941059143237179298853745666020970302552629444805855536251786445469660970653905820491984891698256489775796107758864642071353925790908959314637652371316236715205555117480734028009874903303382681660581001959938858421930021540891620075490191508623521717342097199728839642242857504010143371379224690723593094584348039094561826286966636760378780068474488997133916949370131513462249086541741482459409383445103993353825169605834537831765962414653153309729337961316162474929918626788598149258737789958452671728221543512134387247347376753265754999867768742137937979587457259503911701604652933726794574157564373633992802451047239605681887326576674911068389333375743237554165490520457662685174186394970140899917174614661412429234986296534368924772615754102679222808438451030150481502096656670973744070047002835456942033636519679206285487310931520619146818578311744736513957539998846879459431516338001420378012317393271127412455883463235742784910141886367254297579972415997225676817990942794387832187694128898908208971981624032230054182366097705635934233141075015623360664583953616321088887805774430156573011495050976452692352447798450894348222952442345451976994692964815608574974801617049870976685862140777528754270342407336773021345159296009127155976839319054121000383450414214701850859740873590443700821313566290898395246443290488214454144308068931203019125459978405441065658819544137934483595227796384258851851639633743849060930666340488399537646294331569986544409755450217146619542979235926584039014654825395638350563681264760430746188148731234100778442530177531741570329932241602376597576540895443991791688153839797802853307411220528528662797192687093791854793427575483536087021957546064895898942341559770441378065773392539332240460031762083588346084428498033722778779966416451017704700486150704367596536640830818135660173978678754902248604162827927162481303918175290755232279939502530564931271710473405508318503628755970616592760551749078430620810257640550118258238405773931542052340862144574487012148839471886649977958740940783386903079795052809416624599305167470159642665876608633375067528400770328220893013893045890729008747074440068791172944305938402966103877465778670658386418727520103570932469150498439227025861762367564023180125848569325958713306124656919912280665734568286154795590501281943657683884123029708420672253197594108936724424633308018482145020108619281025364317069330581104181710988995180224290650428944373532560568799863289563558742400030338011799010235137438972414483176137152222668348228123437450075207430716545512569761235137353272495832613409619179112276988435185810204788498846471132958955642038299392319004550839557490363837422893928476432060068009275425006563925319056614259494411774023332821986717906966736100141342067738896258887466230605012828369764097363035260484169080444188319519855217960806803082183491296317799089174240963022511953988262523546802642412984886993845284760878305470252528827037869526437787431250231798569380382804550410226282659585744210352148075903333349218478088282066089649439021227154920318735903927499749112420682311288745096987248326229607717130448042493114443804615730527251747254453982028964215415887948101102737916844024719781902265865251129251117683844078030128794560895264393726084314960249290680558367813543652747598122798159495070711295604842024960270923486504136035249686936266409502082213444211444802274817331416507392239290806254160868116448331931617515041584226100858756401950638187836580499608554816920916984335125900488590587498207649622517447248918548758459698611747090919574943156864387407365225705743811436361438210855777236948417895513501058890359038421470935759711806445894418634982876651756603272183601602613149892690776942227789142232104701840486597454647117221942416946156514816306507247927359005161246673920171889309623208523809348296077962284664094726457628485964258473382044122612698899487709911942242134949249929450284988911034980280874839193334187074700153631010968025875842691514714602237254299104164249277338793169718709152225879227732737552974433004472593186136271313520598659792195112967327503549062520377273053162646894357909499897164442091156825347637589470608541794370185337521447627510419223405520492958987879511602250137020596446526046097351811478719836007690887980548728339588507336105427641560827870744295827931124658547324864600416962270778746481213506833747824182255004564844636315960979513235320581182685331875228450847089202593496818887501384020320746026757159217073177317697048616588221714740017837420222728419508121587952638747722266454774606914555164529208419133207886538959312954767656052595636816131010762907598644423822823746314808707202468420189336349179344088336174839068935998227106002567839878531006481228984350012353505179470687001383209306866706029332834741536137026268792549488692446343001965111813356273053183373370760738413157432357163985348707153553034727592700865579187404978642517851257505202730768492849204840761623084776093587820556985346990084476672154249780921959291372074739044678566966625001718316558190285389441580645182146890839800245502229948650514401880520883641046369358251133797320837103312779210821240390300511514093362726856193106513119004081307708480924249809578443638695459944797853003139626051172174356058978091104252313029327512032837456261940572265091078436828372178483387122518627668026378333404215893500966616961509579961785938076477087359092485775124428564074404530266012537818055643279009961920125943555252976513876795288013216721905507077714310771288918010475178313218888069073228271217288527393444115439562034532045568853447995896829172595156650611229470740716813838684714399533617844445094628363565981774774659974742582671346487800432658301249245526581773720489365291996120739979771922286716891207111571996282135711612506203297250731193801578645833515838365530444734300191173993102345386858184539537129573451283366621014649063080278307149344405584290120245193237473592343840167640798751737789766293328930453966075882948844325182076783812709356483520032346093997905953353036596213336168561903357811263448569170583250216678763969343864031973666760310215363048689348323974950775114614074644770532382311976409723466952557930304787303412691327549389387570065463935002983676330569039850381031756064669482355537046834520196593596929932770159855033373693834960911687003401451041243743794325637979588924563411688959151361390793054267459030228446060334586868594092865409686023689717473239220773901841933455075934094778453968782463427813839486637606594089879950813648778581541618689207746108229116092300531879183144776478828347520228932268767589714536771213270374993857572225808960833293099956605136242195533110543038913999463293304320654241228685314266309969431357740502875097683613175955605818510662449464553705069100124757247111376768507461832361586480662070911355155270870451903191124410695479293791668345341262525243829638535793893410893819763656247105100014524495003287673676976718445525259003744521121913371956868348000755672233113643839144332987996284497925832053478660872670599264856572808158912196830934217711830481488946588819899514143889820807355730274346545612578918450993840145617658690991354950371503276655746048009724564265636443411746726503955582593532091323524219897640704851780126192823854901525598719944203447396039844415880447926485598005148915907721279111659298939084401356296010178082879374601719317779142532961641010107178848752129798278466078017543848850640187797803403463459719132663992843215313980149612720852512095928951435833636997104412836939557560014777722584997682567191535921414310550901264630456541795668897071485186789736935815290387896748268902269603166689016563196370064795847508858959726813744137680697748372783609609663457223216262753342277616200501372317530364023978127103400952970819286726946697925163639813387978605817267187386981659503457052620190935089577757837622088475897436798617940558769406396025086005295101928084343613890641167985886812450588805375190964849979868723882799449836684824250124317342741995421362361937425911758477289079540092867629968991026899730679114447786609984547991358656480116757152752547357721542311629712031382819035620757867479090532305107967266708075092559730484255497472097250231306472958403235030897367224101127731733348791613720371780079061437060956892281735003487963607192858399662877858076858835656162387567409520739686061789219520968259215495670687652644215949013261289189873248060239251675002676177824982386265350780131734715065558026414532922641558515298229383446447050214226928361657199037568590541884333663052939752498137666789401330291958568855350543730617966470609756963122621729959784370550513312113878040271304069783594880829597858668025815662402791212212961457609073535906695142467476266976892719555796352471720218803488440171149098193445540146670066920912191051163360311373062156188428830661168772843505932946470858137210804565079642080111151181520897243845658669085866844388083694980754798448856655166870936802515325324129218947873838022343729032304490305231744912467647819543404484086576998324447149456819223135676968824138255821003486068246453534851538914398298568903599866024633155941648260752806888756990026663805881579351711548050451180357204811919545033215780131379922598269418677589749463996667293909561644882911456866178439665765950925102528220188573678860943895802514356748025134151874487702407141710969601568865023386826093539681347770211125689735914622743858678501454439142861080546957216337505658302146408377782523117022563036682209441619260417292413243721635172949260347734212868358291131880715073373294208363213029490535393820683917966037184392182619256385910068501217780171702291419232799557406763176277419224246445501756730562808244355819581170898532538150752168120482598434081747219523561516550816063384917917881404368741430904734840025069875945864682946942079782192999799287627388344738921741729355908246109058068185568864763765447672499504061649113951405785478084843574671048371658005797004922993579452792268172811035624617094530323044501615549581018750049946629436959198469935387255825813604359325017797799801948878984444651811418182943590892911772616444639841761733982716703038008973675175028311526643049110970905690613234600235866124118304725858291007631849863433103292061661648742338097269969133967730816853445889135521033500921904385658959180043378759599812436283266826981110014918501645842742451502751490290659937654618164701824607007744821414010475597058988983275451099295484855506255351050049174842787266983000263883086217440929791891985581390332718470196417418890726209262135181800338361522938807273619156142080509364699733380195772334206689493630359751980361346446197659790366911003278106211710725450957214548759310608149571318078385579915669382963771192512797558866176534732995140084894064632668392706920665822293739622655773042995517416086589315676637699948837756105000458775252753922379551764654129793766025418253495495966651682941689065276059669191819391449726414233148152285084253101460297005484230620323289399939816697485218590932215881784288469298022848280653204387645080940041983171199577339126789345736792733899687113277118727279696700449627947326824409926941596919496387232366033623607131041073765614240317212467964446049267524734404033738851509449119681789418905167386737800188911465497890907980127042458759222010333876272621461843383545613724569634704928133359095051046599405134009939950690614263738778922565750020830684334010648777945923032666346140277978293273697269282480447898101501813081405690012944848120611752760805444204738286789009304043008292713936634031214247042960203691385862611083371308211644075618331286211344273348015931398782086190053259512858056533774420725664574355611323189443156022997747841405160743353014206506330374193088848039346018141840848478392179750533074786986692982760957109672404749369921231205172715918608386115084016447271826420698933835638327709092847389609609556379495824215445783886664916346756722750172605843588526271937621879242991841939242455429870164619659982818985074232799897312691186042100117354396027311930080270498613252666878438265965185749712782369468302559960421091682681817275686330535069161696003152167913854916820367775904205397135509462133988894807212672333004950035673219143135325364250202730304086717506753722478771448622715080102242635496109423124170669144734894366183379371147785331711797267157143823064523287078536653271980823257798647442138992865663815940191933417802263864340951302698609050327071794385629224354381138729729156410948578064436466653410772309692269462351581123770080143688346813262309078521487323722234271211511096538355560858761441112562254500321948723157651406688641987455977875124894878124885843942949386445564463916013992439775731927070576260243410048276879038229550217944057774551243121943449019025647583524011441623305301488934541128225775173441801124593208057494381937962591085446403054450098323210177814099765733664929459982004825540958669551846845476871943994264483218495484638043498460385405612569817272202671123650143656126175335187786681969646131456788636773416858848945469343629783825435284628416998392635499753393924967604067042310440939591942977588928090280494404669176548273383424938368951253277987391232976178122155584737246129701979379327168140495101459783171989354229513829779969709800257896672596066680432376807096830458317112395371191823807239886381488132568439174199363417497599703777992784815708482855605913808283975069550240673328678380058171328408750078314820331522938328118321248612446052252357787075932266970203019841097839898800083505870472558124303814252625626585284149736609951528310765931331446540057007170081804334589894380966518220074722297745864450156834923703607485485766411088736584451838373766731667597752397288692150188363159127923119291840735976883589108389023609035933674067600752709168860324756452522577323429636195484232982918267205714351776001307340728682289602046560771857409572910720538873519473846462045022760625188400542972655862084738687640374258929014019712283546563410678731312835994834351097543170905603816390068822382420435616502328199718852181015332448232426783640317834698061909997633548704027738899631246968604693347733734742100591155653666899522864304345191275640216789234074432877430056606043392322380262872117366818005209656193621103769602982054593655090583541899496353838962524907012867447980672154951890324729884272523193169112395458711207424063171508120657855893496543348020377769587325070790840423370334906803601123090957180961272629094275929952232966583493579103623759493785575412153570117703180149208163083235195223057086351894403606644388914318562438173670050766529973392858094083293651981593879583126684034661235743794086456701279751753531119373904348535190492883604058609723104207132769809040808579273921342829399444631607785447736240749698657216987732977114989267690173629126451499317758517549031476592930378623500072423026868612556529692841511057375259880114210945309984212956494542870987140011232941250199562787326089995180605739879272923999661752728162567206387410676238578307408294527673039741355425285631445870922830761606750328420762721538092546318353320197545199955282299658710771023414636689774302592950421960047915563212666652511851347749009757060644574724100280177484348285131623292446825205562789894651279285097815225850546410163982357882338719281334293751511591617341330429971994910283491913175078902705613898668625590768073187191118182804215642450985697294222427237452170199834650457172848079395923677955480156850849009409031546563851749435133811216262866855471745100427537959094191624020008764561745796479335491159423296327285621167036143887166999035406753503587475390225786660837961413380901880207919104208680585532109059783708181143478561027093741942489878362475658165798671066298389327624409653263565879489894548785688406751206714739717128964359268946053334982985193846609619204193962349599076945117399907048231154642536667592414263115077897109199178055600162863485854631107804401237469388725359581643622384984014252122087950916022212274814375185618163520754862112071195189743521100830856504442493422595907893144700706413860383218168187822854289198587015088726145278440246221381987286307109485990496320106483013048978645840773042684028336365149091336997500124426159753919469338420552369210009685066815788083686726420428648077019626819677231624673699651170585319030551339947166239599018774142282185005209875764948811438977788172976954599083335359294880991561063250764484362015901205860136244123754140917972844561310360189284763591621146804163766173106964623734253335989972467835686014825222376734002483085365034528687394429735542403303610569667236342747246334112994595741442107404374569530047446063401360103241751816924965611840461320777269061945962439684438943647852792221362726012238863526748936387212812596195010111682211530627709230186755256849156817507451707671483582309400288502027976737966331249082223927677698132713712011165885094221719026135301330385321094616418591671003384353564336020734323474018259319456758123201269935234155190148600765670085056577804492151290155517916774451901077156093907285767942050164710492293946220202932514610781646142157248276469231698058730374937458935959477173059585596227452267379387249846384958844609276721721880186128166024538189867661264000631524180811909400245918289294847845360473053787507361767781175717809126892078411705127957673256601254395675654663137350526204273401650180794848659489760212192878879299642995957131105004156569368036666036605085668488087240170372867718249695789988967689997667198831540288930395456116008139042821507984860374010680605851520566103063384185288332524017985068798639283582970525340190358701288191231028077610501511687534730251583751881651996559743133278514332028337380838379987952491379666392841062351356676128322962092821220248036754503915724537020419670828822042088755088366236799517508602821197599001722075946433068207775199094696203300793263084267729173082512149502252013859549987572849462849797614350674463531429761663673604018224700997058285904141991070084731582890979213714945485172114398415899372292547990821308120678391094003097906111743152167404663127081028451079663069207430496472143722055337289652354647448948372728352514765193740947387699590934976712004197538611682818215285638779855378304026223431135666083528009042533878789105753950365046148847897880600979927220057706461129144446386440586020587243015411549289153202749397036146457829050846017897832223984906608396862019555185274336788842739111260374332197988109813361913584853650692121462560594807150055837944442859615298478116576521039346380149024132289670416962763725434896267318619369034701428979246048438549174481490342468875353669058377985177920141418962386971232159063263933273883559484737084527706088037870757100763460460808000387378674213370597835213018427487978128946881204986999597763169872775423999186512186934912879370328955253507681740840480269811909740805589808501966046675854417260018416682567317905272968456849003937636943134404334638435663624008635190415094743212988104419592714215449107880204001718270741807335637554178431915007921403462404794947829892766895891013725921160727276832042232382793013266186357971328824610843200281626076227219011457567177998118414080730558184075638225434655913771289685607971417476927881541946950135179058721869863322738612781419624631377715478821483096146773956840952967688542189867373961277109130541848913376816898284196337143013076805660167979541646024185908846932189228235920649399702228096549805583472606541966544702423262592174954874833265339966703166463651635955984747466544649296937700875981919350869562579211027671123419811691826099189898343518611083253349911003853035447006085365999337869275961532604405200641084453826291865152886899471331280715903979470136192128229303765677325167413965393942841401162807154248323232115527272673035052155440160355374646266905115747634043893902337647355620872249069448168237647693537664828729807173359111466459781090607222619820233846854468737204727137528511815720998528225680726376034988979654086962119017206099701540861833334776328012551361235672264110599942914429002377282210889984458989426152550452413968204818686639838559389814606427861721989449793695808718544565349498046069721391608284673519117619634186127783456931607097202171314194735130397157835641751801809277217726296874360905098108998674083781392956073786925915393944773627626126952324852665298570193010644705509720903789453275428100345062624746265234110576696895907766796156140706626657811488234274519352499550724443546827690232123141029370914162538831639207376198837149347765749781819647611727026140501778405836787376337459021926526006522602542859929413127678276044560545935384548193456298524034976202901595524109296105981179805886509420152798869640574572383043205489712101194300697311990179611037408062127783624473321152702855924368773762980028028930824484283937368631348853823980348618475296790642368229861567365860945373463402779898907206989800185563131173434225273825333507699199424148120447880258975089248283775950641751768046873914853482356228914939514189507841824323744853149085627796481152089525659890647707902824455530503534005231114277587590061747413208017542878794307097878247553503340484410490707880707811285900324628243099162219736342967616889847303267265016228806950042161009027415976075916368019255904552549934964690975419659690470367982618380358787065296238911960089393729875058181276262219478898293070623821177818159802652898308362772890977779568199907898885320814065397718348622537827980170111295136110748693577972430166305948804546199789669577881652997438790821309280600751404487358265219450934760553486163328184330527047456725309310117347636778923796813968054525069436718708998729798452543716668930304187281269957179270561455938614767379753147124959323647665108731646063342238642507755612426678965266706763125324401186249970729409113981170577439870452678344332852379913643553431394340452672310098218199629635579109164907273414039182345459318338370785111327101545800233047226607022560521460273022409914220736871614787414806043580114091194728064526464582141096876979084312193997974420808378931595963660119620784360569542511570018696157038998971503240150088878301362961710579880633081282792431491332464249985641507407292114066845172435155385281528202761965548491598581046325432423073650672900067642888538150415025306355327811089466178052477242821676976214555046537274913827365018121728083405363694495253483096164704538926044379553290761887155389324250775320486908089626901289623333852753650463483947007321349887501188710418016388470583558006897064478258095042685722930666965098518153735752610009810403963498436280938928194047079975824935611111783199146843485927545196951855962478668201182134904836411176713574092931026257784608846931012825071632756582428029256845040050066213282622341139769287899262234967864537759622153372681448132529632205630868887127003432458307297976267377487564643441822482362992668072566258646958212602622769143304890758570250302330657191102759877283713122007488194131675670407871293392236747570204625378911658233323718762163135441081810339821803082167234869034075966888987170534801209088387981077046558019028259296740251083408478073847922094967397894478354256872622487884857375839636185430800799125619806502318305513087098629722007724211157995780046343624210598877038552482135372292867578381673710989275660235059074711851395227368386265366958561165312264491134856463065817556502889083094284208116911345950120752251782892079350156672075634961464998458056512308557156088099699868365140185832937151579822995542686003292832378904715005514105920622186691115225674561457490359469859228260699378616723192862370319730296152564070621678400647668378864424755724829343458022931970224846117720518452097764403988210275199902152244234915085138497659298921140834412529947150048005668404248293809656451166850612920494912036518338406255815261470504100302787149475582258630089025610953762178528379392439347792545552299180762119214227722829059192989833687317171454191972130362574491058353956427765982556736180269885774140578575540260287820096693277785174408367884371717615611633259585240472407242559651202991968013479707446298674851196352314232200542350443720456749259763059512156791881657611691403326376335672321075272181036984339938470799650306950645940515635127005325643678491262586375210170202520750942531316056667277556855636858563190558293385729928846971100147769246159348051507365358117583230178481812031620924451257983080715324974280435499365525663071713543064058753477145523719332502488739357802932771859149465793878838310088272224301160794903082475702993400735491847679675088209893732450952442501470903546764238748363797574539450744530023242016546790521952580487201104473381435633703434235609716252701330110180891704348697313204746720944969038044339113132806825785129279659568536475830291308145073455172459585255942272070255835067620706819824166687708651735671260202641016739686475466397114894176224665060015629388807699845424713356343752287033106705493902260342239539654961609784188619391961870836188003004978362833363238137223198846317846411351067007879261828566080750681326720105471117190501147886566603939236951897159354172453407828987616321787932373183446123598204593423126636369508977046140342939710299783956417855175300694441695601689250852736096888841970529960855282210347747581183188316157490886121082847400847073918896070256589672042243195710124309386784592138214100279634704881789556917605734532220083163718858834859960799582170133595247926114305929835586131279863500100209715666944928192353437044724153463401914611833837791276148217341276211441698605299170899863128315247482370737796710293604879299395503249540320208250434205943863847027916105849201972651877543420549730304613084864658866377215916467137760358682063490461259876091096362765427985980269415168432587102851904104673028764939882581580877119942895068051790230244227657364426677441231416505464945878250075030666641074864388819044214044683864879070373363373941268962806670059646215885981967853724612318873112067028141600409303780508139149947491366979462546208925843122614656601025702203409256941556577340216158212407336368665255207800547367097887804587679109810936868678344486003953583468847109607130836926698022227971494032589651075607058779403699305354081521556258517445663990784916736937844106862900771532474040892958342461091586131825314695703018823166772810446465663393998870278195280261164516669323407645102778174105168616202318639949952809619220531801772316683356947085580052972260335913259660936167428326533071376607683834812085758441444865563559519848377576473497182150828812125615389382499024492992997175529502721608305945861422407948534976749410056594852900863263069925465590453069080177270973729465407352285182059389156347293748687291016810679994507179554841462767999518467403611972300289587849971016923839066080868054514098612546676322768539036326111859705906842675370807897616145826668964644165015880218318042399182803036673141906229557298722377366444754267449182200552484567076213539062406062741404627596154809767399205428218173633041960884164019610149921020053289260232369875194958828442447193405598679371353477710792197756368912234403204647585133860359716788269491597644849292157343605841664827155379967848303200383523401316850977281753478791980572762604289561380782918795491262072020798089281435766604896042376065979021247804440243511667891911522113204439821200870999536182334888136494717859105921097358502314671084840506206626304901890823972987485062652929653927350592261709371837541514479972305094662686905748793047238682082329617588233241688245354845539425242996563383032539066214736975105604964637365117352010044601467067210140726623526834661977810278576507153525219248300734842015060649912918568050030334346902162132143318619469491413374490161252519980184861901216524112437767797138892106211031659591696737677551686950073832250626681772622503191257871013332000212263508084086809033967065443052893087750899616411506027769296158625437962243551923835914789012281932689646025671518138377319897826111631886938204597135863398182255289913534530640793572566170254162958190218397038130358774566419757156620902976008939797772581478269635673525364859997226351155986517219735978861853910240952417444887615618870400891204170536074749844576464353719904387037090395314560045427244319131535584052467327175529298742666921715577324313710305802566883224941653039107891113900789289149060351120934781152683459105391159582757741041887725766683495827255145771294583234222979677451745607895079624680788761670664182980812007519610407855677065151784278709137935778676675849641831483678815181581739493973096555632680674410333750875288076211316373127921047316945859293796746248463906642259482232040598976313500022838181882086483742207939497356387607795810469944858076458348430029346258004841535279837072510590124866314084472245753343594738130888977016523813611366674519210099574202160654033868187076863601162847208187410036854218445385941718912211017195168715794439466933777981192444812870485655981227470348828296667862856849002262868213463888569333713834635835326918910861562245394199590928941897893720697881130249964340215054179467438970720469688788274642328829278330654249719198677208464633430912871951724319369864555605652366805889679707393945473399667959854222763783280874303561570107890414392754947570161420350947116807351040873798118336698916877485707704377361797027071283260441784548990390219731926024710577624408659720614818835890765405048483059142803369982172864627088567459251401250810048897408198629527116395818082446124967130099271634949748078564427824499350467387720591775553433140122097747742224524339520432129627177292593114710866112310731092004672609914605548283092483171872617181662073480917721168029319674158140313624905427734659078600211983645364638781196070137328961512313487331180340488685968519842703663109594939449660127077814704587697477957651615233159972430395295688204586382781186918721131378263639989061953613751665200684323590435556747717012002878586484597845825017422030064895669120764014334838625932548467584105457745539362812449079389751568693140314044358444217922145105769843864087522259268931495598420682360863611337339964165953485709763761090497338555387986758950542505395628835664164605715189735778241839647090608160266155301500691458944283551008342046051417531433378620876418798247795864838381749104948692070549308137550984324763002758427051364279327320798967259832666071481016561388876393521061054349996366488987859152306540357557964591217913286081163899253156420378784807089481708573104709304228697647497275953322917422078367556195111267936901478928018804519589810349785789835980619930605757403005960061089716065244610375149391198949593048564097865658747398998063479999693645161154872749471184973574994749607845993454950154370085742016691885467457273418992327562753139073828269341134954630581488679338014381437992785403004263100865577722538909475038153229259701661032326421325007504674877531918216201082572145823404974856659833052857919216963553368508209854895814761279402019816917070664892590709255677369773312727277201840425811998218670895499618038382714737491243699506856192643961617747759746174351394028456058014144913775048816504714339201329484527462848142219178993076755967029310160382664910654618804408094734839007461658962905009876222522341958000964145924585509175874480607907152819091964478650829684923678182761591126371832415663941051110086851804809144733897087417009198898884501975568518053254933901983597848236808087824511197385282200259959230545953412811733423940830376296042638682456936894454222795568461486231633864331586728842094550957638291884027701722473561073153484687700795534139099283977203554895591402110622572348342556147389084546419139659249005867570596308834890996684469691355431640764391988605748105118848512747865955820346613969491620801773884474942441699140732926274902103591755037293219575359931903649389885975244049879678627337862452050333578575120016939850262526853048597374766847469400057664952885499266611380906996343031661909126388307605570809348658047788987350320902216774743658077918620517578375419611565893397393129857728077409241196881716814859775346855818639790839283366757461685803004147149259321465276459653715840429508185193578742455624702500734007173548422115095906091721152351426108642793910500750185875037669154743615814305746796884397317393686035583295957399901568903990178953666152471828140401723559274076053576166496849347226517782069091441263516088152259594173605441892312617041490436600790265366370313834412709213683753305971804835277628940440221984055245183882794553201879167997067683228279922827313442884074166473174122511820886142803184330890526702145721060682998183424262467442613406568682748350628752250281007818332245574544398895314485618213890717542806714111564405363031751560299096815458978561853266211240507704730098365159854403136774770531972684715686631711625594577637440685200801607577154359063585936629981117498525633186842888304883670007806640388236915410489554946617076993057528560969376502766707036623694239982291413951204484378537474634246313122552294111856952563754889298888832813613340507538050935682429528257335958413460401638693834269375981903912980115182594769515645351127874506607498579472011796342095433996929728747271033981766648951045533768815075564732060958382437101675731337572612758627999909649272019959439432978407698885824763165611560035817541453487804153599873425085733855000786337179505817197122280052012854142222829840049362901825546706538620293439993143490559944291138875154612113462005555958768233220158995153048033553141717600808901831230280604864966498178748150828559398648920522098327811194499994227870543426958997329844184647154853132419454727097490031974250719128359632919926776507585569646487498999413635539043641861012917339275226004736192311603655910420989830443749593833271565952533773492308014169847971796470145840242935947129940592759786426854955278598578463380632473630225046318814663090729078356468668859340401566998377793590105308659680848057810309391949959316563571792364946438941653728585661376986274004617846564551925753880026391706009935134645785403174067036703237105390395047636832150634105568902649140623165211627738462585855197534097344679432508078358229822940730230234265830878660640647012875922295698310113214336011716303734073523566499215456014874436635571101449840346982957008242637066390849730482562611495977368733885162189002818352632303290711732412099684863343537070693894911628175037284838120688787980032641241927065191328003471485503305151780478548150778748452206444425074851497845457486151716441505432674538538848330192771953679480374807850165801212534194744811821758439028572138447312215777875195157455477571850712648602801718459951575512939459271920575539694205957342321689001508320978472539473316879986058203968093820920652872578644221246828195106578728785713873607047183838893862716410668098754252516823411305353390129980531099029538012155728544596275760120922635327197787286520347488225580778427573991054253812951402374958076698057486127818869479426775550987126318502771669883380693705742005177258808015386506440230040648243418527064380581138495654102926446759895798093255442614930372423860688365210361579470023538478273725920610528130523025153511599545348415120574907815520771174098951636399267982114762585964163108703436582299962167144813186909493981754001129772610791037108357275659396825328174555907163965445313084255719432596348559623216304711729705104028312792227340712175235984623474778638733583135498927398353732893158236216544565744233773187242843242855189111620470600883295945741358231251876328288267348157404230600689404047706564000429601237868383144069107214215630553401367817813441522556229553106747976134096599307428886711435574959074216161330512791231016723233757495640799807821527748203198075382987644631987960322936237742407064076491653697259498098778727796485384397601513561158932945343150672827666651293850659373209655988009816897181533132037123042119728296288394654619934853098395204846517206852363959923444324349341682046886035162893104873294072306980351542490771639371753472901124607431722326335591060862507663490706975352189341798737569999958330309583605939746467099586588442230875908530002138531285604494453179499545178867368369341948490228744342001475450602699486783515648892466533182422606077940116563584188509072731785698618634729491577214521670645640073398538087097458129485218950330527620825939625726014582989762994457033865422108230068342586398604953813313429760595196063624959238081586757560199569978204932922071820802682165700260386123967889542484970676925679579265298774802167292008039786001553866703342032916717011038460189768155908359349211358699848389777654959697836521066580141603917949237548208736922282103088133460491885793702750318968393879181300104007377113375693053082654393531357031645474107739420221034828537064695884961903542230369885056656182366347946770900870828593599337895480212880156771648883787343192512503615357808741526570435067410913174436588433945243012903474373273471596895363528327889174454543419766062642467949701675933037750452190693911866400741079242060990652014892948815771957930001546060941077505278076119342354240182475947588085407995245570551526421472845967588046368886935654382849739905506123848760818956064701331191039538107811712594140235129011890417363395055231493175089632241819078226148551276933701179404391960724115061737089858789047438704714970443776317991410854400615722308923344719418877768135051936643425551019225264569621890686016895448557776953879032678868259958647630530013359390810369121732952053901984437688719463306166717808244187294110413404556741021903748526903457738020878094474676733495839219182968151977996170753246548879300618838127386707570858603327385740823672985805337188113646899862630444747955358565172966048816996815219549717575191686254591515544913860538392136177717432892162665210632209812875893032206734138286638533009226709819233701172857884776429464708423745376550677454423848464757814434469218647373630634233036241695745094964885937282598455944668563469927912419884483612757132672482230354639430913909129283245061457645050586424694067505349481317513036472549533286526458503044023393589258133494515818638490575497481110571436144831493587333462618897252516203976598922472953294521635291159103919552291109736798685745404081208911987041093782844738750650537157710765398782874608062884838667408989442010975874481384909307035796371725221896522344304655759127139431733509690589484036827935897766563947523347278938381814476878024293760990237705151044780807086586593462036091552144602497254987598751277378746778603532921164268464748317920707754333067327861093064007952668172900209074434769089250053331712947609650988937301840838305077360879028686317213887746023325049167997569077745177511959521501964177721732089850750458209159400793099845142902813907063812832625468139492872491061599398403545342665637975118502448951849400076460161439682746408518496781031249993277627695694981098655680476247643193354631892883814971621682289347518647977766036889542622725524133049520171053132230156263383158138351951515476833113237474576597355297033722530431847306274729770487621025869544283621157160147734037866900444596923570671531860449316773952386780225711943566784243243314288859151253062565898973716613669329600905465564884568491029271521749415730387132014650392660663740621943248608611125574954961276551445424763579084727154383784440760166193444155798465139088837720214318097826207953201315129463423996025030465458940182738197471289383359915314378261384354644279969987276505741967967382384779434115515181531315887894581830775891853722989013302397947366842354456218446085111319424426497413471542385931098216619867768413405329687393653873110839154370825418790634274482537372082733994147829880220816010355533431978919020314650675744944089325752150584155379599918914334429582394869935236157229014759459967091225502372488061133038136060742948894926903583567031186825174008387649912448493673766654494247102157459917695328507553664671625389735760221035600377070141040919979239157568320626909620335620056692664116452897085046566838072168277074030601049178830677814346484079613266199216906653504752187603645299892229035594818983696328006582954295193734279634702947634708005076727159514705907782242238621813579769711692480550686729901286670245774458684721300437911771960025761049675781187767224739199216007182306124883794402245140889614124486170126844159842019958879862391338282119366308475612364303508596103665307897171150049074400545285424691285232292557184835807518729074712955208917050092445922844635780455751268148626440806706758601990746190396920093946997891452672878971768948208349806021035288266369044836246513655578890587542286388321105619723325394213682603282846485868076003480680954851795897263211135218005055717924044374014691178518763768458025722058159275321204900626221454862884391775773146816269161082590401265497879974431769521441373880901788244993548023169313818831529155029845438111987038431933692345719614767261296690057690632312085274348026845227409001791665345125648482081190958027584315822665272228018998851023601822002064887609093078302208218345771809891346499349432139271320025251720038327852870079453145395872658038304778114095423613676755991794286420178248828669968368985663430132144425571039169073878441922548650947077793225204042184066250118120100431070810698010030108523809272559633798395668275695619334675020085063990739752725846763027073981356122776751326768432559971011417015737056586407516693364490500840998961994394844206770065744094865458630054714496234441067373211907344343562918211608614082797403678743197799075653476080842663689165707166828132239115662998177756477341656629097440465554135305252100542358675986452347528576092713305638935313739377011473138242904649389416530817897600122261963145969141105094958534943507358272507945980024108372709341281899605173237968239683013530307373804803439712679803441794310483796608244181262494663406061743331170790674865100566249616467081271912439388616908955924505019447883784109169732832819112404138347119595813491465702415373373813790067511952395205974391457710746191557539162796210899524363514786644787054079618325558597969311189749436101501007874776969812124376974938656359008519358889298060983504322577706146639440564818529444652252188719701781551317309163118358344458615887354761739104784995239041095908783829138129142579384350486702198681527540121705927015407025873029960567501047392959320725372582123190610802712910582089264863298512295066936252492673127607025201279785706115374532694480929328746065365428327117666692424621565008108105169790632468452163679083022601859849317111339701379265767612325218348385463946161506402419837790617665973057145539656159932889792203180736035237728284858195643461017995817025644820417149072104902250337393128988578327917819699663614059979903547439113909329382676707114817851884214181511817163345594688523247683459195792844659344757848643600913021881398384524300149923045453841927052746435817151276723850765544688310928073889899389232937683065008163275207619759517969285134129813655611483159036905689924195109731113959824915311560270682335477872196880621736192850191037869614995585257435034694665910743428056921411098980120685626221263061874538263453985368694017294533313123519616730813913145941292391693706822633697286376297293748095808165131124632717533295854219515519638268479354391312774397170124271816867911458567667893354924791427388291487544477967077361742038007548566067842874904969245190936430050239641916348896544820339064492945718945495211275577291851520023102371763089671567199343485854663298266057262817361524773524082462043002163844721812502987499589408188694382583880329810316529515122492167615015008041390983531371942348177827031532438987515300911177027736093941123532178013875214951168841277056526358147550775075662570612145072289008609888933979279989242189540109698471304420723562060820386099989956993014637828040404334556729022690539849691200604931756180036523328829954223109184042092874995364631000668899102331921135254160178119362563881583173374393332145846293138552260267605880295454083879424804866153696562034314499841122830924313290882391836569449928648949436410875465764710549838972273939174997165032126261277849285232709835662919355801746155374619784001307540958228285669789444180816133049778021194293724835488915933237715405031684317015389813832272924474757895120967705792094343031498856210811445967816973289885946162577286539384534309802947733623663935911101170405448880012724366387453287277248351487390382543814036352314520600563438094417494473522453556801493920808702055042445264714227404752967888272662368363073882801724089046283447836814594929618571412532075972041484022530961188065087645086051630227630387912784124663257420033563011743300243186572019634337882684234315007489866912558886715424051998382508445500993693995732876626072067816587423737479366251009629489863519632049786122126355893759010713811183714071308018725318495860713503970166265964401069251689177353502021085643004856151092136135674940185481280778405459326089980343965486313712451452028969492444119111795916780713594752497245893910987807249060824653393708520916907668853028865606784438318291444163451725198327867516069207013587212076084897278781798016794433368128599822252304973662064570410550161681292789530684024737820082213073664748794434870554583579649068204053619232921243502847871433516632880827622461450582905909211877076869235484627719923830102110492920946027880025124387473493333371339032305021348478897706057353764785457253216474505434154893567839822344571112396978410492665424722460364824645597471104434758359128443813531866419589799129245123162725634856353058497361158525887895755304587165912516725060565165688200286298628203532296439046910501657085544243270032172550012364565042442625295555523610693489449026657427702299732776185764125687336331736282251234623411990794333875536792267845271646280453569199838788858117621672461892676322143486299475256994954946261728153610040730115661822608572753990063343100665739711154658105873650533354784435483340426103538503713209733938628998099618953330414077461391841475546912918593392660245727299040869169590638534250805039637943398627648005880105064136841810251557657781190553327270260822644154285657768670774606276608609955888378905140710123098353902770162853796350928360705152295117103596748385485711391442755732103121072824446499481019422705835790718582501430781381457138163656997373302742250163488516367543226060556550433371786761842573884699264086478429794809572252097527189080859666075037171284912552578931756157471983269889125851390866089134820289148639988247834447258704268285623524973942060049648457624274297659287708033687367290731241316308397218701911575576631804685650202434567137705513036322367947828970045206873725956172258027216535314009228126733604188806574668485378735001480727144854663951547878485824968102668223572494758346965311715268315276858640029574102320079107033260470210554536529934750877388586416531634526755282732780006941532624205756945774315713825177543880086425569824225924500291731521174629488647051170707715449080545599322331643930940715570039941770955439368862927183016034662585891665406451881141450209301728916567966010419094677123592285608011072942668932777131872492019599056989007705503228186969302574875198454294693521344617198220344780339279347343178202621000190790008199758364510948562831956435472996390984421260387569814901491764356855898592889589287895068091440187072461042151058627208378417486976912584834052641225192711097134990578340765605081872492152322736898145034689160542224466515810006150822999322227186979342972237726651416603143131038798502363637715381510505994417532313786847155026857542851857628961064286491183440732165871683333454123110103329131231486851370139102824816006429360452161855858784678073328217760475429644181599641104508831400723716181968575724429981820472168439205749768758803232729014752744241143676358809291491983529411976403618670486265458763652677382505141936208312336993298174856734791805403133953627017115220268201301997764204931121742813957345422305623269342725897445015010390136103807749438764129088762052474946065459733429647540256724083079672374207150714451798872604473962900016537829257229400483835590720322703048429069541442662666749322841729740392251948305789074700120196874509856384362762969839018819992185093356250435623969387430775229577913763425684021872663890695400895227313813678995254008702857468394471087551896326197053789252642085887919001739910560191930317671418631457338815242133421836232674829834614719240719481644452037429738400721986154386914183537736726915296998029486973202296378550048062635567076709262370742833544881619739467054788510932262162625849438163087497869731892116823331184497741851153024279610208072317157147470178133712233033531094702478783052173054302372179544963691399017797191737595062229185584078446873547701641034746887438731967809839291863077961790375429634882229557346511721793746861433674832036220169414212276992382103670038376724456030719157780972928511583807385792666555752680998433568680611431715973452269078732081244666586238866800923699099794364413840335287219938464708823516853615657215519841453522425228188722508092325290170582749096925445919014463761147990965058900991005241152642887576604130649989370728449540146493202443770033817610248046483877748597197967224116359345445295155942506634846618826455682664503013927151565896221004885734777290488771512870003245839825849576270397877549065980988807468923919863899196875745152250671786946518351433766162786902603028926046872366758814804752897261706325672667971202135805581172316129455113113997051121456567578591226492793497492185115994745285882423499413002426829907001249992150813718460516871638318315697228854113622079948227258193879432573986907358296436137366493304572883950966142606043913495587079221323629399561989212245377029363642140460226297728410584822439188197785086759884673624643146774001573312027055289784965302719804778806235428158992206489576192814414748159059087501507913252207270918679736728594479522690630049589366555398027812638705208836150145501356013568590038930489566498549966068637609360664401885343510417480409299364372034941046431462934542975504386447552243662243954306330645503872882549393094861245579990799498259714130852074208832460303845985501002491690434401914357505645084076412973016835676244807195240308382523592230488896212328681492679988985579193187753795348364769880043651886311040809506125553530802155410490295961943853615239519909059756815473885401885317322909920943240979825337670763030262169538148914423004094794568867660775740154316794047340697119541623222786448351128264480951363039843751061351475972598129167706535226176739634482839611215673511670765865825033138347756894704138051878774618579605433792017951721051659281828768876101074657453996641229713318448163065255169622120553138560862812532647879904873517913318572321631642859981863745326625861544871627955043087717868660185668876593356564699055622090946380005454595363397309266911404086824714179544250611990141399580791450516268463807083468552059757488361911592768849159542791900276995054032149781411219243351112752016033266548986379013150899639564680379246417746368916926732533323605937820247930265047653608715636629618613718185999820442275044092080307199955534688553793978731269179515160358420139119790280551462967780061488797701458537267026161281811160622121220396093469237396140855904546253352764778738342819915966754583002521627650940201063254343303617925208954630403813027056779189878673534111341489126669048542233483385732199084126854310122429557431774108130400510262072807279411263915146998212231759334566051746837879855756528844523760956525589144837838237078780953352183911820072126867858903878956371040803353226431248006369058987729792218711994793451957764900862454425011245082359070423737699685922433871346905158663059377803137734819328033665193814426402393774256804140107248145555896517486352174418735687604204855783953115975691799904786271795657089880753383026563791698719821973098067993491676351393451668690244590695732486245204582024687394677028904642404300888656322803065307326873624332883487921503032570271944433517365528186726259812790655963272800879113759775732194249815595059130582791909575556800711527375290895724633938438566211232055384327876904391324275086187482289530469448723953444019528405163474414614051059651784848437395430961606805182543094063840174131421691721542516503592102743984593834576686609071404993537399223496992554489488201142639777066889328840680665885214811949417985048404273969418731703146842935777702054934472697677529986405024211108736948708187859492827482444910614180283722336611209394908831995688903083708432429400557980659529258114552385223807395137829617825642779481757734516094094241243416697966560798065058975180587286403456859817387178713631850523744349174034603930936173845610576741109860641243660700870829769379394941450192677735752075532958002504976417192025990618501582201978979937014977092805708579414812218225381302821524062052966995866756992138130194117450272996670376384270971540194359783138613707305656623598285338703094344628458426046560176540627561982592469837967379229004265585268437093953896992228472228192639598420222628471198021977048266984384546452767933353911209635370638816919118957350290474940346900020419804466843397693788179492797249797215517396728264334890430144061140926903753132083520315132700877569904493630865706415975808996013164661191539933748953863838327788653876283801763054333085694790293336950600469903591830055632469878051580262417910408278697747326923017863323767857096714168660783119328237697518617698097031122133062252864751411345619367439825855090418424273633865216244657049348681651460816020551157065698006207930472701053318303343028499310681417018578225548646521820569581765452743840083771373899707947205054249551095002060393132267441325737342525046486898109495083242622059785138070868542270125429233305080254389282196100919958500148728481715888046891254647838359653811932181354678142807129351408491309771038457600255762044308109877281963088260568382089530634988681099551454742269949850096442684446329429995649745599312823060965234999109456414966213214469032857419641759931634169318794697212333985089886726932485943683221032783873270978317700389972751670776456233160426528678743480957248975471238267063461112191541796533065048248147691160389537767416339545952915816358348076748990423821653807817928630324683274725656392472471508230058923878042179814186236186170167807009760316978185056943978770275632383416717139735957021821803485576718810734725462836115129534605124956525158947263760381460317343878032265874240619318761264527809767165979001758130368608539655596640433130557508806401942605660873683515822360699637779815728410961751024347933901941504869615945410382122800832825103719069500980589171193937833209504583347077201520057634769303049445397609849555682241843682913190640230935623082037262554809236239398064843078825249074679564980640754371921237639983055690996551404581316243218228062740623457099373922186800482439877690414734867783322403887854567287129973593953290297768407470944810501460213698090115199523887230702891407312496412688161877482011017661295417024409152465713947078588378172684283971985327812446049409532928745338114919757403150661212199685174745688744072624130228767562068247846729363086882407652557657509607648000081051400907700197131903303651322413483052010320016675468040216379212470526280295716955620199922566944322507449664413627724608725456048771499071332697918721160443675950296529586487915531858072691382497436653027588161934555113376143520474269618109189063706134788255959227426301866022537432022240566497508848846944410992784674449552714592071830383313175196787876904641330891230835862937320259331184959040416473349206728451421322697074739204077379916209483722252771709685446002156275993272813384989252094090637581439208389587494955815893371412196050984606553508622877979736715937650686852076560785168954990927873236967109522819419206254453479507149162857662315820996355853677331429371019123148615440158244374522699612705307320983033750485623455935683049076101696981553157827778870042477291686253811775964388787783693207113257062100684999267190857564346648531182681591157915176304902350037069502538769866893263620453642435778677950322704827286532408445183849703240538964416770306199436970972210195217327946652930291041964528426091824104269754726597222618305365034282489857842201174157465041386422433975085114297449200364502015652113592452362094650698579862529260160512368977753592273042093797855499658432267528757676284294744023012232452299687840052537846083194756702451998535302501345260632982822485015163820098960675027481676191966794918658342680105576580892080403756695621659361683994104538312001253788411396749227227427434690346838421424049452986649420554971258715524592640552187129234352498993619967814460805693886652371593276278158165615736257361706915485113309822121672666130582775780025098127180088739169978701232076224470904177195899242767053368418645191591917741498053394599632402793550201550592440566477519169650857683259987702024685440435258124314921555048260387899882815782406004676501020708548459287673734775073283345321966425597148064910485242859602923496062687312910055691406115747906290044565248490595899909082898852445063165373010250502026688090603389755205239799614050763298916688616169595505813198011190280627535618254264827793431689905789361930418286550291297882673138625603383308715228185445530444034840557835627759080093780717390963112682212853379837496451659064844648489024241637062851713563358372520804602547880672589955685804059032358344137453590430533057936019977620355362555574516040887317253649201183804110646319184624263009376404864922166315758221071139279954181261088545710781372198927902351263218767916567649314729840982680779255711076309832961771390344373593181669007681804658391460565066482819486945671094181611737557194831512641540292154103622128747840071396621303723223579318260259075602094899720689068166000373635154964753758186241373101639982495474240457803671212694154023195105073782314055942162884675544589610332234165818075796056197621029524214781043984475038155619758731279533438601922765600332916129139506762997568839253886354247966065581791217424659326333793777093492030165380167333551714092539855363539412173417680129378413557672205702288006381532060940021063234580308182856082435948551592730457411240327881417794758748808753687200802337785381311528163491418798928956322093125423016954774224036016726454653868694855542305582876084809488572921437957035830191962339703915743250641088722935435158401827774730345073673788069647529245476948329316091745849209615850311604975422442931172654705324634047189918661135638534336695744882085361275991676738304225871514748685589361706009389272960728491352277644272442282254254048907925993146912451305756103224446318125656152213960731432458924123871565495389228904622568421093256768798822100893315443928486711337007983954042978354019874668847711448173926106116916297887789426604192196647747344585833077332675029878926380597124741615715912392381643053104519130279064858523790498891825632319114896218861486182101404213360093554128236015964213426129179956446272911076572390121307892792201845412667037135093545999729220505825526865475042988641393800727044510779913843109549068364767380476281443796610200141013481650280925489956445317208283066238544276573611665592763978494832348307647870817948978697083407202740155245369142502548565929292999856692885157031369524793997869743893447557023981544365038491109021340207356306711172960803786581016337662700286413425790954177485354873842359773413493492288339020762024012933846530239675723401143727340547311475827473225161944085935752693799946408342572163375377250541507636909217983551331706447982740554985623168753480578773428626160455332362816303087108272508990673451721038480767828835439511265609342598778774111983596614292944567570625917366162341351666420227480285099468895777034633548438735421143512277729655051355835855283394120209266639739081849188261570040458299670502527405649079494427687794549216139647939872198379440123233153236758480594013557172042473470614272214820335906247984442235939045243028762216850858391594188629565211521609039152471738972813514126984096083685383763069943088855222972651072342742085733758666314530565435804549762142106891568052460949811161668521541169410821920803032954346177927894512630246488509571935917340941872876831723487919808931408057220411821758022168782266714399199323205049921065550958467447563995827326227297823939690871656840064745690965008400522382533788649293193418935708813734531531649351001045321520745082721739613407639347747661389476642071973632822925032655768186149940252818097049026083272955197839342734196634814706457359312364817599440194902266378804907712498919592045216488320526150369503534732841785610375533897805294122875698309277033402349075139465667535149957957999954010564277369327882407398107997609154707742147560110881054357652882977442033913573513003592114979922244621909256545377163454829075333451377047434380262006174625746997009072560904634337905738547338195390589582430887643039619376239487996871009533845573497285251628968012172702364985259117000496705368286381636572473750052008286496603813685532875705978906808537113998114977206295616364712398232966081704012767253946072420891270570795889645295614649846873169717120558924733630209941565914528771091233562061998587942922121942495013883141871660982812987658044523307464530260834037253749794738367512877811420754899494010770034389356150160554059021363298403751241584150002215016170087693086845232619092401736818531608185005194181459286044185641297971651326121288208840142994125936005687932162238088053808759730859140595546003224765396860702193848039734714446060265705003421718684800427067525737276914329317781428751396850566219024123601618316392578622380757555325110792147898262867467236796147453720250734446139241046843425776606590510220775202626669852624189231959881944757197137737779710664915274645686492262685232089996554034854540780544904875842354795354809281477625396521520819644843592561345239340004754217514748617346555505743455937025280492997042072644229361924383637517384255168825256772413893785139257948945267605589685296861665053086680596492773597223011216406276184390728617173354307990654561128350952465964582715942077518772575331647174599757272030152484217885085657131640731851882150280373487033557337635511951213791371363919764842643587813220360604910520923636614049453990542052278112361177600107591071132724275526968783355022893417210920302724851732010059446908270337593960568291270563701735032263279855869449157119972035446222560680148015184781222884873456405925393889187435025845749467519331510191414325354683651714684208807052183787531946497104662816371594875825158071244109734467526152172084476357792595989627769332136862537959582183455964460779245380771250305000905202914176391733064851054667109187999553565835499148704336611067087705958489943389274414839652526514027126229137954449157931277710818081187649440799148938775165613730608132899014356038752801503338340582853824614542457100857596169804191316335377432778777334295218362665931982414698552699097349118527013169830875729606975661906545815388963086339421164818233128953184392471354054325124593581043772351075703310047579187760608186139050375940838107886271170981194140983473487507510215298301968395582963078537052466679390620107004219076630346166814388911653487514386133866080754153126833631461925770935042451488764849252983436970349229695056125467899043597833371269770411492168493581582862164793287366643873953666216218773452969335404599367962958184774791702421723592037244019138710311072798621516365662530680271084482653522023270412441480936038690758010767345767191312970408964089970426507377363823052947231419664532538460943644660315286524522357393017986092911489866380657199791246393053981168053431936167750709612009940471874200598963294513958846508615873661713771968416409871095436835327726509265592462738480183915462399684893884369075918093284570373022981411450010494989664230192910715022097668618829450427228391766456284174945848078394939892636256259297979993844050184258793400748462481882767432450070557659501799089136000278644191069190168432100640231769318311093828142430878617772165007038211054765815009938261951187932748810784445327061760220809719544808670984985315194348863020580034280171741972261244295824173577313372280071505875144248508449969255152886737243652870564112363033885438330519115485004937209797201147262087437380535007404472155663098565718682349916333875239559313997104489408830113106416168370199131617453555940474643012787750287529684837148503864735060516898603232976859564782110015648058067872936480296578572480196089265104613763245151571641335564834796760500170559592811775857042599431513762621583361003392888739829761812960686476032237552054764364163873946618835179251827548498124111280537345361512776320119220679933370904980459637568574229937431688585832319085718069713777011284105656117147288717560902036880376666364865295661310435652035214796226348476077577197513014683156076705269685974415443853808866135250173296262949849356738612958404294758621138695899129310886396209777559644387209003880073006201784575313431867303958533061553303376470696205057753038174872004575583380614072949122939263109485767762112812358178365683788553620637940932380107463635295157524188085090597626862061863274566184676669764779932567223398761824184017638122552483734908240412736136584749986070684739976806373115987262794734520811241404066732985036277836134019360444441343692142706759100178870616708392707988809049814706993966097019322237523314803020123197152569976773888783847952407977817987307775923214848832039985091058895040561843921020465955479306588725329594310268717988492845748545868542914657705580541950138972725096456815123292444986082845324927128146434185362733788080315265115587664125158738717135559064348448486955497740537013535796736184890498360290891599679842156639773990498826480991686657364512120445717349583958713802390726665545536866695485379413102315145852783270016121461697341498437324187293979444673718859542242480778188594294364727090611357412546330380605097276723605150710077540467039166936710380691779385763256962421799267747897513758237466326913809884719431771261437870143223500136621567884835138702795573431810154847432010479223055723016287034004449061400820584304604593661948157522532554882426406413664173445207691143445908227339229786264300707914781753181832012889395275848583833798060067348803039595906505989367321066846548507197420329778581676676072521520183645854839606337621312890921691129123400693700264197508718930299438132914631625063756615824399745827345229329165361826475029696085764707171406703643090020859152477799735966181995013225853392369469151826118038923354441119295611144905427463416440504906024139792033704992711214341078594158881106158503659756605676180131073337555280986511249680711707358021812771936041109175066188891381734765960206283327854160196101664612638757089966348384699577289473934725381391558191787047099089605211300337263630719031576510197473506398065384710627913284821676571220146368808706363702840919262510246850967319309285244179990055862251508473851126572695029883941908991810486555862615638941372160291002846613415697808549930036583543291624145038714967668838968520610107041717591735408989977723433525142432121435668648581337172228912219477596750470868885070664122559855292709781411472607483527463621730858286355253333094616788438460986726111417047001788897812986065761896779097717598197938075304515172339142972773020091163364648752955442426930417536386829106395130752872593563431431777627218269667515981898995813771422804664389925124010679325385734385699160755100968084806660468439026286709826955188540689608672724289682020737154803443530074021646583069363004195392010079719751590356550855394761838618476913622934985825852545443395793148624689353043798632894274708991484874749506987363567571064327737563042882038757118034713160414670349720534102647727552483276636847718328214122008237921913184676703110034607109362379762248199056194905699176803027123503018409518297194174532860807633068324650931388693717907799490902356469323000040225578794931559888256987452006657218878992849259328708578418846532679115959924977973845534046822659229700257404615652742519789599723476538049260683882780400877412952359167504862581847096575794254167696136019627778965030024757670139014099103963375276762683121494223852099252751802166374373864278001381605654877524531898553316729935211486400128240437887302136817217563666415725289931480606432231545528078595539846048507657858039556050660367833175461261333929529882966599889067886438119130297083097675838973431541648927563293370209512718301748167887016754518619823843346529958685009072352220410835202404606635179890361253525791839108356975781698988433523221088903853326738496013946889797596592382764600418693316616323450329856072241372625149391310638882385341023315903125635840434323121245747140822085253237386742627849902763613625224193083606861698590911805596280998128671365355999735536228972097161514331409279202786833254501252948757739082304671668921912900774241774143930424282055743635361464812373752288459838274300961770940938869696592169601552318151318553504797307289251084609388564156149459516673842088930846325538049009680725969323180673414492581104081004760015708226129895043470445345140234701775872083324795887340710823815909858535642360643080894064846117741913634339295376841660398631649911033051595640723371091103379789615468377756280360624798047198000844233961094534760365615796884275247992597749709086602606419850787173091241794296894063804281372932547238448750254123994906810287519941041878879834593917652450337782729852938304569864340913235418644787662963612146432954061009607499768114925164158198639757422062363530027383558314257332658049686285106719692635640265323607365961783485755069392321045686509608678020110853531783707016964444897113330652244069265817174830733258878325028541302360759506368786013299465089052937839074401415390230654168637006366942077119445430339907471125126805856731083792413907576781233732204886324942216708231001406494804738573863894150172297687958126473402694073682432326032870716387200656457126950836188000578948952347895265981261192051085649128330124138418210435697416355201265194686710810639541767537352299484056052693564971900072938232508687018102045226574100459349300950635910924141768482337731610710222208159381491975074598204601589891019921722633231922976195114905352031338554631473777915180705149812419214135705295526143570897457173808809915000972746417727458216523997514058946570394058521241422543811272263768474299033439453620621065297115853608444382723866446655221874615724072055106574734903054902550507249899425277822736959327356389474825825076946393145442093748205637766875569947739237892962533279512591778909092264158318464257774052990562046874647985360062987851264943650523143686565439909137640764774447854453874088214453608320946992151321865358363377531806132017800289561885822465756147473592504021887064168207844812467107022347102937307442570157437771639357697128515905318614595787019746174546423001230731467361528345057066720742396339028960595741055017583337823106348031975053760400408872574777022015227580314184658338465978655082694432468933838938762410387474398588859346159496459988900755520265632938347943896411920491979025496567542149097996436093127649010886852960713151791829660694975420661194404429760465428382742484558390182238861956295369206567393683262910882907266378030606844236075669133123805059195419665627496788704583848829051089595917380034919036621605684641518214805853428198674801486824946747820180035285136630710519167010905022500098028515451515000731891940892889940772869576592974394370863733769015377354470580204029997133169357713994409885789961020758343034950375823253629794356386266194757790157649069265478120558569425342086442384866491200415284821970137089555351140431980891027832568784765443906948858027819099737084126651751620034403920518445581208931854515913436947576617652874506295034601344498352131295826750892341931675807001357275080957335335840745629707760328445979966398692915141586493876184792163226317928038260403807422283109979449940058171966450555596988902407759864696324856987936529344040951094842951198489980854894632202103727947703184450268265591649321900514214156210780152198972436185981608696911285585717026881949258656556243702984583330453978883294352836433395580331695062595725966859326154028613817917284010497411932548879130858474534448354553873427270918149345623158524904760010299636833018908112312158616887171757844110930074945502623379449358533279405630473501285489288619660324003309560362532483618484804265670705978714585371642713852844022724607331223655660318066981893708568497859934411383261539944194911734050763529602356657070602856245113217582589970943833663361862868106967055688744910635980658163888646229147672342684850615127983345560800982670194119961551472158352454288134998183175484856445349555887975852277651335793403003337547632024785554455325227257856940736436180255925036091951303723840705977751064537497540894544183009925578313385529823126689092782280399761925745384711869022900520431217990718861648937764735151895210319132885353029577542382450772902101912097879689297179849732235921685537474094904318775418257560361940138108569421335076753489009119834405032252671320016327650831335528389962810487608123150236163899761119630199809808802403829121599572524367024978723856617140714016192132752430332947870629024158926748190272627065626333390441614413588686587689240637045182202809154534155586949264527422609464171813934475864206396578506184411365436131289680063583447912943153615668505240339227029253418865304980150464634022490878095373773713530052644238496026904650636755392405666127808182177997433050868798771025464482595588502649271132382725661997497253757757136016490242768244974175323222444167467229177465049539869525612550906493331757871202467530960122276388393573616105313210254020713351547436776385722714467279866012228821707357295281823959179181238191311117611249710852257127120681558177364434835101336308194823582095731131406409064816889040067892146178644114216329719471079398519510600204243650123324842362722603193572863635083395817363146259846658740844096463822673758083428122189122723682220524746296889895302886334240998207582409460291558061803787178739177801067461213685734673746695014525039073314632968552257785174518070167043946000783611082950976855036757033043163053239072671915359460380430570756153888099047125339750269178067254861722443476759195486331110739551394791318847770204656365817108341456792444596342742323489880185159990284554978137614871132210618676690423543536131790248002459973974335283518945813208432869238328797300126879766857131362183920028664128872827643551228975948810166450585242132097563598410033597467471332523127838124050141291113048163111022543364280887072831987905072851417023508413780708967758076108801964967888728705257909021133140209466928627413875014988892196370621855106722126352708500023025794920159733760389195802640508702464032304317289880497219524466101941693556531235563542764660773172564728067245521418362343340529953561025057632061683243883623728865559735243609550442613971044667709083718101223941684751954603105780216433399765736252656793590110737100266282961459137439965883544322420559815301798767752903894097991285081760753218637903851962935613139645304034114143979880616106201126244485540037433299990039767243332137337500754570738890858141383760911147654903635969784545364264810003581011459440094347421476579340296623106422582015284244011615871745660855180589869369720685043207498408150269284035864481218793779924827597243080844821608432632150875027514651388369411577577210119480517276569662258276194008172358903431064485647815013209412715268226891932454111110458170431253434850324033164225231597637246228771067388960525324868776002702367338049330851658454464157365401335493606990346927646940276916497193927010758483787141412539001213225767078207287128963366039790543934629516545531092354819727139532301567666923229863536857972364931966698551494437578059407573206810554619184527070304313721459256714969292652223066624612033748711219566784526227628143532627381830219849182718433350250988315088627276353427890861669429126078746349253560638944312436445098128477458923312772320343188245824474466956759022415914069872988973953888842283347007571639732633047300844813893465958012007657713329655341327557550370000818558623658059319196322556278496309852912833880946019145128698454858723907121951748156068966635447691208122219716005896523112403999477336528256210327182748713312380098701213154127870357511541307152916420236654113966862513094007845331619492400564851144595477670922331217490840220792418351886066330887954326459526831484012086614955493967543039807815805138000134053578699096686110009754813214855963265142519598145240214300090029692328078263550957269990189328887104809940799999956507058270873433197917809053802387986772139690548857983189739114618572440522231169156250711950738835692730407305356375088300817276272856696931645163463556456376173162769232656984878938393387231730969515101382516176995030973956655805248605276658547462060130324195914602443546506642494905851078577032027288449195835393979845342843120905372709798177193025727343276399049090111388964485986896102287288780806582086532323959483931275446596781847607479617767533355807888290672241929449869701648410588459360967088252584771060428098648584902467284197263218128229673145760444142973373183255226678484147774116323038164815754282412516047353061728941343571109835050385576818995842083396650495101488647620374836541590165332357059360099835127511385747225912603667054661891579831479161547792849371955235456017810349667953844529030948248114009524364499231276421857906365796905497661078080361624416752842909172776444888459412398065418728472777103813685972552134737222967352605334417805038560431857217862722455290567478378707705219875107403120324862933251460628092841966832562776855457362211599778673529787048633577380656988105813345610926638404323369193155240069102860373067322115183160425045331241706087673458894769350097233348758165798875756623505281832771178733957332363108515161727074480772890218593925395361898017275240813879528447761387882492222505185361047715009639571997266463826471267475686243009768978413574780487326461754395198535403993030913869110420518623306206917476019398744610935657448465474326373757202826950075187606715539365722467327247357023642483238857341701925138258068175579313696607278584660981613234776530466594024432162763160836302536906924033759959707711208278966313483630079702493705505041722843782501789431641946452592044799518519101765896272122317244554155382498820751807380849403086057563322386666298450306937643867813612150586447169943529420959165233036162923288858908860880934519701389621576069779679899761169364456780914973713761772708273325947331240252599296967215486544508976933967829496892485818035307813464115173543098093873366665039274316725544469758953302148420751083281220419105928751152374842812327500898027145591490918027445737032584183800626719561874689854656181714183860104588615423181839431993202953939483430992521663352968261171495425982176059243658603307410638388263029704282017948917180943357942601219955298459857318417645086177839068762967980434033862989085721967636257792201853122909382668848201929328356641155293821208571480399376897694158545300323526734519523022338368292342289130911867235158944742841147223406533346655459479240907771460837049299095434854473750991557821564406245055689611605531332941826446045923413612963936780592466576377003497618610379789873356621022576063529389059535022050776089147400798895910717040087425609486718917594044253671278592065894133420573946633585248557823232345948388874772254528586897390482202704416486793351103697170714147813298214786196558005071567686269277606154148337151044402352708012528892849303680638445052300263549184443619912737773482792109478103698954713319015913623693743041373208352673834318120620160238654276894449645583880423443164822712766992202070366485235724026206097963709639227038342998138521257032611877375677246201105390928401344414153639790996666135459572503950988494930435182297931784831514796307903781623595070383428788632676991277466683508530646542915646157352928798168180836180430495214680987507416463541088891613581887800305516785990024160457042293646715031928879275302295782912536114839653314688369319311426419537962107363648737460902740781590766046072261820795015406879197598014579013062150864767209548734799954143277790808607425203758434012421554472254160375086976543196555538636020476359448756226597326039390821642838683844467850893511376522387010372983852182489607662179182740404543890801204263287510516483825575507263753231196254716478405487299967820613042903726951607213373692555635080492624961421996658916264041291831787341526506137326304903503151943553075732513655922608367624264346639363893423455731394423705597233187157629432604416956348075963104019966163888014272591872676569164556684049707918988334721515007020851591748501982446348211609931161359017628246802056808368963862077623360865693474286900257908255088299400109702646044675871408276799869153276332221588471539849491701151174841696052361724106069052765347305514063300318410016246822520312725779900027921548775705937799099078762602856270678247270369291227440795646467654664463152080744117587665134084865032779849101407097628360240549163333771591145698567852624583764163760465390071959407568136277881908561379349422417335054050537681278742746088251774487469757909372054126232301820191158782648876237893950245957408477480549188926092207422194407099417633303983948532493687610881684071007654871678644453002691482506573571882488822190549134795269777293869998823554623117380525425901920712339163237777534229217468724840906272542774813644392315376899347928532084898061318387894793338298213126661372784054915233080114997803513092635179588015726305636532392860868670983642372561173031796550870862916012904542455482919231920906609748838706095440511108249252922825613889115766101593897641139943568081532836583006837953434468368848538863473548005726466181228605373135988403780208793012702501985404190668849778281884589477328432708932109384212245399450462543655065565679342650088717397472934186219654960107931949306877173088456597185319390276493577569235263178456639416800270894833310605225650798413057438267575634311810207997206001245751325223528667014243301674422540110878675829968523745060102119587921208478456339853165883258668929597827870002825348864310263518446368326940099138734238354126473722847307384313441383867769199270627855834491362783634917559290590704283569213231008096654480320073350459249230020319026416429229908512508376276183464274271122797610945225870531770979784674177056981658257266358848079928599868996120035467977476539787260434406488737697385251171077128440696755578926313509492806776843239196726220419704106064556941516102839831364906929532423541446051847139724153065810980528288595718789099406371535950612996151538727308591621471397123296083720933491865254345263727276710852794920262111472059038081625343886025022832821173594787659122576707386059278996357664954960740000987025781767032505934809305435184595470884027944178764905831200030993290676598509659161536697565901223841022021007436674057184037655756615494022318168219948346024905664051634194239726351827174311160140167042053635813525705863564712006139251119379786714819543549620387184132360626482799577263559053516052285891512966057140836219150462047619177958037825586804375699353940262150271220579570723734512861531210886680835321250730219013968416713994800907781943955381276585953094254026710719884692253209666211473161854618314095032664198653728469832858693564859923706238518126203917287150064247915222418243197609424167426447417146831919647405762093895883771698553390553380255637540954518963486654676190514021398236087485307060759791552861378804101897990596683497037260761052298629586768860496119979505417462405817788119082773344335073473789567736613031403146028021074859099647847396490195372270942221552148142968521941821890738986408094374085129450155304552387152628122678985362341329426275408449908798659255158810186214473970520175997141408236990842416426302263860409143723227610064513081082566906765830559346237663721998415617040728517682129993447533529543001374629131118785356255038641171218016053071680812093777948315878948876944524337938847984895796973076211700403171046504121240163645084364638544103514757980475604367712637096465521321189974131500460664171178103272657990267180813509751660168573657617126384889225090374997322722639793377294915816977630647163220937243059141598387312440605373388272142885707633681460391375135416875784620020589522325276883138828856718651145030943649525345364266634088469920438153790425425191727798119814919915970056418511694221510254259920114939450040762724476741319007063077563418834082836865249976990238542376585046911290232317746456082225927181444895653799263747507036388019505717951180622212337506430243056236534101790074372036538090871175234338965858222700718087345768559929290752665428687360898178208886184527554286736257890276506635015034861524037641439461687237155247274621240441899111409877325036543360526918656461105108872468740928713265955791223629826591945834692705483118210023849596451112081998679796508136444905618749724260868890186578504312925415734979825363154905124858614162574706522567624432319585397071879358499703829292364898155088169979336228650298226907608627610704600029134303416764411486682826824787583811705915648759263600708340462398071386708534222289466753396050627019001876748148267875160724224219865774274956210190710299492771319368148795218492910810542238381055597115064154835706950968023976563254928302431469917056611033785433489074802334198140812751729813864299593141577805158058952013619639307077895128170995979418631562579585777615236663342598753702215726900020172960462759379079766670349121691378657883813855784748127577890883572207816735807272189781205467206897437175259770683026475030097560021279077686133511630146357521740769429954395379160146133739962394744512046987530696253747567986464881933264806386919500900422344903397920843374108749577005491435970117377852438893631660424481976820220180459998454015204752939594223619392272460947602593986135441230126286522126474014673360289684027883308424407713491314741038586901531950665188771043726908841692147599112098376948044105487663299212970419145835911439142711818409613232832061091966961357805572312612847935040716587903145264266886825471117641857852307161839268154201961091135311058165366827671024141503792030592692595789238474562344322385656717049903252746956214035450429929140911896147876293601364466034209171590657276799879237538202892983284322886666672651509839981127502353539645614613494514529576386288205852268864815280201362381618545252718501625934470453124553278992013787154236715363119608795791920462502988782176348770118482807796769210083956591663798058518272469334640430810537371437746927086231538187118865224703957290723423358175754912008394325868429644231909058470449552111040370889175489520708425117702409493188239738952292004878319041054374113430904727675171813702542552987916079119279185255668840145093058323823430557300689391559123218872581919652473153535347884355864914110562371809030250427357728731615535156195966405135532355479812738346633794836187768409805301733098031480733715952522463865817479190671183752095185568043325982838058192194087838226639034575406701750165500154440648856009631044979468160672937746751349480025422105035529095963507925854355908149730988408774876928099432151045388684560659951614264134881344917513866820071039991208853844664440865748746708309478530707559450335905347525044722005922493885942427481367842358128498896958111601591961714118110309793408070404345294406178260237478662039871367747512684198072496931563811443499704428840135829248174247547595911622534534756860318521107386369744711450407806991624135100670978450605878405800793141301464553502181140449655546350636683114355184338191462562825704142741726671826655330034474825965096619374321898872732895183869246480618400801585909053358557579571651599571639017764919729962971026909815753835496226198075769002664985594528561639581572697428745330429175023184320595380645928533382817340945476453897346973405131065346314342602364621885550466020701984808862217320890167179929423807956858376365019375097028517109329138935539593157722570436254189162281691193872797837903755077692012994385949672388006575278108672472059810054796885954558977953927287802331658442846366129469902954821681797708299022675282375593259831993067023121386995395330525196510202320938846058254459552343750430853733653462217843215853458883791413067236627575373507842105419710961986003071470722139888123065955825532273621658266336568972056394399032971361584408432005900778505539067555152948610869385929664671538713115349169562009752248067510331970673154485317574199066228479924520191921347677650508589148389364580494961993467399019868482206017194705599495774193765557203117372310341032389623211364975411876022580036574880792133051298407133396116268818524830090174186269080453084504560833850999469031626728020898791941900064992913338447265242856729926561614063419109156039519922335446960813502254245535573811193105500536845086315204229882543837761384900175029877834283057885323731233765857171505532476726858319774621383472534253828933838458978709501941439384317456397518977074981977162596625857836483044043457244405713470424889645259144011993698229340193740381949075394651439013566060037512558556684255980511612964443437597266547455381469615097891110455148458696785130794663221034772387342610073813257709037228148661576588506308238916617132119452146117882825561123273971323587230720748833131158281374187707481221421686330552274682309124436049319340632609946545063149883341839723509921024232496961116155237576194447898919958288933798267231145591082697613894731332032245870220177660501280968489708512707136161009267366514751432160768909560546565806342065299686374761550644650891576940791866954761068392526354373333915046162774008923722712476806621084779224399634942444991965639413355778932858725147775109801956955479860000846272055871787783985044713633591543849844477105333452074099580998477984771910218556814026282948231903803164194543177285898358416113944166474519996998421836669682521828944173828161121964464438369268806792898851426980450768504833194212709942965500783052963199676950426374972581607044679296333192103391449508667340026409295592646420622038088359089290218405286201039644777370744378400672449742610711660514698940489095239734077323653936796058255613938148362511852823178637971847433735793229627705185461452322767662478591574151415070087770256277576628433101064516667058258672434460765961812882953697432689228535586964560173048849848605919357555426591772184039152131383942631297430178616754534197695756041537775808405538237538694158473492372821109351409719615871971476695222814755206173413606141540833458206361168345407640748622476114702784985483891401104422967637921204800938695134916335257322427497072942867352159121429083384174318727239028478344946365345861983319376890926694078936586225445251589436391071447989699743759675281624769561099615984643485926255527673091065814530910818846668232507803596635961287531671281073394915192434170137582577363929622026915049137229122440953861330773710869773623474122025578075288482681731440348329393410602419540966676172463299517745597142513807929735538475225449880093829037944437636442648529255481744344067415997948202183638666003645879685816150956620049426256585533055519144727485380386425869191495427502736607524265051087662504812721096109090899861901401044620658061999362510758275850086046686716317780133774914042462240580005652459694220938095198271373456352338714080539252732122990045645237682670059489964462940222782547434631337783568129399954910098514480190166332298388126314443418968831320762837085537004564867147734065901716226712654131445294510519966762618939655243273713780281719085687065953791410471339195120784657941865149779802313810182087146524318053995094915120684649718069720185979384052230469625151943151541154000728163074467523611421167136697042737118887945244250242912778917436562156307864858205433308757573622909509021363600943463740486667027055604040598138571175454669287977797069041321103284995063025562940793661005100369311067391834099090839457082547096909306488427696210587870632792164149244897867989505093727040121692219664140841211407424820239325846876824979824006809161881879108490579628051732303291251827163726124388084399189096490197842826546524591242339087262533275658798129470230266376169915058659805748276786633918250125679792095858277877469960072660194714552087743329886366052690480954286012679881184231648602490044166924864831969238358857709540314491358416917941758748518057317648138893023265659720728668669140544065881794371582702490342516037130775439920255384438063208195588681727242435582767345313642021792455132746678888472312807624170122026351943741175301406509961837827973753547782172818793943170247941587726232152929447357215197987599583424437475276699995508604895841820510087860862006866787866797028667366191081460831228284926859872004800586380130378027801758024102640700670771942959811545356472823277597075390015210593834308091484848896470435169525368790743004704892081398945833160053621067970974160773818761341046097007632324624040160151300666187390883728048091810950403260551821008087247774455218610027520761142031987153101637062544990517625728100777757321877117191097153348761514155067676572017607768954522461603002233335077023485127437916879074641218260731917870172941540832038550871204876112172529886730492418642333755722193811742676535521988053295995528412254430072864118351077931286726196417161769989791972220204650221223828981672082956956797237924311722444616497529269146667058187152272558060591397673966886625666365547737334501619995792894392810918808210194268834708719424143170173928788007851326232549942697834671513389424999626537938652044804703066649699039150359094135249607975608433780759831633080942086990560029885713777548870832650885694314266862412066768847729863609194866349812200628444431420446330228119810986105140646941058316405831308563926535444849402198012410533938808886095543468185563508733556950932753335484963791141747733283710850795847397247139997899939620079730781188204121075837686938835367406442407447738052085888536086104551917529157495087849816742118065740544165292392956522966091201422092106938528376663667563936835999910628304047602516936177941608670888391312149478308516356387963325126698303826833666290871790245589555634558232031844800666202424131452104351624959710125536287998689776397297152163801669552949102697239151852780635509438744813912190146186936818982662827618945406561933366283335235264882746369799256504635518185499054042960438217855362008158244766710991472837280386177684614943913485686170665409237498975153472423858854219910188602848634882043001467949926534083828340461547101761479603685661552963312064639505981861254261618304256270061172220437765056444248883375896260992915790142160373312342388068462386358622803935581771512125346104267525682249080329497292480178312302094678452590831093408722931284669223644020085730605617126929648291866313112360018697325899904346106833312972435394909254155235771378273179422187078097368418884205540128842597892780767786524944392337660778185292594882501958897507159905455332529001079931725750137533725187690214649731418696384008896301420947149823581372684226507166686050521418790083395291289586726689492031506356699519828618050651842475646112757439867601104817335888504977128124416351449475933405003814954039200230824480204137123713213492313019191850125979024408612983880353810781602818521416958036779380496940122502988450389620027874192091269713376341454165015250535513127243411036195834237318883141805005996169322159233505958429678857759459900810317215979553592510384994281023568621367317527860721005183999297063996279419355592625155501760158504396108606615835473328023170032145026188684104047711021296581227237480673030636900087174221585678028493471183027682816018155255492770439603434614519340675832809641060011851870233213312647256294296318463177663596212438334278900264901582728158680454314185518357219008297417288570259584918311127396193817456772894433302683778004996548365898023365927697379912925645698897866452095888959140106509472189896285066489425549842893899428140595937516899630526061536698563421133105732577907004691605899625077758642086682999880528158345275691290592907586257322867542096948765489140143897886523270126565951775407076587329591648326809553474774820774173760117017431220812818744812841936548473772696099378442168115802253954866550630367154307269129295997380293592769312044263677758296169206895581939122524950392971650489917518901426588558520353314548182045206212538363712763003464048660497245414922500494776630627123130846792981684065301507504139715625367930837095676994081809713397748071691847771125426923126640771053398403894955886645268612348341048320388829658970253704314491887615814134631726019133278391055648517000034564727611636648241591375734728992151783264873089183994209018659140169207590882523237985829427013290448472124682361516964611721791356619642706778687325143725276760376420518463285686471551257551428336354020090983201729466300861063983896399720066697538804329006163367691321637300410051065303356442329744687886965992138569824266025044563877006391284626422879769325876648314753608874060867582060174829168668181191911702578195950499270031460289579776633863664836911891174823476238277296255327746988271714053696315199920972436250850757788879737853439308067935853051021761283055541116175333043975806869625457837227932930260676341648678759765184834604207704911911013889280178499811034807686806005108142058899118220923574703329933064783873462072486711543865391428623730427045895730407734563310863095143939936370564121952276419521748987971719496453644719324891345520227851833294895944213225823002084815985776390461021189662388264612346384634406397473610174904600880883899412190040464782306475612221844336573430710188023633249100718490645969960723465347948912136137181692419373526497517682215703329768755168068208694848381228693996962668969665727121223415318463908965258670140943207573684011923998703766517415283285322652716098463514029392426215932122781637094740684398900007895979253305982848817465485706410392876017902066278194574064120146867963541373274385534112844107047148559587302651034046596622361845211070605327012384454367035154313723237835984885912674863804653974885311288887729114769264893558141667185320941893432881806301113880274594400541835400069410644161560021490673613235484235669002564588402591924626113847905378006929010369661614626981374712961049484802345048753657434104607248956205778241431281666880773375214062658421028888111526581520196490813824614130776348718829765509895614574014771444188023084340119820915057734049987555239112155336121294569700024890973058352453770649624750131226751952205336785086587950174985522606289500786024830390630290785798232089943397112868243567199650239319303148618600917723554555306140975922142099230786220199592740993176775642734802634699395103272363983299098509393287946026383397064279098413555038416979953469092998861813712300794525718147067389434018591327638657591639766039430932705796066199545264483566635159650459085707479393133273252676413309703114897888991011204314345033743412046034530338914674772475140793405842761500256994717391828459384505115476012971646647321491874588061007393115522629345819927357077284310957468562675978699002449695252128738758766453653662442852154765803097988287153239819521130546611832933243358016496155223614430638302638360978491541872331690305553359930585044978924377749296341476617445167911356796110299203894419543610374142630548656945412019138330088988397735861837137128472838409036237835848772864638761171267367321775721674713671042422781577460854881869047373914449973909683853268271577470021735757355084268345247905593482164626630484593427286884610059330618608843116622626444804231892526964881251227663289425244001259758475565623964387032940292846963496953934512282445252016583459902962269288529947873473570886745988013437519062713282288349833686831004521273021182030089971649609283967759442936086022919225503471249588296471254640265682156635496972519275692001315052369373849466441005493836141164099453050057604942968458811321851395743432879409932236326628521603008243027739173329141351779459648730354958110764367599089119130265847134323870034666056776849544066984294970617640428672679681452209352633661017554921547261671251208621128088473525234143585552847960747337982982250144168583650158767866771772987605640287185419616804439430785172368639534141989168288130612888097636130913976392486955307007970858500828645394024982291648362798597105865926520787216726076990491406281821325029208667872144283070106819774154658863542664271320440010419904310529551844505777833150899086106881265941905186655098857758309288539071283122038590889052631577367186574132301201222256500141352829082008267863381251825365788320773133904907863401941070407659093370905779363176704081417653415572819969066768869750412950605907097349831674458632694994599473474216745852952029066809223167790371709796717178819641383711615494457180551956817156796295464043935617838674365124493515698878990508169153601588109791952028319765346530412576095162903922280062143549077470883645280283898205225516184069435240809830032243132794453088322681686523953253254198494340432835608056889013315058741926252812478056230663885291447734140268838815492016544996220074401091777681322116330206299685076252345771453546166786154063952247853871873695722795285471636797206394330904629535409901555104189932992671246987971385512257147079666396978493338446502336386585918483030505984145480097597147410237915919864219935539227529423128678512036232700729486382345099197762170525774033929179145889050603140816050367688658546223176039739666702686033632743545855540180766690318961248288926222383520768843627486571347465920114375470883387024571314151677237558895691183092486896178805257288495288991948438316462329331976516278200078230486190484526403797241223454140402677892367735388174778328732953163793843413856568712738337607841332999678452000370207256930890883534160222568325915967413866402215162964816658236455336526999405601305429808397375595471944776507344472721476740272399576520160459845602710385134178667158522271190959701055077791437951027501740185999006605014250729420011164507036095219692892643775327083029757208220684311967731519512231503236633210131252122660838972808257678077692708114976864727236365400027769929649239713087828106503078824193306753649851095162926677844987506722916676049523690227137060170306039623540376101435766892269939827510866895578885616265398676286648153997788063177929187441078118976812580168785509487242675940683155594418370810743909960414611702786478532630926720005841571178712971637182620404877095828796142127459347473656708920296456666998412585173539571335801115184943041513092986636003234104334357962193899886040545701765856882396071818928792774630968466011491968930612285406422802191045491173649920712202146285567859654211312972101570593458018933136234041741539726186215554924526584095880850708322946400286749731863994163462111082997517425215434848703747604723783788479482907378228937132271975404841219559735775958224984849574263686401756093313625049516369153183142569377455283236573630355873924135378064921621240866384725958398815531516320605261732105370131781280471656480717736641843292151222322495550980246397792708639150939108108010814047391056212380698157073645212458336339389243393633168123597336756403480058805773090106026355238096107554468114929356734907088353676116138918716038290630697217040949065771669234843543815287974628358793800743665293578987162011527750510869876364606296652316050678279925280498119131193952492713958611141683123335790700882118178326046673947242975675233549839450033861685236690767506372357064855130963366292530503525059140011794508253777977890345393729672651296468155388908216006065559074198226691513316603393952840443133871432678295702209006511097419415372432081446599819057685245971861896684037316531088511122735139676524957006592087299263209908370795556365621341602298512866261527195506496013291369105929929456444843505085154294989596797361409571406527442819295460902026383803394772303579254348142820802251813372145850906647741331537595223203928796120851196928777227047567928450664807429170742764631913568527139565440099306534117494404206020038759829476071631275394779114820454895273340648039498537748750364237735436215232259277879506389474528029496713228070633266184651742009875406933084179283704756730771599244938409083316441429975052171085171822365546054576053749607326254720870243299463278444845797191636178405919760824439782265908685904848964255313530946886130682999009185074130424190929830533020721164137314623386500048863444081426014052777768428433073765711943528561674429778414876081268685145628020647134672970103202084278734559200539715973334292700110228855392820541834763794457587293271096655630734511830758575358165938789119990224128838160292462242506882073965933863413591270746886602794170891746885992740896930907318332095338243429784142061095209335012858032569534578043502496762069280100850949399319646887479615743603422471302286638015381646283087146141714810268011448825776658193553057007201053112971602111199282829618825408611755669775113119307647865990004817926319280272007417693732878377203889632990041015278497970239780001529131862328642898951386731874669548080179687322239129007608809656131453899894461080026237751032762028447809305284415339534778042691223335341191662282108947032268577944330609155019958473822787520658906239689465673233299107609642022487108515741174383495880779073496647372339999325894987242303173766767897486621015717263389005275004929370449461503053144195025506017264314451395545305090619264048855448351102240574352261279958626522515217573679899921135135702830537892193244157213003393086115935605279416218264283062653737639090910113346453967953831213323097015705875093148173510247435169471175428584914674960501003568668172568068646701379051605757666570217594758617224030400744735525689236515875502023039035416556268083565955503977522194747977470063379017943670251864245869363268986287051711556223029060684152703495202546790225440546308555354522584258172577631368876598141261495846349893721659233175292305941277653989453005327453206604511088042752468561304514451836132290976160072962850310288797173223614672145934025858091364650770752233417361309997065803798468657255462713199554293396536827241647998460710192821558613215898390537815397949977538291355425226406741373828099992377989333328758834677274293813097798514631488650510959380757162729026599751315193179372709676787018879365808456451873675382002062472070733714983635835427642930527909539443882821413009041625903997971800695659831405554641930318166840692623497205766649312867053149819901562167333303843269925501350263122716824432809448177184532542164655380817466854537329816573068978525638210663717493442137243090651069881432724139286109665231677872513199293947096751229251224401635847865199867899908073029747945091036891666904364346737341795870444134050666669926475446067082844789303578675179787006216342671532097979917938003920299038919795689909706493219267634258934866052643049312286548120525394819637960054125257044988910669860190601102189515444228515500621067082660654144791500388584413279265753434217257900276460485731937073578490207615999444655795588228023192527756075392317679521956157762948288713417153816325888284635451493914295613270146401571036153383248892635031950923191843416135755011935693071861825513970266474079113062635430101433258497417993954574915946275742332049189053061913068137655253130313993695689309876992376665606882677992871775820727855259721170078196748771124486185966853114440806183200207126553680720473371577715607146949962583423709823978141736854380857773441029889220685458056542496287562991941844772224347951982800526469374914582535645841027442097244247361171350058942574485016152091284651555959789333580975397998602338169005030412694490078321072799193924669667951485184218415104686656992987786415110861172818130437801597576382849383764138700325396311934655295919480128809540469892371205864103909353641978465144321705591190949101142529850431857617916317974968436657144126578402876006751591352310751851471268341367915920714049767934931548466444371323349681168252961517920830840327408512259781306916276005247704305492207975440256321162536919070999219211938694237216104779996257386140292682645253817361823561015760972778932706648259142311392253811383736025628829056861172600227607395447975754303297866800800108898219796316246043777725684047008440931301000051289139557437084590220826853700837350803083767740081488374500489055151604183487730553391778020941517910969657076980095361316793927719550531661458519710702158817635672482603273201932111122474270327750836675599736201400195494224644823089391722845508125145800176035227105035080264297837000366848690733387551158120289515617724314298206242056704923271436256983460794946659581263108720688597429867173124161717227285857717907838184266380238477981076317339735912205135612726219485695491171178247139863140805153372407329726763525176838730823462467882327531501248782005897634359393349510629149893945107440880206998548441643701167523832212199382881985383122857035255955673747463791584529981299179337510966481668269552271429173357236435543842853810477191174704111643706871191933849540512424504201999360991130543581956490475108508893237437314854422748575400104867633154125761656051655885349160292096230598255649593119339168508705882911328441931392910395762004239281275788521006647354422251677582969907526262863054055501254747274619045629622466412514735442442631307906505945790088589866584431781520497788802085817132157454893368628466784003998021922612179650097516847197102374518456679629481445864846076260280442647099235580194481160753559115473236722200870740410176031448695499565137950607347535613004532030350362383656460326353294363198964842975554486308558047057685618464609435367661264073684161870120960584768672848476620500654629913520724728454099471955412363511095748872421794341289137783335396010156997001390758741774699446019232225421132515751549169560982587373297746997844152962010601565714100560539895502814765494224405525651641808473471947890818823470533506621804793143933286432072041684707657824276039715484926301425687206819197380772850283313263322339556667700816891200654024447581961451579610852434667090417444034077666954291871869083498569936147828184031574422240830769930559055807708429846705434783651016048581649474900175116425893314889227601037039577662539594601874075733346778028845306168774027638178594388623116003948056543202043279037605676082812159186171553379505159282687400989769337345539269144881421857978227866970885380793091390639683921475604235435128512966694985591014063117741452658879130046046337152935853397461971432790055729567455850406707454073639492162414650386331223689618802141239458590970553695195281657899681285757533080123504906854272396357732827752247150499550272752265029325487702576109851783611697659380384296308752342346910577420640947018269335018301195998884230338825728851209211439484836203092496115011552381784280638817417982885688000428724704088261554011403157124854829901956339462007609847505218187768629146109253824857860705481989059736199445525477998407998453471463597498716618266993825066797126367298524759630213879597978736415439403214234094231118742308075252840139424664827780666229758712981839966828282448393371958538170288283142023858059449715479243367394207336929210119677130053392128826098213344445269376240029400771345203376904843366428065317341188113733434400111027280691199098448176584251170534518026937969991317245053558615305360631795650124591027601327328649946239620489702676744914140647983370914695833176986658228890654201344507283035968466359177046705992958572602688157177374063514208095482445419860610166252326157711848958102179505043747184594864263272267316887807022499822117104856614210669954142178526363823070281953118108214347247262609174979857548605021049501166318487209509596415568231409221649618714718386784463853805687155704430913505753247395568806068642280184264361852958831788244083640475979491507726700267035741058231588580936714307409989470359018596234083827863053707504839129287572762406813374225136157998733601807356440986201938523829423228736237947306360758334583285025701747569612580207102644037108323643591814268101301983978792181518543663913117199733524620594343760408320172161852007976606351283465406538978130441061877181689657902361184553797997149620459331436481603527564184678311934475235063141100414670194230272602091348872373902555439904424758367822064725930456592919713466600689805632672965235844121154023457561078590043690219494720769421322305619410040055604150860730546855521739864397345650661512290747286538235506509502583695734247239256277542043769691012058521850562241327523008574243605087245006053128150546864128310262198715745829624765665227970774605517769755486629857960266643381054472055591513322397785989467118726377599805823904774169627554577916829188042137145651904645549110080000209079341372380973390557266031320043839514414368163383056078541069967458496425098510169854536468303769224237756436762713109410921080733595548573060563794042674921455704571828233762796100423278507764627640978970951774246536306346699157237610127705659346181087450601361613020750672234508926727418517816491426959149187784748339226923276603257690920794595042849044423634094754867223086855773262697802840569890416428537629108446026412180619746211139919925153448941553077074492904582371026562847536212882920476839250770753420222518943028570265486039732173141095130861707420282687917885136207647056706186074056720233048215109568567740156968562752210363839309467048118753608058716243392932583002306893879823575614994264049651739996837045498858829750399667419462951672463481212436158952877852862676120361610306914592970154381538898127115865285258836833894817041303182512877780111075259412262989165268025245860015533792319320269516545086530389229254817740368515854806923442067380283095446080101263601669801091302134406811408263745676596485566192557924335329707080363262810749911809825994241269752315225155940686967128512370769098202098663776527623742877382565725914290781080204208279549630790022867531862630086126304332592971644366808915859146822244490625600288596757384145222503349861049020278857068023848195587711925215518672119265156665665580760399490887736560452466178993165004847369821174025006380504804176330604191116749625037967843232199643333363797125764920958703996821375774778579337458404880044338599379094515446378902111236738375165167660678366468053867504177082306094709721143927718453608785564792949080842213187815107556727425909397406761039273091792186802082996524060411739635114768488234495526065618356461800494833116777825932670012408551538740784156635447846511936120312581691251497118196960322698749570284375425322981865086648362723410495661452694954627826963066852553307632843779710709803707127027460033661073286109241961513492118288017418336863217736656020922004149918493435235866611294280647648272107938430307616652703404566629166028319197837239256084895983771955856868304293592561961852958576518021729499754440741189365791824654623700402428120189121124904500768299671775295927192897308543981341422230545973942328681860957973478157642964570220203020444206755649893140789049892632188614569769414361737255434205371650929319952643901012570198479656253122789872489808462298788652173098670162099551020599249798785057049120204649851502467816090959150830725186728446119102699332717916387511242868510091889743067249257263762732712655071346300668076553371997212056071081173166871114442951978360349449203395788531807947879586469844353852943676370117413783668442129976033486410868886135003726233044687715761271943608362638845074720334036714813995528424118358444921687897439535485378683882776377161055698281089158082460053871401416769363893653848714871832436597816562662868995907003187042293304333671972626710864014881033054406382019971983937712707588129847009144658505463862345891105139333528294351264000755836712810930443876627005684864840709445526675369159925299146965910809379438175912747211381623284618623842381149377514978538895624594084212306342459487435587254831036397050672132667235935513355961336011618825050766045065244853415237558807458273033968700240190283120944017558462732400559047448149056981676389276933272746838805408486276510065520333450010598613712894924104898672066528533172598892029300839806143895800315324427997636055603334036399452895950591055314152553986585248136972996203451858849695028215704705287839702391044170035267613972668365372575878162682226605008523166810147616878613886958139803254409585947524766328235987930520584339515781698710272288266726788428510673426495360272879572661049742963099730028119829012283489071456209184639295249368671728562996293125960034655380331013171824987457602170299445747424868418873024502469958461681979651663918286151216964518145564493599798526201533207830268325548611067761952803067441067760719690721872127246797104791615277542236776897608177677390690605184936402219213228997045143366824524428587744412294171058395608903298415675743473959244035167432668207175681603272447244827219457892003517487228855493370591422487598429631629205014251416833201696835755879967221204668934034710628962607061162510526157733879688731184439433173205292385552925922927564912720372132724168118581373219414197972638736231208733835896003660700683861799616409998603596655178155140964683180190084415539010535717101844675600590853733813256167835450790350705861300515297885100023473902303194571618452966685714239359874807570854890876261040227004243969765373136422626716236660213520047897569944785763092170835112163399070838122789138731090367104027262453915455457858089854674458814743232142906945890353801555895246604984033485424944907492517454562311939539065207228799900775802661408575671839569413759034356940046471772492916141028102950547372081882756701737002117334574986847568518602668508209427887172811794056245592466413529829299239362883858041805808659660665679465632066246731116787022114481038969302464091910454299770287866759921454071220497641591102272310627034558357714878333194131596955947714496435485620568967568768342115922324439126334863403384140701924461776011064658418612816976665772754346973900486781047191944639097431333181505614084333782614954060892585990208223906358893965147484728154231257468363552447346561619186524143886267986544394119760439252467067153027821452664943579732436141555052238658581627842405103741600701641817995648442602657332122819720019676567342364255255033926032720286939254328426383839809938057929403717921659669685921814386447832445229386600562477096339361036445271113882593465502330224598847166729749283996671250985189223360234143350837912919116251984505427465313875239482481504203316922254106851953385788312459691365536927733610880867908428383484013644781950055465356918033884023995631738730729283371823810251892972514503274903384590695809262783638940040430827502751365827025480859104556806335492722625490196973458131121630791852816160849871121992956919192189349807565990675708796018357941983927636751857004803326004434953693130881976992163598664231197906518531613135683141041316710295891488431915329804639804954942680013481913716915061895813891377246572693129524481195258967601722619535057473630002795636766811084935560215224522510917985110792162074500291957439344302741035703737807268732095262682936378824410202560550361266114364036120862758504754655154022863937378307899149366175583779405810026053818540012325773948064651665229649925771680121061103795365260881089367633232467978464305119722509198896124155437963975747484189243840651728727144661736836488367148209496288082880609057986510431679168015180795172135555524863273331843349323311479387645037794195973375256914223554874913220976857395777060694144962454835108353961934214791709048256036373890097374693005694930467576910979010400798283572294689358397416078399512292784033295844910297465409685697098671016548696257640880788833337514363974185935574350893683296420842948369699904957553488444971883093712810739083313452480720558132398387204185390250969051042353730714166814041812273742882307118930587735651852804467694689939987133218827304458717815622998377446940007992814347102357768719098012688737275806107057026138703501927183952488602137509927275820037852947513222924870719775125844209547765556090778981671728506782694825429522550624380533322112847796065623757757337281133233750461207516898316627880762950835674124391031358868348387625166502803674259438326883129679730132169605399888584162857669370021691129592335745586525590053947697777996703237797858019540713953009340625644436471156400631392188570747213564511212051290826989583738351369524403418222063288444354989556349022669393837251124401567157154481146863638833830984515616394603173133863584278228826645452795904790211396640623121879975982720463055790862064273608983022652751382928399157697190190968313154943033351783312996113298163485761810325751559796075424455993739462770728589530785268111309089217408906704883994898334595777664267512941142440533350839819754673951092305210655608358857121711887753757158357724445195391797163843159621751045799429817208175904645964263709000452914951127652446623634688520874191479055311213015694589065981822771827120866025735459346636379937493266997533414918515630144914912656634198572513075003822238772727681516541024450436464978045030854245102250511487679390146292321314701630500310911447180491974944145472747327943299959168149993038292143324834701518739292873684902644538663179669873975225260407461839640909816595876971636308462405467409991376480187631249188822667676408786199560404169891113505281030507984448303070642132346992354766626685524981997458187588000735532383948207869574018051345634286885905452198641832400311606696039535485981147556798236993135439536607634939938067079079981648138479931185515643355979850510659767438325455048570696807889065443781143851032604011084397520327610696787720983640117717491958933041609421975628896189195302040408105917975736140830772704682086264003484420506828947809676646427031218211559427516083935444744262049029067279471321625380181557579040379403775794842930831713369816543171862259650457360798086686480542828981227242750053716020660847734055200043472326402019385173224333982950159859095819650335902340316306218309629538433027910408920828683363628959617693997852638231667413124114788414668953522095182463704566631622928091396650844144620289373980267765330997813090136371151419946857942220068386718602529660785130696379501436443044668789514284240234182575216044908617384665850441259989271141154222319693315540340924151008265848473153741415105123372731271956592600674129592397900262182882564851027638728558097121850559372787230989769691160394975252489529085461502934824230989052400281978544044103119046208759888065942567652712012955308565654208702241839061881490524048132192834049648738099735403666096143290589939351529684476125172147511621863432978828393501709117437409513603424831473725196800373578958533810879581381309361391633775469116191140602078538230802361921895231871269274786239614776219427052300834532090481243350385184915291764147773425774206794349361722063438838698048613872407272562323272549180840834279000747048512607335325668704940570484394245703066631268299114815605711890373185301017883879073136568690231967790166706251819092510518520516330102391499205915346890249519265300600850930413120295786318732385155176539253775785174755763208753797954396429138922379013263102274066602349535691213010387480250953513459140295779320702683184734786892834685731620439184344008532867832014492580899421106455676324811010582798232628327220620692990974145183087360463407184392145704099756600800105965282560645398378223503704095083932345343809321973502580729824087827776717420475156968491832709283700702061402259775455794407848206151903145364558514643531618654612605983211239861215227578981035449878270924262058830992830958041355198166605192174723742328949121206013933881172881283220885665129381550256763562716936168065207864989365733596018014098718386135162887703544066609463939497296350073718370167361919978767103570308171628547924404406999755904696967923885174860066371703412389443199661789619111713309879636251923838797322915298186994053268237521940801832203948236451990920604375935830943528465332972390323464852114087413468416345409832040521454937885958932218129301698493123902712889396921524818013620176574071200727178633597694421251623168415788140585495358838724223616962185543117934693098960695614127316019240205209162570997003174296573026292227074597068394882710692464714658395921788819778993866558222188805528290753889881621002782143379838866957208342304080453242354129325921222215009185366192034317773840951690806385026994191959543816998193429131954235785579315888627394624604634073427317487838604535265679003419059165792166080029600144840494256860106121240248460345938106411730984453394929874089125748406888571331911171923174392333365015133961706479912249994844417549181691087361478674340261927217601961137759860257167789088889703551287419290970170305017625205135419272154203816140932627039497862827567609754439259006482487436709468435880669801615785877056895367380534481002457173892572747452144631239241659981722747268431910341355522584931216569934149110471320840437400589723432534126142476914069517699961428118350947065353328030229765762358093313228946879823943652518516231546463949691892245142279817882534547950252544714525352696604203790290766586436167406375917432867817754443160856005048423810496652563231719812555508437996398075039972226593366590636301835172657495974770883406253248065821501710591135397520125218556266288664888950267844779594007276257343214901160601731716630645170140699893122969152696862436770561716604630494749004020089126770642258068474966158841890109597498471786272693616609727918284337777768728423519151638227300405009250301159309117215606821144706677826668990837089790234200418979944428552927340809516111577817170353600243723081685456845588904748305964705972874824035500770540665777100693271401636863588514792734318228912794216866517416391089843952195411943529298538474125429772647618494554672848492879958071798023909651497767000739058747944906034114238245533799874614316857278208179398280036412164889024380778099779644294462233256828532599587083461332372248313297379901939438639085959317105185948724975205668781213186717084088328646088175877646362346412878043884132110663643991831587897617800762663327267877280780194971738980113685268285865626876519814874092329816747309338063446582236557186532221783388878574182327298076435394858703317312813552268785883952466107958765516892672593861865335773885207272631022797716834532148195246624914511187394647693194398635301053816479752566463004754796030160517901216923707915530933390917686545159817743886951338010640277619242365242652971640279903234133278178781767269611103268419936724013634773041065012336477472478869211488581153086762929534058490072975878750230312590793079048910455635002775858187421629465312686385890008376514055401260806400508687555899553997084739580836492236752941022021493313783446507382827087291955724431262441098986979841533891592914240792561698704399038108047531271933240421601977912561006102809711254063271899294471846671820147661490052713052033113522430627208981243679639625830086335922776525406482272210284547522772332959595226495660442880410107719972581392491274997015267296416658664532365414989269333526049589322882655714153815811353190598188987287054710167372459274731170366273379533085239917463476957797993686566993057942475887951079270522113669392317553185998486354699547204690866802619257432841127964061595525377476033240793119586369754278710901328940709885543645511478954388779305342158468013633998239567848866700188940711141578719489267203903285997575429356020057862270201914388949336866011492140245649685713481563055439318566621429958031372175314181058375140078547080585112796262892606373022276467923872046056142028110612989626901837159760250655854224984590787365536374926294271853269617946559182133740366526670112855873526385889232111447157867096669566623759831442581613278260794455306722484696619257700070251217403863248777667715363095483738800204219341861443709524782780660802016854960613428658091376050338562631235405750841569556868899984635635576461524614067372907956020207981768634096557177354273987984164922326215785928044735909144064140597917422541445184332894666982106063409247720901768904954942286100582259010918831346059754745849030954243910888375380687017739863146968975369644489025803443650468980049288789597725611714838437659029379624141751044972701182151578226440616753700340587817525033538805056184233415557577311248766281973789124384629418178787973135936210567708461133345575600347574701174593111285888143196040768057082231459715446527216858186377220029083838999735973037556096893658736355248677305343997215504727398615032106594249473828160873816259734532795725209616103313613522106165175588931226217854386057298406794852214337396469412216670587137339633457013290676317440543998257141595938963627096566273239439172111872515539334383945769984309396270995842667712048282385812444314346048630509735186090550361379556150397834934047201764188884030102731808879342288672888088148410595039982186781445259859464866072864502373864181884819698300972170450291936799112804896941974188646864236014386473666963967339368909822556180390119396389474367139682891091590141308801488836919182816262244591144140581981445501489450407231117761820556577784932330428606894922013616645583497328744261626266557445381886873031793645161584368515927263321322182242992660705719410668026949180529303051946808242969401148229611828905701737781617007420884072722751217860192852454295717443733200600160875539514295725913869346304231159715364259914000800625502302404626658933427373965476455421548164871969925136015292544333198167854514674484442088977859729587955859933767272262058712847738890487134330687386671023599363852384210850996791372088863196539931047128862670600834401427394346659237623692919383950362912798375614442843346464911058481083495553819636823889023069012577367685294805331824905532725449940055947025414069512082836705679757771875768582969348064503440464439790301866178942247466262855848629578276909271573480147293904198948610269250697268057090604806562991949197559448128460080551401707418389228609616539228022645117509305448854777375934819326942629332691107420053268303822463615230682033247148584756322301883337484305546459225691035307370356716681164378256961091606513959832011327201713065203210995283491754395443375755375475379446671971109736878184349044900212454616708401469309529413327668850153175634537328476399149465126458960209401230682428869059660317236766761446933111609988988370014592154751824446464439993989855450588271473887838530433962093174884852224153771399307589867374866683535530235077042000509893980285612902137884620906244405635470810442307046855540316903902240896619584792409831094434859709487267710864143003031647845065322527571623534960992200598145317066042929587582204519169421261534006414836484000435617346996422593595445801233571661699200511588722951751721381379724451597913296964065669534170129638224469798091967212139576004928161943433933916634419390265650584094215816282918423225706167440723420500098370009495573383947778673575375039696321212091363738005876449548673043345163985161185254049223453591514723308723636473191423812845249091423131520831063966596771016662291058540576570898330452376108773470446967545353368435413266334909278647914047775513739638805364392112271228631878123695543862494262969453524872166781394636932275855220743159614136359235860404328614644360658357619894899468345486765056876922963248042551367944155920922089363139774492248612948630580670386205832775799987480937045256431706868483659175276427542278841287265848321096807667911109779249701732450770146202557023681079528123627510347710462486418166638150434875828570834688818346046983698685093904501931809607884826158437923299167436400593113144532343785755979538648774093123779130092263740649043101175602178532339901278847020278310521315411635929621801855335871911744931165188916742451323210087700413977145290705331932007696228822286488789855758432437304189409455156206492267018762640824197999118895078838020668494974248685809855427535725482880102318926627328136937720146734764998600429259724117395638359785708415393343265843911451109959107221588873073137257643846871476078438999947524298363243710555610193733494678743350958457110249013614072460251815133457678965855764556479566988751937980182759073596395559485367580241028769637662656135698114162117326567167378892922105666747842870474735637953072421183458289568456598859441239891843574494587920999813365056207962822611123757397827167293776808255431064552638278968944281706305063683137811157677881902498899631007850101216754957079901396081899642176228700059483257138464226860496726941627740496011408059120105147318038432242135137479269882987123160882367270825992080916571094114960867955079457504193453744842268798234709023487367881722376864567580118837353786395340460117314888208291906780882786978564368232487660297729820052272053831315558060015600249376509302684593106250934931760156472444903263963164087021895598738981176326326289254779964230341493492592496279332317777879105353403114598979181157344513284222477191709172857147876588259000549488551711740560176207174826931141536496747169488475123248701622908301742129252783884749518995314695085029730461231511606126036098339056349317785061598395139502457834462699334413126230529560826990105140528541015334261199009900003800632539387356903291353693859571124916670177711811289773955017995761209466898259463884158158676044201552019904860800668195202341648768149355626894531538624362938064013086246845452570952232226287902307890804350514369590300374212910959475851687220881689178561669422860364923788869971732810738352565146228154914613639039740308292873290865315140834638615916683136478794455163613914442803665086159519730526685408424997282382458925186672026013393465507587659220064777699037333316618684664165809403134154557047585598629401615199693635185621666867763335077870493597917413183388099904943356921146681055952866330141842913229053332408810972758014888609071213220119584749685859711515002575426315234425158107050403901492005438745304997167914895271676100358053142627804755337814337498634456443220471367706811973362183088948996160362170361293163048011148835188161629938772832340066202285141878104249395834415286810093422372039677241924529538628516066234605195984920482859563190211217336841031722272499943615825399330893463008960242194783800931650120969067628754249267658382950039078648956157601445926612444604357701932994469644467779005084333720110794729466067522398453188443468576211420385267310495991516029205977964254768739803228180588037501014661324815285179037896166786231014613512158372353669503779090361088079088231773725566707191149378997377921230662257371582210583365879444427728421991365020248160851334529792012052170807846289719450060833536145696217120260282259227726321949919364757730187434156348136651833105538393824771962095563201805558271194670098949148017991783494881527720895560442307698323403747422393079365555403908648817956579046236012642910992511969290199729865966964028742251574943184400877669428097375079425097206470118960837891128734681582559568064020478184576360807437793499687943986977864381202852493400557493923658732958851513155335145298757642576709339271273665195890668740482594502410106857154648529747231312268353150595440321491933749816430745458298942159873318366883785390103977931996032256196567756275616832097440268793883729957645785800852424950137217505589995186401633950835732220032222268251552917992929407814319221206473364681959266515242739031725497414301776850439908125268915334773396811956830816426089496776223415577719664128625445501187763202327572045373201378331575234765683013453107513496831122391068712392646218536179074845669557510412921457658903309599513235127729356640064278774894170383489024205695370873213427037733906814802184100005419445454631515171333183688151737095228217113213427490357243509262910868575676185756163227432001524965892153470849061830051114015661196776769937440414750445140125944795218326708995396653536499447272923675107217503849342686874413643238452631605809361904908291629611970176764791246335235315712066123094556974677447168760998552164508808919298783252654321290127287066744829970447278864740189892286201439452411725514854067515648209009252752061142841046769025699417152032082020450905607582584162456241238065093180377955998649226905527478612781847084153724736395132556141723276689899445049630744916477933581915387602626938605144656141841817570398503281711002948371296544207427422004629140935069269006744050587672914204721339413907766314381403671923786712246875013760347171131194720279391429084663671867986568699607637180711915247770450351351901786749298357562852925143289505769276043991566389073631742375087430392725963085642256926056837161943690423543652720271613028485862414194246069504143622141160646412282138391096488996490966337952901374864713681250511586438986534424190426405540890876096246588981489521861625788359555244113033469013913456358250850474090639316357572711789581409112485404301275070593455333808914380693703287286182409381548930986236023786964944633144606076878878831424262712181149974718480795255362147415984836764753193012193969055793874445209407857767099457276212079646371950955362576562444990242503841271836275743179284588757021948931031672579885473025479575773597785497323292851930706384651966377367244715527342646808732342887196028010237696505143117049593661665595626862241762506110633944289555506630077767006702432155758040104159814807180790244610332013991114291912454242139162070647848225970177624829758845053624320585111239013754498490819726738647528225933827838111380293071720123942945083255370818338689973761611767536628424087323112545343155563358321474285278460364675100043121008466916136489513180152814571510792044872477305390405197235214752064332494771525049443349040032704253079447107762436553961768392006684110751572881303611615571178827875852901232021066217931944143757612370337026342996360556433565170276055050423495008347499976623915843029848988930149642089150599027761389626572987527858196819989863262668056936843579969987258805410738031218189305044442768867091591226992550343636949557280612432349493427328335316464845933666379280262811202485186440435670567178298839033853758617963015694929746134265578290300669648198128702681657904946813310156083142472024578524432967441587363194712420573503137491323414243362990492116870206375766684608688665274948981081546358981079085167072872993525496577448394410412220228496593219082747115360249864833714592695387837751689237544730606147028839474175940717137747731203477131653752701765624647127130398814691171641621422667270566914776863782146431316548775982797123131143152890372423074441590076301121009312799339172705726927333126016115915342152153749258190754036240240473023829257686046053193513011709507346545661521912773221907433119462495812823762187873173178914764018509358067999825587975409514190760608858907562298837423549844160147353846196523337359534982226484341533139114783928589322017355169907186360734991657361784079069984137387880868825034451229683743002897629362471663896846977571446294055795415128455534389036770205637679352574392398401701020243449867649126767573732523735062601348683882980429742511210858966172009093056125336914233402058229750723399677332456577722941077812237140458459039060879662570126737912925758648521280786233161969916315814695521375368173339558551951160222480035225523223977238909953484575644979162186213601265944662390111264435784017471047447567415680203310426756979443254273885395727107661310140182599541081766776624895196411706545421800885711851197582219815749039315381137184517887441205543015445164405079114598873033527342757605034723453286691937603768263986831901523311141055385689592607019144452664749289839888097631799927244600174144321360054590410835128493689674801940014467028235502289190738441707258459788460642078063454039854133371369067351622961107985096096311865023887019073544001454689343015295842529404558412253588067888577269565707613511343510809261617633689702809723434496445394409548551672577373398245444282925080176683643940452736543882374134818065682670289506267552819930022352212066689245886113812173663163545043607116909513866033929697085718906808487309719249966263880945594992243518874960394820347362304398233676062078834978210733262161855865024391340750340705706295357308421260696708741188332928663295741988743891972953131586223872939160705835481707053383560743291127552851003398783781898165686075042879103564211145536433186594351477101577315161846418218359458336884497915890094018201516670038985270343550908200419246133661305628388901680458071093663214115555788606499974732565786130722863600085953075609910094506062776021612468962107320073194900301354312131639628960687831217246223535836056786176334809570940749218696240960600677616775168378476469638373149902661725676078462031369199475680270789911228507486788803231434773481403585118890155847135815415357305870187718005538745245647256545795533938476397080514019688560572429861863708484461844738921545282499659669287195977450805563262702041477756157809792777635584873129184855357728842594848798064966159683250619991456808278857635198789160973942419233137961713955873044802304234260968270769426181140621380763562752688168325412844827425549379404113127409582573144303896055358768543756923395176151883773358974834522722063718382683824622033374605585416387289111795825488411361112506706154609816550161715281333819938820290117505202838205799693441608262424396079626338298516397143325134694791450312271095905609162357201349747058272740141082196968170647363018593766293866591721468774359877444634886814384376891914032286719097724801496924749626504149231179928939541019233244635666433765366895355822112169775528718016396279986475429521260372658332005449377765981493769887833985599192994566943196904216749358041132376849969350529451759077011512714452134151696757997206852095081625474875652776293161901145953117989384605607066244469430942994827096149882363483902200378121611152442056468691695531551653516822478411694257325826469168008535770446324170600011477771427350093369255829685333033138162364357876874503545249132668793753395478026466514972399888231571988306761743565719621919801901295196926447056632127232385469337630287621883678758885146112638143836183290132411526156794664960009077298154447049495572334846472662864784160595457960159462880420190741205657280289967246413310031117449562854130862253996175869530540949736744589851964592830676222316887028902910589954048542291679172517894814951106280637344572483546789368471735659006268717900520663286157219812262482146571023825431347555037536344626844360704350089981362670621728553364041801188369551027566660705017933024700474708916197644462746495549427472278538300441165579203711636435460794853998560722888711247058301813653757536605022490726468267821868576748896186016711635405614371411787002703348325081115852763294620259157878189463689527027736102040017572196665484113728883694503200620932960306886983696276216950152508236687385580860871558438513108872346710587902352875846635297316545485827663383001992311951231518586770269510113649604543850199374351156685654028120751015275214794232845380265230534064936977886850069142894158279106420426440490732508227900786833348343556848969511327211677267884843123817849068815542362677968095572582159013023957551271010317371135570612437838410317839842044748236756215651629301172261098811830481673527465902188266967490228066171622914317915337820879580653543990678581393439507784828388975340429699270602240774648538205763588747152353027771642695811286351094269019240044945210839648962994130251586336848995180793919974031920379845380931945323119348605810217157056546541461766043096908024766368729906115298977174579283992211211358923740835315761572056130367891223717552685470051456387179946293733727361390536278772381127105638791788776610555178041895515872511618073442064987881785290802714070789531474652242577815491858936798871658287691388149031644416207725721249326279851493703980252047517266266758370481101625534330357529844635146380933500712981851552986649808716326103718918371776369331038991929598465383883480697120543194013299211626581919325324429988843361968112947765177904583655951345740808933992704069626605082769960243554508582367688034942378307973742695622456753492723595737326723839122719487490518273427571876271319055497907284628774651334684848669086671589930185189681543196724205635452353953631438096310744468005829967372472098596673870932553878863561567224283351130960153028248939368820325301265649659383853960102944216763886774857933381383599294790257586240423586937527699216787338286749189085142705285660265317117490970207944041486426568450148190639130032586345518875186145065831105133157558942947505756746289679645559296907933336699084441946942872573197542290482276044661218141464962144494077101413006636805586938853547466017474618463177714687921829584126756476955490541629740655952522134666655497749960230414655967157181039842779134100378018473374453064631288193785595717985694599940061366180733279574563446953131726089382252647225434812400468591165719298592428761884468546472706652100095690499769703264246354799304613918329463051165391227840041869117280527606472234302399876220925023580370584827962877639443006781014956534053604887776012962417633653346868813707080677176635811950469271811258668976801663649856974972705850862241479450054122312238701113843751231487963379437610558881984562639027189063378137225246939145647314024031684265825853082141787983331700175059985889689635544984657762375317911366267046163023322210785900013513434365173889284191435305510358906805384755248084908173683440279480708198689328442883124575823443802237134975404995884275030203138080379772458190973806631716532408008233899765811834013364070140882821219673760522643022539236061850218729242314920732917570613471271393480238756130721934073251872902517568996630519022490776576554577025471245343283179760187326557928912575508340468445507307035967079207042337616944231845458833105297300471616586650825797844377055483952632553676320934606008221399906266456120268659482460896690312007527318702155854121050355275631004528318799122349232974319348005442345570971604251327766796104636448667833035591995853940427221010233035116132762996774310735745162424111017843788025256764618938733227851118223152275138599321024379748836695940994991787093408698195299518832972297475437412906248133169279033474577348976293550352730652234256497305947681587091726348618276671989355856383106131842311902429517908893000541028908850065041151915778990953616414736143207726649616563302927270657249657276674262613483613209883953781974391411762237642388699462356383899217098472376308950883399220350830726955491962762509044163626729469671164801116537441641482434267210325020190552296446288767489577704934910418672883207039794038101254017652129182768575084349174719528483638788643548341283911691891632324764790641513712011353882210149035882097409347442674162319391747655607606682460840313080483319098704694655159259556900074357230824075388973758876170743593370081795566494902762889835644695677755009505568915904245477172602231921804773554608519165614013359544628320677604556811159581949476929136104769533143385762261457151866848024721360900171634736825722010039375599095152625638674237739314659097202060863304577226125228910096398473755856714614918291819354312534850886173821794815463657739383270584996510659521103663654789415009435328309869403807645860748956813049488401238085594145219130035949831386795477920540096019974080296602176327459703849108636129210405735082649347325465661810090128438232632433360989433178913667709055293367917579691836415515962278118290757475779997034253319051965689812343215933497500184552404381995694271617155745641025652860813830298694879369601412158577792661737119771273503203372268956562900649314471668537994066451475858681558644827350197882631519105815858365457202031249684768351973337721355258731259546209593455042828875615962039082874509536688611946105284151060926384180312336392611138296884101753889222420860608660766581040761729385265382666073262875464177796978396369807619486654473348709155938053862143347448301915879937967001983598793376521208976995788146256607822100293203591383447400445088956942944844531264500457720606845372611461532205939983669333356276635919514196378630536089244496448395303583549309823324966618023268384404715061072219608513762846526042911256102501716036094177149101338397984221561464324694477454162885140697618267842986185270543353190579942314609593473833968566253144957583204183132579130531299605619254629537930492570024755357181547854250968055400234560229315151905718963529458719585376006865457520489829722743702981192778490716980359574584747321203226496831321600166869616108458290272266604114102680874240344402369695527325643697191130765182112184836450522955380056411571100953020866925976621695257737555752096979603601758649009026643976438243104287505980946225060667533607270690813984804229888296703019678166150184007385691223857993975628527366641416266122049468892294310391832960805888816023032354874986402197913052043818039851731626689709203128088503568901693495800660552369369327256494687678890140661315384334274327720454838475245714700223272122016653114969484447477616505997673398531437818929317864265811032417266922815187027524934667909415780594670186758935090576494782477008329256840429510000440350201684937092180484127475381068979866846098706885720689594283995883764877397065984332737478988838839853451436191602960413489529584998254466950884924350841960895575215680157049004371126749855144696649479873843776434243358206729479604632564229589275021059868925863242185391987414911577209223284564151285546292862256552611887456665804040196309971222109022443547716083234857531878334015387014683530959110293904261487455491795564336415594348879278248235402443534204440250720154355551553600957172330685118048347314343153820259855383671782656722358937393662703853810995184183224781769206219036860908091676397743288905726028536329796910955075300244694706580790535009653939645997798900014111758776299356084116419134324221229248655512603965497449167401070797474247728674688550969465481451359623451868430750897391858860587809061284828482136736204231502343480580910202498887583607701509486071396349739882825830485715012727123584183493396302932272802812527083472666010819245213189492856470370708262387043266034977020407610460788989206115199436254546411852397764567698749670746263539967388265054307025444377330868588359066193816449258074117462531885049569810701027165526156309938296308890184058339109035431617872495762417470779018375950599542502600147657470703684847524870676333321428838411128981735596336462151267878525336132187564931481016728641740542193991558970315171260022107608836314303490329860718144460852211005663913902028897462999989447696895152512423200494969709441517216786285322231253781095890480748276710632138110262926451012776234908995797359925834076636192373482032201907014169553016393511368781632140705514895454659755268154645398785146433948093096205241845310485472722581117587259812790587416624876163677758971653062313217239468242301741687089805564393651310763247309864635951132257726540563442961195782427358712295254405044909201654373602675679521725231579023212633925303888504479893951803177078208424115780167199344748079047024678671088415632693766028851862282551616532760270805072898493575625911515028840010247392372330560463480913165670858017689918003234196217455308994945320155555096446835547694966944586614397343650559732687826691758977421077996821676939902331555028230725847898533219234923194957895582112589445811060048234956727349500919540794250026302086005478818535929171548474583438282187858663842240766276540334556690240393105301523217009870070758890673026426161415594828198940768062023259751222059910463805545115871198674193764726904447153867484786400013907382434110441248486357816497735878857941682396905528551221120709299227399659379355609345920194751785093321575319102315919027911562250117617603543870169573282011367490150799959110710405546741263402217539074626365193354640366092016226309892281328701783520301210049193954361020226167877303668015681981224261096456655521826014519853322995633647073992779509709197906865479395682130930019418328325169134002275442406438130755363815689995729171225065647828758202002017204496163582502286265256333708393093062565385391372860581525175891720258890753979467202827618742876247731088910772114863383276152627334089058820110628325487322345390526015021310906603807349706214432503769838172116640686273959603984554159661728793837718213318728135529661475822928334643279767760104007216211226143194398979429824806603416381799206392617234051114813387585486178817098373506078063712259865237859997234400667420559099738178067225451365871384181846655026263911191611544415120358942862780967414781977182380375546548049370311709306989554301324232150673053596595921025592726518032550765694252259931080169139976545451341450736277707472195009470111057008952411000350117140422241170072347694087448831808147054881561763167562294889872321138177582746910878106420126613513439263062210910675117430255733910935598979721343768885096831850455087361708010744940607362567765568651183824153565576991900339243472521546240440387547321235091118759046223339168592145673563257149953381785673256873441647081454806350607074910493053897280296534220126211644414367666768841503753322423787880047781541088431033649617033976447257666061627962017961765475464945390576406976502511647209679519869061789991298742554768778867486163918042821844444068256841768762922892213544644897435913211062921290126603694841786959762029626384324995633407103404774576274877325660757262767000913709201721010516792324937148655564870601762456862829435239334254066071137921869263890047655637946674085025451425594140577699486486271344231657178824978746159926612995562920656442809069388578078475605866150749585542594857482980584896792079823230839817449212315655384388301341255298253054632047290502024534425722026050727982561237509230991284702436173432498728248121016761321755636094145096273511476232594287868739562218123921023780426630200103012537180089058944482736493261364551585698560124187644774260666448570265172427772943622318143379288924878134092408302493535316814225372559897508225006743752934128336313832902473485292853576539352633960843380744650053249226751715382838463432465845565205847656460072185345750858927130072552364631129961185617804598903564714291654296970494356880038594162349668942090363709494320216549379690656240340166174945428932597547588477347442807774766997518399003923019868296242519051944115934867074351535461873340322237168171102998127209827022100813273776704475732169491835271174316519462093225855930182736986698608829074124792702231468394365651233879814855088234651168612709129434581005578428935247661563301361298135831312651198560836304486210298868424265924036908853421688088324052777774635354346529498220730740351778093964575030258820901052159637775288163147805186195268212125664798943881586979364659985825176464398647968452696846675833451229715100152218461875348302408123818962490148203594673568180839646659180373626106579953948880423526050598414191179522545402238896771904353955755021613833761863309791330895312511453960826163917183998856292612843251764819828610051469744613194465167205492288008429629977918570337577808007194588486687105920735113154747382411744587047788502418786198785904498269632819251512477880584700239790871047320783984031569542411355158820523519872284857500386560938327812205853859700976618265921608804476511546481957206495054584296776156532556458200361788331863063078708568283582336081127942387515771187231901756077938633849609862321473288394130636270049999098935080261707301356106276427392452636006211872851397170785561276312710733501035202525678340582739279931963242332275848529494651516107392289933959997070326929388567869870861728678959823031200073284951562988321443475703023901940064504955573357409907365938021490531105332390558623201025839453196136481063582474596982585668526887513541478306214284443441751272543909540270955111700215628461107865435191220481336580566604021814608719532368949597876084224880192372228356183082394236690756851938176264477297851547434774901553491621813310368332922125623888059269626869847947074600458100683570256505258883634985248420064120225099252856504620217510626009364331312427217551426102112971514621372674462567362740903083108674610538671018694448280901262853170028709911022581964951749604037495534876550177610370563081368100968881294891043283361476511606679543036299940327120570067524275481248988275492291635633857282339453284751142264206882520565410717792689297317864285011684283839961415712819022146961705457469809349297982354925715692985572292511323421533509693613512693520688589951482660592558522591307434625992515907069424358300609869536077166026986440768102624479160989872637688175525854226828514524812700719824965364727993568359442291614416462659746543711586408166263785937248981043413266035195882438049131783275751451269729466307049355119001423642337303380990703880162141180673000698139971228497723086654115663346895260958801347503645353703764256953014962306811468510037106631196010006818098838949608404987105147391408254212387852486329945417380953533239681283619966482006553686971449563560715047419728504006714251643313131269073529595782519038527384713489767402320290762396195228227923069732470537413293467659621502818766197803329211513656987428003982609308634013902139198853074996560370523685799535359682418934042924819637933171743571128451259371072467966537282956195588453015715666979142369777546374031215028993360062357052101592216204320654452901679921143772128883660736742946855534087387705016997145623328016685624125812682894165916061236581651283136693582748852341601415931138143363454699832309033212608751117717652340070701363166955405872566044953282427691688985893048988280474610418774521535685489725569932122316855886475044959779098326252827525971833890948522356235629748082417318333117684757126509487710240447020192454466005609609776257041939683750030201573538325496888746486700543764468066070827184592866177200593913395064219880614375784697080422504533737508671950000616150304472535911877012616089204379162852119638338150039869902484419872334981374108043448753325153503970833438732814171209380285526097480640735058299218605656438639998607660639073735218599046381716071631222701812031189136924207540908062869973353684096098709915038448766657708164668961812510276476870484588490185123275799777710974492385205715525860639274949905214906643324658348212733712332238723359474845904173268658586445325268588036925506046691486456581676928272523961963125523466987502948111437142356401978864718595908672115767637058553115626283620526150777688640738927516520358598864609725158687988078635067735035752357663843477049519430325441615657078059829147842034291683131592328427283862169785802044654300378632679282306102739192660153799074821585015266290757967066519369288781160255900216464980139453541289019013933154819351671540140225384330837021881832236905339970824269429901954676807208693935601856383275902341165993292401195698628490056241319276961390334989900071734763997986416471075271274229612411164015167575525384282604074062169919247491711791632192975891675368489264057634001979151032251833384881787565687863232275663693105029544273933819719874436900902350067908493880951101285974669818580118757519287524573654849418283926079632918456032447813380649050253129987420713136247697287777491280567377015777033181530671157354519379089587446876859807492993834603556168038289625359608580628574579406548965881321369183145771505898467760159422394774014782704364910950890162911195618200761398528298407500243790406004184207160213343569162336418238834042355718393886548067253923568726299190707852968681540511426294912216452038276407328765413217452433260681201111380731076798769527347498873104837449748240497531028643874714296246407214076504746978211557687780137817456695036161175174562377071061992213514880730685390197729797712805666769964723390632198732165135575180173625185591714897973185485480943875540095175934933499691375580634255317616220575887370126189568189118084869921503081782409142288877270569743073221800500590074750250880269345618255082045287869160736124567937529244616105740320518430471537940548264620754856783762300695853408846339554445366873672501957014616771279657697901486813274053613597740407466249594332084791636953940352056595942146417490517704150435530873318864917480894319853956988006802688424877900645604584497785000419948238132028340780488593311207706897581882841547773742748225665312126484399875917730639765685437695125632489264510447702692682054915659952533295524725022014108732236565360573756852922730240207286747504230921693155786432504866312125754962638207121062724254493636189986134574627300051731774633031335871910739722574683720691357589957101542751777137383420631666632956337252048386457043512754592225162878600419056152525117570683378627017808524041375265768268698859187022411197354000528650004318137911656310249264520608167556625473182170773103870266467414988196421000105238469902738713074031667020622327260301705806996950193257485928904761907844992347640239939657716183741859495638792723577892717893485181810644567056015214024245433696645555960128460228609273866696321720642360553753557366843065107927831516637702224338536664078344871515523822680382670291406004015306522366058875415893660577703758338795434589742025541529321041737723418743166489528707616365009744834895618370533234060638523542859273212469794187448550289881488914335106333185194803645940968680310509304308750385271270400185906771020414989248442953356137418172573131617554719280335684740268994294397188681788339681922827894413237584897322367662699232689406027716605947811476016347631062153079144238553686437980927040263319353619504795286099109692982004504625929466185939667732628950033462454422970842063229347798619526098729089576015637800828195707736507325370574412637799766351543880846347992231275952084098347927655117157043775098826937318599331984281007122638062976900039987056876188953617985871378327833612621937681812495350615054726901080464614556617725466982620331669463789353558481174854649712007567107339020454230696026132485275493137795872910940895496698083732666489633975563232501998891155346430884703315135108234757080444930466948341101236542626542290788314384053204069562816034578718195082601507104122173296587208802122934117487971320008399977032982654467542866250698964937228054784248048476779511460121902351428447741724263618554411101293129912394164566223970625363156083607048746060405672720014228724674798680716506322907814891415155164712302490659176379355133318107061482086448964423610240910056195639902112085877596025125661642610572126597815521876697757564845635750189519569649970373436540887688625644253785999082516509998422240104690789744172282170988337373053388220497320764138106017781117189137925087739768459500884138970645253332252782144560987350612373241631862020338758265969806598790139621404770098739005687505893452319795006411823100892263439273027442448865032173293721141064894578460355360312501949196775128115420278151812000243191008700963140994628090825640693393457575451941910596927778740566987076406016549905472193606449619171375639030514447543823924597614222151167175819089435774709322386925565572309367527585798847621888539800098947828979446561485761563234214077895601266767805588730066602003783548043805885459661490868123534435604588055232947859403792377806842808206622753743691402144606599129042976502080426734075895115660360050840121501204651661781644229693251657668440279571491601034905409981591656824839364844472337694359321677281491976372196719932897726547116433841392665187087901589205771856469659099738289519514171487636003713789979834796648504464868691311085657372938154862903057834488609311261685890578306729027028517844261934240913531956674327381741221175770994882895960749186682024031679287147959402480635890842871767526161222374784580379727133740766723255337300909277885159204213404571808605994916571365263426293563979013718976419105544634746356751147140638598579179352094969574466229759254026811005922281162483573236241245569269824663837655808466771737577674314583355319334000841919169035028479342728370626503011136480730896719416791375538220806470798380087660202034730434618392102788093538534016453977862291613654023921524075724207994785592931375632750152078138972278326994669059735249732088900056151250909412197933916119095156231781955796942070322396651451018390223754690814859472043766495345295969004090513867937614444930495384749368523211632336378040285794982570927915190484860706917311606186141868878456377239756441641610733072769316274956607144342665678223657780791503222704232265155197548760795288995599746631570436282951111090815205313013993786591513806561219310080661100318582559164455016170619306515768261305984709608590588383516679470124025564210018913927537142709462622308084097475450497013554059566156534507010742656292390528003206514175187714295515186269065171457018110176017383290352815902767733922822417759075141955227019549568418558517824489734375138668695725904979224150770043059462639480591291139868204671397629341698206611941820505861878772327827405418164895008660557124226314310285270283091632109738793819221970342687420155942913692679385475753036736840336466051363691030341749993571789273252088408235299918192058559267026169181156338409175144411605122081059601544264062057578751568066994741477475745290745909447610179897898606490779339121155866800365563600344776458261855448366961102559744296336306690896078632086535041942935089739603518110430076598058086934631587323917930865150088427196991037631466380587915556354943512423917157762410867032735227019586338968257569555234101645907126560472461603019755194410704127462951881302411440403615818079326925420461316031354121874919994569134628675852870746120045082408766181087701355578600784672272782756399666975051216500760927620431294836811267971418672436808906959637720830016571818294474283988928032183405843728826162679441508216176833388317957877455311471655330968701664771951752468431169038251214752217289819486751451437508067117853378387327933684921549073246381302012795356351739543978931397034262190842753556934480829788542487958651305936612074519669493161709836532302869756522371342256251415107298976547816322369988380511157814289373140574477600627290726050139235477358557708316280264150086145348543158153544653501708841045457290139202726542130288713705007922787504790052412940942845564007285747475128029559295232532243630626419874061346683333819139311634693093973758930598633194503339265099957992609596482759424767001406757535531313533302857506666621745628881193494095197840446728113256791571196435215695729164641348818580873418923452266379537249404968357829860059172720718407500592444820224985587194778873172732811920087736267591371992190809002139420532516562299390213761532500349023480217762451981555204350444494509090105878071629433205015522420888131510109258081950360221822859017558611802812952102184952876150928786913042111938154289901174149427137707621650532528385908078709949592980203403396600584709209703338359312725969867236143780184483949424399535963674777974457759587696212390093046913093204123639970476920336727043601193418903279332532868592395709770562482747659105986581026918447280733669031521797099953950462771615691857975248265750868856648990632814081476321453406426272241137038835088611776147073780591993182539351749943928148597034247107409649219228974001565841369139900132474704760602771717807700796341601139664724813071826432571409291840606558641830446995572517972285431087828444328537152667161159668873123763751652969209444669900891873351963777538066696626325219351484887829407876175857353451980743127813234464709235553876541307098274610999387295110996530240768517842842550447347825354631276183967908310819104125203938117506586980303430212765024175381758346195494229761054798707691713915359416353193747837098736162341369132416506025055372417849831903189317498469631213082754395480438599578187733724258843275428268331870248197651110497227053615502069300166505518306099136258169064610580945944099055805479580884609561436821483228287518545603096744928217231616088224784417445329892698938645368776610556832569190941499186562959848029460986430846533262179972032516091809798144039557082206591552529990496275868797065099979265564282269383695179342441214631213085395502498562144193566698798207456077491550135261998800227276864016469914754010908412942104439811923055661586994942452004812412359100137965909836494742473094657717109198945045082090605847007488803974133948969871864510730938709270090537226238269208140800676565225771669851779238580089441245046067779865182945446925396715397640190007862871734232594156243766763675622226899715518436778969371575052612774943756036172357774004821350229339015069893236467503905398057700565980867638365472557277453982836699403453656117956654670048089088550696425109336784176125677569391247417648662223978934677860683516782710631166823497560445322359761395587859032996518931671930111782499504657063463031618538940923523217957285025471750089350675194110974692673694754821892965005622185932204357172817387251934220377249743102380733893289189254414329980291773262346233887794087440413939862404428018753261681877580399154093733069226225129923913989270403306146284468803144884380104273733173895213209285935985408796840449439523848033293664613189099625164885101761726809791268487420047269272524557282375646256722116462709169043662073088042520669065801906519506412633523484295194210206436072257465104308332543324711195659945670819943876590340329123105756844912622144079102030454437136230187214520978980411070067847748632010294746057006150395910746214296183834858635119019515856810199237229870911782913804705065577570069252420114837760397339213639721157069696862829945923097480889831673385492322709251301108566540688922126693424615238419710580057501824414976922536358025961585128215585488449413067661050795739545900129902564977151696075244528926443195424939683824337118901118538465217691603115965189108137366599927648436009980999526748150769130513619919043184863869037851022633343274903501214765128535376813307501909103035590289498462787708057984147215986213714087452253160310443251035707824816330814987279505579735420536569879055708860749517175022216100585245168014539798273025922841582379093483166133138081813196135997709975402284884070184460003107699197891714806605600440572190557415300738998598595419867412112649919130005189206758383845789378599966755290839836872810964675633222237215905907676048294994090904552095965839562010140139950952946920569607950921316774791119996665721066006230971568438780861020419586763626558965880446695991714185631567487597874848465862297840406345937207420532935219318378172789953352471738708273399357553344080906578118234414148949703316452679125936276748582540279986569283984698697857554323371509926773220195627931622677811727219559059536762291443429584052476865510942017636871248574438330875988203074105725730078019445133901089368747485321841829715715210981511190228359731581002434656451090578023832320916310214273643035320019852236959413724928981687527037348987629534929179427243772716745913737960092627890232903374741504437060751643874166100495177878230168426906775262753410170166535745790586949938223005783650383146404357480928624711075770718759964876227204375675116976818331225098740664320783568330254118874020403513121801162524592084052875356894290540323922471674560744127171570675915111783580198584830906477184114854467246649082900214194206162313322966842373891851351686818298564623308577797941883756668794761091181373590463667045710019965251324964425840499404378184789666905724519297812250530649844642565464730194279832721268536658019534005805972243076421120572218100337668701717666961011957443843378007469619749967017152094112397475610475684185889394351659660756576296779289405626326792429768680832070111309716395041939649654513341059981376262784775132377378219154972503390407927481177637973260179382146190323455615519566246520252062934303337951529519156134828263495221072668124005094304228356380096063112140496512222985766176391592789280126725711454118109744667771186962729037295642384802286071859372341266728262824299101968843057432258336029471919417858870376362171072504270393519410248955080404861883412979279090356096829402098517215725504059823586770657029979859331550642825149251081563524480381455787728017343187410746864481034231056127474485868978593782562225795568915082714281099505708883162668229011625664567451989213829899598032395002496992996968027120751885141707822272325430134827315755978136446057317924596354056876552245806440247577163527971869816478897951252336199013699651835594667792423870278101668675822706930898246663170117834446544654169606620791760764810203493642430970636191168368776913306192313633215794527695358569685781120907205401092469214404025178172479062715575151988108802415414009470291799904284879443243288051189051396544848016298424200719665056102108976023245912456943300889761214099498922778723603854253754172330109496855932990456749355254911820765837040671605847843945590454151917166829891555209736700954362278763697241387767000772665732266710414906499610133257130441179676327241484991813453851110757868365157934744288551085653018436441270146221792861606582275949291218106085012581248037901744641121511657504005746588030681137227556913076839466924103214249398563697180673496377729680865221322393387369350805956895720020734343749827318818193254009439488810398069005093537988815756951703309792194020021790592072266286142412996296944981774847374283127575468421672630218484920205229994971605643886029472603336746092178859327235036952791197067446086363680228111057972569998750834232520547341049218544097354064880313340198600119713575572156931718895358241899041599510632203029297370032809887843152467993634061122334903509424924182590739561293258898151531563982694721983424577825017491618009344344585267107611628673093909651721125199568164333872810298980618613364449506740292781218844529704156232411691509838631633585644952144337862607126836680872927344680532392090636263717332147984700198988870959549995969682036440593904724087422975953137255138005802136045219468582204954408235295760953074298731653353366749363956983308002057703695615894850192232222060444683366413601372720623873517827844213558248527363138181037734656536713614057333932302845135206866458006223990399530476751667514138512688883325048594946117933818179151952886255658067952594212323368094555976116725419032932694340067669464187878445061473153332367126646603158330640925025842814060123089909947334055834272021762947195884166476598921790774326341614293076273714017159661875285851462380070922043145318342141173038482705890381247341355181800284984304780764071347238832024209829486353818061868638289874292722191727170523825512653292145574458794382335225859674363580943738919331968770362618545138738185146289560701526396577139670152360799912814444576515591062359464040234553300103783481447242407354586878994259593499596373423472415054242344437035285843929094095814310806573649782151081856124571138703184212365918425592559599945977354341202976958337005796096049842782505028217206480005691424019959285064718797614241701994560179856253890417731070589643526162212189658166783689045861944428776713331971064416757932109159083514918447654614291758699041297261481831906735974780670185170069433259991970914406875435860408998932846544930445922308319625228002518630831559522142086583984901433747493491585523284544163998074069395718582637189351727177220296378686390296798046951969702731888600213171670339803563923476378730296751290256607329778661043070031633865294446732526430870873145053090239207012846860185225085534556854302346496505468382933685318701677983466182936131918600359976219901530143996696878267462708274997619367130865638455103947096885067642386015450736836337654890510946388131192532128523056358899067942848224694037061259309525820687568335743643848860027663035673657299263264474392867250737317897568341900095560627011427725989564642619999067154864199444414297108688218352556510953819497342869664910091152398941442768679171365008043266658691672575477359479396255733691770821306205084366465010566110656734708361603132774043757262121028450072750184302219044972201452510159685085252307216042276912706418315092346475539646414818526455496076888794370805889475115927047337103263048054270436763829878591792868058445351051209404587144787826534046693125798668661772827106177274507277216145822261663130684380214240633280496908327365133231089055421002677361431174649692903479214796994363791253726693072754603117869871083989191234789865358948687602202493388461017444996449052251194831662399064561268604285742830407506774025792929044778119376845226808368957258091995403896739717780082973576480290424509985618783386412113976216473230869560079367759224521250745285762539651333431106709358403961850631622849738025254834020797796869333261390565723739723630967306692183508503244558699941854896796903510290886515266884465672336928910807023401292184046835768643196531521638481530497937814967040743924423536897025840228978532829017777841061441120721768878505296121068510504766479126294732303066109974951595718296520795674238661021887043036000452210815165908344932595881788041106211232038073575062619744860930114518629965379020946349436463275160988146096212477672731883081692694767231899092374133355676851973413723597048148278645528168271383897216318723723012101802149353101530002634497141767760832901287921411704665271247742114264845440381118970958146722257955085905340353549228524055090491440287669091170726507104066398851650548817159890119701943322728378488930748193713771098199764433673424502061086878752150139965490300920595911082541091011689295273114872171132630922092114289845260697353788309805175974377672474841329007989316633458748164050193972928506419563816799498230483510311979682041310081332736767595210013124613387227331115391777070895371554763639672976083457269748496189842871376555869611901206272141242706702890441486682668799811096189276162597406563442392070744853457709232317325421085983953325123399829828404981989767564577708801875244727301879539195915463149722323235846817258222301856303221149222481970041019327437176590778114503159216892303461752148711715501308743409900333568464505038846446411663036298189661915016437760525286216174891843447907536912776976636534918752687348192576129180185516755392992672974388830815482631301038193754482479035303980110075042100197310509909478722864448764302144579056209603484394207232044429233399193687803134022072902304050121158885009746261727605738739269863823635203141791883819408808873166575073465687791217884371932061936546445000504103432166288325732082387581400926077452550616087247916346403523677995945113888144975920792685481003351533372979290318840342249239493380105546650928729109518197568651093099888179242759783044121022156819085255720183971628864232301314213282972617776104913452704874881894523004845258100051958697464490935083190457252029536683493325587557383882491029798980153214318677601697255902610511816311051017508733961798277917090821926746837439705752928651331808052807548563204660856413476332595911697804472686859784786392405867121966546956396904863945654770062996639151635818608757185848573893961206024284824715754547961824321656053803038973070884131204662751610198549633443520787364531688660850267197006022300336075109857914335252569953519989065932829112834090811539915605870687260136051675531346939448095681495428128382605336215767612183850160894722075895112921811462531769844458516877042846761829459933700963444386726023674457378372039636394055758877402302071158009840522578462598975657776915432787003613668196576986484236988551587434682564943683548672616343560359107423252537463017311325778337065907524376129760980651360188436176118262708849604208443689355564154025015500353013256224875954301248651415299645625915595292038692971709897919825228424143895608174169873083336701412747025150382650184641493222868980765596250983276040763638115834609670152301378316374757076532798198517025781009850236549626671702147176814704700673939940501853590201748297431567340530960023494700939745009147250731016492162183537638977640394952101136754080977732918188662522932029323490205678180046013076388811525366974714648163656637434747061310163659546535847574960828885831673780972611099857421625796182949214135481209103343617113212946939302209686330598733333334532087700478660358926298638039795621051699082892045513373599978957570989890040631485736982858889335364855100279028759139909980729445128742240890725461048787510928397630261371045260514088351260917280820827867560036600380660011892695310066553757218412542740117970746462850442556325950590661829182936026824872418806044864163381833421234556919878327251941567311584567469136467526944161578477273380967800010775452825802768088981910736206802777284561439695588218327538988648266050030017139622202960648218048891842889173193953762035041125608835452946060481669394912482922005603556365795023574936373095914846010657438108369782861069972453778647938205551206382770816873156607789069457270689936797528178949515278867620787666238732492745359702390795259874177932660616125067007249468759903610684455752658253530563082162697971048989323616607606111107057921220042773462087920144595961101115886706304331719673324368316565543929297125500386424171719204804698373259513353367308172677227230607775091495220625904848488387342275825001418076507720412350587044787976335661594445984888428903047190878761421882177596671178866157279477033220033466490977906561193399005107492862710810158691047643154377673978534371754962409311431013222349182717649001701429218127909306954979454220820551482100700060274965316538417598056954762031996938271575826961278130712234869554891335291217878064921421487555272223745082926715783287449707103970413996279950431820967686164801432494077191606630117611603051476967278965476746951975465676530576776881219938048028077234242965433602411521746964252089126158958961461766832845180723804296349457595774138516365570826337996580622267010219814151450092497160559795365026378287653504639014236362881373672858429235660968882968458613045978522429380522413247452520627874298082319356547354547213259078487105206498852575322410432351559918306994154683513625813361530915008194384303873706721500441685249505686871715047654081699958775845062112686597340685302771345699025586296579194693798755558075044649675134391161524699092183342034821166130504914373436248569273481450931424268646732146672193001912638682866272598772380241874379227709971601227656072083068528734163213853249874106799410954071794628101846054016985362905397753977488267376821457897864847050589549700842292862421306062324707377862485155735779321337643233929567167123851503530145429183204507732606987799718135647102191420299421995064870302278869833423191258029901811356075309758678616285975772232947175776583875954300672681466409172140747891833949287150373500657829538225965049077190926714351218344077390801323981462135330953862903096275895471443374725674057905051982626711929204663086530207024469884740539564285843335264617908344093543175353095461804201334908465049930121972619165761808263954207873160652399311933001412378570208882373272302032592583091002586272169172255400429572241035836898740596755571144526588240260046559196843609739683334913979514811962008390594199857881419552119416900105841343388222444444849936676206928959714024278581046459561077986616137456848990504890008942565893082897694016555942494594345833539545355883158670684077858254329123630932613507462238198266983819344578504939946307082317713042272530503266506931498753917499296315578988478546342021024848924711539549492909220398826454498880198710138269104907544094037281478660692925460030452013800550230805468094027016556750050656778262957694450445363408768028082272342990419449458278915908506612285899949898446639821575061235353245930319161464714179051817475255146907482444140719721754724750557801168344022422988785031117522176692211593659539199208208962040669065384159402304783467834512832892870313870324406641019785762489516364954270500681558274769758911828291344928773684457934741331043457754211501502619606267058377917396014305842207945520468631017914748991074684679510495521960416335056517961064621944355548998994429934617006391541686652259489217053099071887059334329164866822341046885319869985830046431351196481812663622080613640973980995281210007218478839858016604155092897511135314623474576547434829204630912567844941004958665385740366233198127024308203143029569220675666471306575686292567247200110415144926889042865267283490199830931284932312068545967892769977172577814469962494959736210320019666786758880984683994902567767659995951425026129074580938332855955185683166728650011633253086632845754686734757096117217258704260331151441668536333603821804300533514252055434880427907548095916783617345614503744123076900564995613656638492984680593582737854178094092300994031197213197667456021386500281961404788606454377043403037563459891462484161864665704470968532453624861214420786101302545776927704707802293783278613128651168286468796874899453297081833593883424717964701540970582624530487765614046309210889096246737917155744301575781501154365959846248754656237647068303433832781832187398971364436160794513321416617528687088454595580515265045449735101506931697733863428545209227751722906013307611237549742530959292845561396459338136700060874289383060522095884406277783750327842346683657729662069308839221692118022472705509949816994674633285070349873815722442245214833747660685558578346109664987283988680404454985923363984595867425326131633275051714842709110652181115461752077145572461109763553800929587194456856778381323097299665654829869128641070515392647546243766844039578967044099511773738929011124417232440084738851291170369059033055213830126636174617081815834942550977982479514331769541433599830792357822494165974528252631476800559909448124724167284292686462581851856268445693315572703554487565433078655597195377213412258176025519689197577388127862352558172116915360704949522186883436770664245662004924505972268091869801779928059077143540431375928306772420231618618282503401191887991491718938291912421890574679600297693368776942035884091720578452311565619035352872408353059407888234540593437366344918010166787791870299778826073638969343891726986237972690937490654450509233046498134472744229291741044121806870554128612199521051456873056727408666654139233497012697418163144465225813848164686537971691239768896381076342625383425758216350949285753396405841820642338717476019503424245670250569029298467835545844204419941245974847307988255611422274592277067408280635806656797681328116553946673373147444448710428822378045360335064044744630432866863187411802921700781700862004056718705953081559473354683688130824051353509896517678196611237655013065716361378821939352968878073785799859207706522599125792509545025013293325612109432956338479279139276733624388886344840035186220020973580346449637084823047023749645300582396758751009071750419332837720306157962691519773530458553311435897350296280410460240445196489830418953619827472750788198906170565726952539686451268913135230998082670830997566245417513801430686364642938844033064394679199376350635338469515660852614945017230289383808716378631894364151227282041956916247103244953653220741382215120746676329980704835179884556516340392072310832463725462150754952873513629732897378887947765211847370349291088026276865804219674353110052726663393667685809303896082563499331620573515757357330204049373807533189387068886629596613996872973311824724852489272266895536022361358926177740266124790388770043812272898063925828989251510763672262238266009106527561364807465257568416958955703027753120810000175353040614626741131110176530054884884231215193891754304628002768490329281457973795413295204906381392591358528386186024226151956988079565256889894517308462456414104417027472006499785471518118286923723042376058591586765452237046412958892567956428851877627060877388818389626911338961494339545169657732964171708046844867060116184836018404862940554894329827058235821947926170549284198384031608213392526698253940883889130673063592582532420217910927635557359445732681740315489189958182007368870135873524978476934269266864568636116550699919434409008800984819079363779817840216875782717894589965720027364573215897186554702594292399501117292772406432471998118688522576013792139841013982248333688693429677499568639220614505454142457561099632221993034503234759146276873853328264327314292476815498189735966414771719280333508772141147634592870311955752949454444225919381425103500437876315735207530563680647281839332447216510878037074387756066629187080625625740686402163717835890570356314379215529585163724809176651109915572921901565261318453843765066262605063814681494703515362118177465478060952107140116171176589248714692920112113809150764427736272480555343661835671833166418627319370082811039575638648906056580413110082319477452114900639855877517676227474260083318870227823167083558725576911449830550202870705776993168356977179218094755892350565881476476441131814433739585310817703470764405057899527829328928532816938989211837741341096279196257853216687570528257626701773098814044061889076040789105092245141162128232480055662663698095164715496133867955190268101105791021484401737697849092827606554263507707461330337151344154576074445942116457586180258687787070376864412398512813776511345002265619077045798562253507504256300239740814924265994831742712473128665316123118377733666869259359501428232298969432105720289575230049011359547858149800558774157885962116361554801258698495400692375713890731161917145133292310981377631694996977396348891555639283876178088522970780404028766029390747771480990316632414947054565368500426288919025520008008860418068359509099198504359757218551308597963924793516831684700680204630174316764540241276439209108321241542046099736001991982905180013920894341658240442305707007124676204584366144160731947068351533376349355254971584441660959673552649866968785493715098013130502219838483837175202698343821834730072752057084273212722061446107991503895115702885751630445379581323713625707153596870897700057555422022224519552844308992211641006201114824017225156895616183244246149246418724460402374171323183198234648982338505399480976138979835449044213110586720115125261070440489296349827463608139965172110800801750992179444175043881282826126898094951283709405114193259894246850121859239873436337085946980786368181649550569474270829860533174177077028281015160095158317586235292171958777037259658362601976918556031399321063020660715515161308710933805896986199819951432191461987696749743391791943566761010454348404454039640633577660692843938998902568308232457508363276475314532314994830996327861217828417143644518897409466553875112396637969225965640258531494693642106346279719740014510037647358295886580929593312202162967361449480844695826036346993095245280247984177177855733392149621007277956740479379843194758270223381310117906362275120016749190517070073593321299205769120442591817111942018653325688833645751742801988426656747366081086170952692754041613099747925464625504984297266953619116347950583055895699671243873862977468257785941139075493179731161472720533483087081944899452578689454782142746279185085412969228775021144144877813510409912590105676718541146275858466806875080877724757209848579411925855064591451646451210461624889114978764280526879688099937032923122752974413237154378269118873608840031250912643735366252540592821868358116800707112049711077097334769623415319413673786926224349758145306045101418471472360838169234410898675440999018309220012991005519408457571157777980318494093211975283145750543504407592619891601975719844969373245470998852106559102100642515468377535029240945697981996485691987264477870246948400126113917709046716096487132063001833134393458047796198957852612385448320531925003318145153987150198596014414536787011139219806895113593744391461662637387612936912935131450698491008798828244592119552655735841844591588414511737598017317980107954037586512115756814131709896852901706526075105874231461139555703849384217199303048573001628822188495775853781735961606946709548481529497694383767461025179272014238878246496896476630254050360233356429523609153754614858846228213299514207849417371094550328809524933625471994929924081450706650229181160507345848529813522578502143345047924948125926571742565219750421446800181930067290950266678646810427572783850868533993828785526557428753784352010424595878175740460593073477780639948945698777254066025867403430768680765872705029048107534739504884205077596926817288096361574389725331532927071364796873660042966363558832467014233934144900824560227369602557710121752135936691712607840616171891789365719749339615232986782219887028946418679860546457286104817555152425865053086968721287029118166793110525450132546040230377928453321509913405091504678010969573179341804226982158394471554067308496470480842623760118321954645093437101804737001731117785270026448331871413089716122364048672514024732236081797784755106166658573389382215812002127336178837508782070210311998641630037532404846186283061899250254719973644674201075516084551830551395315998322167592565973927446422598766922660409471932235810620415424346098228400820821401064570837817251703614830292353555632868220428174936876860580337360669857534134180267532589339114345683907798824804237145708422550453736484836581663946723278776483764192372427409419351267103584414423636968302919266373383707126281933231976579084728448038221018501556288211766499411933340623041633505902753656795155349856850171951995485290832195620988295225865697357020244704929749692541616733950037777276587958356034375073806476707328404070288963165468367949489150029136353729990263985459689436917210229463393724404765591303633908945332134141728397735699392292220579053041531060634094812273195791108327341436861113508371017529315409438341696386206540642414637715495305058397687043569908366634116241832749644580067245610281326071861011674406386325307596078284019779919515041270630816055553721850495598373530527417494345971265562477100333968099380080975896499992585813092358844767243943594687920003895006369446797327603629826156666136118460111606399212677956114208614341202646455396240429641383284084622689901001079688676257142167914292369913894277954481903210651485777233539518936209297535298182777551604410216980034857346429765949447863303017936742978605786967959075318574145879728119827206450530250723923222805464410123074632062411169306176727942275350184222553384648247449818151726672277452261687268022125546742352178455458428315308899474690547603966385680822279379041893590139753766355427243979325127179196555558577915621473660819713173780571890832994824898977015395031712200292304854842560070472294766554345728886049397850741977750460184801401400617535381407167841517167394388707511383808563895347688214155995584001969309015273238771818052782028385947840135157638366715231513446053610355484879214769186572775146088513550369570961023497335671286907690630548585812220601252463618077047111858993841153090219245240390832536809384336429623197867954859410658395124948495618283703503858667497620639513224281545846076070213742909337111565094546294998498818147017803359137855333852315167425088949955596926254238122708333868947793060602750051917067722888450290910200264432720161448483346086418557859519250111067501837832155519126352029974608234368618567760086149879854882968019457670937091110334895773155623090731989944963282016259321201629256128518371711121904149568160609055936646815673602725931091777900120651699030830495038158015019924725429583089941104385634097354420350158138335236304313124148762944619165353255050288526971682863849750136560292800899274491339219596991263150295650749155165980327231249213220069369357301054426214951862449507360061116596124881690198703031656623665509569075041250289745081454584046211271422885213535556893131515259048942171994564059310097278835896811476122460415672578075469178210836901778878485095993014029791989358062634739050382944516058985812278997394681548824490874813621793954743083962618835587575953507898065109876671007673275632670897560351580637057174668108896990444755685653514729650744419630630536369201006517170194023397377662916562891360843580416946194732966338365662126970838038911286707510141065498013575604823633423693137157918327562093020149446761810500618035816536416270684509164396150763794897391206029359874879595775566355573282480454871327954926259964867423009293408746113487465193176649650890427609837470510946729860838105279780943904336337367265461430296713085035792950576269796178588064144210719120336798854293664926742010702404547724002868304693948749024688768062669529039550151774600334309891194620651039370231484267578502818132990422099366586200864896952525688076933721913162537951434392721056290715599513345796335908222379793131212145896112516795893245268171330856614587291449791629956677890712422918311832456332501800618969548366292787926106434514621976398547609922758024462360605069531262639866346424066356076471875178992465866014740864374941572695066621633619251061372761244178583817906224580687632409816631050904150593365300735485484547517022713213938132049823650430936876150682277604556660218964385574237929007125352738368659736254204567314774050656896762365684391320786732982487182853283964673566863378390457741283726413160297906058224423383163827670497652140607311591252931487716195726104054798660371166751833521486924680694462712604112633644924525960832502591379734240885701253348182182079943631509988356486414325430559279876174168106359395869090485669341386083822373704935696342149079752764396768478829932648920448031874917497722302097097153870703928605823765122023282166761652619437061444033122935920793083301734106992468248186448128072134239379128479121029808564330575300793126139861090109846783812395565003465456413639732682661652573982544474333072581702592242511187596661981241987152020812808746733605531519400615955788657755088050325876124353428177480983255299499587810434384090713289410325749770078469622460393962595583149356175632315941010897798504714408446907858085264680186076407810279191137824191351310255802387654996895943941547447969591222160457813288781946374001060311805182827073266371711716087070352819174944412882763537636427493577374484512705118708561497847128012015006118771385735782156410668028992382382079771209567442974203964393204695013653376367368455185800990852294592969256301777778660785150099720304407532653757342037751757699063255727435702031205598544650636334071766569334605562923550874477100864013711296571540514071273312369719421327082319644039454427585658940241416107306949747947793847289543235321505306626402499051806521588128863159964720445694328313076505478973719597473510056841743999466343589020133881673260514324200646034616323009334835476114250067721852490301293107519447389733014954298954208568275411227596809090366110042404286723799419688530939212422133182672918404087796216797588459209846030024632502971908539341403829247144304587433100624387564029684190911420550215259099572628698798802500928728829191373113833468955896034025559094268964991228583237932739432372580816527673030141396055160493087990665328299029115191751564954140598058584649558294283453039245092607101072025249853290072984779339979132352144487049334819524568384511375449394742573867485665659978307215905041043454463096274752543281617730441121336627556624781373007530557964305524961481805903896802420610592305246309329699390538917889474527705858456469525511788675190362257124455731079627391601768974739084680599711721909338039590035964809839839659166619203963073606711099597052443581683327949823483308962933302721391564973025243315477152085389229505756081113858627140184033356308540528763923485646016528912418315702030781719674632362317675560590286279542208151234393134521931080020605939887969283425538240777541521946795327435092358457891035135496610972815381198657432056993335801369154419808085509772123120169345312132829727659403637906613912719898391662814982835222026402642117920382865203912008767447497059908284117365343811893991103729308431437451369244016603040184713889128679818969205423060564624928578258749447138376624920272412166237853397643766878176480642047843159136926400989667050473928295495274278398739185271203962360565842543566067190323547308210347983573174749604265806583817606409233994749121733083036631975933991911072640325849108180723410527323874001956290764931456780275203816470709204353557887506806998748844939739805721969411504221595817323730242334556717427576659269950461760792911627889057560369946860609744274740829784987424619694847428465272179877153873724370118572302559360696624180897755192224838361542015050886799291189956911202864016232443890575967673840831523538696123439847123201446121767580937437232451587439679951211170590749417995935998339687836967068975133624017645259583517359839848622754391046268593558316524380110589218492413939791023909217727306594581212938764032757154203912533518241679431202390466855201419265454592104656413038831950997804058247075810655513362335300175496860711583428092916151137574728494612234698316320624311924371234204633807000665822504979913701598688534253195283190481145471703383950443677408243349015109465053420559384929381069027277911907447356610442052216853949729155639786050245798806441619618607560696936783435146300135491481533382840521922579869452377612345246016450964210186925674976698573315149678924983713102273605347902147332483155638792274023787087655753877220235716234855525856013043760124818648694056557409249723351841023574745744327767714343706537205350407948247624336774816773546842090315533876352187821428599102985658274823478134352514958294228721153110692247514112040508440822646754703653213919753291355986899633007739015877554122075158229583081034907952791123829421478385684979223735583620177100868508103017290543102309471442682857437750733530852530279483871038632219389402540782190244262261522283978591807328102255561472160251159647611498031657711807067331895375449098647924414524365855968863152596632276821480306365448219019323909797636790861657593533947749861242734472923991259725250023144241514126769559426054629077761349189334583127461879834045065096109732437633304432084657591163309393088155968868628666584557091862131828596264812053101447492306900560991688365348816490279747280574363325243968957721227016664134829651402497660281118363274756355658269021728478055434792908060743405350309143007157131168449507289198540901964042680410819582129233933198216334429621305054203916949450142608114244582309259468664444004418072466242161606366292675668151580408429069757169603308626634310601041450524598099120413017043363633754761941276256673946597339217283060460154704793090503088377198065071434808977396280347709267687246295268345143001192555181405028751886647592525955631851923678795913139063584659451626164116513559411701605801021207041754419943380043461730752891100789340631520156308151012119648110333638167140993421057217824704168642733081154812938366676937105172180388120332609269911800957330637373308761098599467327873872178411647514060178420106305678995061038077241114572576595952184493338058283265008174033659070611352427263994089241734443693580647523978100741240040906207983430915464469058749951702683117679231533401165842012982822550310022144942503732572108732470137969054601078442716080631841000085248384434462268571087926147037241417561814204319306352313024002399320956947669071613600808955334043278455051517838754793948958838005726832345081426775272960908527846007832724409435773502997483642896215724713539276845353427384849615502085605333997456038459810007745481763963815630682505002954317526467954090771584760121446561779430763176819806080999753090444905596629337875410367967221121606691616541587395962717075965402796077061076035897845877281369413480556638107517376904878989735429834135135545369649265015321769566442060275620267568492242904315483544131450889768581601090240599682239303155747012288807936124665707758549298761731377680991341791963843576646464605082498909182588076952356256858352656034534221809368695569872612734681361459050539287408449947947976438832876309170418662201344242324499189654348135249321739276078354640348625176260279779845069715032787394172508047870738085683598098129312403448223590968856222112093011028696844414494324121948253528841651838977204802603279702626489031471073689538886835478026631237847834772365510086762235296089992010082910155432339370555862372354099251270328811712676305794837311128668085647303349972554936941365616085547230584321399982021235406623562795015039487434913243199340591145913203752247570728624779635632248092863413973143492039091904129584282486837593423977836240387445515260572995619069097278867636803053138159604691604818146363182614642866129818372344227484615484988999957659309715555588514928713447047695727969090151983628016926320290959896614527567486161966595325621275028505707052584009061528336443058814063069491876171579773983055915115181155548399327015337752295242326343066979898391955092132198756484809556460316102486086851761837170754035014329742054066093030559237192017257387954521970758195363374376169443197918819324068152322266563451984535222435097841709937114686084899076913761680736056237929003268626422568150361679717467494428824810754894530552098332121459753974770977010096606543704883188143434266734013165982797516549319865446313498509235431556570925372056088455005650870104580843838528272876579946181115462338213295723342265270120028898349610003723993202025800201788388104558208811847826762596390208470703105081024934918937868310295054464272528565043226207133473194362557178559515718091158365439759105983847564651842556168898107636428013693977844607266658423671116784044531842895291668038728252087989033316520216403760884151745709078470445899051773305046514877631777673170425335237361704737141740887614855524032157739619548530594809555181940467343188513177723308168760464172199990973456158192847308143701668566153867544761220309061743727411827132707594620509129226420331523155610962186672193129748551679392139767632186566049128050814568414682276570954277542145255606206616242871506603336700650821680472575830205862084285706505746663473416068528941038985838326698596700610888081568640292339126793056821157179022596199869848884815757529744294827097329641476712782196633309067581979099688783743806558052879586036601033499114033165360467004249651636069817638000241768932248925679844552187251086470848689692970926774378595130500438316456570866282711419927338021610586150445327229537949277214574549202322195815946863607753495808731110196007295035926120059668653568976069496156970955686690894166681864567243144629794436439292785201205234112701895530103683795036225438815332065492687116673000010575170300185326886934057408667563544922805349564837834863518768670266429147827810784718669779892314447060393678206562811763703713762001480859246625198632965006205350907417862840396605741530229030225350888250435283711581927063575034715143681605961333539301970508985895718169004668689210640071570509435308734347859844433502904727869216572985065900393991048144062587016129576735415446586959010357270065760987282615506461009665436551286207377790322753182995923320064613883459390248698806551643373137985489554180586274278354211730745909157505481315224145190264262496537625289987072880397320627787395599154120766297537357379412632864516457919403935333802233986844737970630954859541112536571106137019461238253013706029110732389420228265003176160614111466190018207317694476208458826192017442656171927500115680222669879740757254417138026401663380190097775501847144730583795680277994297360633987573915811029771296351611081184499057601920142590600596332182542960077931708555731270632078428877743708394553624603665816233782843747617649303371778795463452164770322018548403309147549992188164113916600909442005385390676757330880306821714632836654880355322277819277288251803828897092356409087608994919120452115721370513696369796849617805735838361442121544278890554743796480069333123278564794952432580217567034290651433279408950263627020492922209036311650478591681656583739286482216434211585211843614076331826136386191756929801286407019333229653306148378489940407871367075670729591956971364925773125907101556900690525600404205052005056694804315666712694073944305743880961460192968743803408944617724597116181932183459250817765696860807603420510569273384764753494166810740804476475828005173262713928330707532899776082845136242394705264087872280337639650966082888015703535393836039817040416780603678738368024408910897261902056215241966101411342828437967947052725166340321051054594072888662189627038481919515244090394302757336313357040342735652311896730230410418350597382913588537696852014976875906588151894313255890811974666780896609595671525262113147029897025080646717909339655824663925642119767920588102243504414583920810907729900600251363299159214224538082051946670631850383127934347991976459893574141262516427613396256692452029285570297395700209846926364606183049525248312513681648819696814299825888478396283559032365173015212233753566098043602033806918026369583154702578175739217566082371456229946868293210985920883091890213456713636937059440018593847609398091692178378702415467987276483910514893572409033133285407160018897713942769806253433329959999337214223173844647662930481345738785378500558489426097581572435701836279901065585102815028888771295113031683662766456495949790419781543473392268564235771828039659889712978664132944196608108879379416034867772933482467519635771249612679853984554472872220220060587683425097732345903143061958332196037651275134570844058135703844583708360369820097665710772695198159963717638773600282425724051049783533861331584567810531563393954250355558747223827597897828410344389374109550359918203771527659172087645329278851847581433977950712614667889416628569676875462732834957695324082885870892924746523267529497157098779320818678273340344317690759454052209539675467882676563769209258511152495498737210218245145937605619911331563742154285017460959475089116719061446753517523775503324433735989054552363938957904578959812071781775648827937205243235546184637642642821439915709631568508257979860231542507651433868291270782777987688341316602638920886055500861984184698068078158675306840576060909316344691742817716534912944044464970192011151855874493833247631746539872910344232404553541088689937350098480368609149520787422678130140280954553136986262756442177721705312301398057502147302475353564814240965298685281875596208893201301054416025074498077544878215223780879444777730463969362312341280218704625645615451815045674122970627844080301148357846302360744886918094765711878958448192342142566576594701296524675644442420003183560077617070236830308503331705833862816652316239207790220958734500982864197132772841541036039012197889403647581034655663346270464546989062519545440308721880084570425289658597680363646419192440849785360844786426334093160479115300083843262155227419882542576293069145556450027395478579405208846877692765073731758600034001356481285673219587013614800939249964528745489666057068433630548701409948983960899152404688902958203138306936560185446022978422193694021230683692574140716470407073753135480686212798270657226091483989076572411573552362991467928294452342598880431187883991461954068067939170612386413766566395980996478988365101745232161776611427847008735297724403317430468819829687765400806048532684516842059215825709775026450992621054469622064130897481423925874734015463738533297855389727050294324930460364196810927269919075845911753893506663361396023382954281066026291999390850133501009500291541992498483300496402977955572437205786804878087004567666729065509750971900251888948833754936640488866639598264484168707535395984182660024844051411229256696588739442944294804017265488186327150394457422308605477177296982610192485900846771842975355283295298187398993956295936206542066888507922840592734627686962932880067305555899399041774933113740861092708821449820364726438406418097167876610941943240624833551077457285751706078427805895513558213727045851657640745104783409096067343388945970560692861704034245535531086426959747104837128033193422213941215453993267236629075103688176893670782947170280199939029684715316002874603031461449990366519208057349102698009305948477482437187372228910461595809706872450996133997610138846781553446970991820414668266328760754787578714685809009217925122093474960102684954617112930003975995368450760718713351597395458020133252338134574363758694360087899473909853413739056984571924508650305866640829264525275352984198754149323497765938438796215098641448413021426750044107118782021893540703227430629847109541142117439735053331748163800661628479384460538820449574005527586193930694145331075732088538421684094957489101650160988700068773156459278539294449161924881653517109340716355901799935180983397266966659793643634297190882316090246954871903674409448183421053416371141250405652043995142474706562651222144907925715964428010437268683473944217958055807146694122561324669248911642158631644178979207018101489771430787424830310432526355498992651145760353096314501841466518181712100977472141978312025417629383663377869481985291770168125937958474820295773926070884584030327996622445839473583243488827344612527023738832591143855693434362651004470484387980951094094852323171184569357835790479669647122179741936048627653713324533277575298421629640392699715761460919090695535371306016401923456802532703478295607508859435939080334544199827528831376210631972124726416207379364251685048917487411933046300153291012536712203305110723330064529293657316446433497246430483106460486982979899072483520599171108794086171947313675631967642872048483033076888468913347101444042085917833237762790220883256595423753919044102804033731249506670426929585792816005778389014958395271755841268497666327353988513206876825764835044277142845307064156903928846531193273710349720952181792831243342074715452648878094002668748120333463193163410722550308731531118810261876800070890197051572122500036916647168924404813993012947856876218596258884813689216950046803472197388119716641577756946388649056704256429774391952981845724289410960665777697467572023834361243392781656318668233780055960035084704496755738238542994421591350521115347647504051444135182423519954155023696324725006127063631514095192086191024790087628451977029132391447561243603321302463205435573083100882642508218821864013392351729175750225819000040401394332960298694612758748837233446872204471992913105473404522544513811300026589906345307315286697369898183443556117284880268857001012261593917202518681016423255588850084957099908228312888003822094850923835735116620287079694174834425634077720197072910445827878328163116318372154353627788161395364030273139027000978268035570064401057347939817244112785184990572752163041855746772794219014814516958346508081142762971006953855450436109937354617237938908260902760713274205552851480805077734534607050451979428530929810077435730175324863512846539816548461290792572508809245506104151597916773584918484897258255084141138057343716478675189097448908165593243374659202374061169414888713535867974695213695675770363727290669984100703934184697083473670663763018549433419297865401094259177652444980479445390245557321482326113178863368364869930330514160365730925859806966896904726041873421902949848453480765118544183518261175066466633778567186337882962647465027422387786720877108066554906291700201323228228085962825965029755092098279288829535166736894430735737957851249729858956052665132624265464622150882069442763334712578621859534528012254807270418087710039645538700756410357258047646045059356766207873757664381104891841706861797972308515724405223835238620681341305598127361336692694586168630961972228754466250684511306627989989727946456279141939427859598875134752866025155782306323150920029213143550750369381202762580243811316769721279599889702323292942030785919561481029932723317109578956505096560359400490657439803235582740415366546421360330987940079498057396501279266127854690765789595670596725617378079501015442896238553626307814033589206640646833174390993935084634947245862410513094288658008508387739425380436415023360231373093566529622716331431762441835828576953718364915892669708569845385284105020989359693019002172486567892556996023897520589180641927136792416256718361784658090866046087811570460532546948739421058358087348423905519985955084852476366261017353359841619140792949756096957037842861137690791200288431530884687996379653709313185012313332403719727437437546675362158065621506455954900277976374287800978339629272114522881225654161325873939594809888447119692311637814589925392174944377587690125877030177661490343063731561011532871239904252671856382928659311605728347133309232710184306942719793479495291401868861898308198897437681002156088036638046617460589564247198845045269436373401849000837717940176834516160383946844552012388687138930480400205303433304512256603870154574277691877349567897255135071975206661851413154337554732672361253494513818682051708712941410768269402935226440675711364211140782824271854557437621361414771987829304085606425387838311151652637152907592719763597931767200628620048737478125829749929926189610412767167960553872824159755751503943165113304254611598148874335795778121758355059368557227084880779762460471689961604020999829803374798153388543728657561215254075026821728265238492182583306762965860399086066064858470730481798685239345027592059162968719445117707968293947964222329132341041790866871627654231032646305481234599721082056287894591838473419750585900305945879850057120471742488306248846819351082532930006562592971429054261075847039312190331599140531783589800605351048391820823181301027890577223212924095181121496628983748487772051803412998840215453014396404056403837246418885680593490952150361767549934821597817890349899506195323305619226535862704678250882341333358123485383098567448639268198358468377760726682471299463129779274623384647298237384382461899942706665152000717290656912987506827956982555963213108268126428080666520546282342021422071110932300349419650377680962423360484788522490072223638422877051931396643630272757672190645486718056382944016359050645625084365060775328495705666681283569260010865435222072450272357489489364120463193762696443383725081496164742252369751615877768477073542198527240976240704354912153147173367332627338671756566224495864776395394852223677180211869358015381944033868110128343450837629746601714072496485885021670270340632313393731099886357900620864801180805340098169699668692763502097774336985413671366891051095753200251296647795202058137887565629637117704644891969726608379703300540565429090111490522314466738626330707716442434737828368649535034490344679914570001776041263991703334258287967593307520663156716889024434121803345877968461363561845222830191483244709265411051848308941739038530970915411918600118436169604419931041133268161505858065200384715383294251660858763210012727842655651348168004549720438488446093472946531391254350122555341447745770530061782787655030509072106504731719976699939102703671557192999474094971233576336191438272203239355244176609635938397659913349652395658324381660901171434305698006492243447332099786063215837112732763260160129175395028569628491896628463251175482937619678587528664506664624475451013215417518369579819056650689071215823801597152398939473942783577754908234462232105280763010996144561245767139207896520320523408178957607400431983084969076822314443380125669719967639026488176492332797912791757152122373552866286919368095580961300899154862425437956817428869110908177319218946974170131434427597929874677940440086365892644753253564935488743268453023944153872849298802542906191671365851802109770625841182087610238127324757004816779024680406715619871076035077203583107207081687426244701901824848794771916682172058513336006528614269481769807151932458369228487168898847559553456160680824843357424951146787060176109969397684079688196287220229965026134704835072193588680940515947901250837942474976224277515375681557068245020848175655815391869860247265406184401130614137708029475873853687572433242283970813809939220869325319589961064042226997484287396242362378767344330555369834172932000077967746428020987372806647763601094545308162492139798844268464890514231252754512598386704850815949547208402761024975398396281531116240303170315843850542505174430560548491453167196841112692018740584182993811915827638048287420250382186740655571707479143241838878219786106007118282119357163694637245558340610569492743658327766632525341219302429503306379349052294285139942675127211306411964008198192783940356049693208547252110520384395828842894506709097622602123264113818038015851032919016882717379924007802332122412980423757167680623034637854934357086309989586598155099768794624867056344673656679268894659412941810863696797997973079116720075579194591018531224830787376993951644435142176918379776071524157131601015409176931180374352061699775630481542759263318461163518844488384070221716890275330472082575207438354623648236090135234738544264240507530771540560280356739550475627955915236580839828742250592685669953561099457475588303154289164534716516528488760152303710613991708782613539499706215503287679049941029949122751775703037651572207356611162404836957195955425723084239853479948477295162814369765815655596210656951423038675347782995773279765019760976133135273715793165808709320257028962983355321386432833528725236662704078189311758248073675653212456727696174374864884306947679547273310647378530877769217844169159449604872048726035782548093733829957092890825066389035555804207077241370748042146342470609345099044228684470617353638726462623952002010847933880379871692852879000724275123267582815360719379980921957791604397182743743517250969920241523332355072625723444910244115667354289979014916172252662263569945457660014936933093899608559886222649757080203237250437182856224603733880168536674142558262737741282848977390659786186742541099370651192615873239570581786073234024311593089166882244380137757188369791114819078323543187328121112988692109541966991773496784642690797343986003543949887965178913530471995081635083642969565781148282146083205233594537876001692481032517221171695742493826668061277265110746672173627633099224555979187722064953861763524432896789242270519089625416861453995692028683481352088078426143276088282479011775449232633732220057822595116319132461849027493448828874245957412829089137749018051391831142145350972259788669100096587427587679501587967928502510179762518799078996541107041884825400622473302260702576970424505986992245238924825535553282361184710227110110336843487694282470190684898615544470854984487850571599985006835512677316795603616657048430667714005830844848402163049606704973966840620367095554907998866687933022785617222717915172358480317753086123204585826541160897677421597582139532339983097696335311824855626429110847330659175638949397248489830723061085108125861928845276786837596907220822774594097197672830219895695517509991666762771734524407277107410411714878220907809254046309733388815423888421175692005952368168765158544581956651514506002283325735591323425036482905066581827430271313550131880414759258214513908623191066606738336216884423781027126556896713516307918407009275019171153777016878181401478148762630780609834090239388657803937811327220859343668304462473536048658591363527661265050058064146398328345783565240463630638905736321906219443204755569205747905579701449930991379169596476036061712565728716118227936154419229850052683518357028201122125185786687042675510540072588805107884178092936686641405021052089681072665333000953594118931153988007927132545008534259853077640579406010498070262618981195504011050836361346418311497312720977327843778207093921717874208705193063895030369770788071781089811133103644895956295409984709899728166693403640474942947750581197325932205682803031896176996854539427214009749578095727829858466837438182135675159493962163389982062384788722947036071236846368666225810930414511112538031368103724637947574320458293271044607380921657285757368528881733214742364340966451120205245924233030510970061981124007153636855371292039623167956511111458473865700781821518949354354529900765158716130143136287482374732065520621831733609643097437755349721559291319675988118865562190817327761097254129474422197486670604012454779568441732563603108862163182999685367183237595033031640159125497569465785169191414757035980050082028009442489303746981624601835007182775761834178498284543634460721097178578808550918286468799377422173619088323628611625746996499023457081976451386767991524221387790019804603044274349868868046561997365723598390653055410971221742552290666850579665757239531672323960774569534247321017305371769869068876539723947035870479355807023255350820875527025599213967783855917242121453386929173720008982635871892070831757966029672573347529082128359673594357452060230889481853773318906955390912581215789943254135548986183049152208186241822632087664124053793155435387175176486423334679558127076234490988139442482721697132381836771944812205161642743553872114899375366330550129820102659276128281819438847031739443084548817604804793881782866046881901433135305915680168599905719929656986530886913112058344026613857809958728286346700436192599955359711937011457409612840489702352163314472647100601641933778261461913597173743015254538972989005306230992005901640844292715661753525001833993288298012572300557775230702561943656909509473807289184283776659080466545654008636736248519540069206145957529177286961359850226149240271382169015900523313426881745123775834253292819757074170735808641288552748756705725315773672398665195892449257076696455965939341485198211396810765162454626803628092658311301276024257374942431750313537017869957038636146762961837577233782107739116930031621960517181875250823911268670922802214240211143867345248255851306672354271020126343359462418709749713000482388711223355010589200997449363587270208661876700582455854818474563110607435794236610578171360443099546896976807243955993543027465890523235592431703331598842011803314932824546554211927591697650189715274997256040727728010742198550598161756724791579967019313729656128197329315631329527272275786565828638143501210565696274052518152275584489827098396679694447837408226017452574358899817656203058491309318849052216691058768143866080303151917138652347729249165380590945467043194455942211771708105280265101111827791182175147135174445438481006873064894597977081620074506670366288655438725732909848718363154644470051594914570300086019082591488462087751657591398182475543067646928529751502957097436766377501433587993260855601317541263104314732017293447570976786494694338681863044469902531169906657262120017451002853281878524996355663287129619873763347288019530489767128183461797593123491627399084249543315122447603276353564712293234459051023427540168943338728113503809162584843096170695468818768440081332060966799757703236067052608835680716852601944866534848490843013431399360958602318166683118926493740886075074445737060215224261426399356946409302831423853796178305426929749339070050322006896790142658986846525810134476663006521406013897564218620465328355522764894122937189907019335392858245827554860058469594627586770856976304776011608798840367159788109154101982385640905653584656357085803468038817134871176312180746427263143085175087116007754144135539136236193243744119210987976451658272321868618102197450489070635536828755399560338505784097718480835527055721372017156037591002346180762057126656139454684448631488545554153012231547398265026243267259576058572625708042712703015016764634982519385187547497488258182731623971465385270075426325635374039658141262451945109934739826007324933948686779800124677241093413376308797492565149227488265706334469260892540138310404641976324280306475327792251107739137067484680696387331112182364986524120873379511690509035075585213068374434418647478945185157604593812145528624304218414327266138148190452396353541933358033912401968957553443262483547742354082973477425147006639216489522553168768500077660306214303761879324955438711780124858908835449199177830752147654021067960805916567273790037714884883283318349800910877842903185006833366815225656884008124116260336840989263620164283378380455145398555243277833956065096724542200442485012349504636344463041262226413169726661706286669447403286195522089407638158120338477684871241323720324824190558339980861221217283104481030050797445990779410811874928098912745096117458868291894012779945129319724849124916586147515582507318681354984176916142123398558450790906987344983654637013346128050497220956767495470699936137632520421255024555248995990215719226765126047379049996007548676938584066637992983161515027899743794078205318969511208543326444150527869405126243409377201928774795150935297148219890577784473564283330593540814810908777778254595941163395054430824770664876297865591264420005369339143881083039056943044637491081657397105064773806849086635463090664958732907267856281042869909538759084647539361486803089530375003547846257917570948835975426206238536671157959447857937322145902041392579071010295932434862018132271026348576314284816822046419043470059873102779521051309024239403025649805671809050762795435738871368200019260367746772656685856099089676715788167308250042236221653667848895236823923028826000909166701572486404611509677540605923622533091538858611125493211827719119941396726673370282535323006346979985563055647940075240459978610886475280061682568632390765532121284889483195007918155518722143732384294779226277656228372779269314922244130797014440047599447044703859448723241326497093067581057327599563028079845505493057701395280570296070351324858437681700490614487756740198337227427131049056528313041518775279682402418307069427865791204488223628444155698096404194247218585119607869766054556568523299010135901234587450715799383102521144116548798355945314797283052475476700059866209335990345427139749364521922431212520902586372070557494575804445879899642574562840872237927729027662827549469042584049315343258449791699718803203016319870760422410018286036821070584980026935917452537304196654984242731421751685947122842923455036953348369884608759163558691533795198073471123713080083374996051746523829237588948097415403324251221079687649617718000384218427243674062937283571823084938968942155058446707936433477185621395173589365523263515832019306134104764707003078381195049412569286127777069853373901444380959203381739365773351512500726765883368258460756431900796612339445475162121099828304400960393245397167870667654386642991025545777060216774411156756254398548233368856545514583242568719076750378374624230440459855790213593594616030523969588925852189509373547232633923322916089029704961870781922719754984210059491873470316405887486150422123459476611403770799377704325729352986049726613494515734481565946936916499862488324512173796073644577517797494099142918417782699817741175392570647024209660694682457481323524559160437979108876074271973276684526878872618473106904175862294839971827627400979460743386268422017775238891436318931666652106051687808181665533771588288206577065074256761953833779689000607042747889569722335368577447372663468491499552591505098039566255129050204137816804064634375596156880654262086948699520487106207045181477707080989584648620167832013104496431973114795870103888532839854790356934238559610008004908495477344816278878983230924216442720935761018726187493405234803230072733884743205249461627810978304061581044393910874957662917258567260620735176217553771392688979550472893907416534700316521892119064509295739749237591556855129765449296354281773995694294189744241349675973254105554282905567734868777734399001150790512704581309661364660788380293207916133680431154293852436844842098223486323916996750336371295909008815893743802877648815677790911611003723850918401214684413562449747018713963995378894622706585434670044452291838026178769199088781547509121054339034659638644949565981203460239054578533966132354324176105485299771821343497651647896469409877334954533985265892637491280479521075912610398316015541754567136598328736224364147160116187486417937630828009219129461643595917491002975418702627196835748449948503454394701586067270943186856433327706187274140953857823614717548464385439056612273668654324314934283280600636058826630837317954761519838791319870253457250172401538932168816512152661148941308731204651662624670514807262969919760665225499580104197466768062122152038940148580109184807586003954696739488530489602468158956689334888413940659243005166865087069878119608855414683774169007213468730372489249472773332090913913664096776173951753167281777839081488519492639854200057116976387001097901461441773757870135482908738370428439269047295855215222581441902976625195904976286128579486336005335598792524188150687328066672529005316407937865173686066795286857405241210631057734714577734876215785554080371982036258974452192206942022010206190673317817729475337278648082921725137675352689903486125678454404177256048563321495631834776293428558257544950691611297164317444597095712367603596888246477154725819792020335818628122211286018780302893867480079663060700544583969443947189370217805836881178754691291192821199707377210429248583505202151024728878900160198740163664668130190955060564794539349603135935394466559498315812021848575485312054668947344678537228872095153407163233394890265491719705037336374364446275268242240328721024648636089241418058924503350712702249247762176995867531417814310463456628077566345519166414499457158174250493016460491351330699838065779278479598953192366971540034878595059937630872968838994219389096465945966066914810821074051673232743217884296476930794806457551268172204143750197954038070009958485253304145605809826304196678551005139228581538285810388630928536636355298165948237052952281041767868333354855850611585102527152047278403426853072741171411342724805223957659946133122885123506092864460195884635538119733792239018736496294246971542102245327251047780690088342544085148720162402817579389672242318428110170059439776312784208769549555205332675982435671511010118227525802137717284269133164882362556199254567237694135113847960391570132124830450461910765821752293105496873316861090805714798856272748713530244162911817485331008523319275053089440881795611691598475222983508837238238397319188929366823808866719173841704029408367749685856956374173714153381850663699435218512046491261051509303735302011358047965183210701620340455279476651761199737183691204492305988792680687359749363134473937444714035388595797296610967866807064963082391286075577106572046817107979627298207937970002630613575396764971914401244809520632233709324472010032260833689046375940173757325755392246343439515733712154429849887490641687193407213145474095680687465063642372635607896339039264240480026856054607940296988231906501503446863498128944518105351351951351765900364489966559526202040480618757116394474257015352164812040677150213233160564102285673253498002585925975505271474788564061842166333594719359602473702217604748894359878380611263752927913193834696767496817808609591721661853415598355905589068677246185100420704035433270001592155221962852734537216366808758570267994822021745523007839790140538023161396741144241273930915532543485156376997726978257817552066345724017191218590144148410236861603576656260929407754799338885237331916193217008113671980901922628452744072965808291951215279547039434287384338692226250714213432748268290195938753002154654660351432179284640620245766212668036486038516311491486529876681749637514195937179775779854048574552881429021897168821990674576620231713054307747879065320584776821730478708794199700175751039467491268829540890925906040989779865120729018120797639664635580198559554088730153199042275850805767342000686897430030306912340382965881719988460486233893104207846045984972150022561560469945324931587115975871353347270092035978333922545457481771016733683673121463021230560535017317211615919559556928223593868023328500318337495949208978069497822902417455831487123262478937781671954068727609809321503824367255416421530263570206102363417243443109058263912849620753406949756342983605902889609912362766827411520946852302261004007364207323037728699937008979057502708637917855798233087754726792621178083457985735024982439442920231435959123370158280820477806460292596730495804471222494618190225712293551918396858068925632805604836345781937309401158839262093511477162979690375535600463161369624167985889616738459207752223914021211747844713495971686225398272535304911507400513112056503060649856998058417485041983058335651122257759971159356103084312292732124071386608441025146368117648909728064755871653723635957923638651175931195359810115073580333220448832079630037284943352338708013435502498617001728927067525359511198586297372519796481236256863618839462548839630903825141939218485534690903990851188978291327150523398972492753094035368662798069887185113569450558705880815360497818907750251178555060026649475364744786405334748555642510350884369921713539297853029882294388739630792777315864607061843902884434352681414632901234943843592228574789800062194929323023383537868627889705256680047476026541835735437823582250712538756197161546329518142440936448938944842273497267203240169463746625736410917228267428625277161826522467988639342413735027394850737948234870478815038597984105969838937480879699153711675814134730150775561822128856525947700153295012180272155107120076567907417666060831211270378404686654804334468882621845572924654099170159615661293515592457581537114809864714927825652534759451848377030229413681938330494973438856888392639780333773987105328400968330027305461604622552230142799557112776661187298562645076921518264969666506117582170140446245497153030408706173216634935350589580345259231643907277615692712533294311561182591251731499164998936788354810721812232764699708190585609991854859176238122329217265806688796300270695676997050448963619449669403238578192252366172461884943939523021993659032515068239023324066001412610878428100124955043754572328802150488941970098728013951607186315355644461816793863321782271456001404812528508515467184118490344608347241348036447490813676742872144315025258880620310578698636925712998730155523636674051402985411886507775684836289849962694295860593306837949735074346654049375555430635774529388051095047533345401926520258921760420969904593762319174280714640910663095233418574236800802679155771649709575547953119928276135765241613865567742857638615346796549134867294306870856540333236566677885130295791709633108628998657940627085076759539229388753086206356843424457404534007924013526907310358086642301230667913585542510915956565079186120981100542088598578773497090375074117427384347617036234393565087529163718424310503616403087610392425589574629279536981649824109418029719897118217249745642417069369109285579959300326483506685894520826960074651002043957359358669065904448297692622457237809754760257192917899390840666672564272114009594920400702490093246075580659033571108175828356444972032999390026247123446650479243798414465434798977211191208285676735914097769871514138727638377367264750406020357399553338762762897284354463734062449080225920819122316107709764384845114764203761096739293043910116095672810913270287821524070242074794254391793196141754200959944567390410623638111634729957011633057207212508533566007027046377839193157458057087145270662911662518769202066958925601482072207281080015153221668026281533466384567413760088794923784309880345837249419768627633147509448468571663534141181745098644929374544591860885538628688683856243156326007415632436621514684371954127150614684853315210195996975742519326530680006170356161335440853003575689153593402185354975579071568666640347263782310129255823794792442375341176596890905219492149798885380601343279560462293932931884169939146069598461848078285357538550788914575568964683125090283193495448546200135000271362095928909795482048360269818872247566186823938550595079688757820970672548940938192717441716559203015040433446895417324516775688891195505845948997185853727211279675354136634435545929717812042490931247814959532498427185544362890354203414623927604535262131291493565595839733182926516509493368178130053345156331482725366981783592840541219546114000167459329752864820469878616083199820693497643269748550591907468336977566430145917743650428583885469234669995941280139281333663715272590868286032781708163403672815258377028076573088125617761562834446146090551284359647864958269702884589366775169825490426155304405141842868890908438081127009764775504233839120612505347387382073793135380299357093140526027294111035722251396711159638263777225479007639632281341581139311977639136723648018360462061686395835391000148023461423964445689068332976361872338702534639120944012866781376161591854397642840884530695678206297597455217516746614977010729719055943355705390118537089454273082953997208970606060476262150640598116900608278380943830960771344377112310929551171192740092290588133754642529580141524811576310140190681466945533090618519835969638329134216573569058656344245246137811715549629856822847372605177989916718562963978339700378913381036791029247321692472146646120185958343925015673369082976113181195247339218468723104443730872288468505167761525818941639587521375379874463468644965698706150947701020019562235061711053122307409908450568096935934326937792047296523632117468324522048345075097263781215922565232242849474597957260318355565579728244394177234516623207722733474342959634932477621917574798049985505532527683900675768056559028795893546327650845528165474513943369305305213350690886731862825574842383634766822862417429622980237195158578738204871164506865476112817588609745950477323689324357515121303664734816836249617225839259872161864643673472789665422397015701087237439555558631103535060430146227227640945560599720306439795390509318050086063509742136260685749683496753022601057497168256994882510189266664263815989893262432012869088928406151083240449020986863990018889202019970750604236747453620280047536813693324317074082758622894550988323092325028897363097693113400361453088662824175175022217633262993277282577698442475457464259374632548813715884224721214726592605329051278084703850389549947401741455992405020126418969593574951138322772934434655718176486925817890487045289975354850265153759296396913014940333267802867602352620977666722801836319154670653440797279671045418020329799131475719017694523672959363126432745169626601333104614724480100996819523492047081921500284919294856109476576912632814164528797203377864404918974249425607747171501097301766882341333830512171115882284099667736084994074070131072979487816215903479898867265630892945243107888261162414150593077183351754926562341228691142999092434210426002954798987484196521370524087751996954897632556641507293247811454525998020543969873087193947376471305596843614138387281455081506517964506563366568622850605744494269168650274933334460058032169891381832820498315319301929382295686656961966993717011904804522975344793158087038296502353955986379645499277497580647079954482851983975816349585664007357420236870221277812722982399697075829680198985260224749315184760145490353911222983648076538874431731991695287520615150652446979452365791770990695388850940293827053357455635469856493301941295239981040052002827809997768845826510715844365619378957953907966959486253045411862623514633778242961252560762596283421723545143971541256256502621030046884768028460691529542524502523043982875011891879126076959087491413326681330292504240244759573970266597371651178776417099276109173592262472456101840397675552660950441612531046482460426194031223133677752176989894448876521575722497791780126168179251837576878487016631415396015417013251716262665334076815155765562727399718802469187448089933552505382918697418233274209683510496004659976247846925494049636714917741403716922147608268874644797627876823928736229200356706724071097007332049134900170204238285258561219344779528012861943378020169083483190521799269028306525349418060743872697578361520324946566176202245165099541982870672142424712319929799667509176862729995745249199855102704324719202986259607781784842351725392984525929519272140600169995091210150483715020694854950669288559242491438082713999845673474190882588409314851007391420968318252034359723657417959240041987790493491784583760299622567439700026507954050069640977637316939878583710530226971133035732099628741236185677053960043317483014246148526830335105626128465766384976878147209017865064753605620655170063047196592434607715534675080121871981647386131753723450042009779886203205465269584920514993784474378487041424651284799510071866656264829252500212322647223022841804933281345220737180116188962781770304131311740797910550536397041180076031956616300980870553944579361332601408202153276885740515606988214037288894410285745386402832870801705557318207744705728050208983822944180585584260105668827597589810906970343134823458170611349373176820509532442948151034483483135286310119690153672325175517057282238742868699072731776504615576589213895228325242594528223347086853459732642543659753062509560833927004611352927975910010048863977670218663885342391848472923156423176241419437821583788051515155867273579232881733601369977509588668932938660635019630652671420625615773523175825474131192999549615395620564776419984649220196214438806054996889553567652124947459447275660878260520675900479376460899514517453047529634830729343233845707132050736163394548279578483420063920881105144537133538006096274810661029209612003516505645026730787654626089122050682357406428075937774482035960623876157461940824764447196891805892128999312842697940440223139038354443243958053216001292815920735394589981078936127921347144277757333526308020451783751961036416009508117493476687340593828497203088339225284913342021686050449950474432391481021593043591300837385633521058374086159673308299284448293105411174932864460664286753004490993642037504681568717338195156389735164357962288039140807325710880245972763695478983651496090827852227329161146889290300003483081723678145338794300516843140354911447421270229769235248296771583350649163592754525658829294747923481210381113870984789899835875921643057164683615178414385744024005596828613102222815751854204863707055652652883135545740711564579825716868876724161347556544326977098687238937690173294150978583577862698972355355141918690675510561722584378028704754631646157716561884545276917888762655859153128220269745791540325490349205353002067637683683525406709584821975878754297778373201884029779632656440863564044355939984462773603739456325879739644628707521861123051297556269206047522662139203094626638861552399878021574305418330204177342103177601608694644213578293262004622341788102519924299994299148254288911513562015179309774891958634907560233113369092606083690601316923879537286425069410789896653871537321815429812747142818720920728484782654163833950502525149051160360915740288342933427014376708477029638536334316668175138074080323292238761636541708077500171340875487096396753756923177517201636344867246374555999927844283453582185637029221255622876321711986529319622340899681078639474596251252745304492231377766001590940404741370289150097500431004317013086798388982361409877633599140603253505893096261185732330181419505096466675249636184835729070410558150136600151379010407233402328923938622874062045837716745853587074689449178337752584592022979704196705178862883158184449384163436320444938763907362842497254617552168931803700208485012851388945073962412300268831520141124354847512755782998255625399745119324454168413102570342564572721862314821864916599122311025869636308555445721982265116867531198970614684774017427133645593429631364560198418991464879914852694081009446704073301339842705399362138468314499744351154996469805356564683575540483117895423276994220517980325709478583256686888222222138974051330711707816424680564394759566699552426226230844969136739644928332337098944396730630425778081748539468336973994320577752183353598315118267067265069323976561571790257120562167968971668003102798828742699395343376311535758927473644608436255785569040528105093343921106985272493192755969656256791541685089593768362830012572445300820807764335785828972670147917988862088457017727824474654124029542109479035120680051421616065692797494003421486383102300764207263384304700921981726133761387770403044432689189298741180608540540667083031235846891698278396441141063202878676376183273818797867600920085099745366216950192480575246297507132398905462281520710756293874382412156235344360811637134384760908864916218861844003493567212349683509301611062626247990922871893205427479800788978917729765740310863263170049767427526231584191413844306308024072117201391124570985187490185562476856512282629185259999654034958779234724566581566198401859413974187673847490490122557423698348170357289744393765064782079866652832674649824295301714195458094606239073363054605854206285971663391678689117552705042435201319933253339698047651807573085279145655530770368468481637685663612543100200415032932738248926043575610819855960704902855374440182634986523772985310899594439409482542718637932261898201640128304089678908483669144834614001337986172345491507701141591681721278534136627879569528441945724063887854225296550482705424693790356618410657627304731885812265324324963385904788195868167416213844736277594344503521159220173623159413584669501056724701834366104019869828235538949275142985894555975923378376784281128875489922200579366855038529809289606962584247960751775583416387191447965865212063993389257123032625045257291274270992157314088972884039197921606100359805568890275781263489793867073565640282640393982593870090510357140578443942914025707294309754490454599571664865275874192502522446828643893034403569609993598608236012244843517619157468809523333493426296833609679936771332588044458309112232608435308095726651942571269435946381402303515499698275329282557821694772562734870110587508915409662702398558003471181555301451121922240324714497802551284788573240147231921290951915962480917208489500108732136987442968268848034721988318731687007400473525926214351072358492460583379274799682942131426778591526177163298536568132173192257070233684539088339468183284691924448524721206206535862154986960584445365681993812811400717969959989943151956000143408526400188245014543505373732692844086846898374552799816333985311103978870022355417092651952692405768149864006905256839657680020366112065186309661650934825183118390502255353753386053150348967992152831329349367404035979693853967593692238025706782596075642893416700937817552331814754430518062670624159787458613804649954260165220883268729594674884434388384683522436594422204790399488149894844004276301581424939496591935811512009740180829930706877527303206974342103349577717343773196841358034436714379441778475702364492216660899099083336008634024583713787106410236175046227486170402706435816205646348142987130437684954536065719229401049360255410364718108958941821970715807180302732221281482448741974509115375064729183132212244386176963680961433833032831459907625962373860049785677491666711734581192561546714383074932608782758061249835108745656004871663641198505439548776521399916376380588986764603887695712797259092901445741944980429267549677712367226755045439712868643024659350426613336217218784328848009796833126621602138705087919809458180061097619003749546704817334703660971516291076515465090871583275237737878067371475346472165147182174917140340302021359599110224707920245814245989230491444993319932098289509097158514960209409814209001097473648643791503392668561085622189711782876198703061481233031105422481454628271135061298228740786161346985934636275653029525357882701118258310982675358733860292487814716250250320868418639620861877124966620254705640665624018658883180351195569575764932577998310389278638344910351361686761880187590257384325733343797914937398733022876836309681055327918096308233856980031432009827257072108876555398342320892323862731661536666961526490741385882824938123988795799848590967121922953627704893687784404284248638737654526455381110552178832477150576960422311806754631602755425641040943400744767114806860077357947915202831320868930076509863481526458814559348227781094085786462098918493033899501256384253030893463489350394569981331658761982020778246462966692999472444417973444329157814101706501891953515194866604005733325723530433633484329439276172968866976805858939853707780470519381241539547551278954256753678976797429440659783825177523374592718943251524604765955814070078639607500786210091591185418494355225182058129018002692122119526364193994112890410367893752810103507547287839640704343196744922559647445338323540925138880426528777942179231391898646072011057372793941343428017110776875783460751400124017816220106438527540280523129368133344086976516991255929276420959328642687782130022220988335055819541757022897065756341046130457200896847549736238426850372480886754448004008026749304301646896108274018043796756810185753741224518163762182526000106639708955912481500368049341390602282074474753704612076105701717732572557191383214777388222368104108875703145999076012886769844413916645498770917715913663115664395199412572312330225864940876631128642730155369027730541524014252679410266240968416321918621579657088029898706483652716242950976182689493163556788289108670392111113701471897834514116483119732050132468335466117027267685259525218703914378874931161702531042900904694546038535915726096124013934833626604895005626849348987782066376995838364239072904667407099908816057432056003129309817859751017380941033918115853754478563472627724859827534411082105353273267568458104887583908887363663689825443660171391578899761552864369926112514414694634632489469376614337543127260844326026776001092562667096376741343283223016203670550066265590479495759849566725633152839550488759259677840139326726684298701021942142760338116274586835559877307898458704760093205710198061026732288409152632815441672864520185325304763636368111589938065607146949783257878924738238724268522365863764900083086191121892540264882197595289593493634116765347107129749552681802630972233436137140668528466606601264345089534555070328409583037105536528517573440877938769777843417667887780962104151172737994436532389709096354644729059163518102119427872734442385666398677681624577582094062922953831600732633742664338245892049222192282158511133808972275586741797925642925596671860805227030271652930719177035525180102509475142786734214803695872999122496249030385709267354651227065028076248926794830326913648669827475378111482480073649376770291239602430673201684646854491961295354023300329052051732413484130763268942631483244144837395186912858993540049618792294095790361815066932448352179183393847553788761433836306775107773418699163572878043925597378382086953546061107164510655779182846146009835187113561130833483702391227293722731744243391205992742821128548963225663651444671367643988136647361830079582717744492309186384317199382681748364004841944285759027980676342866941124360880009416162477683859197799146537292920075080874192607211445470413253185193799299290503888889379370269329781749584652856457906805231723351334603925603238116978851255353075347989203734714252979635823101876745665911717764807427972870268000693988550408897924334395757783098514878542505801911241177230562571879398757999471410540149472521168261540597218883997969646122231954085190029660141199245850362445263483231609148813384989372390305108902000560748908595490442974407963522694294538526837940592781276121893949165022506993475987227196201193170202234909333575678865440984781177175551906946347539242824340569897799687362865010602887558947659050131106335075786238697634983305447261908914917539630475105057771628232529188504375157938602346139326633224365013084511753733298022638366631622094089692156290333008787764872511708105673817169077150300050947895564649163727290296178543464745371405898538458956484311747952423459068555193740594812151834273889901162035046172103026525701535568597122790551744206520762631423204412991315557704509533228782726013899042934279127861068833232938150922757270277327471232265296282971766895093168229001569293837053940382764069926502888045230115108547021430421619498172161845252010356353932452120885108909831202871492193212187362588909201617852924410040630818864026663466002526145507666383964788714343569947556679066978614775538890671618121856608998074437478138230564892110216639896200807041880530383294739138774469502425250666599616532250144543409194920194426987728335294671246551254017533725814696240294842666506024022127714920386479732752114954654938851040959742777358840725825704109466960064450888063634670050061389954949483303817856008014895590615496202824627123989455218168833416561969710822670544311374511191365490889641050230744049689599025326124258077044742326723517947194491949566874084881799921506198452104857800684003845077835451360970877026916544010999501970612964299397917554930716528146568035176042897185539288104516185776452127475206780682300263308308317034243352181161074864864707750294597465712599241016160323473801474760885527994753974152285710209425760544183574428038493515010878387300338518134829382769135576182996840269197304005019352696122966793708971750349363299953295745320828701875494465171904958644950482695662565774827121852502567826280880631015449056556445948489951749867670704667304468441411720110808110902195498649098716952614547087825341815376468180729707247981797522532533744781677574227562266622589738302830302393008937700158347861529171117154571447887036218790234724557164446889890572709323804980244361025422612832233254316868824538567556998662597323106394473736334121961013360770797205113077579252129373167986149560599092597941436337129280961164655655024501086853841073071835361034824556843164979154193339125293894235420902495475784742258888386687574043669281094868875081875154965312015797345285376667134691054545802618803157505304629125315698180520598026369821599528640518646720481765229627963415965873803086127207586038838770565016480028963724013633062378773495629207884030615794065588893014009692546903707960239748908127218662064884224880615637897781938522128322121734514026688189145259598692948414495242362081117303122630637820654186825155650100365899365818614078626676943280864839607944608959272231998840430528987237681367718112928077632451408604015313537344323730172262694202622233325543894913874324573624904187116071809888986841434162791645906347830181364027327617409709201209113156708965136277611717529674731839177914074423045336756561025626879743884624275859207089832582693438513434679534477399601910452225810494744177727851176554180018759834017728134459835648440950910683437553392298976896780620545913164028209480140667730955817970974734639626521421844332882954588595775331974888811994626646535590150096142327000132572725148601054535869460056738224095918817350432601017419286832979314481344862743878480915887347584643714230249449842396872820427019145190652307168887797751674597480993884761316239891105667947793214129529459972962079664789047510782113909204698013731249523627746434742013680625778318934505479395402420636199658527851314358189241728327476557095342961264442072386817938534357360709590257679777502212183523882965011367415253613607585848796614597435514224179938678576035526164389644851078848587962645710781622312179320045194424463768433808704867356694364092689306484473108833593326579654822652330782047546287747474034686242034642658675802307007932450107949950225261683900313022354786319452191969370246453008414354670216836741170029010457672201885554054812721139637098733174986056758705489262387375725937533676495052206482003182329431130485464341980105955226758004940397439895929058490629248884044990025615524439497983993082394103639857292091328533977487302184777262643184180799411277142879717131268021669849755160818846119256399930010659707098049724806680243419321987630695208314119659375420677530805977088773235048382156594985232796384778212820749008234980856211155428501771712169443586387394692468491432541704253574120567906008816413463221878079989543873022883873554843768855083633953077417045781723861493197428428880956852155500858611917322653757039675166516267136678906778224116539877738768658166781442817421014518424039762600590335206846816087968450467176636072865801545346671874240109066407457464668042759246746933064797906549180367642475591344261759127754245377385751741229025237125764118452135225040370448040912695727002077636449169969626528603792682298441238730982257103312684656546722124050611428286898797638897099389823655531322164606076434473003322615333246935007199345305471128432338034415862131178294040752745833998596059098440724240208163126206925430330838356389691016137058206670033226890275357889626469296735908259294135104101327903393948872236295508233924083827435910652412401843723214923623082866186388064402806191523968302609693954790575243719697740964580192910195705497199612796312430828007827477204433150532941784176507994518558061773551372592325643905913069728252557727120886747587680572827854191147507197800821307270917364274834689200245770965567245047145876033126796944228053518192430021498947234932740837295754430450426240881538332105401332902054720677532571390322502998074644167441117236373727038456165890439363781670733358915126151078190204537992574340652320774874138324410998043163828400247378391061414301397892285968680290509996420930277659998281273938883093137995073473994591887563004672005540680480051917782006598021615064758850471634749466990522814026197485230177686251311710290166074174197719279542300130047171468628760076981971079313593115160954387783119607293967315518210937662997876066029641778696179500124496187262154205210308058390112692402299901255966014449492400844287861483959131600120349074301145598422091269344565553372464013660406359440254426911604233235308910578321246678712074492435399101698322436089948215683188382706567223974562042757142962812887808697944459496566441268479412253342472667429160920919137576911271751713273329662181284842372688982386021693928605200758561849850775915798745671916123500022515874633224419228050121478665079548162309894672092775613493946687674715779902508812895552905884385655423028499336474532860310730854220440327066759809950235946080261441373568390414671523491602026135204292248403442990464032027614578033658071971178484114749023075080956574428473337426174415376854054123244133871279428806164286140264596652269130601428585032885233322473508556892085629502739440522327483646602997616781009666958554401349556638524629321243400657551299938311375182950210292275346229945153306121882386252195749062074115593121556366498242398664640378651577296677680185076235714824477561562243474423279792434461110289593508938032887186659023849944178426921406281973136659736739005099821273531782175429813657659334218214989310384065533306141707617909744700291002761092291434776985750169139961435566999605590522102652898869669126388737245735797021382041258098902939628419009845246175300672791956592633704094020903228773140067743897318562416083852492658654191790292973913898609026423319149978992653817690560424125536633448420892328735615588710119904241231392762769866074491659193327399993061863790751404597827472259892559983874044069042355006364152844350941298908487411607388046600845927362836061851866384787513638544817924749519542408172585987313877493423747636098916965525664343496172831333751331374766063151018286311525536601177496270303550086531618089141200763394119593098600826169944103328213146995453375318372457592230668248243086242332769626482219647775517278643087609796063833216406398979421649615381204403393306222491912127832161572236682497771996065423918672840629197046520271917427593738650190472723616056612462146109913565140807017774791833138458705903703052678379025233179002486502378541502658814346394439595868721524970439552156780434687885241781512400123973873856639025071014899645778215162426561432970408918202401163187262678898697240241432079294588408504700477318451854276862755414145544720576612534877629140520974401975809240377817416689063595109603033602338485643948460733254933554113837538334371267992767591932149402264310466133502264469376399006753862014125423919448438848092987439417353271559329931441428903208858973580651486124579726426684658664042525009531766841483389944446032013563524478231927461624433325840364980308813329732820900805206346083600384740447020934775431129326256598252585116922266932779628030135999762784076570079473872027875648094077307517623071174322672611722106559478938578994627788284586590959392539109562173843482528962521043738107813757633258172687252334247842153748850009238423892934089852909875426620311916015190114234580894258778650830297636493941866418957162701031044707035171533281461507931391665016511216708107582575082247930772865714079773633275388819186011128155702828376040980688233182135846625657401300073036861299221674409665306752729274747615507143461608163152657239462073279120700683861807114255180690864960447344506618798229830844946465821177557653643482531024000276761469996679877282200405949592679695481063542984038923015910970133791496116944081436625057242317431301424963451223835398275820643148474309822422134669081514603719600250841204898788610086477320087544622321581113548709902533407629717301788078990402979654234615880818636588074816865440850022419733217753861259736853813405329976166762647768379116467701319073691845747635334824861057854871389005247437506255119779654939619130229577339209534764137723033681853633392423524486749219092710765421441807731509485755912691460144845347060364498233024853045108859261813648201606042017554123184892971889909823052311464874646223535267653979892421797323371666086947473879311385672797400076106108856648793827791603654529091314481563162655571898602774470310452402247069257389131988055084539061644564469874134099687079200768704726239010366853692562913095808048928860401118795620378118754357995737173066252653086277507827368690429753962388766437049910231538718481461583252715161812800098249747907441058406725316462401727010150439742316284812195446845065348480530961542487645423379825769151177782587332330012384879901726739143970228693533752293245557209963871268055204336460278942459921061936741955313953730142227250900490193903453671537198055547494702246888759668470944125930876921871648228664210057999650861437968947273120545716615286622645794830755780038904075390012108838560807498707830605214186541885854978134158770071104879904999375640553831987272662579401678858723422896852233463012275450542124275687151297234719463951186268549740905467701440276385719358207199886606788527530026555445542739599633972234265159000816297373040459381273122201413539426337747414314347294341678604317352985795826399341560361059166075755821392733338907475952461438686534225445333469622880117872197213731889501483435780651300918948528188269344051934453557878297985847162452872704039113947612973560923794902039878629353113572186307412231031066041019848752877918778908589483005790043697422638839433201158261190127785686418151819110412543059791962223645266359022859961810312512138707940861502167077639871344079726788936160384957674083186342982394229637626959072279611685245422168938653315877443236860350867986668010895771694085335675373614828498075356590999171695570905570940821145126843672583660669044120879656289581522835041698630217509568763438075420872788855175479747639949585004161714738751098116207080081168167734464803037870159384855166145896391708376462372541657436297025678590352301283708524278382304312964102824019720484419726923013131342131614657338741734597291516617303654637190552674632599907049408766120695300285038340306605028869835275333653906204662087112422654316641087783063067525353782784441688332743620267800884720156194655157839808621236379939948896053180755154245473014110778322777313217953260292489038445525713337297093315866810043451380122331270163671831102825242629239716916671295781675297009412431436188712261202446608587715296603883219725912967917454536750854223983123603765921466668462542661841105974019529801124298725823095812888467339360953854822807099902848405382712792738946431633450924304000974062436797411959226164726046491427931530768872444200254470269510208170472712429032224752289232897425451811745582836542679658733862100538407070900305302224998377430502205572365773676491333273324674524483633711758344514025726840101884532047373102435028193596804190972871067757474729862573555782249998048882595994210582241510865415398509827819437574028537892075733712655204859592572772540218282545014916878105779455924251739575018222704785291573772965429940490763477526911593147478154265039871031716895221491725833049429642749702470577296084795159159809725268466688855012162265185697572179270451404634885692727078189926523709837338817831447585664166891978719216923071156672283683274780332666466511730010958253755108307221365521676679381948694722766418437816013264218427317187857825282994353905521373289574659030303928783795206592449340923946350414675128152021656895214863604295766586042535673326162726499991193931703616543240698607831677752263273604584000378853781699741996582458335599525897670131439288036089674519121606918598417941647657117902464982876776954920621661065826798017564548775893564626813838188398558886858504001765167399413155302678235503084543843841076585008862080320796867112380531507719701390245613598274758066833939574557575227421600807447943258914904974706379577080632723350277161857283171003689502351887249549170862406157311877873425820559146967935931498319113555340795280447073388215055248467400293801098160558603345675520194614585788611108278069972866772267761977385278753922631887037244231969368995438463163429639857472861847048210152623680188401574199365237838241667003022334701788070878606497729405475008183552545642099073226505193597563123310577136244747647065369055370953580854068924964625921635653857363203155669362059646136041625093916779452967101583137221501057098663651064381670004562076004141959060730208835187521226469739256547117491569566962437504498850540655294060220866642723614768248710930468427418145776250083897819042009765245501372983371462911995557492392800039730805939492282895673588238400443245213534276900299059858288761532586773349313537361662710646520296099871163303188996473860324830810182294427695686317349304267338217528746116098912223898007734065398384574555151713243980629919737860029768886779944002102545019985411801339840935896188371814875961593195637857715419098695916428306483774833381243588037365420985938718725541084341024852351216132733258525214628394664824420634310212045959313583801716980050907174675588916167177955972339933888433800826039612153886386402147486059367433793048458180628892556845424458833930324242234499702492963944016660823872557315974006266672040366965799744626368511040051652438090266785857087577310829891489620172260196516319224013297408650767853625410420282573934007961629054578586106007830481140650705516219117239382423174602799417052611239027340884286259152083400394952232689480053445739862996895426042465781440317657485395682273596053353876475532915361598448532521617984311623817402622235355652021444927741205227627777768730380326232798300134759514878964027151369095722980850056094233333280759560660124434185920826988983480220162330145371460053715334707321394619657542391726462157048745137680052038681838486047297372099812379019920412415671128173857005901993915272934785482603253712309625173861043413564969695308598831242545031402902901138107085055901489643993821291216909423803762888378719391117379984178464392747507428528413314871128330457053737974227191837567438625566583594770579342025473098574214897651020768393121652485644050655918942617206410679437286039516101802929483700991275451077404651385116170547937368388966444402971665104689594408005341172646488417248458148956066029274307448077383559142623202277745615630341952159747672896400524088552000930111492215251618924385370702279585787743168989784420780803554978714752045659896279355658449834503715913645300158970181323127715070533802844253136360995354234760041143351927900865495423876231788156209950719447995513678077938546668565693051707880816043749915077133564498737502280039406940184975452384774360752480777208658322968954613072455844400371026284552190922148214709141058695655945066861291865139692379507067178314638468333881002851692685252549202668709146515448254576917322594255360047286306586410349510204323296667356233499314765095924945037439388218007238794923761392760128794578582009036152906601194479292377727994457343556958692136112962082623645336026918386055296513057048888681624631998633535696244919125484101638156735095696049457414976865467848126899001498687516892502943537307991372795357632678553023848923825574837229123877164467135059768954364570053659485577266289511574826569923870538986294652426660791228747444155822341533823718997335928599423938571117125120040430373935117512328103805997937160483690303518906390244378338369563704376303134559743397299440090141822662293021504081924019775001329155910905711313868635625415522740379418428139165322554253000743039615722436385489271767969651919337219303770291101155183777872217732510568145513309743186389207314900517794653486721787991323133826808468483604763101632975927752876228183160583872266470722155468107882962385214946107493213532081199250997047322743472685306780184897790555308674851518129086773572700110867877866633638559585677287442261591731733461802711389087339191048776434172889882946068534641265840218601153504414268747678361676074552380011299716856848747014206244645956848682631173699989386380080262297240550494528493173343333150143922618742617471468873252402801513143250674008442310511319012770541505317076433936934559370709601156318932721768485703093074349485569134860621645476743928905765698916874957062505315347602206513230380955223190228962834752693574309837216254998385251702154426412185952412898471364046521074989033351925283107331217105059011918997535741778510502481271327104715421292510062171878285795599929274752044020368632875294211581310770723854362040027895828994662345718814244128735991329345129357544513993946473254280145050578866401619705743246296731381124136978942520338008741796697121389541127722392121623621793875073990052177219476552464571403573626958674852815020087713821990273591396661268835967076362178749565222586280081919608336045531627718287925259712007005853817884173650238571376680234404762427590077966436376900450779535693712329641025441823947723741608068799963890952935109396235843678443876149374658658107724832389225523418034958843381376023038903713573340282265111193814763735402344926424925352694876827528384625510115922722498814302538416535956174395633557842690267979433240513393553064159902213200971399088444333284240916355788507897553386217179627812635718624922490320837349983893868076078783069951974800538776796738980440110986351462989727671720894842337213859458873869198683219733553043164960466628880631521727876679945286400908588750258219710922980879752194049361538607365853627969036630387710562722132690769947899006771149329623457405445865993670950823118861719235808253800057703394938631691258983716452252012207121002158801146615259569850517400651011079467012599449536592196035199698590445540690643574396303298388994558225638905730274391764790042724699745074176154665306006224250354327837820084862260347600468739823332816102655460687327305755307047028772663299157694106715918849521439868019294806885750402065096991707418155188797264430048877489048247025088310499075573654190817860684273560705121652739324865264891379973941996957538908882966850972380549653589566114401701691909752374648423493707172924634255855601734332792634930045728948661158721714540751083081878258948530460205689641590081086455523171006818316323112211250694199262835311999943325943990124635614381137324761937928795548734373808005446678979551590473508938452400801116567500680103354114385216543035463651099991311028078729606455032803921975570701328185737157677208292264278104652766183488701242285823928319041550639193917289881162936186677254493572598663384225678660212831821011462326710941198211795342221749463409714654836420527297683943661824016481023945431478762657275854189399020190573035567583238068234236556533297045598567307331062992550250466887401224154858464283525554721307395707698117731557199558411407486167271517932700587368735505221413724765043924996398831378313732126077993360788255087351076802779763951850308797531485080718936754411375977084542328626881614977207952448970137747932267697414200161540157512816103667987103568079667146328519818606096879990543369760660156065098055703040657986552210411484279678569360449601792979888231611855248319359440293080371907990970562154970454202312660541017625235738294332257333727514381956170897942598735286253888219827213392333026653892628381432149826197246703283062540332934275221323061936894944004745397628412897673120700114863481914551525300047288623803817687686440755314534511197294480111967636526521220661412334626798258078930373778850695083551891712622753427912791237752735984135343133602850352657381554727796219656219380051507480255092790464578249666275726482182597415050706732236388793004925340195267200075020114169285719920878528044613062470326844936005356319705107050713800277334232689350626898477915548570778280163520762323137929345725159730116907861772113840462110357393293422002866391400179592104021006553458003743673430976942441718526356653186145389281541201925194825959359444196363288575768183414082323235333334000950422936605172537962306983959009642912186031304459323719887003204341196160857321645430666163110821018874780637514006235158202618123347853554525974599135065786484482639381979680644475349631189293827305171510536340851629643761597728568745736011960735172054002773720440007741382426202168062426273348442185219335913584262280349083047634841503197344246283937015639700607688823028133334215541035758043275084735924649313209010631323124392501231921880133578909726340612665397479928160990241623388696035584133985414163918919026978313550985452328744344950506900396730403253791277960713299671074236246255569805011144891196002499639666285061242930871105900087533233499795526263381083218613693920975455068036493165207739714446199771828624992638916318649529555031049203334631223916260040615153441701094601755956575998579605080310708154075013226042109539554516050287124083483420726062510561729131405881175198134772693552792630780868114404560099190810156722603814701390121256457404726060991176575948502818667555432160704901810094057434950861098232792708718950510701859845210290095296337180174858729821612125089476194706473502134347749272349278551868091886883179938252139893264284584657168940323681180307243229795447097864576981382787439186679473428918198567864177471702204206859566939657344689218007861000251562254814197014368628250118726996605227128827912842969596783108373433793030812088039104943074165341401952290670174176642827578674293466369385665844513147838051090539503426033080042618336086026480302131594704499854730935843285641545343710842809135389527358435893972119696936115787831920034919753030346779881976595921947676348500829926616796244371039768403999514955412417831116952475839164923974490552132171883873753297552254829051586332741265415232695189256749203914958870568648677265571727159244965560331926098878459054622195145472322374321703721969746335961068993271774210073483758466750210275619026122411798136597988614480567848877677054481730789235050001371490392939983639449283762282531658076584310896569728614774466065842539549882457452409544727264971333066565250920418458477856091673066125746452639967831330639974414133702745601797426755513622668477754050775862062129971198341264281795618850363155330546732538844632375274307404453020145394736521943929431512907267685127017402240517526775611636748095266148034539206372385321163273870420906972003175751009096485087282564659064155781525101481057303561818203517206562118118604232359695293324408132685120865247505962380162931159515446630534708713170279662877907906759997274571669404403373060623961162914271122092307820525676750500918011750397557197809308508458580637279679490756662368036347484274123225981517874136015254827109327157721835034170823596814025001378378847929386835998774976353721314830123549400967344018815660354873172883966462692848001688280466476783585546189075649455114329617997574209670475728007960639133910588028798483621281083481405634303882881583548919349330152612566535476913828549328511033846778926503306146190928941102504556969316197907784274016535259245086338590388297712012816439105337142537406684345026615520766018706463758017360093792605828279229115333932262793726518738586000663463986297312546189683932631735074744721282346086459896394096845352265039110823755707078399775260405253980064297867134954573897761278680109785468856532287839197840186504077368894623100221261077849687208256539243056834454667100062222094994825651053001873083800594729207661563432147012754104581485392388214622716317154884188274713495965861433202026121644157392877279504926701668766504587313947204068460109930931177796598517302420949200086950329216875822070635921513420051937948986614278825091711179458668250782296691944155509462734236239799546917201459445212558329820310925578421579244333337038969831211623584722722047326372854820976388446964280647159739848657101428256188549379851577960039054291330080895447463116208562501661136872114043765611526839052889567506136292715718932943348272268579786715517817886597898567022632968694727390558243050064360688879722890850143643871929413370280955758159748936841316303932096421985102133992080684447857672428345308492666133923371326847741732729436444765172666465698223915776869831579472075715448107054230140346683816564206266833614275733344933148557376109293586351529844366451064260696978413549832608037994342826921480821042847245898360352731908782860086497635044718829749806317752512455009794507954421917923780369328076513113738689954977181547863425039837286069518894622533781176043290544543248048603716079115921618519474531615097253528718178927077617310040831157386860194642979705336785563556137811666151237438962701858836945408978200453946473411594972639543560674573690139476841150400526277198528561926998354853967773495516436082009360884160854545348445487130016239142126748464419533802694867374012817043682293248462322677811583203520619855756639597867300414373265252043889571461888207145811185729676862968017165867325641763421446697834192360820331743491315613785820494136280797254212402213596964085723382526453012867908266985534940996017011137391623666838161870467317582296408954684393512744463152309436527491053172739481030697329616124750964162821922305067139213010780385398045616142445228794163408681524392734558775912825803935221926644172957898569802552542533724253000337164550194968130935025261574296512815585955478594313996957244056965075364444127345076926533816224081075555852506635554032219692623447887279472297267943293361980538747158502786464294114193282320227162637255814153631477903080044738409420105775632816670513115565973896620039845803772593598121852742865774247015375886770471825013712607680841210987057564087320350351145243435657379104126231059136878069801894094651450943538914216218501327425658517695008094746443104384581261243696788312495655771452403349491373861707880814912262844005186942794993127870281915762188290364455931005923773280945417856359969600005705391674781456222778095648214763674886683272327971588213416885561227857415710273556349894425069882595283938308250416496720574012201250405310905942087490851252593243404541850132435731886251015928161201786595397221843322104428251331192524743946019799284894300978210157746914619245473466400865713417961024762809451402201440968178355502586005698224812423123052119481960641624995199647555017538627795987629532250381870770660205344698895027912962827669778004772096806830626233022772624905382729766856866389492061482191654975232454572645863734236832787825403039331164184048995333479599413415612594430833067014790167344503394857455728589334754130896956693587516298051224030258837790238048357233295448691096719652189967033816979744912936941972642867689602180063423070459961141258803270111224122565803594128860497182048104994965802694496770317509224197916111938459812959426082119784210955702277074838888385446625188119044027375296913565411206340126986649236691125531229875411778628661656231216961670754399895044441542619453381667459124477027810543664867169551880327782336542742928493103605207599159207788748586515562463585390634023690404040528467123485706672876483340138851085370984574423996333543004941206947726702775601337124493759673463495198777892867849706495827419921959904625775757422078328009889066742900752262708487085486734329138168116554310689832133313174673447620492344340090068612042481237373207140302727835732366324441063474640667142972265440400119827372077689964709116457630989104956835465690029143282667785012828352779135634181748503075663752096936591297133077694348622709148575052171781330940929548414031901424928849607850804668515968144096757978997894131407830725288678554679881792163776008643055945044397845918880746965707165141803566423085760448119853247011870948548015939413547896756239515616944104373000080363200477901438040305623413744076114721875078059582132783626293371964704696562454985658006739679450493653073470189148743126334326114473191919405898064917123292702768146025307506300529034690400905848642419602656828066947025964102506051230665120152029088729834763907633811614155506881979200568019360871564452994046511870824169483780838252973581424237581132557462937371821656885666178322121143155444972871975908804622288571555688269309619845286213473325552689632836263189468673543817853295428524099958848306920910169248056847378700014280445897535821280317408152347165281600032908095379372566362831965482068082949517401765543134084779023662847117122235700246979946987929984409504590830391468919779227995896660286088367185197680856506972721059139696057558876320952857807503708693679782830194103694996205180111277947634389930546711705329686441000900362674558690179673289770213770003827713488960832199365661149920578254332053781600199003985525062359999271141831935815174383287955594823174218277417910231280864151779849109539533392501618950022194375992512120414637411649160323433829985227574798574837141440901257486408620724270686034416108613022458340889133977095617916856327179875581566767678169738693249215951412910194098236123903874227367976344097445809308876825232613353762980732863676649958533396895055084303888531615740050678083347234415169884908879360697394621545280975283123564895584975649950056832013588337086614923414105462394531094542410092581554715263050344192040685220975204188463740582534010126565344996124440546862249468500616636353370967194621623454743611654986801071209975604184558551104950637945604005781319372887814509289328156970992789702568889560459741277176839050925756070750205125323244339077040397143367432355886658988337109252227031668399768034956548663845376418803487915657366147028328447911172798513006891317537136964263513210382931009814457874258534673272359534359171889654919556867888263008864829048135796232084635289269430189467432543496914092628000688799531040553172259568156209559246010448600862989965604292874474111920598282782467231444195210114114106666233562162794005457947998837828014311723479192066100878982010072275006102325813771618504121361457411051617561057567730787151181788718718338280141588733846930029467094042303496378664902294313017967512798383683745517770558615125118997255592040672326723963413025162723504837107261067598414676583148166558780205809215911696583050717124232543808315500520934399284356007192987948814183681877796202445864644294551721222576231304834003522457182868036539442753179105988848541349010732214568758791621131239171367623530991209430078475218444031153052641438877436909567645998156294197591331454284796307722961382535094526536356980016306485569989493172696112186836588809710315047749158334221914888474696185615778331408963607762855868487263365178095558237221287909523869261815392460162396095601704466871149765570145276012535584112270267768603367290405854575560347655848590133720751088264843546143164277526211576617850791109559057188678115857439615002823846727319412757847542722969588397339134362104136759892489352623464569092408689115342111339030473496964106105221643391132625944637052817067023501739998620039550796963606394221385660536998286567927264662527245136349918563351337318888254150859042877185770211288919335740894367892642283269918567487568218203927835119734657819917573824286732201556052603435353358679500914630690741388455012187859459709665942280477751831438910134085742490887512072548795570547571516280467145915223233304538576402967579115547204390089667618776608135179185660039286998878557226522217520285493107464787709488784637142274647903486292317865117421553311212109485427842917356422221211338219940665254374074689369468530453478548617724207017685276387600129716442466833008312305865304628962478106486728213871478471083109108617338527158798153745191029753741872700919213295660049481619499817938986063071763067456109872422295137071762629156518969244944935992104234197815295510024480981345336535948205284707501094918677550169477691061979682743809902148468612236703187071692064446138304104404787591632833015586625862890578693264692331635797969807562837659080573480604948453466226596279308593586416646467977732542116794359388979297598285837529009268323219398649421104235170688692252018031152388381174318371114224659649919525116969575820777989339914957257523722719128893284157173373390901457353476151951348117060858184828039776502399026309735148089296277341476532825028002898212342103887289435662739435600483673160909516825716183987056817368970277197825488490274966620991830945780010663083700604591184896928301121076442301834817910981348468857026415517965722384701030508780779385525282154101440580151055710740406002640983747302931533849568817592024370926700079056546919921865053650987201285722801117589173844299225170764193676665132474339595021467965175232172288168697342871195755009444414694767897659623178731344920157899733899136251275531303806685313575326453682330115013577745176916477870595554754614659905943250762522206257033172109473229629173918273630122862454041640400539111626049306834579135812648986874366867938506824079697545930433589289326692273052585141176472065078577045799888269285242218197700128999828384838047716241065781415954609900808440432569342640781755002015383900473296174421388342423298403501785171948374754966675768491529703651606374765292231219614271790390491556819542978114008085566387146218245653271731646996573440759848338348951728315605037869090652762950066943608330152516893460857827336936539510516723937883380374828043574028071965741329295264375965597550805411038563525643048880260874458065464509713314079462888394431589861284041596583940644631120310755403721757645649064151854381822152038574175558981765137763038462818036862132014209826110860323068620546623017366700813606977415565783009473762252305893978230838665623375967890067615843647041936507882406550487507319297295414955828436076063752737365563157953794150196521934248457386238485597786740779391463100933577081100400126875736785273013487096566778301164177182702608442359172267707225651001148237726379212805205907854479321070595690194091045317017309900570047087657161565191598067265559663942424927106930691556107517648542542786750905863480895624750207910958993539441893001190865410366121252212536365785587246911119575256717087591761044858732415905831748829969252805901053272792535097566169204236656961220525311421605919149287996228701925736663645227405971654085185030523824508199581572165288819509081371950989698191314705677829992958794455717782965268748818204910662934321677345121194892488550011276677485136348672467929306107007802486319824797678630309755106117153318770158305072446833025488450057066423970065971444842634919185130334251431927938893398406977093956357471942389792584760669455341226277144393514119020306878837629586672418351745010460258757061938476598550192862560174947498213317668512098298794068888284600434991226005443503075729083933677074245602860002912722499183984761270224014354846408214107424712645331270986886472219896225285148542587594996761079586091923502888381129702943369247858388664278519311633781238705278886695016132189788399762214417109799316247885788990273677332158223931134145182584179353017394260818321116233510261873554663708982604358541789032513552861687010610198782645538766376868778775700228108352962966829874193480529276921821322299410496641433067377311578442583368059422802657875109830822529980161168423711137364528412206384755888670612249149932942998401068819106172823782452373480699017894509053099786689867462201563068354977878318980355264173214959022051713528842050411278932492447446357055572632565117107308608632989887598670209568471945791822263146259220051853635737719876910525835160540447194169199354995828507275454323622530921307984417292813637271085076304019462655309711266059614729305726714417776885112264259804631556429777284893339373923572595452064796667514396030922496913262334394728579336054023530818567253394440774278235588113422420038172687984610847812730627860448322802140198735908718039977062434029806901948913474355767881900870110596313083877509519176238948687181979188339226459101008520752114948288763992757411138511230593423432769063858013570613788346607045703808193416717508291225803786128856232596522081013328162313102825497600738427341343259297341707248677400006015122392245014535246723935038836866564184543508841438691211422287159357363994277730204708087998280803206703604487665669902500417558017996168819919754315630624955055969117179604248485409631941583034623634305090705717954325938317061193332470882154257818518401073482103617125189338718598060444197751338154566164945202479785030112250066953066166890541168394525371566621423542107979041646163485453679740937845761885706903409677273569385030941403688854912430664032115684650960772480614521673296813672626214073919859776884236798227075398490616224053693057204673104814947591260055561105913807092903967243530250712597346522177796803740794028235173135125572103372037537666798141477709080054145334965114258284850181281498727766949675457058561422336864273815794691890417809932546858169077397846142694994884589849410834224828130371896952793454497181686104576875460196806126318048741849297651493252771979850336383854516347267136234778395764910892850076597137679178558901289214665469693486037699881279504519674154651791377541031893026279577187318658496204205758208527193084061562324168587754230415395892076003570685060007185686025659189929630924365742286412317705182757026984925233637348045311841332910751421879879126589602240334245386367447382637399043980522018898455902539373878440872255745659083357675700995881801916351966331263615997691744753426579735561370633521739531972186836120466446129416053948666689371671970800674852020672324134409306556337442926462744932172312526378102436395237299814329651384963833834469956006600445889483481862159056037506871446363638370971543180774461418716049121547165913194190931291016475293819694026277763286794063580308202575594943832976088104998020605953617748189991068377988594212535901222351901901426987513522266564749553059522357243120026237595698880755035193646320204737921538237396902190906351152560159547189189199443813889534026542010811587994052272577701170933444543966243211912976752266924188064024475739764363887567863452654997659645745184993978152348771057986845935650935269823440211431973008507941086270995788081510356578411239436876489813460866749291423782235161613408871762572143146605523426913258364201456684688574566864511979762468441006803253482245406462959564427411644117681322662363611846766835628479248655972707927146093188874738655504641680835850634806373918166187773419921455170617528388541759509836334040083573121637126776351830707996562688141471150003227801868310339802463606030938178663923026373831261563934991830128950343339834332938885671770443796302816723199311471566216986990100779306864801763395500151568859704018246339500996106942815720909026919346328084796602438664792968273510477403766802329218004515928678655515293246669660967637551433493934518167842143034535526686063419665319663862983264533551395974986837889530606111762517189790725366332425346992700794350599525891003423203233610051210868562908269682102008358923313871330354641930986111876748852814463290261669179844590800723590610210221115704977854544468871425065025604033416188672099963296510664640562633441788093558504353583103797304589657415952631660056949016062594068938855237783434061850634878898695856491863503242040423297659020997789607588725277201866179705675551191720360393010504425093781823732673370313550980859103354291589808733045468145686141327108582224772228695687882648958629410309656745506256734705097387832533492258889489494716164009023760652778165020648521994172249585507972445662708421563665579051196162517610815400703102895660712764750027133388714205465242491506148226442293163375226997867283425255719487565251825791401020955470750178642206188253822627911663093075382135445858128411426954388847068281496058310324338629657662308536455679011092051271209118663583644354385495818745213395033981950255845473951901874309447377689214947842195281598519114016647443026665319091747761509521552534100002532257453540957305126252893465395049927025990062443152363330553070237997301325978010133235836610721123861087168666906232017859004347707118229491860437198753992236993948680561966782382614889382945000449732414319882647196075673021770170708986503105437026860823624658582341081081364567463475642957279249072815464688736412629922789486815604558193483848570291655307580806773610599199302080419131693376657848545235383945681304281602226488481134490842457223498695403178549678294538938812727962964381123776267048454915542743622077998384724860165430498452496587243407656601806627224636286782590144041616729575071906303312060327497059017134893875588182779436732386729038842763172336426009959576664395386371422974712274665485696080543086392196151547210273789612253934549320609289178019082878098488643368882781287167180824717140757974218219152376786686941160405436900876783132485284134285025617414941429328912478294544940917807204271613720936345040599576832294994060384796996781057428746132763095882694663050740273851872048143838545414813606198114084190924965748720521848790351328435217967850564677256059708748324973451756843468112440086588658945392093161895253661109306927784636177315547026415172660411077853229898865476782513350290121225302733700943701446589269494841928952844076279102650649734212269495385634185530614635597452702629690480445801096380832450804708273499138550343393709817413403016080339137159543633759896063449839189952352771523978769455834712971210296582236925644240835948056872447252652515813499167542906729864910813039918237666233091451603237928021904208298241412963480483856623859151220913531088060794048821264293581247900603511251574962608996116924497031589499769413620758108245466223452366432190220214955616309803332994813550954565490299223165810922320023396196298112170136387870640609226861163606895415324122304012490333085267432816478888366908969524029721721694711707573760276003018679616904109377398239279212078186460778924429886286228780678567522479307628265997651214892188198238625385832013982254150576879117729137017749523129187418393940926520863949884481109643108662432909074897892114098533132239299931836758405607241434393087054419387421811763471061710544075849420261602593712266745415269271797189649282331696726364904655974477182643443224073559736974407271269631858833301427597981478539070851751302126654530998319385546843370886500861804782559333662139959165271829737062408253475383213644281409201150693574172685486233150787572976041648593587339320773677492747040561340255409449836764710740922033516426287844969541672716597702026682004988971089810620929459575445615039334116553691493387891142869740299066215613376554122208273928462118073903442300945534404114678903875336154804219263019292726298613521109539927597753764012852367621309195128174218695723752276568471771470466092952585793904154737794533397636674470525962503360796836073248003814082625784635816122224030986288082272758259560816657823898144101137580495437486581403199719744257405147575702822950684624501458787780502149118763784538418611424012819044750002164629324741862353111349339830587793198540830103532258719757790076811554023195909935819454915934849254767192983387675309301021946640993456413782007668438847229777068132716975974808564663310479693668883875307375080334424036126240372860827542691940091493162675086293494452348463346861726264263078933357140731830959081017757484691605319743644504478944660883555544602943750605811919110063741030389588054556251526648748994380195034702006484679163365663280459930180190159066769258166229921459968812316404763539954208916204296501017352454106113140045062507847822196751736456870483567635065679770162621924744370797655978212025434446466292499003787366491106076584835575044504279731373670311566980428927354196857252677607637093606001349697971230104559017106955894578109328283960151705790108412367673173131891426203622348000264740780985756459194519688603952671453875392702069035315626486107158303462304802169760141890923798856152302612164839880757657123012365158640385377613138232941779557434450129399907607489433293818175120813082262159386363785563419421342152951204041306011738977317870386483893023485339677966020889769412294555449622485649968383042850744494075067435253247976790398560118234435363225601204509527709635925105571737117071493950523189858489232513234035672812077039752683579652228869305203824111218498008821459883013074829393429656716382801708303932847940939011469388561404660500472568056313107928870004802722729040273781332166558380912651263018293967021719856584626820634543374247195534185598212986497625980528408759934156464023903569217405463711544906642107061029661483458225412516511402366321221206548626227256280172983140456078003962410252527368878579579674566031879175066595519251270580405061899876847137095573910520149903494837323813140001925673540244380164461753669592202671290728602961156469385161892510225657633426358468091776682386508132167507516010683369804593290458917806308449669765342755745891372122906154406029259874847651780672119275807132772157464768478364584149737040029294474833934333457586576119074890488089373920395844274496576603092131076992512968152347662869975758054687235817079679370470158152353515960817899482634953997352236120238555289902685355143860558065123337344613973572359715614544326579977476901049711230762425370105163637654710982626567503608392355879848473557931532669434094650343594931245784631562280800474077787045635207232519172091292097846354278626789009178981266019756862016295779314859484814100847331997933608141429451048803696846121496626735295723808643600495745429167036924152922185317686113918094458062868091969384024674285974792868368672332901659725186838963361316136888740353087536359420593903809505847150094441074207021087721902449683358308953343870670426178042535349548200664525104437181412983283505022378627615043309320630879832957742098639221789449806508372522276155184255951432894653471494484262207810708254990576762406310467132425027252211472363964074017401221483743619068200654629076327114546888410491337131022690850295590080627444068744645474315924913735451113763968836631520741427490415936027247322998251612342237330875289638770872824168401667518399022928602029699307536295998540171829374956961567742097736235970639850794462540175026806223017851369202535113691455498429822265716277506406570150191205469827809528315547979563684503707670385460142460444045672198238794033590522305138370548146530110141332164268160716363940230271755055770027025558001321003449027550786111759345078888503732598817788071935847788387835707771098635329233141290139599214761088433254899660769253853590077527315265908233532234724481747396022436543240203802957414328826218395071241256921707874234616049413118800581057954409466689326830643071045365229238027928020873784951531503767576637823342628613227315745663194010404002249317185339879171712808547876668516886578497354984158522258167387339801884588375886720633902699245483560566887291032864986004321070102228027961784208741304601418968188993091580301976307808889209888292205934212768424219997518129519509716743088212533801382280999139524807736701173799137820673708181919037250246735351389475551399287049161542498137733193371923931111717739816689838227592349984868512942193285505283097483153026002755280299868320397711505659847811031764494752911415325816098647146274416006703480838607452115798113568048873892448114358071303110830373619640462203978574651219352340803021721888873224920554127435655422457275730747615960847535029110937815283731561495897413210780074193548517411541330875316440396933434525458173708329233425172738208876950099749600643901605097779911932772619676235610713714394700234855775489878887246449454707670658766465454341811722696505655055547826903885023075179814164128324300510600216533172951279249833319930206479637601365646707197517114503277996269882741915827354114755096134461785788590047818080609943313508227022754856042525151526031709116531973397268201446632817047047116021601609145218011726345839400759388798486914323951776702075456486425680281319494642170686370492801576322567761657223689344238236184462847781571931040138196290036246930226832395487957874002589513736290985309039345822650747999616025739988896498783568307522317894560898430595124147523398561913997773806151609335454013823020862906029318118646951198195901196055423792821638608173160637054437304670410125322371876636750648412333683830036059485314308740373009482079924350644130615496514539500529524239209599621366336933698489486434699489210140785143578990636800944367928017082090193108459337868733109967740884392595965005551725966762449134037193313912519553606764336379450786492924373724276940661229000660330141883001063578172885373501849599547839930945045025566267403578043125955139798039139156668027460436095126764326946103372082213745516032693050548188028240661495186538887532638729730541762175458812854389116249438132854604873060462673795324492437571126643678897847173184177732331406009233907224089723443826783602792887625420390580100362275667055089733184569755938792977809977583852559650212811753124197374934483883496482752923612570534689034832003511053610788507919854197113663361822486612924483658340118499292817162916281939483988433927933254494305938465316405489559489725511894842919949707698175036752463694470073763594771972259374137327315263347165107682877599015374736627779601007975996296268758430963424985479305865810789372728653335836823741262357157015380027381232909859698926679042975266307727449988599673042172246757387075564715478449500786124594044050425338565373704378734343172545953967907835381226595542807431922008281513536013755645503319438715612618495495268402887408750655900366094139528700569827431637463297290892857582097176856994928592103424454172228624394230404783066430493956005617513825835726915525514789965023668533778215077334499060266333382835879266438894458956148806284443241395523053447919121410298804217314208496771946792730985526735426015092959464127490313862072880822765827500069749240961370542985451940127072506127266754174563159734250818007376911954100825995047588902098377024677949263868028068905197593105164386131538741718657210395586637448522739133598540954096155731891123058346550125649555002844419869593391251934473562279861896094766057530462939640791844848696948622614091919216036116598210474961652122128878293890847690504739097493929235214975595401489917332236789936189396279678815474516377565672035235980992433798211747045748330524634407939432567018367376525987334283677909553754021530759023427790288625043111055315321271442838778283578606318634388726393247842063949655716074383697241439911267323485608959640561777378554520390349783746337958746036375971602612262003612426056810580255783104176787828472366646397423466082808719579346990527287607531426711467399542919790656184189837443160358196933952967012076564429171825993504029720855416171978733365374577521133089286776233946512608728943860910168397079610234640885990261600160623387940496248159324943688918998800800353579070629365014244362198939421977451962830505386286966093837755257118117555907893960150254880348964100349811979058402877528776518053079767257515687560479255097232513166654523743885171371478858143984090283445436949999886867040717720201173878539686715576400797476555506194043478387596336083309257858422800335829574744000296927780309530034803254310574054477814027711179800370984385600823868082351927826767723778896632704777129098222407307245341847402184621126862442488987898119703294746000031512344836410311602460283587168009165896095396201321632786968512319976894720392538544662218584690525916287847837252717286210043633491304130966260956688788802649003370237366771633720540975114868371126745780350001537534010731738779403051687839090574841882279509859877384785299841627209883169083025837985193927724707907140917696928495551599940262158330214969189905685305921647037333597131848831663738858457424983855544520574328013804270630447760300847424282841827128288250960385736732992255148871798464456006462816829065801565857026834857604937966280444675555869630266393451211356412048136714082737091014913160194157754616583008935321575148987576277905830940369173750262505980847564779269562371236246220800477700937236419548480899048371820828892966494804123058291686181545013455836293201138618137477842380925005055513083375279312328244165838207494539993162031058997098051877750258774461504688360166451197604060882981522067092886717849918195775961422853582087351661136003226406954782074152891948680405909004572928378577528583564897631804745384815957055987954698027452841468298294182557938756932724867264311636894600357314279046023749495208698209085030146501589443497678960393621728274194309344566823000072568856287912156606751347426010173898574438397189832791351085235864872146205639009313260896076774770408319334332479035959369762334831705072860354888890271562123534984432643285090518855902075821335773145412709079055830763581143593902006651359732165010416632280541758145936322263086633906475771409777158697018344367613664686313241771002966819226835605959056948325339208668617023622031349861811089864272269688934792669429105176894558687416454242758702987794866648522039274296132397334502579773813002026139632954215930304115321262086970842776466077297546273578493028461523916904440110630969022260872308621599355258698212481848694042693899042829493276527877528368839207200536692581710469569566032215842318263848358110975947974640158850333097406572026919379663417969543343042430174061800370793057451424056725362996779600209548256294262901828134103302571829764113922365971148711912082381998323577090934094876216776012944206577498306761049119124195473309193228903029160075277268823604689162134415707140195831030200806363749692917971833283533697488845121923154347393259018256787804822504478840039262913983608517338093943957059023511960730371638373797023726408286871305619991523655849586223842636175621390988009966319062675437937577401829493096369861936642113644706397317424621873016675428882284449363367426424677126091311067157025291284044346611454065952746778708586060283633552844082271902373255206706152089434061862156663514472681603804063471416415918729987902735407367928015931400485678313404867783266986900119212410472084645008178371284991071685043699067150596339177294648345442121440187966201562892118764907409625321844945081980628907316781163374566517242280322492158156187705691628087555795434115733020833583186260785200538101975743297295212691529263293468547149694483275449511821862773012430390683799543255464286328412562847605743409424627412823040125972070364264060394902363184534174612124165090250978208457590338337893709125625546763190347685392054229254555369130399218881627554746599043050779382399234026705279636118662813556905077836805251626233622306141468978554992255537263433311754215220146292786694054383983847919022108525393274051794502826403223714179525946712546351605941818523809934293056527908620172458909193468708671650590293562260264957279311776612738410367437839993436916580939178167818529906173580144534181646110374134102662282129597357986555260070697452912228413158309316540549060759811602282152950918652024374277165219749475127140456784968915568879325905770856160760178222054797596253248454319157389348617154100872252200472859678844009852143295423499698168651211883877462682831679967104712987507032846614071961897119290587967674377446586935820803280697399828526692921334794465116876496378725476162626853870199788236638263828345984709537563127948679927005771389650211697397720976800344937735262586364698721274163191048465915457107333942882615769291347201308064695893019365709044114389167707774186900403068997238772095063772153805992897708185729887982064211859580916771571140605046479581089106105658990078630780488401902764243729565475237921770350907477902252176354171976991084038958203043493232530746582832176115263854970826280940517806891681272699024090161880435954605144215496701966197153186986457953192534270056878271928266394835048333632544751011095961138495914101700765908615624498671856040588176904728230972753576127171365068322838685474351344391543706104631385665408503991021417459271218730427437751914992323598935702577306616109803758321519340432503111344175630490188415629625226983940943528562951502609298502497058175257333890347114103234630548439503191112071774410650520604540493112026231220495782851372202129499433623483516472423438490877862477386602019799421022672104439297487990903595570078957287773380478122373602964313478935082099287099346799338336735826822028176090352160561257529424094697042202294354590137391865003340472612306301913025104658472416588028551958734684723865752434314030141515687430665034345489729314546103010869117934287016632967966752306262344191696739857754321527911837790860410611837397262880405176746229243640612291465667492305373511143948408891051922877097515922267072731625321625415752348309095646187366765455615727153031596881952935993909735672096389399915044720118487414432261341832157452921395411926311974341504009418727933445842369053416730936167637133260727975574375002864625739104069949221596495241174951497927715666011211783271354862960298847717605209133427031807077280656009401079517063301349873489758662567241771276657588125069393030857197961805513376769887770999194450200691046560725286574661647988536919862557660551440363281575217073157794396752542215003809233430885546951918359314567996214916051045503936991000446155192063265716711394677411301315684343446612310287828511486891393131022840700927753020251555452779153035170368666331611322624895957451007590273369393893451543379490947422582534048255350704374369722291316687543787331207090368169529006764031599394932897465520297857430078423331362986429184686095888992597358188416075901717476333835111379559564162815264325914887462394379246301534762002842714596230100987442471343288102883689042182118941651730476450043466501921820913642158989219599252905197512267425753448898089654943255476090550082405379021868232703858178445009223609164178053618075467946949329531732140149055632920093521781062276692493812220034274084516668780630124920674266757787620014736597228831731264411641246343087186708772693675920167108205722008919983505163974338979216281359597082783473950439451327773637337798397782959097275501125094563326119153912535253227568257220705952811364063669679923656145384630117005291153895398184633950797009457133650152663519834997734777363048045769714886752173080112203903329650105906769152063781712313431885636076431120162941039518693143275357712612972267984303819914239938850413349909068451526587426341808479171803146211126530618102282544517689478410692903858639333071560622379875930192955596299331911080130060365799004921140531417747687818860348669813397283307272798467436173768153553202695528031826106792482024448966708893992934115409319947006112395519561303323176912399950865688664617329015669923473734985549389850634842063693782737696555697759109413740349757870962377377909653798882488482055012381438449229894886960216699686566003623071908084204073816618917293486661716396352741014595285056974150817583304705184452741496782334203883698486552334704938921740762348383895270937863865938471102290766778473344033023217269011813035856121317010207763668524664537668427045994386857816620595582833753441860621397715867673184882624590175195642416404873690373010534273322326652848295059528963734452866213331145408782709420514172474948948780045283820384057719433669558617949411047373672250459478178759232605562404191861404788542754508461120340162938917337686255909005855069019297881129286830281416469332869536999219029668352077359990560983530547811975489162032732389407933229259769519686316654628927596776805881101491756740370954502448446495082846415277196922313456093459626389059746392865604435036657704236882372404529444314549899596291218497196195327545382890078870571045790639396244079492295453941626715732317774363626835189787212580691814932785601155373278657943397222693936316043955871932016949359160700686381464398696619289054363589505630579647189683281668179588842783010461356474358298045737756803317885243443081147054313446101030789006175623730850177960643907152177375226349957620024938072882849288769534222249176456625551464148399145354797451525974476994193206036903985783830077924926604580679033950898773212755191143320648446250680189602223650482942059468412384249383396402561322968446329453841856858551890259720064927658445507638869112087575858051386515902236848704452241125906345405149860703486543175919749342051991489359035916976590424523805498326579626124913420574075877318774556606855811894712608681599791071386845617555416032293447277301469725673558158480572242936060999590547914555058981104687413394110094478084192865529825750262667166389574613392858435353387537829717717947368774092700030972222795144543787349070575137110961062681415136351014029600930325360086597323100029763833379255039113879103735208978926207586036580560244270410920298427547451349266239480093349940701073252107384049819994589746626399915689805864450650907231353888995860870813705870011482458535014278976717760134476929817860337564027180549935545915981035694876501031089845916644147828400470099821442874820829306509673803602406524943080487836229435003713750539366762951217596142566218808187128357804585566121338597379047581692809890570493025672658266563543714546655486798964791013494047914976963063215361075719724183664177914837714045487087799795661637106801204326339102104783239299888519904976346341647818163905621052815633966823789217342243449204206400775803312392874952088646221026206723709916693974206828189859466717737549776228415062307801587255096530486080245676034161425214680464003185024837733903752189669985253975571409208205775063579586674049911433496510281278028376024260041183618254181599215207016168152562436488693253346092677808504534405202422414794094379295393092958238640581774898604006269193095063543139952008814339619513313096138071131378271269766539007560819991508000858514850153185583719601743085873411151501304875069527449506939263846955010342732339126880995847406846148013702323047933159463367923454833525977348773722993914003239766482186189903410492186374937433246644214914873900651879763630534671393453291921879769982120121930803301589897437126739404712281747004295874273836868316629742458149745648537018476027017802965702374184343167003605878985946526109421218047866631655066728183157127723401826968821616940076615082400153608324998942328858432276854495382793491978984100637938826833792628871636445268792808018080164998912464718178490882759395624327145965868096217459661133094193061476262751256939054630888423801286872952514962902355326416031622442007508245883388727929770499964848462038492799545477515384501204666255373987692162260548230868364591877665469368796837054684456473660390957239411187010774535021186582956169259452314204324512956147247785045822378075156404124887896983906333750190760010332794043937739688001380043313406176572921812925531088195349022763545713538257842552490796546698371740520092515605985261036864293981985947050022459340075411070174581882292213944384543485808417628312311941235662547057125191104230940057306461780203468385528803724705906756721464586654752701941016348452428376711903838800884122124804306335470050423960018597837555478008155393040788374391969069868915415452952309268089544752488864430156625344405776758479507319879740915338474644167386593580853743967381505818037429173142426144130863973010812490964307604757976491017834493899482188182220575794085567814657380770024783201297772971442170780690055879970628497099917260737697612421367899672218839456974451277416119504450325833771012130059509668463662084122459541220240799420729192692769714605146930792861352227932263858079516571864861397229472725887522939074678150067297175530758138742507894376135358258639348766550613506976658556269018768602342270033821206349879979570618876202615111650750319203771709056302093850605546595895428660489902022298669146908023683961330082057364501725452422284945594697369405041989715936287888312037852828899930825132079364151967300873868107885005119929729470655144751832903016645834174590945707104168446713470488486275674624352804930257028382944188197503996782800847568986461541539214182562633656521627862836007556739102306658648638389533920355064494039897530042140586654207375858494554244867973084467423104541551729781442446086561679131652602568880863191811784009124203330480670340011615659079387841434043521892824551849374104439509695543091117093867613488251011902329217301401720062844654804343485289616430894782610948380415915015211103103380944623177128667332270336154551592929648431464022808046819574526062368863522960321796187601193968263728776822156359241927203760985328481701876180355249379374633218614361974308710811160280586898176086498163389025608014846926057999293063848214452860621833251479285771246353005874907424271673114290302368055678805130659158748579022262288677215556854731075416527246403575171884137453510822376166454651205751078307059655155321254291522984473206738208139580581909636788004075310237956013659083379917893381425196700333360372483751078956686515869899634756971143033062429795826633931718219815989327202447024642229293129308651534667952850115958681055211039797079256815749264171208649922429899865233937515332587518252838226686598352771546485128899414763176437987796671516197212992135074695185641989878201701721734916945967590482712857177291925912218890231888943736670287360669483796174426969170109013138448507615637392404369707912337762480636686951113088661632119184278816058392294976702479791210133643852606887779040237964290088716968553578452051265460331755125543642612144539792855459758804432095113368880978656917546517695138759672629268776644746425944303417820526950705227990184344568190697448926361832413383313726476147683919673410617743273366846646850719795756560095580039120097936398497980523885327269053362321123147388629094106658942451610426088703070807988248766051706269638577162246003529450470304702648430115029618400464167266788931147229743795309654369433925840883341050337999276343542421814464355088315117817295408438464096055792401272007525537078205102963106124719505407583237793882045298717761174496086526243291285022268763174212367975671299493410223358552308054893465716223358751372456409346616905643194102390683086845848311609474215000280876885823490313109331332248281414431576038341235747952639076650155190436266330678785484019163909338506221823617544241240995781434260316340100171697373450895348699272692807244458650499920239326885891818347031392819702836565971445024001063091641746539625512560506091867858954336048440988782781703730833773279979660451035733222160782394652772262183514126034932732728099998919419934053488801027527166908537246144154184184745888723979913942195771447147627349551012162607608854073619662584403027388459490052490452441492868652324903360210740640466677183617719889682141087998522005129988263520452160616393422687378698974543041633668429736370625715886190239680769123032769661895135381306353230783925980101241939109340372263967281276650112593220189494842059287055861641105298092658493298322247475084639545395522811301353892867009146591452731813685827082552089671060741482043360831405989997400637558510784860703419245491653438679892226238461142056624150788578766857263324596362674764191241599145681726442532790330535063012671276018662217274356235196026251267722596872449298489357706705787084084358680288281275639818842325645592661807883220620045550154661687301333581926202053814558079635997397626184543719089286940645767217517046671929494809840716856101413558627511238119524671534938525366994222888472416553578014901044153353330698434157663174477901627753889326063808311921280360460512419575593159459813544702977425034120961039020958178081844682081684546094131033596442557198332393355446007056486210559507763226889569786338547196361943107526172092378283821862627567604635815888666054053277765519099994500266473375786047275932238033544864244806042068659828140744567145714886508093218092828528294836433753239733976319066730837521153577040781646007725184577299568017360725543793658961576292436476984444078905521799651766001351439958472419936646166368654111586219344504602500147415272765158015699490680253517762704907293344950808108399531792345689935512488707385078161478438106609447470964606878106593036667863184923656029576449094216798197714404227331318442185719852650627073086420465409126003080163818060264721590062261739898444130272371088241998536554496848729062104150500527071350234084071151892932610991419958886117198767068635951741182511463534332943992538525069851678950487215462807253861682701330010381698389545268045276160372110663961065186462442568913474078508819495929391618042485992634893738848628721459769941056554277712738774318373588879051896258017011179608022738352456762509696329773900618506968767615688804215725972284643311436110623304580312178362530588170561953521276629477268776398397804204196759061681002991261814145078471461161303341407556812529378863724050824306639827693862381073658682620995093302268047630257299120587631463440760683823872369222881244915432340500301643579639772783123154211862376817166575394224088823344889029210275614450404576424664863956355194514340678857504712402582880983555110548605371413364218577899215199188392636909736529827113530109180045049799027023559735639466383555328551372483445992218558624072942206519450723971988611711752736314580052430298230422118285450148866567511524089525352426258440584848604965869493428372841730389239621251110186402701801002373011968613158259198734906213755834857970880822401351211162068725566027022520310884787237739484592108595236971484507455942433550024400574493421042935521402916530559443673858030217638096145962609934180409349924875299591149246302274868932754888354692760695907238012219479870726138758454519665571324365231672559460681550352444404921311167979001973087101039095399919057080113644857560386251905842885411497174564714810261653122295079581837962546141000087109373313645304521856574917915852221714656551128659394726232973372001837154516006494280594740551851911520742972352179604124207506396250090090701317315675167810076322818919587798561636366353698793590136205080321876210552784413324869284962833991739235056663576900943028956699702145451768967126026587362031676827997778362410214857564682461118459463943835716406426240743037336433466508535856462664328124750779441610517544706405875110731420638934244426047149616924651470814167651962408027174737302345221651026538095250530579788310571824499657963744775502127591024864697910579334511763237119700497204141407002980516961071541985329527097923807936042594606804065573750147729334247782259160120206492346069606632970150192492328945824940643248398284646539797545670435653441154726232070842843643382015219287898195631278708336044354713047094941460188870818462359821793201953344484317915940470759179561958276524070081193885999581792303918429020304808930219664241900440783103339351996187595859236389272914558944337702540161116956372028227942500600348222581593690039833873300860531573296749007811757943811008865924103866505095490345721672877437583760359685261136420053346112563261099509402570174661026699547931301763337321730077048343377800355678117423251239825494340958346003108638372902692886312154872722257009572225657345115455338420356888275645868371829902400682686093605775258358285092221994034460652415464774553292045949099995835956048582771328513670065910706560481130184056581632790896622558379410133125468545922523193089162239532668352265098288371152808424302842639066747165232091833508225908556412785293297627006614542279343177527434159595342140268805037748184461810919512990740041670639972269050439482599369927788977813854543173440649666335049689098977003585284162778382330619553989248197416882391666053782865004267272793801678259447639306031395562565839398216543251818992491495073901648267203569185605840527384400426925332205388795203315220114912379871733217804154023947168595153679011784541105328741356949477599074984448538108288713595515083078283069293128824203701173592180307846877367440893530826786328269461041400756416164590118190401921124329376799952720376615798797712935986649300342423795665811836121983861734588958262773051726565270512735806209488446318661608742456574783021354334143443061664778787096373252846683486018528929636440187102285555384729279934369846873843143866922527317099622904270085917354711050006774455975416389315697160839806431985657764445701862745855653818053665542003157494861490546110804004151948664648085572587822693430648658649986610887832282515766228677556932572342016802562100985306402715093799007702034281424914040758425776819574522321277030973526220879993106525947116408663750120665816107483910561339069627606537881903549943667478101522230521114861388706241163929953359646224085508507351086144332947101866909105182174041917911522732179558610950471745740293451404052039961881302238391704446062167252373834068463928406453760063076969725194764352977856804800536177080972754475954955364924488695607723305759255152648991405028431456996957279884114465647624383847839999707329388546464897456273936234406826945289351887293433338530827890423599481673020934814368335123803037796481803080401996647305737689961068366778224095535154723046502047708668934267641504930922546081278648008939927576405445144014249797805179072123575535912356656899332810493833511411380765309465811089949661689300922443543057622327137029307128693792619581332013630173792811501881608657064142033565285205266764208082847056638033848578472632143940704346010227012604283593517574266486249280298884209632621481842087433839762333828240013667423838455667727495946736952435781713836617677679162182480846907145089878551236330013565825652845665856488547760251155945019867943042353581225023056688493496580907124773276147068009930886019328542236648788809787109138679549534361992875607655118207772624164963583720328548190576737660148479753584863046476963767383738126956661818169433860397081694221776965422546796349976466232808509906252620425451242799822272206596991742503727042319323464505486197127338613860630595221245320654806491359701041707687540480366752743123202255922873969620554017393770831409219765624563479530011458728513707177113394219057177464353617171160843242941261247946610505395385180230338422092742239744110391902229130458926479259837053673820203199138276581738323171048549548795018497617646295817696531152702949134651189009932939806422099681948251329802124984589703887182373018004767751475483482531220166294060345996907613464893654993780023407514369124075559964973769933546854275039325406556178201327512702564404477840140969462721501969291907905398667313602828861552472659722380063641643905487022037055133759867015309160393118640604493657389027622124588044400797816900535934361546015451441740015589136847221257854196451153415451323295562638743031509666176295506902978624786479598711648673449985499222245869237804709043768538657519364933948226892914955810896604821827168911433577781503527889920909731771562819366354501703796198628994691809110092955230782992386849017542728657491052323510130723484365781821967905551199019027578388948435011412283840728853838224006323404099423662406507334377235480103601470579684308308744212501718229766854157313039658106929851626435445079781637145479393652704767301850169774140537932585625550152578193888225688948121514513210235744994731729062162017898344600296310155459396257447974310122643638966671078996520541320961158730278170561122281086683688771308056738567755124053952358356039799316539519128683308881699352407371120104516885952933639389331967218428530016764048380135423028428957660583110111457636395196476232402473963808932420528723506855933430157174909307822704870589914485937781277312850688714334517593412149852218917817030140464297535923788964218463190683748190336932182526005735837805263311538514927797658559569946369816656224593426912029519830993841727043254841194073767830923603279215102592145475350957524166023865498490844482538122333613929528694777563911930063489008564737049170872915570843917023976405794413599850265207973685014846157214294343183147462672898104047604990223839929480776738653132779662096084898446750828787027526628134195706871042132497587256497283715167247752621484506143781924356276026561651680876550993926178034949575611988288928825340657532349569779023858663931642795057395794622504192035076783265235751414534785794849541880406825451594263866973261727674278264692061176010354086267690178474395481048522960463534539482733044690620198038512107461591832174851643858533820860146479187170629841484480505044935864760459534907512719781401267279176165492855247783696458332991700417640407010265086603757307524554967352697198292017055413199914374649293753670486885613801550184407936104249863823185780288904548742808389497544261914958627789164520511171477637342321950488899721341788651145127124444349911035360320619072869531749242014085855092021724400283151980089949584844047564393646642237277970646157049026613615371770919968624736040305300309712974617660304535620098854943697402195717831437454243318936600351031212604243211605180981673386655069406090952885542802013704750864461092930866489760098621447778722404017376697993957958141015781460470887745731553834437436032202164639284389159776712341516471067583474197486632460991308304846686364841162291177343707255180814684119880254145590256913610039281837878318515216905477098587564422615769316035118917428002631804733261104965123604450622910406289446847267465277349090895434690328795132197185320822494151208794087765206385362175607062592070291252760610525060873800140322138865147740806726761083556606701552335191379932312529405475208187802379869553370405963721356309385668649518052559790454523494212678230728902801509712046625451105347795302465339926863878828240680114795144118575235076647114739070363712351529899631186894037424492158860344937873907014188348234975062834576360205698435151133026838603402509828761735659150997981229576080920137199941335297988374905950031960799516592231867148502102779085106419962701783755752455579257669357871084296469251534216480166242578343889221945346851992000277648408111403764418147436084336686783518403217927539450518635582204694609662765864698139964748943629612007299201515457073660908825392755333059124685693762291156479378754705661319253984515569491366306831363807403460142270487450740934811386804435018013473615873012939061607145635548271475503034504562707748755624876012481841407225730690727620546279254036279551810890562457731096966627436457018542302309158210650924468659925490063064435401478447632511006231326923381263103003337589831668810088728540800834740408107820534951832997134360563754489774464341453003897495207302512567792379671892306970352807818875863077237133221131410376418130703646097152129149483638473343900500558733517343642880052904622137831822429346636330744888425280313046411643612272295798720418515486026390879378227389340444924928455414954168462720511207968280681958101678304744490677708475810873422246980052263073023993060918998398798845026776261692182902060496921669735104773204476661313517694824410286890783645654801562653081580069511570015694195166622921780452891574024677433801600055060815836076393559337690709068361384635934811587493854331342935948864485337078296917997016008903545569106493476797731734513924282197232614275262744902811082860442344710192445593584558068784810712443893788058300416753344659361301216278704319570130428659020176118873982718294839575214298464350386178027322213381737597266900011161199325236398254521318461252283817465329714542485340884112169810058036647307344226478205065026209486805238652587858154744569957365023797096754297519592474252061068946842908802142589995140130563529620418985089583150245311339963438424937201925630727686463780175267446660073717185885653502068346624853133894921575192170066757548588177207150852044848023435194157645822820282097911614702217042963998199495659812741724572361880025967235520950009747703618226936303757122094296586526829465381782910268705765174650747930381496894523013099201176774949589293681889228366045931861538639327575240675076844981932892584246515651102784602539592010399276497189680821625112466346422182912959767949215768962293960636824042131672706008494917540755305766204082345141852921770441417713129396211298658297248385657052947268579514028200127727972405055640359843989907569358230509358233572915867865872899122535247122584236946849707256122604764262988015343982258165862816276763443211828397435937518054133749256566559971548716414631777764606257352680922640780182595872877863851172436376948099973203455682761605541550264814476947019944875623811564213115096754335098880471683102145628103829434274515601059284273308103530706173546548521533628292138664555866503203333941957267905058340153042186702360797632083442005033087923475577888030866153375529317593617863965191790436150662109369303937287304444753661462735749922955421641744486428519217055483488234472779910480293408146548957985282023708348092630918764075894119553337076402958842900853656470974137998673333657212168743650331068491414487471355671415402833342744530311948043569811713613143313026986297234721856357492944416921110381956739255483452365343615492770070685494834724851368391000845590846378563072105633713545517705723391207854498441488694245326977150258799468825966583017999976384916525066390806975712817684212171061378510749148957375942225085854275091172057959007447687428388855362310718602775464479740843578543702442836983376664420037482345182393716280382441250222768294980834061679468676702946632982971499782399338147095956720510680770494284018323826166069666279475564794629744457512268063010575372000658119022525733982024997907856799359037531365951530571906489244183390857085635272190505642341287849079523973365198808397305510267244334991066682882262809358361890490983128220914045886811571431227047325473432756422886096889636874028939544069746510345179625852374333493949754065623025114083485026401682594493476845128184820643821729482523980849337908586375635955565397300002698931522055747273403636373496255014223132514283526640029917842862969185627978772350946793687969961883695327864939025671506314805733353242888922034544218920243050051628707354443944197394712931759391473594130530094482549702381428449977864528346496052407228878544918593982986926769532345505783488227752238136418134018263710521102363094352044691158475861291999793071737438002674040091451312796513314968218440185088918291386660303483558881925500930185535399643880584780732977825164121665206575153837943114795553595331741353876548398718739864385472074994308474341676163474163871742977136182595971997408813077356537620248945172779031316597783731278574747446415278716583224246872778983236917965931372139031178167584871326005068720876400335212755534222899606096810698560180368480919114359812053971510298773498700519508283822441023963641452357906981378266797687514887617738313870162098252570577800662244923145792465386290279230174949408083756311765996947236815285530541624662769602467175615670399979374454790799118331364648664916817423822888840842526484670529282671375194093934684690089361135652395977034838366903026404014848536270083644184685107076122230151519857498269522638524443407837287954522038454949011250853711138094992104694011625723581750619352876067220731422486512814328451254297773790614277195982946377262295763086513220578944320531193793660518447437084581638281426818954840295349703972331570992936834671457566682042797095097889779013429535015743136993891412365998272832147600976419997881086453645017665663265153896631682664914617776332952499791356974361612290702281063457113786134198594659952717548791941505402790684601692027220740960955501305105503383764169122289995967211761657523961446851506826375138168269772557433914692617892432716503154571560285870265165237883880238370111960846352525584037707331438905596660155693314278078905534537165788196373564449952267967518973908808554600558974886141546541212553324590803861048549981611115541321254005344720015544808072097801678427841663835391221508251856217818658921506736196771126059318833489921713604732679308804053498103897151179501973727436107433440568417897591859445630607943440577812077405605979144264885707794146227142094241041316850384890173869039174743072052180552416280025789477405438181934603531490893411074720843496530083585139101622460059632925863740507774653936959477538914494145589330190897625574418645206939735111182033207189706908524816661564619399116745251670728395094046213915714522846802400430817036332833050976148879229789187937621979070910166015496511543695667942154850923042634980220033897601975648289042152781127252524742976842384298153102476628279163600623146519146930229493246113542058820207141122206881935225332967385941246772889358845402247788044035662249002410746501456569974892559534521548783587957148175776412246250837638689472110281986295777120015380907432363319775078600567666932317024908757926993224486093019073324722671615593016170761125267858802163810326167806490184457731514261916908440028984991396636669513828152034225883455604005224438346770509321898758636938325013471852915387775894927213223620705268192566066818832289415128502182010011905476284378114439913062587321506264788590355512190915604474575581419033679982864200464324059950061715414735351141274585652519936708588510516815301661976282781725200767913515562102280047555479774682521696537151916850035841599683626533609105263933486589266137143265818134103599429309218509076008669489347963972957026489402717063587106231442155171502557542598608898519585947054967546211944448728292618739503845825567206627661642763132127895931553770875385848437314000233378962507827504574105917420429911700575784165615507174690330618709868803831626068037570804852944588980022901366458733628618793159942982791338770861537001247188937710492455930507054542614100077276927978369672785351943622003132036667075305211442658925605720816633693264367332519739663237920533309797284571772202429398730543990104683698544441188343695578372755238283256231015623254593982186569269095172381021625131524657531910458598502209947287632996155804310129917848299017812113435575824668320314367977753088644588800070060058130723485632535906631913463870146046668347468252810936767903992151678802936468622904931361471700701906952649124485490862927229952709243904507280184677989536577334240286560665655490846333522673916950051972449990976480489216544676113166448520985126026935010967766473737718337753547357475139156209070195104316333099052027375478434730064404469452729271737538285836908920644459552306131059111169791882740111697565905005812097142649655088129459960273775242533973369057108256814922573588633437222402506269917732643529163771105153501645322859554989035801232680585770534949734865165204522986810880811559935000195508301001092355596138221116619777591161736272396929897224998679378175886666297141653196626703890916778904969219086759957350907901057031340343249943411597648626809005920001577149664148328179819440475355782605164381862367661697160831435834267713220760541845054606129916909262752709873899743217475488140285776988342499333791585671231528611326723980088414592191671625959250596096523714186288602347451297360538460147037975166632574491479530434283687250730569374579470382464928056435568391758537339002185930809897497425958049135901114425860255882001109556057974750846264211455353518668952629341485175421427981841454439760066099845965073406967035819918569626081391243968242577377975010448927667993566169004006517768624070559963149609115862943020385578482060212723092331153378020852550521297796554223690981444637609188853949459785037037202440940837632566759139185054451160112893406817015212131422314879348516735125889651269583307476593623153296042797940999969324499129181661027768997560462422690960240596869781649055567792458180806189457825035549720447221322439734073964187834048618564338528235309849008157317847015345138479877650194788699190696739841668612301344541996485463262937832523882425803345291778739936534450733187774745688034011436999384485847753817150677646653101296826454553929338602752826615979227806057567213194772445418878693231703842733475079043123346281417216209071356623323283987250838675327010284842064562828753675503710102892495309176803774809645059494214034223895287912895676133465614822566875967773886817324107104195537344306436083498666947752770480191129935964313023625528670111015161464539317609368433565741893353049819474226018690817505380785514659700670996692659590413550686910478914417894973382037808793665857467670169352927877973619820012870867523708940956292293783235986315619760835845574475082486474098785405699174491412449388857633589403378942071653245341904042264996639108834498853160493739477970726172171520157295085585620125646655040542438015015196238704837712192411118977893524922233590249180729170726018819069350676047288447199821467216751131426201120950431692384321874920079351007805766997897316903537229708077873375648280333472649136162850370382297259258554114614665480418286970228384674913004098433013038799206953348525325737693556473599546655020690753051785595578464152304204933988039433054961250927030626496465406757657525111059108377967779751023507715747733300399201401800212323090601796443549098213005744907952285880941272159529744800140014987849446494947665489286160450931758307745604288490007635242147311005379113612389999502778363593114655123402962004228529476675814629334133111859426207927615653931342771669049604865112386111861433780156457084309497227387386887391206162898797998726068528911625398085541508291190289193881680531312291277800549476690309406103681381460827600859854072250020372981594148616330810519019715336292624943065397653414695423727315052205595033622322610633009659498866384437548805348090945835458529715205201996674975938607982588240104299963101329735028945173664211955305565262732184666773677062658203809008617206962398378785702222550901239539265652111640595929345655306689944210043951634312034619220808877978182585878633906665995915791734765766543007338275534013968802620214834194011570601222886095486310840231513082804236679760310059222918859486011532765813739528242734353299121096328713656076625063904173172181105824050666578008135489954543285759260932093818384257852932578383613042134003968939127471008084865794495809022799581634974205200528990998891098075680188824218162560610954731740523894353058886317953399329071029286986213896555010526212743102154171552063239908706510793905157496108048266357949273067512761047336483523497787710192700740717038458051511130574287833883770422355162187409997043317566239132575932881913551733656497457056320154574683720612663249232251937556607870193296557935823156615355554965985600043604589847021004077145366092491523515064153083427685809760702660364313791910954018524835279427419970894110148307608633045312660179561649744836245860294675949142688337370071675931337367799456279477059774905272043176280246594581795430895229107093176739267604261376940966031080398549997637895040996192224526710653246987007975634166645757855246125167585399104476774689465469096395750976770608680629027549810729361551140107071050906014151448044878541245434405177289084065544319162330222602837036764690283940541643867903285758707767846541081385623771635412242747169844686822075651387520229846927572769914291236990065093209409125747695514622463470430904737841465564314612953472005167902457033829573827202862133900149770133939704118684924187963352625166987134315327805965727622835242871432003750364924430960287437084761858413507609423056741005310237110189803982057802656075341316700827925911759439162097332723638374530252615423962098837195924247206249947410109901319734459847114756738010783943213468005093893610374748613163550179125572952405600450332569568253888388567082560900998073723653254025119170483260951328263768305868910400641213011468409007172450178559271817287346506324488866712005135463478028870196751835482744998729915038353068038295313218154441895528443124571509895983461382124135761865898552129861982316522585044362934237254414385716210857688284613933506201743534895602218814972884943704762059152472736507505762880200021812926509087829304608415983946398972487690139280897370663705792105222649703220824023231837143367933349967979518707808682863217713297964558618244225552611915220038281840756583127897889532802058410194119280421933915548105957252315277513622776645416777701255882856190159969198439392917410263287823293954011519003972210308235492665299883984854910989636038785672520494707142717926226017871764162963945714868019347496490883017672202360436777841536581016789509856214797548778607216671929017797043165347435237644591220874664636960066704318381234753476884619720881897372576908482055094934630985389606411733751529220533692674499179999291243376335843855516732923267123603706717139875487534518015194206050834771799136797240212542442480781280005570196454263230146149841070863781462132230966790196517797984773794628939007870956769475562218173971383212948440993033327382986751285769425687050573692933032756082183361358204636660535912980872607765600688890491315815068937061959118958359270450649822544880813602314485567380563829288861652057448737373360241228944451472576104586459179783573963481928218891875908393962424342496842000202871793057235422936062462738840037764847802977832400890360942564474051066021973363349638678819032015964487048128317746448437833644582431617683181135518522893691998017175258340739525857560878082352305350662484798912049067455095587732854865156806146574975948019269923931158399765806255357644586426703173381210158106128404699907702904992192822130529335233345930405366212577520289632630057565863406949031408393304812507300144275595187056907971996758212385540569182283888853216468355003334036499195831731411545524518366105291598815570711940639203240708803908263829140063527342552531302690006357656830060420543275390524347962583956089604618000879432740364401995434094704388610495451433630915178633031977980430971852963598931395277033772824823375003749337896917867455122328779237603472070148623349758776217628497292092090421916484451540409191043599528839045119707199591526437988699648217090607591253280206976602271900573953637493818148902882454093262174027648590102660848818248926077964393821968212714590727223608956813321893178817418229180491700238788080381268791137166284085366218758668557989521838846874311775651064818205547754724081928610750866762368208744592318237453322360416918037212992617864638245683837405316247035093898457064002058260544961286707019244253885388951307849070672133146994238195618326807771941378590054098046782819689922451058129422350695280755496718833333994881531964349034709135324242909591075319735490047312863947170449409353762095026954490032472867132987399798844963705402566670265585144250395333270126301127899350342555491330283652982735815130986148300215330385803415520328570992089141744457015495983820467142057005369371554335988180732881345540628906726630961876369610954401069389288672456151224573220006863944531906864273719896447494643863757762894712366746258108320103156368980431887338841412357448758218166313232454953916854131779122139812292717882089677656327492705602649395560416440925646738740974211456034860017304121552643447406453165191295403378388741336285470019287663942332618683244665737108066728508479839352501838293599134299269565407457773041098718144364411811486472967790118446955380627507924702849178807813761893464189242413158564650410110687271389493046662109967339100780905683693867941672015832977686586623681213319578093649320954837859291506302969141755796627383946592367168949672066690891055992461017654247828899594049989996038696309615513390679162379135136607858079291659416635496733532138641594625753098667020031707779968576728829076657478117037219349662239558035611973438732027596835529468922966235497418873790741738231030380273818789662892854382983113044910086045824951106125160417689393397221695764240024365523498827056160151947757349095717317384343489566236793242376076644508463468443587230548871322904362455137582997471190503629134162075730826921819998692968324284303297548231089362261387762347855555386658185679673297065020805630631032670328536239157198728383292137381757431210039759187633324027757866266338454360517966562263956755278765216728908829177422888604440742168073126954023460267633655613379277064191974838159706745496876419704939783143919145993652522853191811890954244408287944649866464721598227042996450079325847106463596611838723351126978762002040129376259977518253174292472895518214659636998001052222362839726055268105569178832758782263056374451863080868950542072662224473217677330270241800924528197535463805549867181967411075012118090282562087655259887192374604947830077289814375302447875272090590104482992592402411056501346429168482494998992734524839075631748455827805399347994665940962953917779159426511863620929896708577248372899395551347221771590682153006115820505762735810381788488762222792474665564538139256237794447702213463371658325350782399550408940368358797088084783232217949933794712935300028762731989233270881731025239053762380226463984065546335812555630482492856906864262355761545040647968411722911419036579420204687194501000188945945031967869756476897392257433884261834636479848922292783321537373734468926793049629794262141745801654103395906834029417327294702610960455846497320144877909397665975423312527494611516492802056225881270873441301777524172079791737230078180265417820963357850106021021965065223140362247402947752405015870285971177774103815703248058873095916757807995560508807238156390500646278397670076783884496868647697314887132626421081451131867533697306299763684840899132268297933623455331996712380446712099903044178681095478121808863876459526115498714724398390565291735529239690312425340082079296789893179799226487044476251054364204843681482225697010807175453921638984344749489297018596928691417140587394324113256507034840527647776814354628738330350594463385229761263536716268966431439040484409787688928255052018037234709860420734193905034522047823154407185700851465284820657878548172136207918923281238754720332691038704054630617313236221381605092406491690637473741767164013814768722439165465954796367034713319524208852534397208927868055458921062377035208309157391328799782766794018806201761592317957811575027245225284834693690416992896418636427798380272786524015915433669052241248104765753567208996573043996150509846538265670058345241856891483910880588675973040516862606336977079260823889774235208944292283886948661486619993882947686959095088024832697671874205982574395643027536065513768507011619852439558397299888148478983266946653644180953085733096168852161810161687300262119624601100479095431877672607874260639362347054198908755989005975366533251641761053499714069629754194069139858964701624124808417885657730392426632556667231935841693561207368849816403324426957401188828318070718030804615256349930268554771583656749382476016877352570028095908948139742490008015584027965655308094924994915453548932267638606938560724583254010980814300316428317868897030961134114721260793303995688641370471814466090480544785607280977349036146852267602759384227603240680836857922020306937916840425183948454263928749293917402303374088868269977318741722636248222322469977256556609234704311351684620232385992229914257628734888482479083008968678419302714330845646337246038942875801148093707537366781377481159888423019275183343841203351552782199336035679621822001642541497619236694242715701484521142246639480522826448117619718069967463993801114016864119662710880330920103746909392138457297789385118710878766013297786685578310554381051428242826115983482454477694491148496858233724823545129105799884926112749548927826733945131479379318831837044636316687571720796957462269135403863428714008285261460877962893611699160248291035951578000492150828049574676869149359778730189388661811670249094980464699831523510849492533649496952587480355441384908616827250146105741385864880254725167784339640762006156221259473106685645592282796885862895422575923745843535838975045186872145318499602764639741573181567206886158903166735588888515706946316790663689438358245306414067656385527652942246451032949871175818784458039152681502908202943399042881314545801134549906344454677214487261514349423082947253701297711968089588001827809219452383052233556974447877532641280327624384930994280231614391858112198022815437858810954024497408928082548963032863822187778852622089677819732993166320988604923423681878653299531370472269797028029495959588324587589699568995249081058961476668604136522520369757787582281776098103813324711439371276174990896869266391495906941785987104434221323087559003187219467600167372961416853500038647734744357093067736285679476058735916202439001979205061971310823748822260523689523521020780483413968295493994464734340895347095363956375241015310547993554065865967892927246404849591047549906830130539589799501340328974107259365400658527196607002733192152762543219668199349156619930286482764264637100410213689597339349678959675640061902990561622931403524923122543370614039569779223258453321133670239133764945458466634578171024655334074159498078826524219585071117258721111988432575016743851534333998070938081933991498669316089351550833107866514018279764535086748592014475949747425049998239829138494319222164005621153114992538733085103733719703868756001424396970069133985697407178570056024069650271461098878748732446039682726752098653430631765703332754073188466912367586060285759280487091763991931442249055904874432838057794305467599870620869845316493707435703875515399732525816424298221447653204464001246717943949711704610999198290143897589204310993094152531482312737748458626183438257339258090131332525685821234398145764243000340932373912925156270443771149484918156249316801317803725389750495198008732744430550213437811805906246373978358415902310978750921299059410708350232112924410664143604253578251300580881078506129187485728439309240691822794476615010728242120147590398865154679465782037625349606662341718558102513722855430758752120567034303024380572061941075136443705091707839117810991199249315355997492347041772318031613068357915653021155487394041901690673401131323904300715753683164926441290362096236307518243942803903265592546086599798495257641135525139282501823393990397477587792151988812608333362639703432134658945712164175691411538828785951386360535644342933670562004289464480003470930956652675222593262116538240193596538247325304319988292619807069540331082403268664461499281637113520241343010730360541612869771649568660199123378980399905148641068576437792256796998706444337708049407128701066967623871242622988065004607680983327480313117714345578157809432974455870958299209609655057799462361622709031257684370342228532947657973329393118196569412757596148407241831409244676497652154318466812904183765855978000015953707274647607764996426469103467083606255551119466147311481888801034100529766382574517273870820166574331126597537990980704818094199781407737423388872877124056000109988630166778447028094660367170759260280610695725662334018317423959289572007247695115289624453313882502227583328647064820404669655862275339028840350172764449498296802954854321655632792568120472829835099942613190772016917014708244179299359994777555750747793082119771376830883733929471339854095213783144031739909722068261287467613251641354170927396342701428319705209809241321225909339795164959466981168741022621133884568493613714466840040792963081364651488498300804836887408353562364106396662192707722405452683531025187340483130350549722110066867336329160053195130743528420072814222027892039858687699371372641020105126079821014149630779139146232338684141401488923028160263631874309421592260340346091771655831117728679319593038381516293521206717473337776801002631738167398579961719460991026315209481104392802718106674602041859024749198799070349078997836084588238780049689224691646255662189977939184227753199170961187462835102109598887137508886176502426629830820868935452927597311497638404026005119689322406499445763735403821059404538738955999689887383811377866350095055898135321624874231293808949917225085509334536440535588809293671665092178877545785267245095081782064299503543501639051900536192834173131025711640783888920942694894319944286852593068781187729710316489438443607111177601675313371678039412648433995335737555861825472062683374045947783387649169144741464328528629971802951095246748312133307196824331629197662897980804937845247968101132030112250798923918829303991753585303468258592503656337302123095781157879837849708050181787244066076407750559040781066209491663197156528367132133602323827898342431769414442167160071700344431511480707914323176924584939611606330809778359426519299555479195346042951651047920517049597504719216179649463183912174817015179238595967098688159423114006540554288905404948388182570783696921769623840540180504918235014940635623021370517476211822487437413404850521428533199674262840082402440361759406764147797184050714092596589702465700737367833539013279069017294681313852547695429824604962482386580870090115277054804640738871608996530438802672787025723569466428229479647879553107445561072521540533150684137676658241271931553226076293670086103937158099903748452424291682204014711798550152569580450567763066726595258459831247868666384455185425386527580438735118683668730607546301539678945138754185781975812206862865886123144435319218654225739719944133365601202005251170907526249724398555616308923725518483174446472550448115142735939676790503721549970891138082361629385882300802867967602914050996742969236304415103719709251895929877367098852423364465660505852374017704145936634079380746043297984420171012048281288060941048805843966349287005088101907179141567752108058917984142712516504363606943524134515874528074268522265089749073641349631550822609437554173700196060617479870036736212457386617376696051826947023879874224721288950720591316827612603318474620141498122419166036696573069339561986672083398289053827266218123223157127196644372164851381296703930632864897251132899708243741938895441762344377606733515504505793273389816546541764426071800906136670871303290460144172383909582692207415511238839390744634603961251635927635913373150840681560687785866760106106037636139468482202493612879995412352324344808734718050066060296874414433246256369239754053404406212088793626154305586301022793483584793917038681693845797458436557478023920502633486698324252247361409415943260122496774209584818829389326298426025423158973234328207292936297848861691984475997300231997304751126040621322991617784879764567144128917271667267066195734688826527835345999285046061698235490590662172372416515732424324037729430370505213624233572661036584349322057552337175165728558155287573864741531421468691286004912929127605178629195254132445345087047488464052058075385612660067989094119358075871695728188071548985410988979258301074054146529902673395401367580909209149137072964524772941508877907434221743592766853703648475430943531240548541204338640272298594251155013453523065953486691566192131720752544391234840660819391582371924349634538288818385999743957442997915803055248511753415193057058886582860343060180160150325726147602270814005471889768870888579978677826146235668329876193862255319007405330172547188099684688583644436253281886022337068748450446237794880159432561759288074556218513209851368819503614994385696358814778901171677497682153502573885990228756297674318033807672623403703089126527560703787828463053135165890489405017560781832233383943700665480935318559588488100060551774787822921319755698126998245648944083657116434841924200481041480536686550680073989889447481459487160949706746227247641850921907258941436014981902917007612380642050554950693790680911278202315231703403259852762097486918094029930680336322196736307559617782487522022669463054962503622828555375996552435537483576530598462486408692063523360650198827541883464217615007089152318334057222980295080840316408687080345542898880968889809026958052331885430500223108109129909551980204512539174106968153800881989559251691506383640898020117918722423190354832049639475358340085170831500067135519274292000791882792913076478586399167733517055242163713062178193151512672611817871168976066868387067968441129169743528043622521709882318717306843340829446428481190297552163266110781091925803604576055246155104100581969713139527401343515631076803309663818246327293044125994567188317218126909611579015161798350747434867151761368493994156501418955299602816532163123427304016809063946615217914360213211204585268157458912143769148378496272710154687399829986477258169411082887521375382337181407577614320431457688779545574971654993045006020780398355926454763920343914029367740461116162207446468343433111657378672803778434401232989442997189286035264352313446745445344052566836030131329532674546556658098199992285270376852003502218135824922801316658047804049079412754069540066172450348654619351403082111697571383963494374731903443636446210168593955647707836557304510833393097863042311934367743110385603152640915946762039412567263535590481040205414315346551760184289469868396625991450528204379546982142648409653287499590573460883116259912309648787206287768053252399654246091052459440347888845008902140058933845756073372005819202454993120711352114206533218686692400363209561655535667056706447555854704773734064751419382950410784523767093324607620590132780855984364112900838146649948959859030080854856819727934870743857860469991140446292425725207049846516473987988280062746297629790250606677426597348861852512682387985316146351100080669870492323662306634125849400770110879185065379205395218798120707215907057293411776799188771356259295971491128739939315512247884403953459094505966258107292305664638380576441570059638338527296916932372294318436512384140027075292371554497633595384649565203396791330768021274407227462909747675941499575017521861063127589981832380614905865791423828899874428413945527346331720290018751454305256214794649014641106047071860456147821624126519555845164806209353510456354019496727051605184497952952936166300186426555145472328621172753538862476331343163249179467979530508139687156250628565381168525166240236710068758982468712687868187864886989374981870683030056638630318906788835538695945546816631279875776224471149027801245395050382643645671624751166306747173373544772726733992575028420728850603700487489648411881402793755819111497467572275167529666518873114621231163431132874171416439244512036873114042069581299350202997876253953821533017130195708128912339384898885960771452252854341285115047572434759716930589579098908809879270432872475371180788319125452844617908258543997995809711570440219757961010711185057503436724513921189410730807920373808724601681633954902147502170825745810703669372580689878399537099541785511104707153841918110307634065624659355164789748473191838135843877477629244867205439371869866655237946398578040167194418168862661173100966672339135395300135342737576871598490352834537190636420674764070930127696145337373168927918004071394137659311522485570516333600980907500265667737266145051280467513159316724999028671337717795964422818965685719710179205362716621671423865153583562313084726206626946622548502864415897208588356707932890500266635081990221115480352515628589922293948520617546646311610075145987628167878700571245021876376408170097152206044942822782826383182668752023641071034418462973487288923576783415083811130142035234685351919712647157911625597777735059252762213935735333355392833715414012441477741679459998207872178671461743334796547790959180095888034138479309943934015399736351750263193281783409994235920340785716711417916350342494048108554390554873440848722978999260789446398963060266381687253913378344507144255961247464148344564496149987374396236474776309555624071213365438320830839328139390579541195526741274135354224137212524618597475170709766104118456647722218769416165307578675868143285455893416709697509385164079256522932016142571457741085078086767468080368544382227379047160538827427532409985042392847723085092406007107384683911466661477318655896698696859003933158131498414133495763002506890663320005189991598013534930223052493312335499740881897662042597627384180058944914909156353840866534503989083155978287613644294500804021605680863011703528231421909178734612237319878508742340143587405000903613987671453226777022271515962056245623133375565231559642617995884811056212903060441174606577065934235631065746022512964722751721766885005016296536091584835200578101958785371128425465595330058748538719789988463512455621107763905327819463979558878338061272148915254897644331074490517344352310966780003686199812889201561247075022315605582593228695667733323477568216351804514398092287010887813987783323735919361837440781413891580350691409088047865987863575826936930994957205378540012815604142041263307442978882390321008396999473926435951930572651821219451796439307854317638380348815102821983603362969619426918253745695366056951769620155950586321211820515016510617333762992710088820279978773349058846867556821341434816268609511101564801196266359295408966327795766340374978061769948227176519337155831192166070309987675890244580231038230771213065810859698330382604387705501737012719135886439322336339656596627670485770788704682035987045338682037961306910337375849669455608482353910855438491581210824354286836686637904266914060386595184213698086186388402919486118260244695304892719491073011725263873241525432767959938614464393918028894241981716686992095305471924504088279944970859143746175183516951335518247905827444191512987492679658939817929476640070736924724620199138184840648955453895595986059829989777630996209275267346704104594009634865250701972409189875513700068743896836829438670094048057487632261605097491485301308273805099812405335137538451942127419895981022039986656857384735191748690563749378760858364794809530030255962233073175553800735280130721023126804306785497288216065519495891456428955593849421718618806743264494072869077142388486631417050926681963415423772885004654592235119121316072962645737346748955895562720455119793065404737503259824506080400107810700085031037885635696050652001927130418907339604302036167837836701756379436816757032553123126331825487580872233143550053106429479359277500277851615018233738648422490345537148759118856529881411964309806982175478874545813571775678287564039459144363319002323998524609570614954720164753309003788621430707576252465710702843822425401798002002942224591106659393039344487317086710067310827779771647249096273789509941232554325869933005068165772476298884386530048095262570696414780137884612452634181426883054976412338482387130201980817710427328486906081588479784045505194073010591674995245537912751279889212822013516398346225947143109945431884902567981290297113550634301117164589455103523141168179741398438827356796928515352273768089908666830922228109070267048874029508743025420028195874431104137867011621474204560804628205623641623369719552460271518661764215956497044733283334495719024844316193999786683382701372917268396606052027865994702858351793455492791627136778614676185081832677056861890790846144401292541460997933209080073052689223035879021245241657558479442694127316511884181486671121373002166846002067322579638001413180444612629657778171933137346841773048282799808252361781471627049591241860873139618958872323489730900464098622236084489218526102398650068421175381199536580415588290169605104814897744528128196978796635933076183831086696476055850963481769710386037932413121461092326847406994289901888266178078801894701814563822094664336525819434703264095411637230616252838105297332077554029882413280776270585723539021388263266264429622097045929518914581699675623391419887808058159557995513986664153008115442933194210153203443108654369939488892021872430803401589565671296942561308277215510656023824399610125070462456983289999800100573739219577987968237144924181682838802276918503014076670934612114710004079419504157394417253812534941623325225517499698379104802648312800982339220159360582032003175075418040227828136360374831859085570668561253489942647155784843516678459677515124963341927026453889593479511821276007277667131117436944416518939731394031596864322682878319858489385963529316926079827539937002864217277412630897293906245087770616098357238141273835401457541305270682634160614109056646277309551375098555224360117431582693783392804298971264717765098231419680213636196985420024336809338738247548658668863267670988865650568574119649507742921017607191745376321768571070066056771832465231928419077447972414379189305526220189255443152677631653119411090685155028239917471393784944215268321524468192040222645235316647360593567870639132651300457420411089869620240439439644183240509576008199536027087073662207499640940100260817602697289187688548559901910917291962883890779448321261795625908181068150195369145409116440159434996954909922815110478524221565295920857755281080966750158738137510324894491089820278027544949118371811269245940195724182527394678883644514788308900052875033040512074699329511746267805351212894100081358314978673511193481615218820588784559494610436935191322326458075679330272957553897431282556198274406379911036037732695230865350991162470747678902523015299357385138669535666251475158634592115134455008652951765207886613300356613680375466442479582778581641041289674600104792784827792289762447148521041977632844725282881052842586793939971429936791078894799406620242193000945594438084120763823071531534111229921490053297358053745681031385485525793079041423029523144984099731596947426511494923636493543413111608906521172962284133566006064696965091018970051706971820288784726541426214419916333117830130495651293900414046439729286643224790202004729739428605431225537936181905395914813855641271864221942265994804207087127312632933816878902714972493396471181779331893591956334260371826720161481560867639555815839836929142156862172868965059649368315071093950211333135631991477077509998124952845310454066686163040726307055193306108614950454823549888392339512122919750112023534466698410699810018063724177511078514009140913924058003688697145644120300676538353536321514398180368822700988317288866754597734372332668167105170112682615867372953624136462415768012235464961292558064560960003941454496733879053099266459752435113819478818633440851985805283890151276976587753706243835080905530388263230586957742729850363505905953520044553240107753804259474813720079036991254789153256161083343891617035532053262718889995813219935515963289022430630648669225111447669479143815052542997885535232704827543656368751904714134072759021278332131457777637044607043345952106384454258340395507476890505377780041426227322263562915760595784372344919437172722620924263409064341167854536088693213797211335609561190444911255881161279718267982969839855381366637197022656410910076313516942298944712992676733306711087529335042802285215823640536999307075509854772485977259311159741002802558300148582397610817079754290284275366209205087032326840395226432675897742467578676970797950173445771078220178445885541950131403419403869961675054613326421488607804694652808016025806100312303365511477458905707314519929911016146255017578581817355572234955374219177321450664225218584132598652252107484880109551015830325348637741665239240125731579042824921859821629906284451459675713605799549676082836632131861024831136901802015986035820561434563149982632272572384503643898843064177581491907689541829734035825485272713270752791704904891039260025865720517534498698647439224614081734250340165977019969018757214403699519185126340018089525070903912612481091113785972448304168041692669389532180513523864947610788355524347957527155346108625999047697137535284324811313269425882171597594374140456371885561028854807101374488425293717198365245381381193430288514242392699458871018395610987676565987129032159085400656764155518710331663487956877641038609194862460284754402183105957625379414074180071176936395467122611427067761766431767645183211467467999200125656655997123482719932538336618422791376819098186850379091219130768364657083670559941971674676143677152171616916801698260923528938237863004792972502264076379212702636880873335931981259630668390649805556425379130654013605005448656185255747601956713919189482489038622690715300833523529177919567811704084623990686672390654915679684279488556607641402695205765776805726602563912578447307575309979860535901421842813974984714835635727538041028441841887190248106033969891288476374926064461923329065100201394868996415309000909170432958845388812322986458656076897298328260518509872150217487258104022035336834023301084954131735965667658423780321372073514018239903722410717837770571302558637489875947010479544710098178121603223477783546919602829409901378880160907605473816417069994498301393091131511953028052490435448632864954832194317949216668140450297278189365148957946103180009266596493235432103128622779949636485763957427530750854134858270476385137884855013003836426506575253170468492683979170694179545712034392162781785314969759447379342616964863835010311484041450189925588450230923769389156288426859527111913586856936384299078920203157061855658650800153366546283390711745573569674627766005051753893252173124864868494944575525047628406643920060974036710701346839615882102055541357157917968777570568662234155217137389832850006405152285931765550427959641975991955169846307474906479191741510838062039076979781902445004322540938644073622239683458672804438524445739721636836882931993763026828805617616814494179854587849373528033862912953217465379847026760503480043160283038879908566554247583442211310658403507701400616708308125744733843993488746227390913981479604447843670992207122902784095261567942320872719004125342356555519558864659672312394255029196064171907759473430827783044246315813671330690292542704681903199983207168694564086618469558033629461783798618144957151836877044798656931843052568466043932243861127819128133520126260823285442729537215624152736009847039942089850463095134458924187568502209903780665373668147403545712548574367918849565180152068425155068394823034805862363381629917892724319212420280596221527058738196023287040752755025044492010351117148397107186727216943708146788305593776735638202008406643819081472588853185542706264513715308853859098507472386790629838813988047770068665956149181203141513477703366869418073280731624919773513636069801278974189549356026980677866621421349421542218735490246396732265992483912474326069335976279054867714749375711290420331966796028134921503956908171129314773365932181191787455738767963391217993794696875114358712574843995369530167853707046784704804520600497221775124568246030563935944340399570812700720844868128389889541686425198114878015852686397313887942284696692119274172175698870236612211300410976612604084278561892995584330700570990071751326038725476183440976183487814867477260725957701756631185558188912332690385566127382898709424389280602683600415303239489668802586676913497627008062748189516562031206249923958614825760752336937677690305466813698359001378472389336422289114834772971147312586386481900530516976271932904246224326306094870323545678790803948206541753453859567897640143931668616013297967006493556738698363751546773028316763628381053122764382659600692064664505077754016690976341072575008701842549581079624340718511019085967096126917524715608509635876351854556813561049561022363169454957948813835098007610285862625730865611730917038723826287231935537818430039774772494435243383752120335051202132535264753845254733354476586144600565885978664803431134575627174117325767429566895888038326870824071831342686225758503816659402417449300361578921727989725396319294109383698582119547540260475251073286998621212435690049508770565116415155692273636353811770445153908411065762652592078149915810875921399879684435525452449544767131873160488226572507778012463759635547433869115766156468079831671651027734887039324733006285244696301451209930332505885617098646047654005204182719375381347106241125931461137613316200420244753054317439445259518022074096621867063448986996085286057884921448096306813521127824315560811284999697721441694966219550223829034525664896260350562800013777604069198083888788465515826564597373792363229643251343716352488917322261719868529778937393019260153442261777907773041980953172350815556640179010924958245480934078363264829289026666786125575022682143012139835844335986027657699977096933482812982400249911025604178735229056203375658578890766020263453655449449629401269369569490141468555010534287206991592162317861650837866140870058955582112492781985471989235881196588572516814531858223519495054479241634318808655468952047938434588069310394214466051063638373668032707680195623739160736464428451005981396300013676699420331274509517296461158949450922769102793204997923683794847026789937382409108069636821083681093026481552940729764246505522008000979495629439234476106894919368629986189362687193703814381241542788603687448490629495223039214066435215852779328783250768155885202894363473258924208219056113590631565370301535371852101117052970612482058870568947965064299396424781043287797383172247557904350863052522556111165099838156453090331030658308431771072255546272477609337115161607465485749698818810098072024889772845509615518052074741219882773011899584552715945205418033501909526538164328922999275665793141405356356339047900830946438224263122469371314590485096148568999278300467134575177054700658604587721147965180276308401622679748243671217763510837061642985626906954529079766563421151566767801903468024507475902424481098222290966614002061594615671611985122943067393587938123488393387757891636239833585277569923180996522455954637752901070333433043234094135169216306294784643276523574315262628514179090342234305030823733805346229803155222420274800117787102975007892231759575126589757434190013444031360438727019180496964911982155628510479717656901934337888876730509007188413012915244574636970560040829949514539757896318389147902289432911790492294068010095828869797016355870871182570444742132103656826127209866474109032098173223094522249468606553247830508507700287697876022481794895155435006291447570071374944753375587513261239927832578234130278001590888573090117586605182358486203654712880162667205154969200359813917145049336549571966209830894268167774198975323111999099739128074364992766963167977808384662575262395359259449801769426164811624594674289795884150023006737542838210939681347633504501721451450689910486164987362912001968456743176806968530590677876482124570831351957233547849987546971237107450877623421873061763780848769463368471316099209243861659264455706680986027732812823521141484487598976773676959867666149142886613607495736694497735327922654128130724337986857980948113653597732479681550663531339317545856946453253689466338144699034635226329759742788178007546359375854099535412303775493923357137051186303722274604032780000611078849991368836268734328313594753171944917242690645129291164444647851064578759505223212831297466365992617500812053910822759618932741368716240015217723985139382186038564391757672802707643707057719057829416041944861865590784681208500654948491632894295421928440745468784440460795628825217402813345620178185724479726474286789583137195792872468027183988262786221267257577785454630746080307336251232668650065721329795584082326356550380789482367119854603879615242817741426337822553364745301286656975094324374716554023107686609270407085597468775426860667897355146820261495049501609311675024809585816014186355925247101781383227018573534788985504038966429269264046402526998455105080784574275852941408412850736018540094524518228622343406733914362694147104524443093640147637831324115376319580535027863168598414599432612753326601686129824255012341540492966987007923262820821664067785211837277774151657350007377788566970551866288774881370464946783243266494675398940383868996214533315305463398816341881062332058002130695973506543593800025708148011219947188641295490474680310302197938976624288760506460984721147963042235782241367680224548144904003134738551813529157947799284934612714365172810657929390659845094844422060482964035244325379553547249187103838248694841869799429271990603662351447426561474590659641190796244738176502456777353923154923186799226392063375249406217626469623054608870094242843902209823696104858055072425100541355579679981377912042795042440347608822764052012310347323980189198895031337046341728010551486228763696043089441183467623832409598697375101352532846127589070565796513079312492369507103379814312975461613981739935862974824961405536092217412679249886090209624846869688201926850005962660261412009426508223480343090929236136265850661006960074357581828397573955063824049380996538357464841048914806946132755890106535443846803156495316528923518460937426839567501598190337460690044849006016127960207107368816536678942156799037715281238161458189982013719262657395242393191219898876225573121552548559705317245482497595928160426029210162959172073054413231595794961600065077624643573015641512714379918913850986722654970924510889112811277054546068778637925035147613585350772889691150433034142096462109991408270179502292727978181475045547786068685345753323933908229379901551281559610356557200529944672641919634448244663954907516123529514906464291742919862284856569366738468780341101175284964565426024220898625436456307978163210804956108279567338414871996154397726967193409458601708263879194724179774143877306753596829754472293475961312368263444376374078882510791168740048840800147402676181581079929752672997502701851023919730467382834032943079316866449354310657763334183416619919396252646907994294092466052953941297891053891227191531594190983725332072137532217104563648201661918513391185353522940975284160909386496319059912305124563632147493517693774257544249798197394782076013712158427017119181739230019212249134122879442624061093359006886076720484357423530446072751878370480470718445414836630098615206761252206789372800393532311734392485493677811880211299876811846036017399671976246059813952475887546300748186219785324351135738779050825797338399168753849442770691473021398832349587559574197074726349898038261661345599603869243437168109432260201176382082864759798528872484784763779363864386716858477960752505434857580274159924009072494295792809400343375695022559533901534751458209111453743583372247936485332956465165164104443211595303685664597234711505431572275616892215990621098235036765351200238545724638279952198997090496281412814462831991148396427138743628170801587616909855410816661652393253920486681710165400725679385825546910865508045859797903423567597378643769659493593021151583068603478880710279640881066975258030495029969792864419739266455599041630619716968351606255478242743629119500886211923833795890591076540841453251407474828007561997385038882895639908895409587484635087513809230541932897485656336167340517857194639778830564990687969499008935840892335581991063530330866274260843908955396106808840638445464234876217317135552890841888047499628532159573127660153117053246884637203387854885781129737593080635943728148011741812080276803522699009117238196274446516316470791024633023704316154072054274860766833228772024874979592571656150883434950021184280358606808764319648585196271666853331511156608175943039925188456877397647721889704117472504513931729728716026312166254111271033231477820132345178787450209692666907342090262364878074265546148210204370733857168655810341074178302975562407790815963528495812765226541445172851225598293660144943571807726603109158176391554943283404435783898257397422265298410779486881967646493272593571685278280677471593619836152126285118696827573361671153413273231524993536276039908707594799339772364975448614365544984467597059853779137881060731259330033380960760820373545123030688823287248485963268575763010445680623346469845815749977132022299645203342277723388862626633990929634788638742785267191111561152163142557947804870081617397710110149631850250679879576906356266795135403207526164191031654984607439906923622419010442322710610378608815810652824193065804509634841101503489931242997977337973006248304133636514598192525385769909688577765405375145612886409767073904515149538151871022014138173705976409982068606425708499478280009586615163769481162806949715204211383594628222532770015497980009464642194646580007465537459310593063066858176162955899830990548534487084925917076391033998874467389532330578017873870494097833257217929001991290524389368695570405702227350786293519646448980951579662811570474967046100173637078220237780520844359981932438232089502697690217428646618623647827849943643098106232598590726456549668817057345804029768402511273876810223250179607182326661216871121112333141536011773607921544392463765689825307156132194950193406355947051608969953888475891490973502889478901956514355646461104587370134741982778491060399840578496281094812457922507257242657138978386079633745370875813293507392249862840065790052154173678372412185734989257005448215235169119444081868572417404474961434051068739568493779177164456745671950503363619934088220862325553092260669850325758674941815978976560241983595194326468809929645324777466522947740507963935459678167102153194629606393312073393481412219156636789268087571844229571954273231739955733400156226842931885917397155266532150519275869710906079988696115149038020437528873796286513718770126676481280143935900668247073996494719475936512408237005375141170387753003345354205370266393360206499015923655881578549604876136573214712312541822836459269941168850580795862864866391038150588486776078634966591678328100713468639918171052819435445269085491118329142543694587244722243437400324458505568113915756949754708807551928842775067580165110927019209217116315551684707333969897080422066904618678246065430081595025022390581171192109578382712732335249267637191616801107594221576250474275425313044045718045594071256048843463349268569968648392738989488243643079332534281153065546995687056942809465647189894207306731111295924230050021560865488659997015917420032539512560045728135854412345016729984701403441278934154511586016375289764579027601624224005103107684812752115738816396071233804649518269195248002336572159182010891596861183485490261286200244046059623479964427673017482967227764825912869186180850022439052220859957371342324489182797324512083600193994370550638431658640531201424486200548642672032659988000592522623316543916587040383971657520888182903250170968913549024196883801082775381363592095863406669548985577813779433874793041093958470015204179064780532136354754586575630876493510933698016561022163672375081296364593548723343876012941485105155595076098998671983181022082666782221607780238784293768115760053344540460079609215498528454262348156877579453301654042030805361555703126336417084251166027836878093020214398204904703515448109927990501446758932032102277035328653954024010794732030555786634363240475410972510853383559227134520925707720558779260563655022626056608929375596991170946177034514517322100307977712365971706402983070820108873702653307609622523771728204341113618606853968894484062365689298448945974402723989311670463924589378934311726193383952750496863363115495735971994483705411095195519914299195863436493261325591383373591461489142731498974304741679695987890206575073537183971401399161610694098390345456697769105139645773561345956625701576073262724491885595838690722164120815979973244283137402180585095691439342208745342591749889376885697391225346525509004211040529080325568211527104891321655255518789343726203406017659600365705412361381643085684415516870260464471184283612692222189401813032814153897482959316300083565442530881639586722854753692771480611059441071549045759766759184063342878096230120403979853872662355929609060127931693677624963791554504867612020159889940084167753213394057667876954955771727722634100663558165634095084473576629813556645928582300693363558601729704822196281197688140582297137426742073048698776703544330013396076701129598552947576920335929166024910182092484193749990416540426154850524611507917024704450644785969838571531148060010121699173449450396268149372122391971906964275609573614658095872862710353624401177342235201893523959851339221655234516487024637692093373856310283098297967883773804097885107367653629010791261197975106281935813998021154653067796718578924259153623312390753279851863168161204967549485413819817001876925594880637168989563542028650006141801639502923375913814248940159664097889097974563490697454648747695971523739100315634668793788929345746373613873948973221524894938370670839926256527002692355415551061109055629939583004276393641591355684867951587101954596886400175889205357991088915829141890997825671158366156799575011653450220511829163943695827421526383549566108093344905609852799181451367676304503792684426510445231350180923140271452660900662478549327573982994522794383706316112156752388864120843136723673451950936771105918478945645595501757243963085992737104325338296258991269263229181349024038039863184849123882901979113184987979852199708878819110337467936025171635753231178550275075515245098519070341317266787691339600175537809918068711274216760764523739719217247195910013923201675678048066289442242588473204730872217138897458773651120909090437303160947624779587576895351159014229780012945705124670577564048825835332112494159724367003035317935935779473795789441020700634422245991269287795322060614329890606983896921504741670265090241829454483417071605427771036097671010054118648232781895467476653120476960352410297378899682434078811839649702366217016013976801106437691255502110409377183483992116482966484760140883075524076778204511678753979018805271408900979352540135975728109497513322509957176239833153552279873111611810430592092981249826035478757599071252972859617471079443247741613070265458565396170449644738397612934158171933126467052003209814681652099823481072922648932840827430158070031142985197517663201480070274223276499989865422291879936153709328814050920686823968315484474991288928112060170390982971039244489685022375208748215260713373096765934847996343786992329312355881644039792334976917927881493208254773415234661250843451796791101567569412565280735579758608668740886728333267757013930886119415670862591033243856842896537129731701493481845883336786795334288739904242073888465297185903584865877584748695921479142895699797795388238729717030063639017178322375341118513790983736592117486907633494535447153973333536452021139319538409983585795753473429438582793488708199514333441012734907757878073920320259323651763681680562762406449539802383437453954730490019669181590190678586782343672170751130743663047629628831025968732783573509991461004061412854122139104969477442448338487942213163967403221485189799452717172653691731325667438424427316699485051013063330087035412773776786507184573034104807347406422900046197824494211822552796147877495262073816566346672043008998309456329334067290791019029316168509722273589473966045834024976221957264869342152866907953356680674388898470775639981390581619916288882387268249699554742035668818587576601730119399926459675080131174399224790992899965558200715904381743476278370614781672363258238365586943136184884781786368680145612088100340846462497924165795928668837835960882042767925938728946797421787223543086752074138894086261294585122768829746845499544944105165477198800268332738409997029688251561134712934294179349904303929805094654940379207947726633911408531055997121317231937770409583579594296296965576453975808355095392571103067349138631074710288475195007893104044415072112153978215987212998960204620378554308496486905769447236907242394392622942563005627440492447596138855412231112429425304981237843369157311674628200323792331198983483646920485774199348627060450926447145531238422499769612994915356978840389285456162289942820961133607345671509449720499029941357392553380247446839529631035478310999969346989329512974920629491680023985252211031910044710165714441972337548729529733680915395426685042366875698118263048065518122486997032047725407401137646587318099991758070847776477435243550368633420079841008753111417636532088367247586537130502586467176144221211725741331158326324538800640067070054349281452034084416220333011919256994094199140719750634997123175890184886291475203738671677244270604951535206925757389833633278844891031858860978842471913278786674799286388000131219795166372052331809568818067774972233184237295974137861919206557289830589144291844503280663495880620096752453347330796201024755519807498646245267734464809590046552845538086578336331712121178188047833391407179156866024451373519532172999586492806693673563117948617206197813110757346381509651803681241292600349909190929395318782308543302189574075661309314167179272084162487031562012672681368942070707840538809779565124164256009219759399044455570726352991492454780428538042056067594964538527470082692977043958305780834497918606018206640832658332824235732637959032399827865976682868275918956344776145115456818184684441758487698200583450243254659022192472380295746381389056685499612655815191830197199265710774099222158582288001758586425368474398533754069074783922754570926038269735094308226503956068798329752609239657121204424048140082630530055123085212733172234303224713751849944355790215042252283186082243892898155208171403847074604003572241692588295957589784295891246595672009229509965086709417858441832904613665637761535477171598726006359977680847560706634800973952049529483535112298857733038187318322846854405356698481233530572642826810567324387234981846467648592392819600910524496655967096203987611346309677067272379567762212782940715443157491361050236446110633725844967619044733679229141102203791039558606035116078440377387090820323152131101779666176118906080447576393885626677714441616315707019847386794872719644535019391958256632306273431617118880231419715130628118859953247560230414192757956981272887314029559917343717083858306761052492060872969861671534242273183981017730122126644731414300032063373161791185620496858652480461023562316313432331814045363131062676312741720600056606747927214558284805220429952694006426498980339594533388017799873688240216351021207165701229033329446093562054183773841212092465084224055986369773948318924169078641283698818462634848831359807882602637753785354910396817413373096580792678638988429057810280585832561047518364629421458765695904327074749039970219018061547199310009769316708686194515443040744995706598557450347869324612019948009518358827585952654292926477153734708308988798768406745548181687787353083498110174517921870661136510169590784163756168792955755235539872534732177508905477348075680076687294741869042955242562966330829184612611072578825658780693156927103230073597145240455393959505003394463337737997558642588233453346217134391568324941627121348922312587784580514458233100005676373921601011934912651582688902616494123587742424819120541697426085084747436292294257489346802133735093451855955830361817237599661761318200999719719158498415352621809909008312902897536762436356074289712874795609047886639909983147542048018907234551025695867856258510604101107587096625801754010386646282292523274273530334363912277123961076311758827164067253302258545602813692701137823957230511256559030714472073202464777997027184809356936872648544899313792329755834006348868490010303617359725623605279823914639391086181917225843712153269974587636083242124365318340832633550898122031690305821271221499915976115622925166836118896075267976390146413489685599034672889498390215120660002002018858712607082706659019438434445432868534370319656948902697830487029976929721436553140777813845462652402643756896392146509182786430615495994878998158405348828375228620247664731128482179776528434845573423876787744411444197166592311304520623440750672335648868963732292954216366100793398226991743288036014741145423877215629381333521916739534264106902810668261036766510129968690083523770544894386498576631039976554206855054034134044059225779727088563952147162625580269174022943822657049972697493862938112073401645642708450076729297315982682641223416579172072168309241134871262268309055039840293215852800019928556073696820205968084733046112656504071201262704021932115593700703724311266168668363646170683376142529952120485055836893530554149817041847450085933001695002432165004685754145825625823869594944897163366046815901905516357799390721275984273237596057957262138731465539042138972943017347082831107935295531469092325162420772672087661911719676243592665237507899861800175970451950385366744284387325670668258113207755019597812434239432004515909342969278903829647182371073534183427193022426104044018728972321811622715377299069463311881265896844441224320900582118290977651918038580365492115731179348893262718713979068308419811173566120097380263907794116775984662294144390219321021036072605863886929216079638870147387772007289270885695981662629825660418392806456998555194421652246133250563648482950771962205952292076860450745970397863869957905374566627535328897602224205761343383569262644887411380369916568888199929846299919221925411413468594618693752992102810342706710071513512307065567234181013653754975334614331149568748908560583357015583101823267309775497979828200036693154818322226563556982301535823001424124505405796244576826475636014092345721883496139577136151116945108842740632955183703616043700913250619461552016408828045505510483119594674433127929668279351562043289890416754159884240022112628261033398006921529916542529450706969715619438422029430559015892701053314820868681771080208764624169321797885688426363457211543560091273322105378807485034334829952371258892487249029649965427746208617968910469710977157671529488518095582413579511209453003702369323102175195564687949750717463705858615191142720691317253014600344412441416474436953526164802509612684077513544566788065115969348898890136057917793498922192525640743381614411167195254325167912421425978981325682344310996319316611291642737134075126085516329858662690505320162610674208750883463454515601829177758730300141434009671159723927284229475270227447421971512901764062582187839392611128789223257927419738144262003100192740284430255569532906925767554101946197340289733239074485131797792463884272718653619763498072360747666256054092039177956356560923320097545296720104102392021866130222853139112867254008334076192897927871651252464329004399606618941063208586685519349921100916155312654858762020101211149045338474370231225697927570427320078760413798707062633862989609205347397666170659808978852650898528611564183301515200703196130596410214043975077680161796456550295991346908901391438565099426813238826384360039866476085028431036396655098677324465897676622105272662430570548415176906393313072645092506335891677434191867008228449456458044752175816877938415465676476296994269807729472853024970762926860967826479333633631225679152424516599279667520252128266446355379265582935908647317804970222530473759303844529392013980635728768069882737072477035026496251307280043721930327651593363365549637482340797220817106136955578048519563336308014265376432514609405307332038965172645196410747366125033395057266608968566614302365951016680472592770269591201731975092240158212337465421152227933311846006941975816989723507233538991108764714068844293102930800237095615837792333969313827286321383278185678295697991468004422765007083684760704889774780258671449203169375231934519541850552308332521599326914870446736566509710190473584725077858186426734890072164016568754451670322694341813397832536802601778412201082380745070622968851850309769180769436588544339339595150474420477776535332521687160115122331540577200577724885723406254545526144982352857401695829518891545673646193060517671589903984167172808216603068236970678992576967475536694337047336381133357912979595498694495600179826649613104492794723906089574517017424469554274174357728547210583364075493372060099725207936611245325136801392901649143716061632181405830346533324249808184033436152078625943319057289636638687638209123022783766385588463257188366491057235984800490092305555387787181079487688959295819142770443342844642220818041650431741166990842655562749443832895469606371582789558882036034017827140818927553022827664797312665125711315281142184589592759358987105721102751314321385390784331656460883890567339904299262770967788200398107853085072894307902407798967453328127265703715281845192053143338967151070302563511646744372642535246527478160634592252895157274510377992919991979542103148417982897940006814749375970369426670683250336113486372005279018844633822570775398401149740322429841235473017567501470559549821055366466245431817606748618633791198296484493710204912267215758191906783329828525285769611188487806124599933695784847566662057344766741544611967790518376309817387659661676382800679044744041368956798206657448310065843068141490744086367909429054920199641840259491253877108081893100239567634223304795964709321341592082299147642453214537204829587220817758174323882999518447854785929880817921145055011462124032185836854929410841574701779788562753789454551347874632079518760361201426890778317990740546431909386230230921415978979287530005875700701436164028428785819254980835507692632607472576778788807343401281194670510060665555886098843394791751572162862415780167510743467917467960981380890793632420046599539982167791053280685310868424799701441975034901423402891589839549216725572726340317404820118459973742659011949990303810947998590361565393865929457297847994909943615267085218437766386968123762169927163199223819370594332995814091968556681339979918147486947122469219795477090803848600365179550196157270848185083759045726970611946089687471716065499507388657974547474229878198031307236205956208187549967584486950973287121881010169299136744316178722142123892313495973000001219203890943998571583535870677311710433742820605125985023836259794171951790738814055645869207672514628587515752559864214117993532226069438200186029850796174637349310295787535752092284235395004867468012935553132673563660959772623872430076593410403829706220098370137257942057616425682223299962066221888538778128119779890343037187451585961759489422464416762124767784162704290707185563498650230648031677426113265650511268197069447908699859122047766501245063451725799313140417498125949015528998997062091213270859588876683189609431247504002533272688008832299966216370720783212653108995456706377348625090120486110960844010938613533859612388213797585667952761019493701414014986167979465898494824425750464793652061222579226216473060445071670440464823190794908111342406892113814433788299437411979602676561706021723286938019661631086843540553269512140525081815617070139744189950431418438455454107015963454171892783316484220332976991426466481325263836525471079482741018876045436710454653555083485740860046437535291582022242668704648786352287943905545865515267402216750041153261306513660860979389539535804288920774693449112471299657547103786429792664887704181247874226570527746909533396549470708523945967251911388245291323535571415421112863286621577437018549465665217537391003413593501512150184248826029634174062426083206289749307199533841054067672547445616817802166144596461095102460868492757386683548928161607323022585427530964988999233442311338262267742856039286449404198329213854743956252468308037219445633142744378011238555696317327389817310034328033413817970745056304205227483589704989681461072705611178308632390315567388212548453719224492607858975428345518576066603828684929894667767795692288417146013523519776935040812994499349020268305877613281404644747156460483464683006996170770704111643541345371457057024270376239812856661707027018260078806190068133794744144183818966836133986073351727801984414861121123852045797520893264061175365900469119676080408201843457450109451056328912958626246198328289008304059790399674050334851904469222086041130071984411285931347784844701202939224661764255239452282198437385881372528536649241452477307040685063316881063415435056627837128030249583143797588312309540303438796899024312333673984688947961305729595069632992847439766761604507919642432146278601547147247221986662045644678768893436131182139488130621921324867431400765454895882617965709407517758123457748537460237487187411118142416523618030795393818838496993171784563066817089176275777508114315977930538435010477972620181138351174456684389283283654550994219286461663715730632393004594290851193010950583475949669900596643475769282385585978897817380708450942660846557982588874232137455109149187074978729995821938385115737585960602938912550042789155415730725462435922390422333425531416006777695771037184111278483812338917041678677796131013680695992431243772275673494233377700820035784723460398212436110957558662904288445097629849017008497880872787941210189354445521586382795756244193576809903936460811281144631054673656058526731550470510480475419548477700242965838543987606530052255941256389312669451923125871748480792782794392490927046256759128213622244058692999855019526203591206186181266456744281836713213953466754892172233565726448935605641580912877238323003151826958735179261756121988348638871653754568756128781585860746983935297670576180767573501196783433612794523896074660004373771282395659250907337289559990142296264099343696939473551331337493888626237126004300053707851201047218500916383367178378120142387050042054665008168134092886898744192923493010394280593428034049883873641492478626285961064938591969470420735995648551884149348805279638670759124392058489729274694198880209942696207159173721184650543871401923211647912319779117236493390189064834017359979127792074159668446124959931125276236456538662433984598207234694234284171893589553731807494745983410029540934383522314479516938587629565270251516956467256181337114654204150317427693163547785428278159913688031726356444081349315198177788711082600579491908287835344468189408396182048372779812678438435157261782202940362880541376535390968391886224829131042061984404722452226692224414804848519156358674052074630229807130010628919955973244728762934070597414788657087449868564184039485028739515372177015484511786978119218985082721757383516995492941102110735309641359155662279559409521057012840158512572500711950799976524486845362055104661991231190588711603192825657107574727299713075155161427526483050172860543041648075459862750403607117972071926875086265014347183822489688310745984969321489755739194995720140613688428195531113387637450389094349934914070477214278533467847004451990352921636759604124370836943251265641379388865212113457418521922732222891556873409840079752306846471653434269300706802957326979773211809857837206599010200023412593675264034354474029532517407805566858615102854219385710121827319157550440259347800848519022893037671856394565020544545490012684901536324083342623664715583543052799348059752571750157592352780348185121541224898082983141226683557454646859167719262659941582899167937642553678315122141664547184684613964426790782603589183827056588249477922889167307435469976583914521446107611562958472600818701017781319010441549604430183622700001401399132197505476799416012294087603782037989287019369149366478674442157942852177241529274102163491909828698833573511738766995410342111931283358714032378954604988347547596101393884854916068273949787256222818811220972165353895689126372980519094861587417760977775126789704693974932328789659833465064563180845018780162475826331478475838264284955626282370175846098548830106337875127400600875175630151223637096882002923422800703663551655440474734555225796417349981415096519579925825318137799688343792924354656398454139384867117573859448866315071915838122450097029061294445908014559153062862101919172761494396098375894829447525902604699601915505777744356771345632581664210851941771703220593618216921238197027491070553572895270372118058302425491716639583562254397346926200229810256991019983487193168657425499349093163472026874682392327304573556232231510953483808759761981139723954932430126666380119254630515563391498669932473099409629703622833852925761046194760057222164020377897933422049896298323154841461804073578239056342721533267029398588076597695727761082450414240423639391510403651412282555913773663980297982322301408913479386201708257180586778343052711223305690432406987084309787666239703012485576209493118383573630465096480066786172105760655386005194496216299040476804075865483579885910431935364807784761885832457090120718100731544126401577324149477903651184018466784128939753986040459262918137743444996917941341471181041382007687696119965067556323586767972126368982485109555300770228674666203394065573814383900473651002623899521538518280832429539831752235438635133955894721562003297843154700678163354016360530182222237286082402641212010570947055537014650859612736288122379035102105711894944677997139114978984364976305535792314337538887728335260268540368387237270254275620983783365979891671563505206177939751411451730148065440937688216793253793710914523098150259289686401899799272133504022823876237204595190116861078990595640714768706795717659668327679607626962311721267945543773804846310391971966560318411837728412008312511736752209442041229483694242527502351987674561196692228605158240309023037950833193285088054528832261811576366046442258525706875508598116620294960258080693870723636002475014718676046148045209592376826714347374144866471031073578414382019014170207727939162203564230788417330659065291285875574243214110272725526553893868745652680425882151135097351289701917951509162948615914994894275034366603320618812217938593120177438450883511041918900743173781470009403209571059625220947956231962660513434824652682677670777323583367402816118145059968327002795929246423418235827430257013486832185704145988141549281259039824765843339171969440579923982037437140488861918123891154938830705822908546751923959536784342932482586721330947249770254846963802864921781576693252887639005931010898659789582464922268482057335286119591535178929784449782825832348977615419467644204719722708090914414405947260791976328216421533994773516861159808220842982946547040166222859345029038580183319623092385429336634583300801855378256727204060614766779417596976041650218368648265519320407766117971106468938371426852632416225828597319034015014573660374922936201097891993101099572541316278575641833824047635488249011245024917162583135172380207990897915960847266564003841089678610796046595688108196283673185833263308741022411103285836968503693897824784558827107877012422347533749532245516220359242197721802813854881470256825307348888456580789544728423318853145102466095542620645658925410464850606605490630187138330671325428504513026235467045688913877767300826989291865275676546697377857118316594743106734271024380337168045042636989124635734208561742021397364750117127721683739185112627338363275126519483341819320215519879421599231053721170990535599912646920885400600960277097703053338707816139746519678995854630419922876200513865833298462913281921883565938253871940929478844839641764229678011550750796855448836461356937858052149545627133287144002285200725511687019770198616267658828504641891604580339090571159608943164874984123476738504825419246326335050374707175359807618436151806147287142067103795816952070120081589549609782575181729318118172084582650958987790809435650034900941102737279045183649778537598249563642820156636269302983506892180295360778503474848167538883623441976628621114208862727806934023835654842548228059652980758924677175896073738928266816719311485093878942143043303569011662590347932180920888969842325820531008119762160553521442069078332185894304507856461667394263565619103118208439338676260957494362624570700068264214256604311321393155403264499618123728535504470714755252988344630500416751238895748454694057218486879187259561446920526030115203540078816568931272893937601957827311548452433066017325797099126498060672567727051866410671673034110336845276846516448007676439910360247941589162085634464322031959051558758600634787801821125424116982886965908275076196214923477365804415235032328201335235838275287523073571451880974967227874890683432500735832988133888230830107973158594487592674086405267000115857966196588821326530121572768355866120186977181746421505998470527551308387304082484971867175084446837533911915802267015027016152308242515630089525021640757591459968325229074501676570551276263856758274336921297687036992673594342628949851246273088516799514844889511909929103409480339265473724510275326388832488606273209269290690411401688044013202280325882452977846804022847192970342655417013883943253305795308509003981445675032253164832634237539530612932839534893215403840104261281141965576572122673894143869040096110228974874229249011544471076885024414931040836368448875327768411349748913960710564182516020569465450410740086198708799556760807598132056501939434250069824347900003398134972593921887080507743964337589837393607805847089274936667413798977854137036073172611138698200817546759340159778721477471394658728752850879604771935928476206245215095540969135150881983945520091013821325193464814490466024813528299693390976162327568349717305540186138614516870656372969810528831350095449452162268675614133330971009121637433547369386723710121924489391411455881257938583213057007794410781016850946578847976413904111829619191004577333420868453509092773041994508540403592855696535241399887393722308840769126771114253851741428810941407338312180041042623330719739226562323950384840581795110183976153051169903871934808170129945678608927215406284678696808444843030725142829469970122312203668581337928903447323591319260879876692981947512189662334480022795315370553258872740055323644057247536905367561425724400835522921826682899469152440401992196246120139101457914774533297777272455060241639469816427832712103879737985095592224732078744983115249637271420130630152198147460672274765117737069495641836062114433254825003199247494498534900144099278499624013411211781458351573604268603038250459257811854262232900729271417045743208172745005616907261179782966472638925333790729927769480967298747793144634418958878599913232425639751079153813455940425412259359568699509617007718405467487602842591362544128850542218289607394289932588562422919442766194489356534864531911380592548412601059267841057730331942070793925963051789187840527740564149752183207981537185624461169622341093737056002966613795308335128745526789034760765415920876998599758617196308299083232711837403052062658587161244593904330634909565781398583097698755650128738184889242447896625759292976656194789905692223684404912135470152038499061462283456729564061865371060255905336245166251760843982223669771595853198395920115001591993488555871890035453510321497431497385555026034022954807376341710327883585861929030829121951919747084499765218345460014697546695240333592378567998735433834748368542933659742541489555853725935144933651638665065465975266201067468255117405164510223698977662234985320082424192997671632035172805057416151584302100534850620297133409705232274145127690625655841899166855973072949629793875970233626554541862895201060977058210905586961578654253427230617176013116947142342685554057679579621931649111577076725785809352044802812283792625437908961708537229053699729185448055863802900671253285026500240353376573250536412400487125386071252924393751121315075948298804935217877859790259617217100495781730207409078559606354602489366594870925065440194667102592057636099575588173648233343535159548999965304062458278460139335851605563362969269690603036317205544699159200732705478277743932826971125061303428779756110393300632024826599651973342769207681503515099162393113710341126140118027313931672597596121983550029194177441392405556406717806929072171606816352316480072784605606677535386345452916477234175138362816766934723201970453478561609937736747818984182983689169537792810823720489550640868852915069720734027975348420507872575313142631999417026796673177114441519652456326361433738570884652953841088479889082064035544843764705266943524587168021321494460037923754594672949636376131091500094009390916207751471613029595083470849841940182601041073180012019484200228929385763183117066752610998327961489168632605652078775827712182518032303389458122688021571990744260662608370916950045968589637265334216793626356551187766544461768196574353690325984985144903455901702490829669465175497245675724590167282391856655681690466880803964639345037536722904904580597927174266495078236479962494554287540635949944147623337347401927683292603695890881205897412094109901170023731233544651195622414154877846621624644523985197493805213588633223267158754608098090685498193323143096733786521236297448272790976403243773694683823778670610625664021444117632022987140289592770413219023956973349969611791707891407739845826273495418326289846215600008267920885205035823885042922419286540335755942501638960729853845243396794344548336643468269606957536453616784689648086912688378831088387797830492852919971981228857406356527750783491716012159811427134839254150051695635208457139774160819631889834622570580983092121646081763231960694780637206269451859531331194007942788353391867064403557861624327342413807764792424325108544581499624518911759000583652050336205942253144828990469028765101561837879141117548108298232481984007245281330053776476292765753344766314067129842337465729559199981691782906811005077812361803409867048252288874888441938291147001380008003990044939446227028553719588818455397218775964981564282968509859790823131388972901520872646467135527391615074806022427144948219579216042172404803952319116126561658381035625389029740586637999064916001006668148615254747782265131182778072849584683029923521732985931816662702088395553231370541623085679144837050009683583727045431869998159133039379658861034854446030764764112249155869776765145268944355051978264063394574177763411940362363492953872407536283110535360338398991548214283738925270146974292329049823127884650592560882743516391434538885724771498116683904533299626858569939809907268412641197432065665872034431232607640918094370286965212934645175462533421814867948117042209536625022945219664262007604590519733895362061586396786862253299212020529949461249818909861821355628930082429160849361980546178434152030379268294787780256438620339836006625780218487377220594662099549246557965703500125389701650802881877128803985022605462296865130413321010032139497106514535331693263223854714236030806184045460298683915673185582067812405124284840678204144976077117743753443546916166147161229929383103292745355289059663746956808292535051669389634968698525885100437576239724551465412837664772905655610347677921212033986049864435477631592671808534065081070975792076535703348841512888914655670714332879914344602183344089987127621568005090248164969935250407548716138442384662812374489387972836389538806187821716063396387412190769008123110171567105686165874496449923985842063498076340107746045505319565470253199051500718235887529935708079752850741489827682985578572099659423610418751481006002780108527165203878585231682201521522211382474617917990055371139367493158719681048103878383112448163472140683592256417069371314690551237649940279029642135919785589342184325670144184359607637543209107123366759153154116777813401224842617986514922060711066366067930856065157437747131329946740851298957183478002971452343775408161979164078966368460784204091869882484391200883901405376279960410789823144661204452493605376759912608488449543305411480006986033544424195724346625483180545213981353922389975810698864764395155007635824071762441401098564314109209736985835161859127355837294427772667868393361743173992170048503365287465903918905019827864516185275304396018078714281418445385783394136776910618403153041233762380167024331466002053715681371323613742732926077737904158638542320583790506963673172384360602980185654317037862596053113740221266286710770758094638728080941914215443741141084654948387624221424186705212113332051449519055883143628248637537794457244220776389933909087364505583774946669368797028874513311188737810471893902506956508444839013077559419656507419476939631828882735927496120251274079034266663739527241578193388815256701185003351664281338650954710309859680842359076844506726356905201846367678083796675535901689835863337671842449441477884422195594683681297331203289863890749580690572755353546564836764067074596183963068866639789069849840070394394469843484999962112804052690455541626540658865685136971415782254083258641632056157966740870276681757918039785026670107584549900341722850641324951917878167551889237954198872552653022901888543861522515399472793369436450599098114039447903441127962262322029777827818496429434541105140381395343266807810860158669245697477303292853104289808384418293740370811830525851064822557363756817301684970007481373107456327810378168246841258234529612381192069598966303169172512153304170954259112671704799653132255593333055358634552792441206091823062885358986052431508873444582933781336088157501382144976003220639499370710596138045149225373495195321482409438074788272131620581298350101757486127990581351639481557745624216416421522609968165546666548794835069910719439680838845125510324259090840469083512162066806489786556554408059682038651525995694387203620992737053406815343812830588319594151000865688522703098278415899238442082383239172653920757863462519953020462029304349047965039865874031740882745625777278302909215089760674809491745138025094459647978509712710072312471846407279176949259613995369865921315317363658153270903949123936665241732493467749244233037740696508471382492989642342065653699382914723451546444885255657367771136511989169002393925241362517764558229649700991372651354497969251551009987768366381218431461355839481583083222572539059832775796460775660758555154048497349728820100909205159210218496322336537109137486803946276503306363551306818111079632888662259065756260005072567256627186979856086682145922812572039858616715949144447242158002067154410069511857464055903834521773395684505221189534613430942052922343208814207094028299567111738853761580253417049621788287170210004271183271506171006867829043676573247940390730667185772651204014734235243447785493749588254492680508276266114736637431307374862238389980462752599264252083172728566721534003370786338884251838066137474800217143274845599281740601609317053228962584142279376844819266051686956458476648772345246223092039638273146832062517061352263170267302988362334775363630112056571326820153651716985274015169171146842653888073480787516507438971609595176491056099747516319551356763604646239751075364631275892139532225066485835552046046798668740528731623641712882964606021414195627913269845948276492397940134504330933029691706591348270869819589242076741343091776703788235188613614418506754121162585409173315697174086402332940335678719363672370642673521156419851953666917217126019108034191222063323083994008074244410654329140284652715818609547026925508890123490908724576863337596975320820225374216874064975166844762303430717864865541278377008432311476201509915708716810545279634447010251868831618715204994128346591445392292251712365605554981319824576775731619907903717108493908952939651512482112044117632922356268972631684164192807248010235438905801949646171846081470111240225974901331062114825602274627010821851724712001532237834757484412255142057990400212786708321971829310286998006471949491059897824825851945015088811881779823130686196189690271661473497213331241949626120882636801376148881923818743930318209038882129820242649851411807115744746625427643723710009324133949138499818415601608876449519491543254070745345919367359621866236085488513078492407855086074508611376081019817222107365822220202396425506408698085134279536203741404846291566830716805329666712367651447710268825862935588746170600317542573003051830274974074223274727835675749154624620856828294056495436770344536658832144690893329865055887194287967143656960138219559996996935944423090198609483859044339921122490672938611991233764791482996433370100956946052688011955288070776845845275947124561627138356792165168884610531972748212545412060902120690672915793049417227637304643341185257346440227461809381771265869254261601638454465136235381581636550845878667279709333056884707665416329671877932189169567407894563805939591906421140040323320075195341466889750741241746430583227960528536270727561457921045240491823147999377089127937122374355244029291798671076027598900483270955221568537780674516264710174872627605593196052604727060866330168400917180172524789374175587985620760207128192960077606039691932634410462301172608468485344566233885121331176860416407471124605004418853437130008078072474462023952261666741323448409626089293250941557965297505386057833878389620992810957681137123631284954879775921503927547900566183693324336826769427092902556131400169316015476908041046376251144156390772815722203617405421950355287359984203114810753680002925245688871491979940952004350232592322175360611702586496634164569027725439091647891088668381828868324402267254586134066343064073443852663473190733465725957421250891414476559936842930670158036962903320152807910749832381874358618830285004748918503502679639101932045055408598922996173659493189637797515523956154680887817691250633716344156365376532016875936004341360738571778675160145378829525004083671872345689864978857109942939784232529794360510209516869503221886151449125333088826060889538861040800782440168517346999182162927697056851441259737634492572114127078552005142736995043410672042813584020764274712095576195830888038130438705746624416383050540827807641334644897295991908866005602672861966946855890724761285619745751602818942089283656805848563399154601835322850852731231098126626779841809321882975398450686845204732349318379805063807727334315213401118322429769962167238885516848278856886023723936476195471350042381266124691121199511738495676740555536149330168659627954031002046255823398645302017663471273225014822738010601671177745963580728938911936032795276788805141477203250735529879272723834718244393006521040760001636731279995093133253505089073648595597857414777735047490213384272890400141141619672021215134508778872983185208730675087926112175154056822029428419534015905125871463058611212564606784998595643888989464900679139029255156629526218418568287701614493153312495435512248520985362114501310664437506043780057002607336643809157132253731095034853880352450785472292866565941967534284326087650561185968284618711427460979608886609254571769534184571547752753694440929584707673569690984214802423467478311576324831154682456554887924319883654467541165479133723878830089926071030065950236390736182036891391797037412348495515261340737018432402546384334582677437384434709155231155794323771179780187896085302432569944992832766213540987613693043835046898208272903274400600936507826500516671343226221247550371629055429929983310125674571017934389531766802606760305011107025150630079974073764223122056603594280334859215339141280110397573703455572528625742191550777890089298609989794208746208152266960472698449362513422740285541457784775174861800036636449676814728809860635791676726314890973489516388885746840450864543038648486321692750262584858982441742651052282957742127696651400317701516359798478108752271389664432709168236101716802039372509691041609141282663534237424627770851668310475197085005638489009646150491552075793394801590071316623135914329019812636420216112254609777449753787387665480539901029467384657753935463952686759765913204403475803168372346704115832838272710269862756372198869050167883295386121763029375590109068070576438360886803473018475644733876436224268145033417210469153860431524596797674757248930528241850849978566220918962951692571047556950042507684308586061181487539113038577623949652718165655860542761609674098347452037319452638517721198221332101053133207370203098724564068237963148145818997537000138352964341066846959358004793765805735425948484340053382588003964381303594420054343001877549210702177382299557451530075908968234047811799773071390297187185220679017502418931193740031566083084818962282792292957924310575590814678579291252120213780394136877179908358837922866422889569915421917218329227051166607546821719615824075888606777552196677729039230692819536364953769687056096010322251478703547855040797520241871660246110876787491375991484828788529320365620873873282758633056664784029183143729590431912104183966236211727475255556524147899746815587591901485227233884981855857321740276751686795565151386247223173830929222516710642776373369758726360175914162719212759280912209459915692005579892011353548039714003142444378974988471151756554693766291927368311809341500699363041886485054962475198510223706259034210539257916606493298094681079218647882346226067464528495907077158393982679458963691640668182480998146784539556414713285349222191462867078977210504564822445127018744176031572827761186577552001215183232928275610069132964965687541771308186459810178155183848213937261484846351227085612578711310912860238640536772923905866727767361468388165770322618489596601650767335946707533895608890090033700672396036224302873658166108303127894301612174099237647548566269577215032291185424516161842766675885426383840651846093874936881019305964337533510644548397352203091233088413680702797670283026875240215166950319079794093899493622393391096490191649920334990207154015809347673238332123536489253621615750455634375221917217681738465559091063345745363931988778254745361603940389410878039260319062516732204988146157037584009874503886788135090566451897994258023772726283618994650027815629622180712642110085314429081427598214853803071608504570273211580356648126152295830136140191568988865378509526092235685562069018599425896866086506273622610856433142683982388081462804224445360616016468839133700082900477984979976791360617758632409418826664055861132325311245150880631204221223670209971283287532554731101328021527181134517064831135610289951938093997893506471143649378842829264072110940680577760786389935595511124956447497752628812910431738957768289546229479927877636570872518013239527657694028096419084392064473306627410091232010498735811370150286952420311336110436535195481739422307427646920758793650779375824852835294346714755995578548305490284426949191074242722716445392290171287735133754289901149944193071955941927282382532312589768826954543546783150001635239214019168802577631181769326758207847042202674646404109083490280357644943785825024564858527093546583393068678599635079999310741643606806581400566561405367515593081993085145046660756640862395871942930685576009086092676401406948787339886233011977194306670732646325545739564936552506764520667307770780308859265186484638286979197364501428262967183815158235902619560850411435365175702402017524513525130466479703944063833748546492680794742687612803133119961702076375513314715371513348518676424568961531585960517170452845372248144502052296996931478248305707856825797246233077811037706098292816542881391474323960936428353535492261083656708555099712475961457442418834973090538596511619033287803340381749035360391562648533094752418126826006777117433281342607247216616988474346819396095357672660490806402025668283059084662473368696043903787192729860378399224572388492099575366098485224979272183335657018219112947093530108400405154184342325075148251233930801742488314388419730030071833398395090231412008880807776613538278864808539593135060916871995690477599593896800889681857504867668141816258856899784861126295395541821386152798654648304135922635657307996550506534450092204178841529441178299103717088575833284864545940764799652434416441487400759605728956348247381020544489215230761210165383861290231347603373438924602049016973603354925847709157628148181734234160995769683043499989020088610057829810249420115997789757421834451044562723011594092790087039502577311997798808541108456337698097291428590096435101796439486293462667781669188165054434791438416093921196807534102318440230493465358216164021472530065164719201402209154359064330689422698064948093740310560330495721821270483368871477378988578172966787609405093089260109541464511916771754687588322250346733416948645708677565461677858686198861625607815787854372157634305193354679401417507186180611889997394591335443955909194582768682873343249443356388806301761034720647546754704522506397991436745870885021362335439574476902418569287406022069368961624343265948183111493387610862498342067753968490818948074971422006419593751276124767178633488294436448697388918354708157035752767537992904004835067634413469877686861727408662468993980554757642925317445584932633471182189722563471887444074094688797376714557495680954668111668008887776585628866654145538594753364285573620066267257330313259849242208660490016990966414732988886541144370711206932286716931922609745104908526382686803363837930289386181589355783227526755685838336388487469665112818338016656794540545374498566015535564142349779769649116502211062622711875037684185410107787117170728833091956382148671100074250036698404120851997907215659499907563974001786833676584030027915886910964684880869552123394263783021953673904508356117787435218352594186929380278403667550442893965547077848314655944039474898718620213923839362370847466213902736793388337766365920541431157061233488658312295261663027021623945843154965728904682663623184512495220214236287948066470670439182934536819127353472598557862197817982854261772619451092561057454380408776332478053475169109484148721760807243038309051983714938093549842529210339536424382321961733035294076758440832645818054406556133155698514949397673723503481233569830101093326833052178568322899828207039971040480670386831061284604492557105980795739856431614421802201701610749982814572989484679299505095519165680692539783798415523876929750383935575933422298106960260676989816837934916668776700525575372300451337738510242464948847663939965635415848924084432868377234208851472768268320265323733451768623199535184413625004864463404797554939353272324003542138972736048678208493549655405773395414333410375717200173857084165873377711254765296658364415402027529648420882445109011924099351732729149148876867602758065794859669849134425691407347856807716241289642429230009022166044254721536635733603420618819562223068670398749226134892925784953562333592910598327217149228725785018589589061786829741860992380435099709641277024138751069988256128783983694050551602072979492396770716477547451697804639535574234093145720473103328138612325329054547425656841840603564544975911353521287466026376607689720559276168007076977886237134908962299952264949490724546810938251649963874947939966128020397006218110025534123578224674482968397499580974083821168975700917676349971264310028313180838645331252627087023292257643546597089304094031846619145663643407617942117117823198472089312706568445806429830589918419794670589748107097222536656990331182882440307623553457206782161971466422528350970452164755094452650130107319964618494168649599794545587200540190650481398186591635321197758575758544774595073698714130978542795902557203034896796798693874385449562534251887295500619777486539493958143309975229274032225224423610763212800387225368432458206901502424793221345112552971871969325931276593999121411476469360231387408216418331360300491098750066755334620791929910346334134221914863215893802007483544481734351478789446209465460281496226516127193612365569046259922345561219782189771702249959623154257672372431549393421887084935678871138610648093486773409089454507133804402591930928280490152611617565324552633092561329758617145604332310775912207554662058793039254877066696326438462184483119896444594507570147910055569974825319638265753656266094438526716420652168684477178509063754969852401784332591166217233328770693714413653076010488480848193885286790851183216525920979959139474786553630768801266464667748488911512171494375604628230515958416651898735370674076535163537161064849192279944086915688260439046080260301326650498615510179594116287281415162572442930866992728585242244640033296271754050079578913619925120626340958316605880457019885881032084529786259874513746158184140008557204807893786599424683866407634984989205887159805828801868605042133584344507695653177060778420065583033002547572287378624442533096184229010268727950838475364581636381795772854406317289086094900147792602772154239277573397717887580977366888480006776030720131762628599327382635615494908149795820301230680024140786985369999853396688362109079634217271596761188207620680022937029473284122790307351449176128386203187980594508391517909336747342451152595755933765347729125880547942902307138489590562493662311948755238462096479391367480503724973129679038110393988942393851619126403880042026425429799807046523557901412577225675598860119035349158064248862232178913279762821443508756429117789388889583290984588673535335747944714045910869826748459936608553291970637232755678106861579246282687026776417591286146113006819623990699077559792659144905244455405872031129123386052637882267876213949248939393161883405038499803650539915248143287234404532498320851414650737592992145052356447388308049583210634191759458276568159954773970521650581649202462488365698473440069593622371719530408177881728237036831209817471785697212379744092111251993480701372437363458911051988397817030969036812064498085717659622552541186938738695900438296596509007592593972136518035311023419090166219291450338247118455171202747183727334270003549865263360774833658876803187732228338213894103801463363305505648464179109741819316130336718943758331231543934374845886144455303552403280825687885724209390108772007001610183094380715495557345909754143336265748466414314193101955790852205617527456083531299727955637259941472566082048387106303699401729841960360967347107352594566514189947469628902088989435983702898209934731652535080809057550628203829818450209528326671078742538278865289690148913472572362626165247216923130267360464220576683756870454049927410303283973004845219227986985538175060950095583530875527924699922866928845841527322647986359544215723205780563413844272660854373151208923201221329879470019708530229886880532914971439754678107333349152258880232910560088524568389934228558212685654891477141679287476189300733323413202362631359032922111556263193808626626473653405213533863506947506116392966120246904453373056580377370893569820922598870228349799138358245062196338528867540129238084666486351892812710654646276334680386420646429069796642125296062968135871935419711835163386408817547953618966227580504186749491984766809409037619224574056478604884150529047199677807173762699418100561485634866046463703487933200266453124679221262138955569485928171011380851836230462569787986692095935884673721684361302623391981145136692525292565396365008718728892457248004903573010748705202182182147799446019147678917022607803448917870247596326947142475194302453597582144818143783586810842731639598007398105673582936448030793408405208988529026479733720338457115455928346024491692605663719082936715207272470844271273100607506275024072615856575475019435896655033129604209371157604837920335220102601821289035885308966339990540831554961714138682487924123960345627587687791850497943254822106313451963018219390959127376392319780503873013433224410160182123647760366201746065336608805875013161640158994022159831025877715618454486362499050751936253621448667655509694819186844759074666319723328227383995208982010189171694096620273283771969777235493663106575854912813840785220120232913218720433892089113357439225505997641195280928597011884603939881022195094495688043025068395119425450275225143372246069465503185558241026139172878127649850597375022899869111044619658709932888639987952820201944349857154704430365531054121156293106019794783901090203975081472108107861023608214269851994607424466799072883259528020341945496679706313042741286609552165823636191470750420082548950063725131494058490983122171281313416033952725466868858730763712952196588828568192201893164569071746474203382702260769953443595114763050567781264003210291858621899265940455263197913832978415655541964056315070681922348530631952490548498416804419782399867986380235017335619436379343124652645447562427488089874938183327342100455734236341866670493302957890631543334802714925066212076012485254323450728188758473989102879362825157007048199610667074256944064421348435264897391866184860266582298450226139516968909181415464967732454787220878754059875555222257233435467584901971052950455444655023225409087458528639064112374775835084806064343240519761827072523590925919733205505001776060873400546361845439567905045294430840437918677435172543205430974280242224560586060128346963266468377288759148889238036962257906665867196576049161585505305848512685257302162453820531082676070281912428165120772305898760574525113222365331946793754493294437719238816622308853457506403497717699797177047445245827193555781420626303315806609870247764464882558028157627846475780075764098810667396964631313899381452101805950112186873830881553796190904521784950151803741227536143971987974778483815090752079161904123373682123933493890464629113879686048135780445723388478109875470041032470701044125375033600881552726998397262821015077613881409491935393553497714474773783049116363096637137455030852414111124286214752382293866119938040599536952832081572898386002396395482233599414278948059036898027646661279451114755376693157167921306218340614890630110363715118093739771026711383698109777272501628985735535377885930549941565142726868447970259928274708815992570458529743578125729588176785359882134024204505229321710421916081030506929110674332170463287513935710954406433060745104386868525730226601279437170043203253222861283329897440730286005256827734424922460541523423673395203699795418754470512521069766804504285085635756250167187121866571387485063915284153728669800653344512502364030786579448283017307825548562271607237436293416769365542308487252666278242420500393185611826025125121723487374024459932387082165490110643282256744190584529004766121889798622479270324951386258225298040757858001693415384912847943296875030603960977889503327876016168615041439557729258358864805456471918757397822326751063945184818499444283680399994846679312941684473398499372072455680722598294804565163092632884998293501809205837282692971943779627775497591431488059117167647952685623048902672735255013680034813643917796010189984103597560483907563805095093995230442930256083070902786438496079342044370982591504142106128077704987440556164978532295358244865784257494444808109408363698706590221580949854578211108008150719588242963177086082494812295280099397506009703217248353036992530197210355168523093082242127966246206331372048328954933069676381243178571701801580163669158566487953389671894423992578193377928527901517386590628412682230700319091288486289641362835752750020521087594383241342338517260076874151056261906654156343835731713014230888309844855788434013808595513134724178275210582784939642569248401037357769905537761783256547185180579846234764126996636635227613358778079926398646153151602877961047544481488619120205495098844257525915422543395455186297040614466978044693670108970431452591182175534299087961498599469733289018812080479534617315325301711760235063871970321050329070222158561837541467068659888590692773078668708351697056488779573881799883712727005559979301873211112249697400513377363646317356140903033505982510193512736501642957330171901525857311354930405472983421360620712697269618418776923557090230931303628290116156599273151807972371148445046882887689240629647518109984347013647779205887715648139237285272956775699005622659763656499361004214956547342407439406904604121626065996705221542127676729421612996392708714859208073327848930999998312604066734395546221070511304129545618633100779388135720729531569515544047863783741218850384212172301120498135983138085478164535862436730983637573441390997962039988731362458775327880960459273164500532121870015632657744883531853474642107733796909597390013556974520395142943654544270112212865592614135808087550103756955662321422203458433548778842603729117673406012026434633394263862472652691818974227120066588350783404910016293601583755853066227849670062773797496916739178308630487743497814561333469690773810766017757911515648868465358372154579275614440168809663437177109908494279422832569780191840308568723457674714844590025504018408124532296224802541417983927297862296761588580987395902810403117834168403412914095701510927606261748923918414764961712226049324169428769544622717557059894418818659570188190313282587164106994245892517412344292502426331408817458981446140650654043766297797109570307366606802973996058169771950644646897876208939032826410345474140643662306975838491976580148963869286125701529710465284986069156687725071869572847563170183679473470633854479626352407751560599156142185454638274402490205081389238427686585851189931287193328725502731304900964259966884606619653162400051794301407224649182215334227676047144415624570956649859752258032318362140143577291761333309747877969269634138783459335467696842906010731790301284718434480396713160782969116388694827822123929055810919571526656271029272933465107843295991163452500580855611623641087697503980557667589611599673890316370118295049792531626968643404460393164355579530472339656727524086170431841643890106286633024612147924160928170994463864494380395367681995913184245650290226923669241740856358447579616761866815852691637160584406449678377395914217295436087290411109198712519229719089655107599563765423939971199117804758572143645626870229596649134757856045632489541819720224874167362214016111061663170556893768765667219450855505245176143844527305477386330429416597766852196809429137370866302154856560334466250791122962915707555193615755838048492990644622327511747604152860354644758952768575178486795983002887338331832730609114135445060578322125720590448995243318847559574477980631900634916962231672800206841041601690287924477537107302190019492795550651122907169745003262424878683158581793363124674479223634664592453412791796652492087779225525772009393431854718366011488103285979027266006556246001359143963648320374352945925656466996204579336973789173485766831840137458508672936425336196029473998954967871244647050744205574527752601360212339818650562271710480512264416344982783717350665814993659051568173407028959147936578859572055489121655978824884301620259762738929908725697949967757452135464307975925224435614966861697212337826368698061990672105532179064341747796405112887748467437409271586773305451705707930069139872891081809945627701601125261577394347852510001889445374018622555792117426468802866251306441547515608845354618178363677731223263978913156813590582723187263696229854011292269545518895418490102019432920374259052042953706831698656750726150371104333867356525932341887583879530949231423162646930464268110944120801114552853949346810332548097900397362045738380926811785568597348714789088143817886401535041377862067323129018164948091727945232009459070007988292173891368853425093065766499515867033283471462969508589644993738166390323467638383249744642653252783298567853994177683370276627093468339981520690184537872296414775873936576897781286232432566841527447518971947264353702308394654705274108917815909138083762124927347103927950549045712795122674816047977643366129808672333771494612364297027265835062243488928492594372112335816239464630160140985330303696428546410555455108556879577182588880903500102907202411868415624392014603582966606829246415364823691387521510187065606143169920262759968483926096330525786045395153846503120267561385701248638965589242867641844703782219058827568836155723743660030760850431688228329820084277469245185034641071259722821753188601792701259493065451071684185313062273728489860316167072615399722305184627254063455251454388310654795831708016436014935021689734949807100012110370436594112014808189018411543207423586173615261884453878770277969925152908742264329467151959476570375071020109835188645150495052330321955117542909317053416722889094826982246989869844818559387253695097634818271679689256091528920802976328391718328390422014878079581802192726847727487115978991197810124510089828914395880520544238249454262029680405203977462343192789973099761906396317178251203986955750269923999858048308027772110619762418583345031237504843781265992623553599031967078926349215528750485639745662708992152038400167786277621705788705576312588046988994399505454535186454850953228588781066760125950669111816852474663800124324436094024418987992373157380668228838149473926403090175952857959755987621095537658788699109884827485529595822427135049712580366570564999149385185707993765521757297203001150544261900543705063575321036896297036436813408573542672740237450954340173067458188554766206723684889083226946186000434696098118786084827220834826152526531928031142494950362489452288244317025683721698590005482304295536580839683774604417287923786302495109073989764822402807811819044302569509892888370499998329317159154129761785434219693915814475065159155802316913374224417661085431612578758449623454696451097328852395844109781272121646259880639352288968587026610851339712637143513108138714130162135928756009596994705690015171791339979465986170598549021562980809448462647646259346219103822734735533493434508552964693492220527829430526740005742508858232965089258518529822600346806087433803209129824275031720310737898865192908583783471924436499351880076447838777681697172548145676123019335787508905102694287561461838707968487821058997872506355534464458200043358878051898062007795021420031559455107836169841953332565441798661310293493050588136805763446124588421461678808627304505993547765222120851525629582204782206348585908719706124332380590935932417287503673948696734598862335342138468027062961517777858956418317752847838279695973508966787613041028139322237503800577148753116665543717595200886077565172298762294422114700225810557005303537536548493805381090064608349912596909023322043085492539136881459151211113321340587978073557764472272459521973674050848774159683315896307065988419133807498884216930401790103757977069023191481881279999979174264857122399321222877458798061417042960882810653225546162684970496918247599023365425797424626509267765024891896732265574901211061494723214172648994567329589373912097043279198162930787545039461245179243379143212879725651972984941099264035733441666550656771607771088626852188269679918403910457340193415805134090847328838563623172471550185328383467070517917222773553727277662081113747186213914739772925072745248703168280186397575209480329457428110620434366061324211001571791388450203146618983860911349787939043467822002358662508260028694157599412854982008379094583384158269771302070677418858808785889243506827562529611242210825156683363130636718787336064262902303180739022401374780456729593346657192243604877352873120908792443593882658090102469669768896282178287932962882900794612598397712347744701927570070687041480979468995321170811802405919350020201277761850698751054643637344144410022146347185170058141666131168216654712625313781765987062142958553491998181978249053077157518500920365932883814272054519148590862957888827976956203313360484020301930676472416952054640249619314285903061898333334729484046664301741720455679934528656872856019046839148870212752031970548808646855662429242786514251971476168297348270334159942091568863007800194172543421961694688857562380887304472730332022158949008021025838636460766210250660173897645365545330093896785921816568927212358962571694667683046815173114050195383924060206861783469046487253529843079552793217688403022598945645686087414027021972504404749188195329075392129503703429651312606950937290588893848449741832845127479878690873047268720081378639304045449122727845813571309963479055893960764512141468394990066901371228197601481783163504359614120927793360769869038639610556802559877595339788836731035024099813968653472803379823535589464820871468719819191821133277304565733787277778185124639003320096171296549844403834267007599225868046275355790823632034941074818025232278608312110554146473271550282527714524424868230134618924268717265419002362255132999897956324234024663797597883485211209467311821772775475193118369808984413694846030521400818070229063859893011861432261045587030749068011825151794108722981973057204616900966159377760969150040904222810421532816352620655133819327697437209071194033821418219162569770465367527164555857368087902904636241921468841783536743758783329034620196033363975629993315326342130503947498767760941560876720124170935082556045819183803965322623241954314855343113814384889755018874001663671392150203522886314552427117114337390357938741266926450213428210032274669605998842368979771960278799177424942135566600081064880505438333428385189364870368210545425687937940983256951006373368149391625054342592730024258001236878403153878070761953866145971315828914501137691827790207481243078887631027999873710644901925313814805086322262278260926981492557676895611105890765482576142522718528543307435026788113969533607282959741583167673173691135072990811663825825819442338816120010059222396059416328031515280898557905823338185461078514157096886824193384098372737681438078059402628180374714530771602077647642545551784513755905508459475184913795050049626745595900323551798432101269841451887119792065366112029420606598490126885201540618499069529947059882139921990116852137235673626954453987549655128913667861056558573270362927676315680373012375629694992187467820905152381876165980678335601806369035225437390515456189550904215036723108715895202754844539186061120467506594724223075771253310687634624359870883163958626744110455103948336825964594732986810539172411416541123667168284078869979567835623890257436343615197737011682658004150992398423555613079200567445182248354239804702873935439070241481609621612429709801817335657212671787783965795406079196418653450373593104888839556620281817723373918613465694132191779642023267458120684849879244878514390166053784262132042973938033402957327145164846343634841234861757311144356431472024931179052431518917702155329828333037348649446029804930288282670947061423240736859059354112228986469325783720518720202838333927599878852593651338891875054903313049660810205032756708711985905677946818060726078143904410024178187307571739568164844343852632487580240294418115688800862697653104852759315989513547360651983639402640374957947941677497661359941695214218406854026498208762233595110404012065780810083379995467928525366031624263294878330112692660845429556524069502763579660091969457122554779342732431140529646975615724762530493682635604101846595051281522391315704551041715442042732999223604900475057218466989065767338894431190525673383457667974405446602062673977118691146535378605616538397159638962364140984399529777030012185344631628955838956202493202814702976649910573169156125413302395729509396830899615956550613923428736824155425132560467507954988580419431127886259869019116121704865162562565107573005108229358300701302765727432792026823012328722897441366250984716171363166186998509441017423137303627943586544113328940259309078903442951217561858326438232324713906679839472246009369146849314378756625018006313563319209194019599034851503723712531367203166535085760842757588653609321031197574366206048784190068707495117414479667571313724429792924057625317655080076882975374390298249662087459036245779282406233102557462547860558884107916765356884727012118404872109296666815510903047437918594326388882846970233206595218078720922249027088817153527547167578219486979181433330708859138276235879398963304922431745074754009859119493452808806705291960508263868699912580057680645860166900433968701418314841631707714497744453943619904182586243365890378719084020313827303911842354183978264964430765267996613374673975968894429404047765155741004300508551597638578823509983974953624864131417843910018439876391733566676846054175550833635302937731845331380828721399090534996336043209016713449132022615681092375758414781131344348083519650130246403600308586337753996489411691965097985172830490956866654636460142275435004959544873631829927391598925650471223498357173500324744815889819894463750643231292286669294102352994650025850779031184784722640059766373666785241265827573354451488417765685590468544424351743338001385175346593247514363751306753851106536881402924456175787107296738882079630958070191091358815496080664627756183624952428569286428189590869082246033837607581373497171030627808218471477882218092236802131819099625918102850833262958495227200099530463133451768718747931317216827812530741276286138384311066728388863733941757576413634933079080649634438293843864261403408344617862741854052340347522628283539406799319760794607084009576905101910468827964466061480360913567989588282757768189910432482012484050775165785783454011050172809076402614081716729316364033173709661308229285750683354703352449057673759280994507344459670489783234523609503837006322675925868080815763290074522558302897819091173850861227638400716092555518868593445536693509258786965671593397776536963215139005968076087676184639211489152250070201819188088680428723846668189410624404192655212686945414814691841009329453325291010819248976168425182485364134283844704851214366104214338690228200111571495030070732358749743083605712936617165079420109559579893761359308329364886645739024803177240435882477668909942978622392230992276328524431045995068537770906792000800590447942673642372794326046635788629959812021034139572273697801863770746337618410993585905197033013754485870957487786006016045009474513094323002988476326816807109201983415282694502912612267706116301219107964505021823597467622049359850364703756568510730724071888621395344239835317976074573046214661453592663107723964533772318882920694806492113285660033309613686967668323059023368247854166482221570034645448753527894986484190893165434978602012967276687604492265591601074550453919112684488470284417641159876081572710563910244379791310374500782323386824790930920857873745769515482357591829556763296057096111448714944570393547942536958476727196045773406756064275311074268541338186082867972835404212615693233924295109436369670104060636438248750110680823625201359060818423450938129087885912563465487745633953615739685733725802770124326346512366833032494133914484336269436011498746168445511774039367375968741638713295559811641306424964381481290099169011044458118833179926601211377039592772220594692947917070206020403525418616899101141535522390311404703984314047919314479827689669207266211402724627606089890084909349497472819170103110340097175215834373888597979879666874110326393654781359676413630560383836193761814889160160630864733488616172135772910070535305750982427419929001740759664655178510212857816579156723822322346484330814734188604119081096904274670258247398007358706505370437159103395306957961377631247058217423473435319574821509677092940084794240840383486349385257279107015621780138833524826795718982075058799438938904757856699384180726410288515184809769869396179527205296443155945856520570806246755404011467593984794422737427601314220863572681481513590812981086372777843700698037722360320227199624894764575343937780373636085085421634908164795445340820241372484704015771570045792397019337643678117840309264761791852976863239888145068593540134482747896717406390875912241515440253183623417289983278188579132310999345974348920098861267768515401408668866736542883082363592324293604176742029384864723317094452644921791504987397205804221982489980544557004474333941446925030117410987214140450123630146568730825254346814112037905885944655318596104922189085463378192456994864242745960487292541178276083307177600495729164996748564902511400300891728335838831548949690827778638786033719916664593601364878551083813712398652258509341126213960130377781459293387134414955269964778210820117550260776526647276201402020288091721000599161810294301829178605354796924840198242714259028874321384932435322568959203981627418049880480049447463682978483396615351107498419326037924636248583483769106575849327231460902349084911881479473011455498512376355273695635393561446953021971378761063716509627677369128236366317369048674430704012896178375149516526907192946266648943331710399808697070374346772000852077790734997863044266123836634383479711000937956934602839098172181681029293068164078286917131078737960199124715833866170246387778574061189964567719539372434868446823990890196280040815727776750104553334643861400809298452375848897803606547163989290375563725901712725975338561358138052150402259450286087784898223278479826323260225987425966730897234792927331669508798654522176039744323012467678367970952133741851688890197702162776145315381960587321228930161484511249400777285398540041200146954160125481948576617153512561045299282281039094627002418181636732825039414863105772005711208103540534041745358915813716930332457882889477313339365200248174039745669083210624607470572232236609734512468656722352074645883768362339889542238698202336445088655314922754147902231417022542382803064264379773767135307783670915492140529927742219655000086113405439758379595207295685668125227347025386476252145512023921436983047587517495402298910178208308085572971008871934952664104178047714728104480130711343941943524492239051342740369825581227388923110977649434307436459786167189475540376758087190926456516647543861721133424087754615170634089181527535285468842689400764161772283073754772624974475072593495710770907111235774750176769962181437598050670713727777930432891998219348246989499805536349123162711376403155525611719943908064530329508942868205443883578459239467212042919092354558142811921120104463264993551735266836451122066069011491837090053466307296217557794998576679513023671917518944828450022421946260477036963581814214937440842381261817662636463904783933587028025814258757119773797281690624568645741315465497513475591789047866015749024806525531715325778344124276529287565978212641534572887999763735143267413893134845734684268016893034154621651483278319570509001120967202771118201781875689506376845359945166211337396301226821152375293293339637351068557747358212832393076547187808832202748972553868190078873358368333508534221660174477869072911160839757803507543534354905089292602582608930471637206727297250106839287104944103394806701501914905926605944566098100352498665146722620810013573517694580249341629520345275090538041016101922981847948592986307714904222046220757326680336839993938355160791467272440144092287222853957181475658957659413012281940576049859755166115658998202197941645750001664719881639655558065530037505208524892607456932634587694756927250070697136355152706313172766835590406673539262894927342796793200002219508627785891207024905203323532098747563171910219402019477665388437089124402886591156450351710040101538572710380246927626076435084951392137676512744999897630643910330573352541720955337778621650927729577530842158431005095170263905504600605040284897906724784010331476178012260402361094148959966349214153567606805444045308696176586607120901680993814652570899682166979959511279138776889671785976131435684172889815795798786408228257042634778613838328414631745658944884933135246558366541810718348944438582678407407251784969376000788240812865331689044145287342222814981798475852842872421435941792170151375798451007042511818175214999498402382523052476331448644175856079558258276486791820867519178061948315558970902968557987507224661867035608000143616701373575339057598988815531631587189656832910652019393858974326924857857005226879352080966315278367664066445163001585077252266614170113248157000756759419387065918252789573470804811839192887631444451440182788080948567094769812983086797381238265089748331154185204879120785427421104728849528141569393556960029164832762351293944143418805870552379932529283105117358660874822439361075864571143539561221082146003584504272642094265456552393057343740590812174737199203468016362922789683298179003325301394610758214387918585664692821951204639581729978465601676106663305605910321355733045669956168645330146230828710663618159251984933639476890578637685134638884235819439426775280585154134825611757589380190187636407839352131674536924338692269411776784853747972134773638326276909201496927522103175300949678390695013072609900926720507373502381222654725025347796227192566461488059752807512313659928179599060381135876208302645407428370236295415022184698890071052363253101797944231376885406487654299223817283971034591705001602732596166023556895260728149791928015414162038958552768504400562819358256350352595410460155755913958923257687556576300249768335548422414881969456242196321101222655932785903699533667076558994351695367287713898994957133846539482508777841903604170600773211040740858654316200505549680101533727576214632788685487112406035997617932777684241578841769029400172531433186159120871513835939742120720588759282519748884528806926926774958239631379485042124115624638497520317584691375743743477623152287330604856239393411432362918159277343783492495946610881196703775316946537241758943469802271757940413978732505280302579601617376697528157286125038797764843859781275949155937096679379112665608333903265988453909997473719968768938044347421223255597919765197102604768778009520939406994677029934827070669149180222997293542634821331523217897975670547459390835382804868611746268657469012089480494384462971978522631193011268573572973998141142874042921861828681502647346760340245691468970070755914193507254852665998621882494654748611219562032197224869350304174478971425079110654926113969160969311282894825321811886971525247297291751066352669380097163835099700108451680572598938433837665969194481579447653134160090707540477667735038850807818436103593792610904144783627507124928961256339872149017478228895948909025638884837178784536131466210249868493527174637757480327292176601326899276652629307922300848043759305483697481695270635739716550765163846412900130935781201278035792883293456139725176644385972390602234813205727834628743874634223181703149494697579298454573186543418115510776555256123112705680310681770025849313752020292444608440973456726984358315491562059657361746714693621938155642715323402266357844585487814428647900512516336999644030405444113319466626411894934199763380001974622514950447092714166829837393632483350464539930679823298269483247146571008346919675949329644646330333052486840279583046944475814464216500526320429170096732069114951796150617117613958584129108298054269673439289371717673298738602342747142158389629299141929420537092641216344172476924257011052167284158441346320224761650139829069078018759593138598131291907164756104783931673029299440772216985140396521688885610548858031593695580443020184752205597776674377661026223776723228926902918758461288129513008519729847397003919995788286671699528523254615592457571859523727137473586243914180331330990470373815561961636558507714680760084040145615307995639027721626354217321235657018297050919287494775230172268398817768791535418511108754896578358047031984103878455382634414059228451626396927187670892317522891759357323538786817517805975224305338642292610590156488863645398351398798760927409645028763800098861848078927341661039867681814432588678868257554270653898858663388428542964670846246462135507489139737789881966261670464694210499561487742438527475525830521780918527475902680394602941386741285567000126552804893583050246808777727568925873092966710808103714013227734584911750810387403772027441087909491640030710574222953629345795753979251690673678064613544902131047095001343090424738199037494988278027328635698094080349392290766732435910905318131533509675044800625302480867985586308830927887017522631253965409283933256681990150124597255885235997535547594170834694622352655864759777835872822339610279073871354748484593998646189177843016683280934901305525903683983821799835725825455270238278509291560725079328530374313184020864004094566867352976879575875217972519235177049600255270257906872786897911575194655207109385038211918973503076111683779540375507347927095223893400775919061787585881265222416471462021210358890979043939048103640619228495315701703298608408329083806473121296953174980784937741109962331562120027764225661122032472568323951071227707470277795415245860601270974738728849513704487875557559222757053461010673859266605996099292299288749887539533690213659106801863608644485182317970371635690716200893668198715241121453815200760819570864756904584768087263358842897612454471970573210527194816007353026756986592912383925900560114867133129279806151719614314070999358674176827697655519337297748318371234980098286994285264251766631471988375071476029640385328528550579436780417504954272114373543880489121870386140499949705873917504587462944295727063905616989648686759461312984116174098891597166935199821120634511906745739998981055080398191102580274784392795694164959279679036333351529965067705997325325217247845490749556535504605833113944272211645763551496058674126628505951675863447108877481834614933623616799901424336506594497515225062444636449351926330002921111386476517712202064604759192138609154922649727387823012697528047695963718206665309785508006747906712498908148326429600937027904612150767347954684661976690240441713609561562526091642237550140615741639621370104362571117053859803807764419418849778920443308670252137918772508991904981874112592467640820597411155448668165099141272577157506777166456995999727405164475576945397826450263914448680387420406498891879276034501634104901800059098913127792359807756061715001195511328859067206111363973963047460058612592936356999154852010226241488663145043269900218738865572447521576588177031100968288228273268030292048488570469541184516924701253184050342087868948664578319270552266890902480858380135925449380832435121141504050769692094063436663102289719444519033508700902015164013310908766986404829280611831912464279987041223682729493823767705022792028370494456203564735819514438442485469148811298811974100429271034798790822282484363770437966774763661502045543932225043698206057814527742014221889505332449881926010593623060686999599493550170334151531261973425845004437972608334361638002589622266287654439175355298025175252302587262994160730972841757023553037391116895557158814756070590187905863728584803118139898854916404498521699122709264503329069329927100590665493762611448612700648815437599019898967620663138056119561136876697824334523123479061725008462125821314258570357278495537976166444336462829955655365611709180157336892313602383697066477474419071361014896149331459795082139882314378956953702072899514084329590839240933997085406825343563193604436188227959886282740969340947262711276561573625248605245995513425116990525309407224084119910341920072771116420717060763715885097214952249035176062217123129762778769971783661181049606513052167934667048882828450749382085275584915330545103529472485322606866005688749962808605166911608976146195157428504596862718138143026000554576475581153596273668197864754363409405392568708360637585467068636106196820647937599025698619686035198975579257085963709521764249432878637610406973569642628359389798233909179271205190642337976314801110757251223745647225502562858453725338250419406775790688846127722788954915631415793099360620894607268280865664683148145519738177309265822352671953289531119790976838623830765367752931977430818765776894292835328053877544769986990945314431206075733949838792555494192899514485496104296764254972000058644103228136686688163331564673116179816875431994115466019824145611545001294719444881938792144092415067389952038134752431940423171877515761222054058667508090840199668442492876897864268659774489943825721441612243232653277963047198312076263647043521553652467013618060118590388980052517104902686655789698422632136511965444123204922816007345216859288278336380844055757266659250418862943102640297709209386098841541987615749233219948859087043050015522914832195493308562031579397817746988724338873979903412051391131015453840689952277229057652992274935964866044259854784621978606903150283618691653194810005930116657408915094248378137564973835278387472286922314929188195089416197565201328079912136525835366459006849624953271320246137600548722928010881391257386951841216926751643089965375751701069777305904667163995575839403452229770169428845062117428052262536489787669097522346399628703406471349936687357940029753071088371077517042999965876556190025358684745893203667677352459157515756725608381973805719570450476048625580860797294082037094136002100183257532660931436763912396472955412457784703657125084486568919067726876093176110730519985498766850577818696756030785176109634631585964460847644420150870948655171278949548807192349466030119074285454155022084303789818101273260636532687511272842691187632442705065619867947665095824708652556992249468720292885591746469069583704476898026305198497145893357969036955858407596339043798221725883101179076459221402753800955897686017654131765967077555795623422443856313336287718200827091120888695534783125380169021146697264881360424778705545347627698898506271105355888961986461942794983343142767225562971865102969899366160205269873306248027686408658081024677524413970516389761416285833050959375684191067131083591290857023928954732254064166635597621792089863721655783515104588160903884669701133514623837100996060248803192241814972214690017297913610652613322367280373301376107803402148425776008949822891222790742330346286891686338328645553968483575368028178183200694314577653098251055812073154301021267242773996525544584150011684479960951561934593343667097363069333031291528776068972499367098861600948904011206695500847183551097049984955905368700006876386436211850153354566445720110553527663840457667212069961600313165143441246963370110604575782999791477306586569176223283338818404589983226829594305315376209867071484493613976226816393269146144972144024658179800103871928448904428964712831243266800856490505477702810287659174892560657263929656077372027834551186383741661950624907767927637149633236282737996672477671441100693269431335879740269056340201036044929293701337797511400255243584695109161987711420077400742160114572692873497047334807975658145254793101319406369503923652766680892664519783399092024067040810803386952815766918003333397280975787576544097699972203156922673614610552411029268181048132377455832406481847919388882827864997911852895075434052560458414594553887803866792960570042082993972201671890589789400247245438614324519601372683973409608089028526878831589669464423223657643445602280163682735601234228071061078045466709703570908210047269509900538347372663986764246218256890800483116544002406384225263829764442319790365324156487791441316927192992703700552444117162754656583453695729818240613469741385808050866789214483618519624708424014182759725090106050031126914296984593821501237224637822608368237260093886310205631166833112647942897855617371097281956008951121471359757798893283683649966354883246897687401744432720613365122815189100093994424038626535378849349576201393029409601006020453730864950698576096829821032787265083566250348407951992752016689129730084142200118041912277996830774651126473793991232023576880154701267894704308398121093716921988712285817524675998365846236519098215525805515234080140940598559254978205812185575214574325240864790073587754457633362984759851559578803311654377766571076950303251060122094454546923332919740685949621528166806150189127345011182096251390637268968768035564518127379812851479902256159037106084402639958595712655913878037867128129840375542751310303417729156305690148123298350863196457552118266591827414323380305805022376226622419785542358256416831773853134723821280212593213085125825797831118026020263795243527326025671146483942374924723408463033932007136991847464751935801414856909204738748671045068423016483197898842564256635943007935564442681165646761092223575862532818878165196006874853404497954874040709950602557707667631717137063390544498553493998333722374792691106806066060184027155967584128974927017791433601491261448847136756145985642885074922022895278801126114185247530396895575244019567950062676619775715810260157194186031686400081479988946042983971033424833412486123726713688716866192220490252999994255918790117721197836754008307801991765236843128274446077667664096942734902998144850240241723909180574750168957460102451920656421254061740226757582186096571737102633523215347272320654886133804486369513334112963675789272933268272981226177892933604059917129745806767372467520989646639772941134056293440361319187202079968082499750851499832573682096347857614387830563380887662241084601801513200938896322061575712485584127833289877001906087249866116773594499058448312449188614160046707889623688890111644556385581049437992197680018562413717201902907082554218190375773547848279727079859800062985177223965269401088897401018154765670135320948814030062400753596675202036987658722989887366519187682504844643156803425525307895403110808914940515312238417938044677833297174944352254461840361897132816360496436545681812850304255483479684634440977614482951703307626096304875540482091036587742539218892082749215787529132159341788823893847096635748874888114644837375676519128751547304838415422199093104985246819587267179742085718687256572949750283908051238659963661573545869148650461982253927863235961340283652176016591447200814915472087063819236489103463262735104787570678927752810152434021853086358445484759505282007440498593158017548889787248771542777781132662671093657306679039330526906024478933217420999528175838256289410131257986391493850254240816993701577364431296986667870321111522551169969034547072847149360194493879744406315568995603275410796102758603876931892851085209033781178079649618792637203017062362525341449338748533376551223427905778401147933079272425754328188996773915969938504776144424357420800080840927302669035087868331638443070172959412644608170358531858593318474643902692616635089399433303227717922959754100551064044418208942999116928288774160323349758634477674933763563938585855263726892108516163860182535128755585097796573699873588696743929028998211350862731483852590050576852222170503137967944778494378745795278860160730002053536777447200825864925035445628821062880348085527716769047995295301017567090957613754151947904243285321189354911647912705743483915873505450154402986795387510947562863530494527926973259111783792424349658015916286356131875880640266162140330518347141324736298351580856555016471222332734439511392707686547119895973266143061799803408674494091075990692793368402121092907945259121227346748386989998917106519264319701580431014953338841328183328227856782875556564877464420450247554059746035856358226234028593908448174111004932061146802954337532411611841443908270458552138848715225722109050180589065681641878151431927035900137275335889849801517491364917659445899195939443395762765000738073062411181106021857233471102627198420844870416385955445492049456937565234180074672116268803069950086743936611542592053838133199025214926868545576467478469365482437632180953887186928951959417339560901461369584630816534736976282845293673061701135126224187886115673258033438373747116082251459069407345059545278684424759161302282471051187956095095355371172328159008628253616915297859944614095313279453088002453846841830110052399331658631538485921251265257942336527584579279421324649437151727693427557948380304110242702073889178010588776075919985422992988242855008212854517269426767583613005650975828700815239597360631273496612871558716365631481419132735134764845984003318255924508072511873609643875317185394451824083408462723965959514796949253313544216754265484263775103580202802871967188696451083935698561290257750507396359075614207158466302772705017922972925785832200905728177893153236303959828570556750442608636619967296114956268543287752428333719620121795523182329793594506754540431208167646383883744175768159706509584440698735803253468276771391628262791988329608038512105024508169746195566984274942152200888345014542392559663019340723699308617367025766593145486604678402293119990123579402052059322052161940232740189697303654501599015564967699482633260646738231042798228221341506500467955217896143139129092114060360270766384666229877017085968501516515962681281600956230072450879315412401836249064486233242371057313965412476801520173052580328429681791037061335918353969637038304833803297747332285370454528763445420276637982908042539831351012773630689480309601644758225868290107694521854967930621972852481965607305660302862004926083241281359244458321077341995638023261120936174025957853528846368996717463106519838214803926294564573538096820969477164567309541630111134488342194471521566903262574280418510794093827678462465216161680183513226482760954054768199180884661318422084693907758404672566347904374066703109312568982894029497357634149422218779068699713526519518396464637627413172646659821006612067405118723363744873171973040780810053228263248532087926596895583292266453474742906465640662726787052388413386752635261525990920455570549094434703506633635039243909597697955560882208775391207132162921137622718543059315880558715528342364320222048126850971827612893390789529036746189972164311825586261327271113647473029217290371066543560241190930825405882447171780018781943343869276087785594320231145826024640138301715284891081265553879905464494865901988335262041333953254699447539964265700324228197241787254798401016218464863377665293589193290743759258143976556728746516560185714677927263916126575114186835783366145386231962238331864768435026133093938988643277749363418356675338283585047898021674982868421613954911099245776716051083586006731323685121062183155017655801173178950377690809877671916576135877995950640243674961624190969023063345107014663708227574315283718650506581821952583264801398756238703392592028614999452195311852665555566279453991404527110404834755537194219139095382565098792357326320166354670305527981514346979980878860947609286162404756246690347472705812112747355396852163704552580526772866958208638990984260748305225384527011118486932026164436232715511653353876765716822939837663408839432261659612400162380083538758162814586825727876656072860716442343583823345541323272714251028421301958256846842535886531764890380577150579107490416903078580454304365482750049700535618170657395072084677732005921318491612017318286688914444199563801090199070288732389502343150802812771826876043258555003671159230955875250787179794939149288004625073429932554791321154002954269941704420205778488388719002589142720484996660640706059358422084974448028162615295333872879709823155194563384399050247453229651398186459300644092285414583020305386226880409986433540532668122420636624661723142853331471895183862551922431499017503529634143703069870987450253792914083039747761644677535704283377856161100334014229571953577814360866835587180496620093532590024392596373113302506106047657705102845102602004250009670024871896465532028089835090177898317721059007553934318182076378526266522555171119754679028979076243222494333137405706306390021317440849559273658842863670319212936405041334607694431955567296128383860237540655413498755680118412070716497650677047775084729435353307062639767334985447023254872654545706393271088600357017533793060410843748919819805406490293893054982212201766949243839556791137737857836807336411154156682803533809545671155036891067411350715322600661502610143013788620330607499873796702235075779357697351188822481420728100590248062724693056711615482500190618892932929849769556970805130925182664884758752984123474643199690564135896994657343549714956375615712223646855238755088451026375166532582176547342837656349659662210048760999146184255520423992855257261140691756485687679590603728508723281568755896306361153303174884528371184006009045995311792888773062298959175865781787036721393767840747984442720112144999117789125807910604052310639077776763571440193437229280623361209114917490769822420302599654689792119154720542427489265226162975135287658019178969638905100833436280269512630096898895557235862963293264132326869949920815302117569840709524641203888284019810216988769432667880882749090820253350634625095986288593515011625749323199732389097419364798538946616753215892351786584494370061835639513455412250267847836997938326182290617934271787785167810626716991795495770779475344473150055849883282055414270704761067481763566335499203730303244652813762112799262483331962281821588126526964047153066489830751603270550773980720262456084401126411270287638074313947449189728122937058493628877056745092939835046461120677628764756701125259994795672408563796459924809114748970797539912138873723745323830787083120018374215080829934886079362159359936246397251804157816695791824048579021942884874722935952208035521008522292352995983349802546380690672284978934943945176857249281491129010533371719656819326515569424775864135857390506757914718766750540888551750774344322070718084687921702345154556129480093623652643182244025669350345759253401646876101310090785317191595549282258694006638329388331437727772134694286362057574612034727879187765647675792916299969191971245355350346822579422573816609183109789747102443496384961104474982854243515046756960576090948346396359574641275973749442647414190689788165168580781681891515039782130914723007546750981889341448387853047649053387004891322979730457185816402842706591374485977119917760259892522408430385594832681781247323168653669566630082668688239615194595642530461880506137314256722973237827373745833589817130645344472090961506030904298982465359373769845015674929791710229529235280157706173653893921292651656240577780846555355047892017910723341163132920536257166187650920211792721873549696599692917418384565649636245703946718696466423320327564787544936658733174766940903718287202516869513936096004913899088068323958546740544195629540756754857947530343801428346049123067165955013892868016341532902649796845228909685683402533592052268644691067525354500128575576438117914799100026868295961919584071611749888583162852190148677458509625652734143258275913217348977187846817533658769079355921589341268988323329694746585195064306233734606779590141537181270458751423349405816682262176719674241493849193983770792055396830533610640164543254336671803061373647810509852698964206091455853422568903254020614886057462988994901643007540137294258090424292478719932931538091925006491819283694629165912368863897301752471570358584831926724061964955989138285825888364442878514477277716380536587754891051358796754560928078309843690205413853710588206653817287720781173103450564543234921327414765482985655776551486546637309376228041432000131368524463269027598428361323129099239328068460399334624898510225435907868566684079201008050691320899193783795600543172846291218796755497531172304912692314990475870432564582752055023983028362348016353816695327703864612172333530588416952630277207877634154920137870874597643249214635393422679628230920984548507029456652007800726115021377212304464776836554022299568991304001715304954669108506232666265803801221838262389456082004711694289339634938289235329996389826923452311236498947110105412090817363233089195631375972314682571193589716126541899696988235378054978310322453135194666667762411561056883589626543146290029569231554447834313526002862639943623605168467735910186755152038738263729254517562833232262227638491250696875169215276377927394774006756593697524708935304633046973256546314850813551314507350479638672836894420233030129131524700198654755099479248639154642053103345899029987237435658405168979407250498984533219075877866731957400715638869263331183173662908484241707774955446373982191739408896898248820754911109477037751936154689855710500105826286514971280851876757275983337378023165847882885583390236475912641026011423171450235527155060209878772464496708693856274665647881579584798074936910751112866078116851592048452830569517735156566182905175065404401036990437302886712018845863688922290389359329805152150311201523635159634526104704043820041949383555237458095019477049901474065565676830653834987586557748379069848508374164164492591445902307285638646409168125240270229243373206628318914136259518701294514847723247100751280914592142662717171964566171966294576466163244718327309177328903714341860816167199123049025494314980892944336747516140399163562722687970129724586923174382817868002433217719181669831531044179556622729653628164316181960489511843402064986646339435208831210992107381293782116156242532212601565598448869817719907359906798845680964845379145877979829726461631156515952372124141037034996367788771921612503123119889844131765401208482124516533847525699285451885195694252583947885854830624344745831671776578155652845423157823649526109041365282812209706926872911068173262043507184107578128099113620962473156166727938226851934467343211550756735625971501418723635059095024194070312670946735085755114606387152748994488910090682271641796609670039630183004738696991658716345932600851800401666093415081442580888568916509971440178021268690505361841756078610995604538073131640846517481453141710257012089412090684800606567700382164098782902185106105212986445381834145391251502979072244198757423354470979050375211357156906817007410030623325652292696183746011117484250751980367559540303925628233728789904388545591146525049339278155641149979079694555660111817750173200820917206001217826761247559209313957772597437177149916025916350587035172574802773382031968899941528096356671636468036509585927391229221124689100238821964213209554371684346783547301757623169695289224356817703942050116368593431529800711296166824949011553572454534322530781306078591889205951516201329277666719103705114868039872963393101075290783669769016787950597740146462302689416514529493610166827563546152289252837248539503981749694157744974708321983035415904631345442289709911494300293537966191478247539189909140453189743879588239442252617906654909422866067804230978729925498966456378017440911557504149888226917386007353143596941965413507712427976128908118649777190102847280651703085020950342241722429043909935714038677963321608786078517229474123701243085571914222973295606121090592501072764178327239768421919162819605938984020385565683968489095835142525255906324536102356487775890009900497732155130903762289371047575316636801791248751207037038663017100271277852436608494684058965626025489571540874035888950596308825046497974740504929375961059189356823199198442867988996928058152633906536075201411114798365527301594239867077124218586293194902605522098085049249879787657785443128040055528322775361873137962387424945404850764358818197489068186366229842814457494070720730032757842740051865276872551834811715901109015755158065203529092979028430737376651594774527108088134298437046014310756760378203139232819121924274709458395989109466260987690828439934531691566736700827067981182987667121588038628574358295515615468618462891853779679185226586620981867785035660395039828014259712662310982638779162798266374470877515314510518653266678230399768054662962492380708234519452749174133827411221671720146804573038585647488848072619810403797339173832148512589994367991178893287245578133488735981656122010582693582952880042501637188417661909768319545577853565099344833389672804079672095175606836235010958004634237074129304114274120285200435484740086136717235421665016809627026409275544802589004234751927883866569200377374421807545692259201754662481478711051664915885703890118656851999798467310328690213378664164801667361464579791243753777860632166428002472904470113782021099896024825335192935650376189273822673279715390721034141189206744700863290092351447592725047658930707694981514215556145498473088803607513420478643209711342790702140211628908581124767933877284514855902172992727563642762827539594949983251526523327533100460422483347071192448885724247054582181607884173417285320215517665017819538770518588651100326368160980063441323528877337755394712426004487212588799183999706577188492135240913604906743920809258701461347592702954309090045313013062140801595453748631531081942815352892547298953018867898060936923347888018959119747421844507769308754970715456718284883825006732298208420014023451706026942422793869788510255383103072993637415116703529579945399520145764078547994530811523451842186047509361622820948486190508589997239394075504672352613283215827367672716927368957008866312000710447884623530727048672590884652742223197261686415428327009108271542120925600616567687313015936315908432554672250986237638497847156976899946837964751953348079351851706678294806707840652393833218044050782229073678965539894316467953983850464305571882851034487912694244692397088481823100428314180421864328662104991741422836175130106703964940621989620671929403801099359080638749172399213159695076568402047598446242330238281226877880979223829838841179854096316692568363646813628069123465073149957621526599713696300568053533230539523214956387556115732086042025299678589593686446814885611710519938421005184314055524944668723774344626040801781420818073415662102784607831196558724729456407690038899763564278429624279512516572437701455264975913052527267476811315081885444864797911266000131995794507504577768226392675423859008368008309520818169496991092989397301456987163659620548052527675385619453990776063397494147506044889493690484523638947491626741899424587343024443807607077065516163186839824257661410090186051894353921738354492880308967879695502381753609415763981298574562897940935593510962407401164252804457223581775853930361013975667367537965068261053065849379437994005380333588970239157651544412730255556033181404792148415713730508443990576100841815651775392745720920514562639285084445894051138760076730540075941354399709972003443377507779297658593322461891323770733447459958711303583295673622314255765620064124608977793959754046286234755682213581234581706891877726617290625322273230131049782042640995079183951881549597387474637929712434127423623929800153858906813844265315417501208947162543572971956358060993713412569838580681764468535074235535515333444302234327366853269775762860465702834175357239375214094298466792423976215054756083946471270937138026423376687706105866697468567520272549241614084645824447647953944248411848517659919395853767533660440166888860841158700710754287258341624179257688694914373961068409186541435358441223129484318510729555604568479752836076258164416070747634298195474639612094442034196539077698622597351040829290029908427307041265542403876025956675800325148590643433446309694860475276006011962314048066142952062386220947985960526341214775169008433207505217416638852385321221493172478538054750920751135996130449541355987677283294048463838662885755908067292812965121049382140519180867595575031529780967481050882465819962224386392643304217948345292949085916014694977263594362314561383824823563586911251202920152934537697008628500607456113812683699529793446276669819710039277980614876194201640315782188876884254290006853718452281521389573766573736096882542667825382274801548580278094912115810574678435931025483330386644794961420215171167730482440554844769244804812189943289286540452135595698151227765992687427501070721781348370385353408641250801218187601345244260584847902546210310914857175745089125663694649930814106216569749047418479138192420140369566994685177539090238435811149228988067691735358473172343254411144421984871759040829162615530087337215025903890434073861810516548591748665572515705657858327936410174423052548078719939889213492715935941376270315621377879631025818590063105530822632443653364525350741299958753000020842010727196391373306867691459565122840705190287104783521350958883711602854607361369038709566891226547862500421169394528584491762671010158159595955730280455662941314169866308999021458644691850067682231410833454840766372389512079381611224092368630625963990478485623267844712529928781740167254089036065654010234540703517491719048166269415652994205153279152563728441459930910290941557790891688588368831982469495131914702712876267776391427117905691981317734625442668959550831487562129260346734556388219331657707830730177313383543422557877499523380607052830881549431946868054382118501669536723081488635999484377790378716903519546720650708546065530606760880299242772077978811385436490263513689736327495808339996416859311713527121358792901912276966054624348222463550842655494352991791988886922996217006324263888043220442254642438352394068114414524558017900330367148074030379803848054816302156348057593793322322363155284339035895184082341890604484635549186088019475527092283141612697802108393327255794215425093872603204151672673787866861597105990153613013035212531860298109943747806362360640508998529649265010811078779376609515821943623245982940374379196595487949229361848832987596826667780794064906073679175780477866875880045845271070936410184477763911718727354668805829179867526829007651928623210218954318530557436400132849000967111601927166080282785274994071254003847419395128134243087115131950347035684343301625015008170455672441517460013520009570181483814582247653998711561711714193254041011866631442826133036503231382093242464436735877939714853391666259338543713628692982040767848875897693924923045670674266470920773397141040399220331259070357679751650593508821809516484553476221410788797340770577767276297383075892294566334346233300929865539184823008206462015228793244785129244460034761376934758433043527295060972650041728489031954443749673972999666330687782924284112199021739545400977697446001702840938202641357156271761454437984708130055816868688789760024097087202630901767414508708453756959101840566415792261678633954325029169696747759895681355000147488143406786800780871341610130594280876739601421765239594858428969479108648513295990698373798743677933880340165741720374007986874168660924598857466311106667779329522192405412776791872737713523337140771245199311399315083041249837502684589695575190084078238759575441358779278838021607615851962631745561644677313828820965370409635967036868004122742569674934099987413832552723924096422176105707349981397363782627948385597394601305222471491706034738681942414447849802976940146251708099020950498937997244336348193174301507774947146343738591442121511564125403318034403227981505320716511612595720405095344069019293194677613526352236308490308668621443102818479968080870147722753372495762438783609229087805606235839739567830559607981041999308566306982553539108461513153042945278120096242052157796959961510399052815571054803760473160282440521202509890719426680232537984449464672110831614024104329658700798605776678380305537102027654611518349941963645390747961073846203218722003820352857350119346330063209583433450584624286170717621068204788079857484211312155976175911992338562766451287978621720926156379260960492745903179590403922624170968388674360741463266222503157334792118342877823302140302107948296569006430105035283103554729661859345738946777157815997411174024800338316713631756023691424821747538951852335148157352360419474830188939832555486011634499967277747453477097090294525514377683896686392521277093699592880260039539350363686901432116368386245418867641181534130862584396684758444087501081344151558781219353561895775910886051519735151082870172851939635778827770799435265985191850503163007839419852799687745249324795996604696944260559540848508633919842583691023176432577889585187034878632082826958416287624668294355643161675194890734855143944584216382067348856634307558946880344782645226741154231066438191195973323535446049698588110611645385596237560385158582253900229286938059985631127449890304374256805422634831308840982825542565521318003937337502536266760681421985909668917571580624014063691647913000984701052433445658944470760858580215835168367078997422461587236452191312084509765473865156223433105016668757465129857072619872423128037023566859441550514821035843996713895077051272733764382505310945582287484913034839553017483149979814536674099396281988430212116868916843613715879674438233173912893069925803216088050753423813709411787031854991064504401321492413924708487100250032210239681521842208109853200148490261675382060075379664811668677457567433123776181058999501060781774466986579515992025159694287143108746812416718986369819439840615922220377338680052801170830568194587341840508257015400309104743914775844073646806401749520632620000707510219825415609436751291281405778402791866203904308719732670779655598858591021257724911847705363958480373992918302717732964067999198642268330788347522716685908754990654185744662287653920195638668212497754651141394804440846209678875823293280950612026201395859528663728038788742241170562908827244677346980131787166143837478741689729307813627306172529769272918096056062877656598545007978214268958823077144945969374696866653971403184196662966860721847345465387561702571560451722537780845228411919760314599793314479656660338842953463214065614217345648363912983917167084007198296489037429920843816023605532880832145219275656629786079903713336415971936397017679863053309711587989936415027569640014578663590320361680913390735907398512599382226536949858414485572190892294369072560319327785518910703757300645648178728501908649230606368264169637353913709292731318432401314066282274590089370840152507293872801384680891378039102988621042390320985200286024632702974535966420642789477586090215686601498000980564691493488423193920478965269181088547624912406153505098447894945078860383013212090825932155485935384586062808895132092375222764467005831358340065814021787472115832954508166483634371234435805945003499191773939381264415517507355099651616790797635439417218172907829666441347296599388065433838717011626865369760923783734519172473478875538029288071977387524933213296783224295041167227957517712269743305505271062297518205904582801076933850265416004763347629233247310534558851189500798634637952866120538468037717742025919394392895047151232248047213035174972797109372203442661158076084091071148439036701355468721039260776079782607514894597677345182956898224507146869299844392884762768281377831219352568065958851568435174141752316479563990322424867993166016621305854238803700821231176465021445495542794809323292461370785658046088761558849831937069193011597534298438703988544498379764418014404340544033235668929841349018135660127171204975778724496327979248178707972981142314769015661599778801019676967785162464462761196743534336820300666983661683869443822218744133327116525627164268504131318011050802468088052749627337985776975987113536782584967279234734751945938957460720300179551604422997051971598115910320427826690738224170776222974461125159366421973336362869104258781287952885415041320265657432883710619338691571908301716761616194695525078365899114223472312887256859748341518226941851645565274905560937586667986820287040364627622254414371510753836146058621085964934348912115123825413312279920772574821322647739682231439769635882000530299902919460534468318731089589039210689227015163116511795489768550358878844773373115104017853968549424361618795984557506508488326351287720843097155030863114804666355920409900392571432379368784012328149024313555471878810401879372637279918454663093605837599764011924860808157022833765582888106129837274677645415972292572468249533240742054126668749641384691686676451779539876526785073661987003649790382230028172158197867898395918568668222157756673503038048595883064003521563812610774123604119281419195416946992135611200633621906694088017357616806014748820905038015144685743830735531898509064869473063263820563276335283237167077990991516697633698559068811337157347066052052782328270279531144138559308315996685636211834656900228681386859805847961971371597882283383502637258304239547233108721159100577058492512052205163532584905999922111396888060894808353171203717352810584362195995190368063230246009459288348329840541918553449708408743156135099696996220517868490539771039531818589811962924765073267737771544936777240965811625142319494466221280051991189064530708901505005648192454793347204292214794875440272568550705133593429139633856561241157778036656883069726088394368619985004052424803734214426102559940570654167726250266331381422856322250663562249322742877634587456687920791295063917729314416522895343268246353625327232560152946494488831674074387656670294480348086800118633075085614125815615631803721869820568526196663688003728512901219232225806634799599944768956578707443076096252449158266475943861315542730719793471365823589375883606329201221481534543547305404476183125537486307571313997381096031087757767098502338336465285961701218596297072798980974368264442036584575298760737898184194207476498322134160709096405038603006362120303195365409503409544887489796497502382225507621556597555176153211026344501723845040628153078494790772185575697154391082585296161201822963887491053887463317558264629082953155406965120778826305583293456503247533161329924727483519570657700146853589452014946415258433270874529651669607795643413934213906413064299190711737752967121531993441823912472066471906839118830975763509261748950924262323210037460245154044647186121009904881852056492306158547387248922285499519181073083241427581303720774630328582649769169989169904713614832318254151115818687418009552046003570240720334310968983518129316743507929002269436353830581929024742579731939411462494188036498425357764793571238105782324057022253670033599347365037540293427826169563804360130428541764831964499644644232238430531028724121863058631506909276462830789502306496712390034800698250460229473085884291816645781391700372835441839742754629833997710782834654370138560172956456712994414090513487500783769204292238276656382327254661235840496152627097429660709539959761644969784578528586457605864455649765983521509897254070719682582017830178923713086949361842098609097711748841291844567473212214130275473219169007678809290524722897578295639569759208954436438984399963524348955418086744632548817137086028840081683822300641408902947757130748128294889374043776049391225843058786233168531151502098046680269662129969135795620915846719392843881419543596011447168556833637807050530166902129073037581147575132786654060588487864422525895318531721871481678532620955141920501524116804557000014930853365809978199258329276062021552336354376807448594957931480963774937410402264180990595278975421323241248218993833668809281190362626593940905240733575366793178231942667232036302276657369817936474406866194481116056340544202675176154154255039616756845395983439578690539045173598200709452885506866026372860687058289734774137109559354748419745097306307255738451522462880050564687756959133371964616185511599804233387144534704444386024559283481143941924554850433908917989591362104472430030534640280745968634292299653149645684430150942170119043146346596800827076849826850256316589313604939895945065352743390602901712395901692093988017492982512383046569551985537897109131153157660420986465045494543022357929660550382483789568794984851314749934803394077134126249223138656462606341844454628832736616549289012939363756292613253794930804645794784259034320337844529016348930088366751380416594628688466131589325343277522198108848369630849870058642262116838493981365567912985091620456895994637451348362397550028944917767693951718599383408142157573925949862859104718641474897651128943221033631710307138034126607944652003815119291013584330853624895868798421008920374331374715403339024775142927598025345766449860005549588752656736374756139457023013330359426753169126100820924390522123513035970089196733648297086100291022815502959912665683832673398481447183384022236060187902431460553411578753376889825543697487991545538807119238596012543965672064938316362947620969932824539681205599704445307986591969247080866549253723023809438255217706032424314619420280921890929687776024382268068957293324265728124039477469751520975294429272415257912704181532327866859965789665683538864061918066323453974077753906101229482012633721286304859444321102819940630174290717977644306327248043503786634739818536092921493004629877197162423887746579957919711385132470246107046735813051836273626559024773409737959079206831785900588686236767194408014885324662838392060522922496437427646868295920151715945644649831548510877216735541262727680112749358178175510081055201756390982853796949638120289561331916156896254525349912726398856598589405713496522084956832121044356177442149179045399120813236415627639734742534845530705280558258603296495759751891432934438243497563292470097056531952859886622998852408078608500790773519620515632444615743051554522837981414908250955364984111439349753403731342523080062029362865603831702360539573137183598847522632920996061652153294238604102251529578312406580126233575026683261098957465014392134877090464552883243419537699401457469025795690079375662137683236388573563744955299489799590986627202159532726998841510659629431320396047553685167097768242885660047225379701076878458707074990912747084177427904687023198997965118992047802740889879555485139662647784366067504767299450021238650712233878049881330963381608995996661208708539875349948952463596368131707180065949051877895473295595408646803911506101859674956554170934785821663805480244934470698202951294014896369350540212116229359123556235297624560476891067986639000435886435726272969148517396236815627552395576730444996055671776817221632013255823667172289865554767208647924797880504458622929674894700743705938452895377502014550308803325745824388900659943152297341024981106732852181781318004799265163364307828139430104283554405675871549490770975662828197995154410674748942638478139896493641297158096709646425306428646000543850193820711574627286995789096846902254677434694185489469113526441853410304250044430382536452601529931026891678127598636488805994530172090626633858919322753565290255030532093469801087159911858232230312209271060469987778624725617418712320406255889693297178681619460641558689640782048286065796129573135113452205656325797971419747025566699047988334510690933182144734213328573556266480996606898575237781355909299942190332255406241820584714026294736696353240905824645492213627653443652166255184413698972720721539389106005632296951953134950951008526019192047782754142188100171294752536673149769671553437715473644479368295101802964496483993109009969367153833501979143581885037643085436464402520729293678816326817350789505048198816197350055268524974019852523005301870650889351655508734191457185686814933765094542131226371083759498355531890914115046570333528365190607763480346480663857160255712782201862431969913040102063249640941803836454110049647642780822608210698816484773357977997085831502675305472066669370967790563500249212760470754783446959867116799156163184140124330396609634366808898793420882125345067094654744395612596180624222960557946183310748677636893147963899110179996203153773937440427717109235054883726783114646878866355605798801042646124871546014123995424236252723297588006326412788093886929022360085940126802963100123518394093806513072772577562800804271813126919598822855646977918763203788691647039846958412652555414143810368276435402285007868334758033810132170687247743884062761794701339705984635949189419053322392853788309753396089227087790642469997540471401685301531983795762150400265998269653076457472728678441574660742738773060925067041539995732582039388757797104251470394484943863894595332245071814824902158897601205411963017933318153646693873869121090923811449814763748043260569649890027992337192678499602544937211549829473398006096948017682741101910713585875970453760514160232854773518164636687282621314433556769154609513249470410816687594949091347786504877139107835980707135299756442026121101620045321673055619734200545153102151523577020637913418101387824542498051230134720711753511589740789946765258188205267571441186378926305053873549067014670885478075309457881554439908982118941974581241882031794460825887307429291536318314176747329329348392333610848043802868327839259935398382039099893326971491421663914080209332018383583301398750125052537493656191829040909944841066049160902474314214943572688225156744011566926160833759478358132907283270168328690892952536425702848760131405896132841581089086716520921218616668610251560727932665238908711173889108871987967906875490115278652407403371240105587346122904834884689662290462371794112202229331205736466492901680272372755984703492607153143767374383638500625438662884875010882079338431931681039698639971868053564761611067962958133525721764052033974002403417207686531622978685508969451894842396127162307877075486446019721536552898475340192777909451868855440527382610037915334883203723967995318717792680801537411619754969327925335402686710792572644699723146513199934500908986903935587494570592048463068060668516049295843267482731628110157565091125927772419370894115753361130265092289526900112553460856318816627725313906461551874688152852994030470303489643205064788917670490197931350922467472699548725104895220894281458274693137392386618422577591609301164357188295549455775885287457222250224820924605207471497722174676411074267864056759570358612154158508845668120867544241723029136067232410147409590218630075701373016960744446101620787799075809509457030655410151483575582055151439331529094539825035182617827718189257813909590116007283126844290039994423560278613408257543557298221333626552546757513479091780695940108016492322293027715962996071027676014628692776919762795863645621541967948051135606364035916910326647329404294519852185549544462782289389600035083438229208887732014599652845680083063533909942488888695410019375395796597647747444342400576327035242589846856318434118824345869942597269127648881446923785203461905815338870460850687372458131711318184938169484640470509705034367415379700646882370982658529436810425753810639987740575241431732766411236706564394955031096184735370620724027467345913980788918741727972750043804012650864161596780705866504817121160072316832031927471585270300939228921855537693576457905036790866475351871121250518529215025799248272992639307705361860404012700800620730911455546551625873368208572024309434752813876708230584115833636511683578477382680989061148921316943647432746476391718514995312395359994390541910787155778876703841341681665320551430717271793621665005221293668892733369296938418297737809646872017194404569397054115718914107479164082041360511910953749299169730263916643766432005821256972621284874207678018353367490765491691201668342072349294904630569456154742285695782274873378971271136277989204520087244177470214625691721437614570035401832655233576579683267235136622555144600405126697754060127207457300702348813253118836304732030196620747221916789105575113956848494696513073038803280806888871183715095183266614181468768759054317875161457423668692979259067714869591088495084070636258002799540875766848806680085296621540629199153637263729338958523951093776410787757158970166838052440641062664709755196304938326165314911301081305367425524561270172714276769793938365699272042725374666772531525571660267295993822644510481532942969608726245572608893738134068032430997287917276454553410957136634034752520409144877874852826540553018200781998176192393336892184400999481335933563976674107882309304188990679507577324955274190644229412725949208981118521062689710862963763809418919680967935969799267037851171483687688108684219242207971833977569343641783424247629784709334857514517968911835986165185368922016053656671402547664502088893845555764032358432988559806309050396717528133101776037868907861241607422659671223619517929514362738574103176674857756296208204480477446944119851901896024869081540118016190352051758514410020984504808898807456081872268916918466586164706701849961567736743992448710281912671802523550222010971881083778352321067164725363398557847766556537870180730881503043255992585209651842395301644785001915866353911476103638962946695883631494853619928249365982459444051084121873192344338520621376576725447818764776232527554375688901027698356802127925054032347835730234512213393257702018620080241705915425762233293180055289723203599153305779253394745654961190664678423203101290059582558192791394689669398278508663957369683513841560622797574122365624998577766596864554201348958503432210789852054226671846204799094189981598101907101482068270317955205008359431449504880543043061099799604071719718757293645355264507932199869733306116638713578960986647984494924191344484560611223346980968609596947479154005036257020608538095575168000414738310563788548362519036493488158433676500573131738019551372139939975687441535954900830111370756643906097312262142163534302700176526960386179868264208778350048204354384779237142104393903648366714761380421802348924507857245413416789078172073381732341586414486580813414155001293847258308736402619817948968910957083844700079726950570411898912321941802841981043924646395553024282461078200965404883716235914997910905545652495704175759389409526333671775851749505508042096736249900861157542012383185516372103015636846890690598422676374973054002222925312152302543286455962440257981535675339664463159609121695218767558634036853006233388534619181586080843495237359750857930810358681275208016281832255595789606554444618794210214295644409646377037285913262603710920401512502884493244631038310250636869972721998573653106227580807340409676932439493297624399245113479802058074882199352250504015105461318945829880565516571257943488433182605471510020992828560584045723982071401131983494550608167227065185427509658510608473441021033038083783874622189466722502047302313908292349688882400591384003870579808468885054428355732382795554783771780319987546097041152620439930135538343725248357924823617864595217585553555082531072922966783445337101302455387167817768728664521146863920646564563413666893140738342634555320748238889451579948642823273398218320826786303155427243892917067201136946373375661695813327840332498923407384342103728480606334332521157445220560142350851672645831416954299119889712464682780645603093147897409921684369212086399732134008600938361158979815612151887419061667089118746453070421207592017396318260586905460502501991467199847811010953362350279130762487097961938003185939052197656575240695300747172510344731108020624740543051157223083937469498675516836812252393822335324412602530483965163582123417572710718620201141461235410313622206958614616511662554097286914134490945630369654658262207133295979429981248628934826545465076700012646133438709316437303222732144557432669088028526559906610740560169533027584342104888305287954395712475265805564887094461348031708468252447757126590980782769226467723076249747012048519775203304868462824295959536864174400020260921701063855871508951532741957473540785569972097923648550389344936546276310765189390903044915451919321750865871658347660542291940559638097192183718304145265110327119825913059379794371918955472921359731271416005513835774144820627753086298617326633057379180524819854610889714246815264022008517976739378289631892189930868574647876798172847196629159446036008502239271680089611961400146897797464699948638388116774846134320561239829216658928597555495658046211436497713681239276056862621203032577576874325954171438701617447379352883253196754718446115285414777847724218230808635345590346975266622177271279522647944693734090613187036986550895707447596579619433312327948636480215972206211103631892982997372371408813191572590039062217034411717521586814094776599879156018131152851759960916649459846537413662789543630913028790624873677589487734076387631827953402588363848304105766601896321868861849069250784608774607393149551940455270659027746059739033284092040641012569086554822303753835913702619956544590484830832916845616983601613241924215684272862065388791214652628541446253956509992715516134313482005738533086365269929856064183274118920334256369516456617827244374257994664130662144775291710759089582737070096113682716639468699809859434680539653381464700230712003265635595618249986944222644335513789064353659045083662657000093244177755590952240563652506823158489139507472029435229950325762588990483442895046218331434055197400290021494943152639247483057772761956578259817085717251090163788735535016827865087490714100419433012767896502339488842543038107002264280861835395782177083775939276354340682159444019561257311726300413964409644584603936396354118922768687020738881946252429827253572927090701006261284669423938942770321502373032850726891944554894531309974474091453715025237814186899641720219883502823031506398835656860370580966856149969151773200454781799862444421885475818108809923731817264536017494412199353430564815766779061299151731662724665236961914369151913262405217901771044873610447175132591041261391882323452369986171782193611284682738145834096000221021819204749875602340914857315806115344927290931265381957652344768454945916101900675464524764952936303204653073590751899516602169553520957265847365329539036545673634842603336672884666205081308858335505675894434532009017005225854857087200904127869613015305208038340039955306760961458884636652143618326444759836995363464928260120354706106804734656213951709936785999727527248411857403277893830451132962759123920742683661252319302054019824786789083536108475142955892690712272915933981794828923494392988216650234597832627787263229147534729404627416479362198915554606153586612648903899922973301464138728963357699139817333864782509204504909808943935296267795469868335246046322965874404146395817661584491226571966170524465754771588421346863253460222096272148699179101489677424719716534205833040647762241476984237292187212785959720598541072486842684145809886213261044540151583596743409542983697589941462272956499189290259018909999642348768006988509455994793376116739246520780703005264728714443562069493294403051129271310428532702795862164801356999278595330069149902543045140929687324933352793845064023763694317451056254922527454966275783137572034853402798335416985143766080129788107064162456463089830643436609234919215223768527257417936985442349923020498146290061974477393667641733152115225195413392183212131590094590196914725533808292360004548690127883496393848022869377019406194055226906417251449242865522537262745116150814753890695909624115877769663472161517315662325562241639756655776347948092030385174067945794412384341688133021408655555389764862785499307063735709157681699162862378871347528050152882209819102304006465110779373095255900265480285986714899564461890436359686570464049910202565265581066526824934279312030691241203573548807024293650967299296095090747659809922703529454405220136018720164064213647224760521063770405129208129894255534349762896634722485755109389949355717293197304077621403941237313793241658451421834816391621770825185131324051150297180563343957577697078364682190046095952013118118038339541762781481068076144568898119365691732771483827840886701195048800993569618824661889960156946656569377641445453422461496068509796645142885307546756608204965196209379143108291385763182735753524248917078917111021107042380363938216767766092004771213994542883462254379264770924274384017163107190791945482965616448496204410750178080088939565885449584495306728835844804378996273927448557182425949969665125211169368447872301390409352755836430184840449631531729448554137138077482089845715690549483221062106645104066832545138746598998153023859184341260244144647885048575442568030451613937483650274709937990167376908843435768231589210177426923895552695310073189454505352628881092512285125702017761489685727991934008084176249084146309211310209327945736644581335354392763515627333926083338446095201474503496467085264202104713048533245665681036275615977165318199747695378968427151215902869276751284589331562564440543011930575959393477030137571483926004659397659307940404088946967343686268975125968143195792588612673552055901195195965486842527058395007664995579582666108293931243373646038490578173442938482999417918337203705355488175422585120146457356787046893355513872437405665556671290706263244970037989334930523428792098684781892146028643704047628012802345905879706359681007134156230068843321216527944194387561892786168110859269704380780990063885589276881462149251098438764589199742715185542884380867105628972412293013486691317609897360253051832566737077478741331528567833912561094718052008559510295471429799114739642940340500816966250937846023964104256108003818793941961958638533496582428635903077676783985879175830351958741763669898301532232769597888472971167968958414781118872408078221044842965697547719532648427399684065963379951999470276901472195616366954954724743998781510169465832594427947322139701678543693748076242455117735533266167737115011660850948707609602347773641530249392816196812607972241708025101805947818359180100726166290925768065674353353098412040983834845813608764796082595957905733922078204628469578947652272077698481037081947363358887167487288947619386426749444879788237983602784826151914548607945688298974207236196082153434898818586362967416374986990465231064531576295686635509454792783514595630758416799341965356737244441714052792028311738496606155773581795648486938317252314388912673227847428968438882233579801337060364426616487396342148864380780985382956069770153247774684372696846487455555862289351802725781273376749062020464150472495844399346855361262208862339357141718923077482368271402166417746949944469579190696866086246270856065614598497013752710562638313578463440925994062135620934720173084423644645231563878721712802815544778103170234177054351584540672666514010874688796811488617877402013564367609836132251902265769056505350544166017068980686083576691450571703838771925433207730387618001010737855007147430077825837275852748159255415381840718321131437259681522044612853196735523273052890273274333594726862312427728916381231901444937518208219081416310411453487492764665804878006278249834929358268456323336624070232806855984626124995844340050411646805658994509628409022280244575009659960280699585684907148031974221131286332519200341972001611692476720443261870666064684743401808841364341541478326120977249217451084598149658272155620187778286458026087212003547072434920066163318504512994331935553353139042479418828093427131300746503084805306810870857033763727348624382167576502191984995850483871899517942077077580197055819833957296463451367427047608250762817575428232417945092833739782746980542021345332348944165835368734518545697731478532557343972176726921438594430474992651021752059119835392683432547877438066117257013805827244526349484186163170891833635295386572790621188165515017317698008126259241359873627203405324043673424346216802892041170155010192814865365054206889099188281854876473007596485075856347802362646724817345258316663044021441090244947007604840035495223472456812870129041375580820898684998632685887255720032316164109245966428084544449882005775364880101231347986550100896673915193150956734886982351967309872535030074964645162110523799298432795715219599445600560000955100804843068047681685890655790719673442255160375311748690361496093265909345459629135626012413061553852650694758721588108034144771939823167683574064961442282190992895217661947415389467589907446722094220469154536294787327899917697826317300769329817961408275391440408266717150094315538816625158955435877635234262886470589406739602800901361257760290358739930189029741765701420079835952471044501600125390428374276473808240139831456489306070019579957815764056355906652842253002063051453232947463168952875872108647821730824151979083299657296734042452198112834309268533948425111689489417014748252847696734310602434477112994713749173400776770698427798789638005000159662122083152472199946868032413036603717371174520806005158231347762757738489246661215510418541581181851434527079785000890603095639318253951421454920016484731985025676407618978651667714277673987028334280905546825374728457357349239218670165903952501359336949544158472401824283995293356745078354900974271876844456365678791776430971052454733429509934343450946808876712707818652814821915627563082043433290058081722997343366388725861650068242187065597622070116463330239625366558331803185168316391970524315802630950798966716704040245255955973923262907414509380551117554002635026906680039332554807258321298862425141663665018856052992840107740256220873182756983094633190987138870107113979273695012580694561555135603717723669364134792534027625197450453194034080953569110803870561928392430960139694413670617982749891899816036791601153102392654672278291806738551586788355308583676217261891939033991987265276545836886859745168179262323571875252281256248844464737361149031674509993012011286011809595521408130795471378825235493126779984908038100764640026110709536537079142623986268376279513746660977245304208386958777609564848226700234204705916292753161088677741585503272318907451369447004891956667915571087321229711687460502175307697413445940391733733057757902115112788646050702418660256446984100683909063619137770462533130569048438467980012978269921306058048612246565480222892737445282142679481195601763882340942813908563132086482441919648445773354669389698171669937884373083750652188292160560414143397553381099672718470182901033244954799588627266789242806257564583864805136477372733946419066149888962769755026340531785951659517334367223021494948624852696363192786860300976010685226265844826765809695957622434816029573051392502570369465036436963083928303819265302034148606482500486681764555463158284152871526263863685535657767979958578461819222174390418496161073985273385136499404866738494414686415088541340546780736544169124834293460662292854453001308923145996621541364717075648480448837230190153693921315098783667801872413263490159603825314070308683976540383428327999915874359294645806455744039887497633924273384527516602271456955104902189786502742632554192468681126657065212692590782887406290134796321753383843116537093821896722774567009503287303925280946117041804086720714273139936085825066131071011036532920604652227152013607744161656783370499492077088265525053330495882568248102349695273850465975496276690687133022024964082024157255203036279083807470225970107932236258006033490357553530595309409214825485099215135285207023734001528192671462839165206497544848980617323628329433894930339727809422257684217386581802341343637779101567335387823493385742268064011831392826987350797532457000938630808518679241680692777789317454710894737106868367252791268398882325808693825583427596517662467757111061927892436281564381734263211685241608879980536402741182791354256537580745080179358261588482434069506063197741781677525979335907770735156689708554333669657218628672309183920832312448416133639287473922762279540370238101276230224670247799559428281071431457489683139746960115616961580620021335742713555625168272194381883894408768687806409724035300956024672268012447115007169235662003867610835479883851126161316947183646257140313790422096157889611498170473685571154491318529242910291705179197724970980991579267536727715870545324711043099678807206756097608310652877373342102734455010422207134542873485966186630907389116631486336597663555920755742058786436264775588337050754654130743048056704266686705071378764250479592764282995925304818937705398230724352897873721525324492729724602699595972368458627151600123033138422448893362925802671401697355849138503351747029542003055026367468724746843189595220802645613711318615630702331524489649188898794202531255356755802128973722533446456324366132286120683319781287555789786710075967276620941311310797781427648232547130147560590250552131393565982578662975062813675407009607819712322171500282240980187784373079069447741358928200679896465079617863754967984809235603142394878690996554875864101949766994363671263292241430817860879312086788598691924772095767502973062041407745512784044025567854016878361827911042659618178201354980244469793460579898742317389445537547832301961713426820108635538072773422179888424888431670208120576983831400696000922890308212670675232004079041288048172369825062989531192196367513248754683124235010569669172556956771665035957893211646585027180928909084032039084983877654027964933589242869586562721096678175389548764757495766656122467748984277967874737426031898234752969164662213689728946530979052600823478668401669634737288467546474414461195003140749188578256831015779521886800990352144332336230171917831396132026088487490347179863052253322235767551235260227881369598068376986722746749431435015797735177921579694634617067958757999086183759957727527509624557155032821274858017907272063282129548939534190118258235570574105310831017118890565456278880859457258371396297010094062028988392476322682512251808799190228387632858867554062293811343253805230006996334391194658591875623928722697091249782025491842249851574015026395109301177693349756791571347455467610862438212732122931027010548735479790127535962521824844221966526175748537156639885591107406841904323535493182182810988496775992960687668479089855661535055270964210038926637048975641292510804342292201791972417848335535006942937185407775037371153872221916976524071378607773983177061187330677967561243289950837335615876743703962026881405818738698529503383472430611122369085888277876654600777664330895061768132776070464825947614605431851567608814704085919544236435506682797756590447747602755135460446909510005420046385374358417241863884780915891975187934559501399647491019951678925929583668673861002927915947896305086944337973960785069420538001547916248868210341845389977453744378774602937735214838814094237429350908693018708795379589877562600798534754061933420575315308810068622178977567694126518929962686423230756034095871524000895213681247321708155877150972827188519255507349867680800973107616271455652128882115434508855384817753258927776727806778355529676193128349977437210499366173074231704168549572027199539540654013405231026082806698469093765844241680494875166703745613626533772755269109343316788124783868944959959099472677987403856499796664343326331631620192082284526274411414972512679980855998877877010030306933629991048838848651403414326230086522150240191626741021700187004938860721196487388974871668073446046784458721815549918855327229488832290865671871643822618436002029737024508618352566557360998396132000627943799208973690003022288949056162412416029300023223240494539954880917584569864641378361545146238942105291601935911061763512075856158847825444953727961761562747097903709690130531782089553585801964984752657620714324646366663089994828352691554828888679197940399119164492208640336706650207300754380357176058481502539640665634037337882697179592699961684984760231241230470267643907008396885537547777856286542175857499666845954386298727752552227125065315262817155690210869778714972309743817130282378955791671550331825732889220150428988971238474420364451830166545436422668825392500465126799849032782186277115199604394717792752617910798508670978201508340530088351166284734125620742380637685283468446697963518212454353488456254074241953206297237503204159709836243957458879884477185950410765817891026746956833655916929017719339852127221650880557511331093579729473480345328441995334404603912023338575718115464776306126835889049212508323390771924517349961953174796452878219740836914485337259141424594599752917524655773002246228426242272518958722080620680021591930083296531840683888994329763847856008258950273692219937437985136917001729169271417792853819220681308552623656384920254924055216185617143676191002071989751796983989910685270516139695599332387573330853076440622113282550816093846529992891404424378293021232527634619800342664801333738075987970379273213004349779953075915788630005124918231857367330521045115060394658159832291694850987266854561640525033037886940277475902409938977246721245548106769147083765023224789353603007461362998090978309214555261476841764461193689815756689694397039198698970867982850378350146415144209419499999768292500743447683588054454487361189357858176205232510497511621151417070337832275894242492880321172936769829431365145625674776698294725660332140783287830644328700903254300549858009852365474244904769039343619424664946449080404449489611682569323398672940237767009381655733253224523136856605375251310220657276646557330249270116802388169892120343266572847074005149750650851951012750779076561296679112651572290030222762138642272496575574816653815416950566916551741675955565193169805001312612342372904992686564892784804019701821276466152902360168326610375039845423724545359601940057141929144776116076329980736600162717397007324447901253484299695679645555679868414272727502906823783421207210971832423102406695607729229456322184215779609723460308295855527596871428481692808291008290808946592031052561861954781814227423757737265905901521962293609146331437334235610826562212131434499959156111323233604604164316570741800420834355270982001657284409345046761911432422723702807293871101214352040611887071899489640461499822965730491312039683367352880820407103455621078627947288331244956553674078511685068298775990681162596676470723080160342139913827955448665812167714513915195996733576188250142333515420055961349388633445905760155210037789385503449434770399508656270772443512246972829918566706165082327591325602103634839681409146047853054314712201809212843778489875439752368569852065334024692377017133956102204157838201819166997444025778548174816113081931386279836937823049429510740794145365644101410618136769719432677975894260223525904406530896133799212296922375188168444170870636697009440048567287746695952645001628808875860690719703233500995903307850524667840018535320221560346757851945293483588923504109065329185673502340464918311998772934559953810546853237186317960388408083875635272282671530619290550019900371388087412447770145122186470033380109157719710937786398715594434095400149235614113618160186369412006669410539120362638843948297518604837006381041021540767464863071025205868424953621491776657891752397336545469729310472780364356877039544677428784982959095265011859119268334660392601649713891907913347282005386181529958589932825445649691495284371885598018364161096080532363418664548885365641232880351018881676455592416979224374360844888376419783451385304180323751918713820102638149939218976965276397975431036059285286909868947338334888748234388083336448196900757750850992883500432249661149056390156143782201419027535133875876652728977488912712778121013017649031825844227476136398075388186285222984081369944750194864584445200625447984504772449945832189404686150828047037245044804636565591895963608055129725831185115352934060725922432925777588803177793444350579573565865019787694307039393673976310743194766890322674491367465748363772269384026781377926772176084523637268224624650505847944728913532195606051442604937652471558503746232623243499275778476921263128892085265353600676507023340278512715690061073363358588542010285390890691920941414404894923662636337327416720620722650858360544546384620804352692835773583823448408727673851903107348230497577276777441077341115794326668875006459695395817493445899306690005027902862003662701423656813592809990607640756247809279148062788296931989917004227596204752700980500534363912877559746423734465787971703896067066563853945595827751891644541819491403048787216371255542678491757794034622152720426576949652688061917304172080401841539351568318035660256161724943219020366669356036171328393792229098449975780262246886406318631671691668939662888325174282222260000035215707725249547424516574551756592649657834534869353630897894912016692962055630670600119497506642333340349152000870617661221336713658207103150613741156792093605254591238038778951721355678052247059583655375218428960077119444249233091495778433612380378368873573283733452156134120564627362528460728887649132326819218961890240503929836222792143394444469859511025056813197628612127746725076846051892226936646527785773889272027892686439705691273866627454213646625029119544171197030096020357188147418964514110885117560304574103151948529480493289786988676114648607149654709827119615247990573606545418042658046460623583904948630020724557339363844265775713721750931265905061416675531191914585025434877384282274580267697478840930671439891347991512178732859362291064127324334817952613514430911640489234427411563309823662148171460805967943033722230371367034647902763791984280791277403401562377419589858558830739883429730702923661490416024949478370014597987704323651471965795674033664283713940576069861215178271065691421226023050655299970017459022848045979517102632471571142571763042777935903842358032705707087184506712265200285539268663473967762868832525141883631911799096794663671396941093468892081947288258799163209220538791124659798458268219600279794877812586479766917204699025630901983492909885242371205564535040901033415618948311872548129919653185295508034079039814891501241422286973650620051553184301763394447038258198901117877399171915023561424095362078918558801619606810663678375900907753209336696759061824345527430725387613354149692518543765375262236341107741509921457448067154370025668415961675402340329137837594401503989617230864907809177434399363052728401076004904883385690014902709897723460615942864426971258006266156491938334586533553015608609000995239152296702897365236405646708930411854844298244913546343776493058072184444233748378028224386193533046123079139643759334151487530042198010327515688825661493010757959178775466146487094864757065590045264701188845846866862294676455948751979592129900595623122164765826289328325785637548790949923812636147853304440492399801123803184033292666052809917294671847247873325917981033937647527766131587546156977160101770487991469393845812164846336157681993512456331712371571951073448904605399238805386945718133237660234814064168236500949477025790442019776847042176789137675325167945622995490081557250339680788932490797798586333079103249378951145055108848116577819071329089458789027925089487759720354968037952595153290738516164286269654204934294822907490976669089066573944809787753108992306011432403816261806703822645357850310263739001429715161333591520957542449215863391897792864409723525261008033472845641445185565850407976083591554867629461426218497779996058779809679312848216751822472854761532857159609191626097235273932904923073964565701725946552986059094979752506961073096464588255165232480498817935237726830043133073751190559381301303296894100747064791826216573105116389421802875084650104644347112329385030608158726944916330574915139568424775973671065265837721122471277102548405081742141602152785427274658264305762372982147806522806228853167618705469738982027233815359473668596050496129371297508798029736408574121793585538583952160026401130950155697425028436528255149121771477268134440330615486565718177931464231533039351707029167108440865149245207280413666552415956094532611399053746094528297837822626065612809513070253025340053100023972081148381745717907038965016098783243333027651741046805570535565688821330287710868145733144227606811220960902308786470223061157961889582801812113981533822016871002547512084100717473286013438631452213368734102827141297848293101886431784249984930114259315605761727565876473984988238719797720096298863261915193354730551829381374441578645479062658801039092058591323756458844971535048919650733654400559097676248907725923048232912590456783432130667450669463123674636464974102144955036231892833033359069665904335883104929305954912970508730709055594494862403674772481697714446718284612186734285370057084881077705855994461100573142437002264459380931487079263111992321594155216782156019197900946258859982112110574676602935549702860132172095611099081362700874251629858439282867335673434135684834176797703004997263887277278747200306024752065466226940847267874495624590437586256740143800137995142867252612628957030751163974231245227567470062950186292070122420553725629823597556986497810359342455814912644513494603330620884310766968717512547682495335589807833368939161960499789050791535652680807185878043581488601692108081864138009037477986828931512098520775788926913584970458400264136113251940362533393853263335034870590480141029844903143174563283156198921843379742225035727950351392384537349306614933724439584598992456527245315119768955063716551108344858023062707402680850090350236995238788882964952927599685309325137248646653678701024330266598212742955336871870779712661474184728132569951964932093701699193481225540040279060090086851981953408460305760375796874463183807322794112576450284232010829595973809974111532872032133985213719142280279792159484199135494968277727170601868714073388964019348864263051504298728523179515061789583291565372029635494247859579499853037994474802998456236865811656564799363587362003834499669468172182549030228391419895341248235776695598289851560473876746087833125524307147897838393965063823100268778282221196243733854873283246617538113437719706747878624480637872324727915348967179029643150473601680694435772385591283152927086764655424977481966287597444570786095606550255860021143943322889672015125219565041729741598139015386118153868695564128340502498057303797493452054963627860852990284860929015526683227476174359648443983087488402253660466753179972604396171103580124780814958017228641072213396090257558941400337435317565610448418374231454473028566230291575419281241673594550128759291289852072451434504353031359841371551512007840220407725485867807456812878856852336969243010086005892708813991921034375483405255288655179640530899750442804022391655681894247556201346155333604777910741769264334390089856614991749275277483713399499319641716437851591892827271483055933207970940096345372143757626422705455753462423208648888906081669771751877322737972530765110561914637641580112661003874559071250113698934442889827935139953316000853921493287892024571062713502980675850060061269852392885343353251321355559384148073870516250598465485128317614726760639066599591216751046079660831246651493139381192528570827676936932008997702929033961884591672754905780678616228995781213114323757369431362979010324967165306286738013871441622042706188170410226463243650927493844223323732500420739990729646355622576885083745274520453812086601077092623885669145935968925499057272118091666359911155030880593239943497919349866518338995990702632277712311969917035805561165830222731376621786959006411903223163576293921391498471804491893458677406905763923633916051863548006765816927054361009998351695429228961915296014104466125509431471003332435228546607194221506233818434837704924621720061119584673459743181258272986706125269172226003919613664967931327397343861442001340217880072423195522677735163349375693731000613911033581107489554984623652472833396593778235495363453300796869521084814188668958133063573879408655834342667608364822642372320456084262955996724990126822692887315409274194721646519758645142266557535586789341305533775660090244528720165054751566006997870278650350775215815776876960152369864687875703086737454850805609772781365735268878524699671805300034506913641756812241399377737770669660204583843229562081783945889707383523476100961924705554889303526315728404686800083746638207226016095686853529596110105187205158449025038714971621483127402528231425339460253192216839822764902800408402984961136898727101437603860257467225561309108312654123173727235286829680957173488985463616252599567192213175377207389486698254236990508661216777684634926089420774690651310937911239162134807399107399517884891294557321418727479133103695187328790266388122282993656554601017755894703097333224006697663539480901154852403195247542862308909553251159304704966829673219940439377230681748520702000721227060078627671443109128739776287640095138707570132127609817677917238118975274045888959766278747625985764488844739910945807854621841084900096541172869093479391133523006081168014176695835138868582013184830776476077953463718719506165807302888349999340367686891740912475118481166897762175074096704360990353180830670399597107047979328288465711386872836907518331606518524451136053565975916554870867033844849554290638652180984662309485180776670174028335839771011900533825430053728487413994237483492187921777147866167906622186805955750362718784064412858940654560090891510823522704405216972460416876744855846117183760322976363890112023081483939661383017708638992325415812922574239969000061716798769296884251971366341565003478051507703010778980137971605718952141180904862109682525294998388261991044159855596339065624930782583104849239609209227194946490334496520406761927611421948055363254792279021555738099062258947954894548520379618619747529848342503992555323502006467301805671240407456723333208468844571999268128893628271333076460419568545260297779296324811185458465766451951109706991379293048226160474095811619394235732799645139915369906596235388128960704633702901256147648594616336858527665437224898926385128079776833993745022326813672477932684974760611548482349773139379486090704352049680695548966634848868132365419370417714074511180635619623659106623758387743979519021825505634623561011857419105543188912046288159361526077780354776182182868265878539711694114645355675940188856627575304579843945751509112805080774511404477536725064361424456791816117237192054796148070307309296798490771315453603885978998339394622818001708623077504420216808260726399867057027334646668624110277190792558002400470039804238304800144594323698162044112891442773932913833293491581015545748667147490510464155873814253918160732519353158886938465025931667830027446681684964029191760212309945415337753247038740681709858316169254215623167417658272116168778046882941619972584948244942826680303904614803310162675372075327994837255980382642364726789665946314575201829206191535225512993457238477891487091592596789709148297740097182804229886760792666115862950457165802295349266591745830601976837066344166970596231692427528718664169530930109733617336826078604877636289769620468383825128050439459352223233317738396106751374448932997842043755635166798276059419688425015976508244891905675476917359114910030921466135251567750336462677223904651465042362719674784924760543808588703650044762867273674590615553700173281098481305792472435637527561633600678161326007092546429008782175942764920543473552003409224313453122344173514057301619595085613663648443612830210574396838493120320055190051575206669734578704861836793220508349463687916109603671514147396472443034124304870760539974706941795549962341377619719667645245014634449135573782231115838382398545506973516713700667771131059715144445598609440386011943101576358886217924709816713457995611657984356031565333359617883750085135202604923349815372794709010555704156430401050929326234851516663358363449307588504372040952830869126572167897518190032021824962855765538419646128529924803497596040365108483915458062156752820921624472812511632738888911397621698522179259093048874147456351073982065905948997395193504899578966825750629933086351344767151457073125029093477144347197762776637676634907563831232395130748794799037479128661928696163053635596599089743826243611324764547667009643755629149971525604206652585975765410678051278281083200521398333756884253038726280691472251237752473590926839017792164474459660027488690294207241587926781665612412794644798390739450764940746580305166594828291127571251794575722040011760233864117365060827624011940517227707898128107443849085603943626187178575148051669360008336678839248535562789258107581681358128845439746119288364251137779104558592576925329103690923806536040610719325788136863490797511107048556944357980450528114828237303260233872271076892158610330840165696254780355261575739336037866559696555741029525911121372182170156424579965689611147811844697861023342909431746693456549927470863876951754775603916398352843501698615305478653451477646741827966495477769070386088089421758927218758437745165037524279988400693844667443363446549897296316253502714010836340408971131055462482088767370198962289011278427255116326774152678674684323424799855235064229960240960269955409095290386807482655596025048440860941608843124147537719035042829704873360292369737198049494547797831888828741305892622697625704622543745854375147667276610021418326400396195028898966003418981541255316005908417640244933910440708542455879518319477905925254967132123310070620137057129219729155046679941701090997587803134770168223202352452180088582635034760054920873317049793130784956021540636074826202933055292096345277864110930025020452926524123378682035655824885174382753520612960847899208679479237966720172128614448686382895468268731335394626834040745526093054830639958515247884833809659302590144215883128135171913153030860131001933137243173664515478809663662618958952888885540138302524134274707975849983011953566978050627716924608441042185088514083248812089407601675369668787089281794748901989978621064071097184589763425553626766795906694336098882980683613835966077822478967362856505761025060518383114609871335156563760653306528235830765177243332803035161642984537216620639998686911751662426436885025146758855090527769737517707912469346811711381243042316474559693633016510231026913853498052887159699094694784540401499706845812188660180329051472582100827658490335437138084676417445725727339196070538748355842092837753001051687462661029612395425922711493529315905418205925911076193137972133464106709449365308260453104465226328750683587070269308693391378042828303429115829217369446289352087112255854327626899149767069636462033641509686258357840462602437791051707192211986379530351834694254211109779265884598438093933302503386505794214340084978911102789249629865547298102287664815518794108858275803248701393263101422408639004499688250678459185885613349297045767709886890050924089790937654146778250686653470893944435255523993302479975285488121563261923156684164960845172191964633903911197666074891097494910831856081769497089694524939093790279001583119390260473579190852146898660311047046822730563831993640407362670860854317855556349747277061316953541249023308395258683499582799188824614573589931939830060909145850564614349485745824630314060506430945888391380152849365854583737853287267409580752467461115350407181089766403555511566213139775897508039268390618130399434043670137251511984964315003270325797890880282933022036972100478136136943214844047840950774969569285898852954253982182794751790743367059697972408507534637217290682911200420826592235086090001882808536402686910672855964942228675725056040875699131690429891477496154341853013697909128659236726806142597934575996747474677908486985474728843149974743940114962088450426172135909320682173686061153989917428857152416757337797056296054007045725078115002014862854681772833763774485951486250164621270150119041543496517414369614568672574610241601796765123974889463791627346130324083339310505667705939575640713357811406499024638384116312223367274399759106869458809810225463200465698074047763237463275950053861150172566618888456012395698304542500698087014684391714381542575287338591196573950959772227221403382002625344448736185612671184926552762273623328154650319817868590496189084661832725662092399824661287672248537835664976684637028767872822024522905700127109489501652198030579743969092273058464806268481133741116455658256194335594272980271516713020508328215419542903818692563981768202780381486181942156595647215260599722002665984760331150730959619070564327939260862398752351017745322940596283131458587435936099601480627687847715560391613616900794632794260839120415233723350182315177466902582148316976574893692799996363697846268598509002513585441224333562998719653429757722421589234455529510878721121581029706590380218868636596137949050469017847249956954696867531529366453481895983771847398738491567832237686119513620913508259715797256675323642320518419947163743298059848942360318880509550159813551364293622450433003000659996614509384530953826548108479984508811646642573608830413434394446852733504316198148839028653415966272562960025986927257551778925038544928939358718118191960916853729048881461849691308043073593207870009135973214593372174312972300426840565590874447959999539177839072925238253901589657314620892215910760073975075462803955174467247128405495122449323043853546133502648535920510195927904130029592722240530876629031271779481121617820012765648495626543686747599857381359571321515122057964558242088589972999477591500319100701231879821787390423413528709458610200395800185387810882699719579923381732078402266360285169342459379122393449858940953343108657126017815952386278239957355449446723680825374588841358839270497049002327998468303855958901409067568738920182647524321157277345115380875145064421491516868936565378932607867020772110789683896636924665438649776476990053340451883734367802126839433773168883113425428049204175328800550457132356639425758945227912686177054979154625125274827678919357448208413148262083273906755965108346982291095647677816690257988544516957859860142905686547142648583128956739497567267253662598177943752396461455742192914215338491946284857574333185097985745736745637727348384987467578842515891461640220904711720399794313797146043553330756648307357327439697144565325666075525254531134215283393523821572040361158802009303309110829338661097960278194629357597002936227293123089505163032159621119683564944767077536227087115235778811524722912636632854077410444085563980382429199038422705733960472029005319822261688813216561704294474016118869864013200267457788386065259020928232197841415032961968045250225065242578180550886413667854569386021334488006416339869869769648474167799840571081287639029794135561628374969274968249385649377781385819297624309648647398936602349420540501766631416194673702875960207716483757522877674407743830979592023923681971491259283235768230186469252432208188934432421529301345725388404796653192636032687102955134231567200478330261427208753668416054007463844443138749685006375708194447681367544027707797207506181774724186321403126114909108932456642802975482016277564526247605497050370366050728333062026125055083179989099978593438385317432231192722556841389449967466550550433849515395372359773580724556638124315719896978374605655135718482172552254891701577751823424323758180625627454305473073650180431468270836216015704531528707091319934569613896879771410903865477745880073654073227472354278255781300723240997199237919965421905517340622192960186287334980230908924623245993033165615413197395608360307567209181398304869503511707394680206918933285185009079223618119200394189041313712186440613506485886270843984726257028157276161303355933656250823225000964807754822099490956264533271047831327663970902960670177588470634131022413168160057313292077467452523688082714101142342438383460295920378699853782688948606282323844209103850803781392870789873571022023881463102789629260738510355387412243463513970725038894325284575375845429370453317197949890278245324410227268269975753551225227454555363629958141109380317968768346999080946056882719855441993878965904761656905169059676121273799948161662458992008773740078781354413229417869823931094230659766251268363931460918994523117691657129291423223212764932762546529778305933708908707175586143353925345571215901609756502347067621976815821629574995110590876395735296047247129923026978927909013497469519822078643560769847532542126596048790880653019325428872711593869397249258488634138859128538592489479010645678320513041623727277186505888140104265595643832967712958265438099321298152959920483585864122023560677479975969867388870332159544845607078017895652351103548221699178400358673434029281689874045889110033693528048273618359800801437328738169543628460096882545793317824732803210982684709455750984879776127727533713962186790184781496838563617646621725207217392284480485588083825904305806129604178311293631197389362008699091783698692300055619880728696758360360533510990664642170043468236926156696600609169968807853601647438094198239044322758808797135202824083727694689100405980261420250126498906093714006473995707034751739485778030885366053380169767244864708409380467477450674746937942318493290773746774210224987865556458136306690299866426459062212874331791043377301181035527812082917150807927633779798148229262558625612694663524053213908703249970459083270663935453561778154262071960298098473209796180692058382362143689501126708602085006232211826766616616383557660655372668972940514385521192913539842223296634106249861211823894690089318915721788637252717411379839713237004477093195024406284577157690200893580588416945016889944335481754967782723356432756348770945759234734803090478312435716828164886328219419412341131355239602461702890859162611236769280445015866567763968272560228493672221871910707030416075948844657977970820311454205756454950255352446301923088536396482472739426176843931083936621431681963755639965852710721453362321777413122734716877568069429839373578368610525932010259310412939741772421159008266562193047658818764789667700301330964307565399905147626395246908759127368965093627408011592674629004331213300206753878148978994869126400632182134261918757512085570423650009287916290902789034095097290778900272108344724827538706500440294847628756941108907718783993014545803513733281675172338910650813665666928820729145342247869902695665507594949015807478056872257916677315892760771533828685160100511899765983082013589746220413318856913892098278229467002878737307163541384455182021312671175753799504604808763149033793662100564504425978925744641234421483043550285623552892173848548274165809231790664309036634390316948700979041571024709478173531404426753294319752842541133359365588394867689855786052424675784211956431134806632895744538365451852996977301035529185472320416048306447906975242457821952092261971323935178189613590198537599924851215334349487741884558363579976506322147699022828776454505871608021874439379740936579688672988421910550273712540532478493060147467357133191925533121474350345932916656383798123393592164679988821557649356769576720362262887042441234419006838965180983800388498898325548763655433970735527579985903675996747336544191386394925862365296305779269726540657257871981482853211263157827827904349872746850343398718663742750213869218592321306997223921276024268830596931188978564567618047308680230116438730985509591960469282245232835251517945082062158681692292616913390969440391085525861675222745648672656489567851357541363789804557908320565323764007167382939235428301787282606344885541467010563876828392219680700858273676844256034614908996938206073141802638562779874463384910864412989346445466077357021163309750484321598510028122693363872697345617896615222375783442763918298448148294463550837050162661203151047335751035423094863700251574039665299043314296021108267701952479434509263887414456184160078606856118562308261356339319309158889685853239787011591319365718201973477008408380620137044162813827043695563160977996098406441673464525854551071384193141471851628183043225109422872161112300052124332681250369816030941009747698938273989899205964979605724029144192836602449253565579860856889384601276242803613910365910641222332148907680641862384634813627257732285656779469408063404567364570207593234458169741369213426382702506397476580799084235443611123602684869217828684326419520739949566225395872850284449596392010698393281100375536488838643937955703321763146474914454303691672081180088688068657110931763880733524417724219592248607271524074800351124111725376998542364585596126825768677250910829791814657395473246039919055795683289978149107937317118320020424178588955273723754922748545695426728353515766967580429012951967458870301259486303492910619566783706053658987349355008130190677425232640164432375369073296732432717502761433080265235933696457760468955210669956037537251368000255633597704741503423915945519937862702490310803199401126745339501634564500678532933903770974362957177578241703894213958113192839688692953438671475122622332664769617271202314244524973631758259455818359425389568240393179521854153556141998763411717863618473991147923858310493031806031723648667011004202638910710305935112758380379667290062635938778847776948849324885822848817168472919375659814562202151989941832361337149048022859906705893439325234441343825576805910576824786802708907785228210727437478908965452205479866615893639528374268151027520715184872773768321173385316514173128548071865091763663828549001799809987285362739832436448548175655602375582995142488245606446683516262472605019111714431474863870778472406408878186158413346773981520704433132126462387541752861579241627240877000046065343655890051761858342152666391971551953130033816203845452372021776844479151002579441937461494092494873183146851859551280409311321992335575020739837486622995172108380275897627206690204257143419145950145159102146103447454356094915791948071843807023311728983365443797113237404752764908973134172203777061854162543461567124418407113841702781398131772309027826276560148160023682611209152435494647455012164082465689734902433957454012282796394941910938417721977534846835416868270120724563364799272151346420155577248784447681078285204362587418531331372764998116334078015206386181772747114412456742947077492069757353168852717211163449542813660449607695460300744782663656450176580208772467459702843766798650503317770096420323933735766080857822848898759764993054177000566135127325776865810201783500487716733574764993642031397194613419780178155381195246615916148839341992696393059929904472145868142745317296479069404301237704092481399506180157452441927909639761530909417803997581552966086945281258026116557189419187550579045671830975852778981642399522096991333442850839460530335648418112889080869790341602013670753541573079833849976232364990123448962957766630464725766496288970834395222633155004108576901556147457971162888115920168950255862917327848528700164776239262228099673132616920679479179325598468071981668128465749027884195048497273783530408222955427952763888264799496830693603848990219025938610047620848293231924084633844527245345920494620337351681072081767461198702026888716981661306566423165423747895546275505182691883745637856144860467925328032351855368796004540768445339747343705442880262685146463018926465003634886813549503507425018439374941840618949099876865049255717750744518481063370615102033258494956907343656007009419221815134548236476637525633521242533736477033376933166287817455941236864011369948262005226926163205440887267672680141300060389857546407705478140207902455919158298590531953263719436588113684802619575673549153922724696340481507580486638365652952000048851646882539590012009583118314810840493781325594731348719572181263564432352731281348575165443976867979689118239903980502286172252224915868108244598215970042399564843987030804159110100287158866408818135981914246964415291574022828055789485151294413637975606642646132717153789530064194520309560788505994525846149569286499708696403343524649324885398502765808991714921797610799646862927071870823806601853125544798192245530022458612798232228894481150076864581222138358275807780050775011540294681053897314625870592948156235327331983860151440135344966589837114915896287742799653084565704867254608766952008102479499057666842783944703068460825096280658530295416336549179714884678682524309974399095970983587032318439140400959356098211588503331758874408364200857164940634653685964591143023536234800867152540372497145563035163405092303531239644462202415096963541518259403597969755377360420290068466420328365354240665731976066817000220461709522449782109210755422339179930196619901949927112537796838481249004418765452724161017672392648320269775974744550450255485062723634448825244143905195211745320976918972904732140572925132909356670627541945554176779269713992194942729877046159813848779384717441876249675908224825588819472454996912929897682002487551308159610844032477067635524727581299172696242837481900058885973431291854396007931491197276746159390662089042994126561153031219718077938587742088551990121564687180241896891268820710492330746147874762135430995832626474889654524553210014409117108717284965083019109294112037610478894292518344989813427883409843115960935464230448167558985135468235979006858142704272530405896417018904406430740901020882918319635231266836241620792267590372648823169623925520328105104629343664748147772677337761697866486151771938382255984836231252252422452262427714757384264217781627549426203238916369345234693864176544731449861448811409720960310730079287442886276949833588135425133537792880422761882335473393023006240555573117017156682484443477332163531636655127120067196066580186754142986357927346537187649704052428771715376315504607119279388220907775009593089249324337212748058102377926307571142235723631359989019116579157195052599423932977295509220825263699735414379059605128944929337576037260085654497053103800459664853968334606346158302881136980938371796185582522866174759874953035904864103691869283595842877612710328092912247557288558320339431413398116037717987478873876413371445546704066415610660808958975204733319003478694848365720824450641423578676876397696440262108956731974827465968997831671717990440716954958546493227064415951094886630396086543420779717569451622406028981268154972531294043080450926965895597866809028359966873925923260695312209843871192581931583957621466366608340223549336363181945594946415469689765205939155665441924421664071534661441120706298316967703955996968684272625665005371234066774624403711413597578675088060247365213751053258853319108604114356343732675402360583428568491957464073034489261037854031064189596010238153234981046267887793899112784396380063585310896570799951238784835983200169912143986014417394364796316973765604516004243102376975570366505950973849298131036471670715760213784713622747209182796243630007645005645069555882721192989830702426409940901566026569084498844574861716567707675476409690485656079815534761410732958274018689984584069731485405788011453048318858492071914087678888817115972386711472784517169624242882003818047550115725447336765489257982328567577896686211042286593257704201271348365862250817828091699557835634940731846942651293112732194105825096562724818431909296529810151787471688544699198453392428460382047876161004525408299237705311994461685614366555032986124143793410619332012767775754531948932497262924979313173333919992699261492638403810375693250974942592751192141456602000280131538455012201822174973302096790809217755683479198851224438091507649987882605489209554676606353838997393817878183491374871895039515863605637375281200583897150255615435028926330037689772163748774566667600788041914344170423551922313458515204220125894094335584528808388225666624776875733447100438630791028553092951472725272076787678209684638391031134602425413665410363035610485924258052660747521494361298926067472864381995759231122982915378437913719766902658653096599796100632431837185942194978192370890304366428514945823896538643682865611254763236187617450004041776064336869820798977092057594376803152459163150155820465562274870396026509521457063490639115846698422144618551087688744614916958557729907125061725629817330273841824299299005090061331510785589993591829603161982863788955672697703460155267497763645199836743900122260003675704292780353352481669241870869536232548767878356458144245561084057349610707447938525671221615953593899101724645381916661857305460973113139584770268752525054282835212150723925893070998514721603977916183627445058991980081106729300097661980806569860461949788303701586314022061526699339303196270068242728139185727080274252424628766571396403985994705502218837918778100093725647898835102769108307906327621340484057078910619610409542556563272434004812121063836435130089216161681902926248038595789275183147737595449103307202587127571540064524144907914125303646412472296894073989301871763823856005220655430340225672737722525971370261453782103963753963332830626961090793885444480855251992546390208364250396792487220631279598180516941768330310474679279084162709538283807614763175046630079538707343939597465784924636797115040849122723203306572109615862310273428083844331385411792515582415169998028815176810647809576537099221186154753904738918738109328273658176070966834068360876958059124029728650752016173810081641077532141810269255448478666699172190493914401997953250472549531775332804078979614038111679164278706814639356443840416315284732144502394897216284178880084072123411403806231016556724657347071010717658572461205892320687167527862641608620425457994155747205881307623295948680091406147860520001961160219776237272532438623039453273772893193556777773202263283141220360083989968518894469233199571588929112562516342292400753412351689034300647967882637412871582273381903382448705362711979438270878273312854648316395566036544572609295728604415728594771925935552138974979151869907315331841603979388224165127648773739353253371336996051188397015190007058310320852297129871066991659409464504138935639504865210857894880218592980301192150425226423167072733646031171752603116360630815307040563895919715705573971223661493610581408792229539040370311645468569756827584679726879700852081664512451720837392094020580930551030812202965656011995898354353761585091547720889501330537235606133102339242332576416718325891600868268667796462378269902115772762579778860616997328605811960656481902449466522009661746454528208800637959603979879820551374612311652114077646124046153662553280734795264123249428595888983470013150636331596009791225863776608776412762188127946804514905058063196522929546628373332325924073144813686951319777518810382881913663911034610952207766231986491119209862947957339475911092186584913009545162086957819713989458981061092517333618487784012460567109199720086618128622801133887731509929362102128553731151492658891379965896826304948189329382982810365324722295698327738880921072378223722584475918029446355011215799557772795658031694321748838597678758829766401708040666792498815461075594215895273238624185487925717625919838798025259741345661979579537318814910956416075852958269414202029659554665373212947003331072544864142975467162115419344794622113337577585113799362376502808808787401743119569109936547810320821472262489046457214811293095371672435470782457074774664170861416076098544745716338361850092989702784361724441718859071674879260833586107045333655692237689828657729935592947508533497828370360934713511526826944442423790903209328801483268649809139681605130479589872768140712403719505594856953107436488576902076097936644856382669197139886798219117421234156045284872714188323485262409400365149225394754875854986535531494957848153640504575200939660351372565770566413256260962153021368832824020911419550449896960864406679642976101556230951708439147392886718073838694533548521928534604645483098968088664262777478318407513985974559576200655847325921186597805448341828479222138410490364412896081736054566282028757981836403768523995009438450398591007277882987923500337022559615959145548270682510908002705932484856483106635426454387123144025608053269670053853714788528947877277634172375733406743566838620257384336375609433474457159927905309688163667051498361247105499787199510596817581792027436000450308738050911361487509131733213858787602251308799985579736400128992962856318455736920788842227801170191079234433898140412681955237456387691779170991122453153232627532567078083260821757965963144030041266544164453816881990239379899673788683577984648512913012323625790732737130810009020838971035279744295171481928643476529202980815643547833757712777734300459477812271271859681255050184949251378549423708291254605583515987880863399279427842408615005291835386405565421145150811793626105352744214118684747089378569374168442997490219898041485312539768769199338083564541719250404674230311218216914689265358897987474617095999323441486255802913118150606529893413516227554327860570808202108991886785781758655485454963416894765808334247704682047465132325830817401617084439674986857127014364963203799824521213050477323600625824519068690806328188293561701017889880934104412001615039029137981380501811448482693624737168152640983153040045467691845327437718742004772255869936609520479786710681853911399468910323355393927116808076577152956776563474345340684737195275222585321600969055031967015024509031625663780280323529224498911263154040847813884745837581009116469691902848588858789572301569074145426476727416960462245626683174655396154414081561563043534598158979940872351193795271819281418999134092843562015988209392794723402155007059661401730969661128823327215440942732690514236532681386789215091853826954471514500828418670270290123721536899464502103917373048164231556951891684484672947989739601810282013823876172427612532324306425670495171026814088392109546756780076281868830448854596360783310301036743744739359190357226607440875478494531099490895484787615155519728665490231902162199081807819103744291712924649584969974831212756937898252740894951853107334896493178045862601984332795534551774851539637645972754145889570216261963686475068169911642781959795792514711974252296303606033753000493007709323224061724580421495484533094576157326262808831347882017041847211968006651152701739846088567809990153552011002894225490825464820319163725590417379552424611882358961415160299916953319371288828601820182907135973243139607395858998878479304505559930019996462084762682575762930308038153545146978117890503077577673345979401546291923201704861752763806730392814978638925219231014054385893054269692274789724842781142264042556628302524269210120541439056007424121781819204323720317013782444162482541887576687382376850676422979128573314765509690618723822108428918699505434600213198547063434027749975107609351007124465598346724192321063980264225503181480840518292437001659044492661904354470775475520571994772116595275296976463384136460382781648568643351168576825166539119090872798144335179238714394811846222649216623996117133979095766094180013761595845603547199825603350794336900308426162438002833436150447036337206121955726309321187387651270634081095892237052753290534336794370035466941754605355752498607829027352845741965982888708985177537733919143929797968736469959383895396418966633961322111976157004436848888486577021706957230800777224867376819012412155490735931543168805579628881110272635648453029262280721851977987137733349940373379467794603597186897899823325531560043488619987989670539610420068720131476524052804992325640666956632254955526095255833403860764944147048773653022595062538358102401364075128515844482598509857673197631708679061091517956520350309872530356291755199466468738696152947207157823504331968693294278367439396351377218634485960316312833220990768366973337140338018910288118271136313889234819161276693296531061814080894007887149202494306637521517813592187312112940606031949238425710887789772897436767080408824743532514665213788908002467111547355933593397249294011742460394040398637181038492485732672441338666504592958483978259593983982631321857887528022950499633309358674936378954389030345984565056986522832909082891636837712338767015422262737912708457742277299765770180495201968282125169555730302293364163496088215957089875854048517730350805712574924534354486893792225913377703191460804667957507736741753570574662999819661415118581238967361705236853681440427220128777041656277770356770033897296961419600200200712672745084234591395256101633314989289359863833675511608083157979239964478889416907659497704762780029901095804513075659319992938915413217605314130486228611363194388014572657552311301226085134528998168955867351886288844193961157230256360418429551924296499344740830618173986719092502988706944391505396195655255729685472919123979604302050377925971239666690800942478827901921286046716321402166892166580103078599132151322139104024504411464005266432698504047276053874288577597312868191387088804894867308760318381651521019430697387611978870930292308317177709795397021129219851499267940907991004949086411134440778732890261543888459768699781127690283058242320803761329369716137757757188399639037337597435106002704037603355329667305232310176312871149523523993480047852448801390677295741899762170544177151607865077612829205203259641233763383512433230405843347137172342705516708175659386316224963319685810813198995156201719890472052702559036777647296078584493908488160470281235611989406639981461492923404402255906653109554825875836425580609800549792829161833780597249945109280243202170922228063105927840899175388991260034343389513780489428211116849139665072246290313434376421885211634721772548836820804513125217015794668502800732981758080441284181854453566041353941078784181098441942041817994225175852584452618646026913975019794541760405673206524510948950056506218794477767627512988096618469523114328310035532323858786320041080956696469138833878740825375238607309270901596527637583944977630499023908925361256030362974429482440712578773019818280145426155162298973856278525690163193758399180814456533621270362180439181064035373200780871076438737176122679186130137591840225641720963898585134101427494496492006009868019180819772488977431740763800556621304759018061878680990283491192328104285147425554585100359068726730992731294649157958784498571923485220778625452452424585929791020284358996650214880714307316043557068081147513173871015481590911855288643763076234344508950740682510642676950658291000319621154294556434893018713683781918673707161765613942273555945181286248827370942078689884878484290976108305054416297525618437211603710169256454710829279762631866279094349540830781227241564215084217828830979574405020856382529698656369184563085518689987421338241269958158069302282980413862512054456269226954576121233896950714011003065897798739807267904421373830895086424308547443349848935709551241441757096831571305152557133159519821469238339997742710865218779611452164862410449049247373703042986954586269713608107172182631575758405328534544925983709678561676927866408899202301930319987367133124063633493328723976971702108933629446930767511516471578826141653888178879112563303450478929068859231015669017943509045875726578436040902580325958596134830027042439686384757097898283769277897369217305785368047458781361727702349672087187823257009948665133785804375180745308240876801369227383259105635104546836273148761781394806099417752695787782698791237375763864142758272616835136256043854193817887757138928881305390018516411685910721280284905193433076463177897556729686552490467529139138738994635308839088372535213830373037700128895039051246401473273481378624813657356067225480220323245371345190961163899312882456805144078822257935002314719168416821957254895661302498315655286742929093566308728370955872043654673561014325944532499121850450821795593587123099361628079369663214099579386597025227321330447191547225659349095449914655206973959697524145916441168335487296414196680948710914237988861606864008283778103336512962050336312902686164752007465757497851492166174506548151276018382736540039870023002177242982240815437880013576377261797437996559128587253575986339894805307512326555709610783461358335939256057244025832948939907467702182794347284929578044256223312301167445748263193886724647633647868904085787956541955106147050067411427029561524953499984406223313493971551289483682658604223076931696024519624428752994164167414569670518398966228272525101817270853243823136820209039194744865319252884619961370781146820653774523777957571898579966404111742914201905629049145371792690341212903638897474740444466437274014590909119902903959923655466125838919899453590128671805938806016736879588229635015185709095233460102851027946637228391429160644748089574622031198878289822989453906055293953278305789829240555995424400522031005254134609378564871359591933672788405988538041318825969962389697944291825835251860199634632085301396059077817532094860371886706637592388949294282989291567214291150969834720519729843210809956251429409789057348894027300826103534460091545102861329790307549896918002091789123208598621397782651397819913307330019132147949979011193836189210569687810600253311954437878486095504724421260338665421407302566664757176110492331596648051784318544317508671263978186491832061674870860785812389352211133025954071394178416394439016891696448355122602374177928441409988472321496255552524841984220293108969266041346628241451374288897275221877424523847715702210511860055913953974894968182503639950435553844513960466555062899851778907008059470426443713466764026901602685073250353469821680150470504669581960620911416742321746610707137992263461758104239769452808514873033345111195353830186178999052726772117723744023667619498535668207917969293538007310690929062245762976341878283029694951651338128799825706999315606883984470627640519201995196373296670649978847743663706366283872404275174326286719558315513720318121611571468748199159249299100281759275637929827300241276484785941673642362575970327982592334222629587525546259965422795290830162218958598254753329144373110885115009651074653498416900363151700466157775390175094912884011696691502595475297405432856979962951720043316050922690280519714723233287439503622065590867079000997408505938938086837807878718891517311150017674014807441317698603397579501619527856526974899371767596568118083900351496778529304861682657962027036665017258567227039449110302796117313072300108461920511231178190431545146326441302575258381197409801029242573529432257645989092961908038015528999576443086544189732066001841564041280999041594620999452797637287006714641133826750602311777674399632193983875745534145677267819446874894681647675562567207737280855596003889595849004913925724373755079940285302365974457947712060357782308689449962974688121108742942861329992080204178493883324739545876553920374308919544787824323424100029516634893431100584277207774120330393603127272395405006158113481659519180988220527223240501144189428721646518941969638274823077243316664511182959068665999060520695761743719446363814878964063824760295351996670465082619327298111433325648316043887557332912633550787537994669944450553972700834429090716748459757647584437393680268506370618274307216655392249685500072967830536761863363815541373658781720254610983937497880488390842815430212384632932970397691545915876113324407381980454790563175458726778922884218071865228807472743674671464365488427699672960835407169355303611343163283453446809958082325271229564579044783373106262658740101489660095372946191107222983261141434937678236664374195843388092341088213567931806633555378776874294161542475724390611714816216708121756348669486502693388608133321199568306647068348365497305108947469795101013041393846164381185909037906664093255822155033094476072659787349076002992331076563803464637991469981204958839799612935048899751126779692891172950343386031721704980388111707898351713502091016120305272584905871855524882100248680849521606385772342029215658019532025048011709377800727219267319677308201736427339776858621501732619525786508862294439422576649508065447020865841012231674021013480230816577175218509288338505887262887521354740872335324953122107972158626883147465881688886000784044527258447655995653373085022775859990922271593322240488693266142755536152832100703767979781895430627937830840857172061825141083315683737060529251201268028230490367276452380152433990334336400907331326854544157659157914103117790998446385319121696839409601108417034395886351277465287014862573303349376714466827389371468522596548127080616834496189715757159772150892566244637029965440422903019427895382564314944472665263618326390112987064357574553056962284678684244622103471814702530954609269686634980395341618825648633063331068941917020734579041419504402844748867889805389783626651849637907404556065846543353635968134032165529148371902932855853986454045179462599019413880317143247855257933268101295025060107374225022459082561885995290894279501851935422578265851314178987389858976075891423693425326089301475131896492317966007063339844853380531704631916060083724495120952624904044447910457473338905898672222264301655037512828355704345881350914014831985606727222079641389997577748056393918021732844541101141246816495339420974713233173626493899293958367350456919791646883358771584420762045655273041136809293116621183810090544918857729705443755730252035175872638374641619131994228098654353200853935273034585567083302946679686387090523562124977196697457859847860894152812165254684569418946579742803530033746037903115644456020489641169777727672902908024606280070114495499957719192644994315178966115836800938198335715532636441205472643751177842409183386231863063275880112273284852394074631954523624175619958012062690583400319434929688900395857805568246538465577073483595864675691609364162943307898931257630228493432457073629732743536934338070261311962794966619479949801966303382536683377429363237674862396110968675903312223754744753771466054021635269835075200619935788745140360182974587143212814742177378391578217433793249621498727982202822282783960562874680913346498930496007170908968054983075863234600769063928022435861301567158468491515129148853902403629252387398500534380001418950258029624855831444756991398603133633212185900804499057294313865014789351214239447239385759251464126350354467266556199160655507027756109351026377883759771512606038521713221495850978587424024148999516545061195892599963665151306476887966954012779193235326487938050835411222281867326903792621479119622094218446074829888264392594684422659543974186804966581065984575675116624290315325681135258001752196681785057339137481172124493696893938527308731561818277903950587787161332131893324910996076532347514380158652192070514440959825669225260903349342588208859717880534178108948778786476086941281008465572005299494884425782382093240266264987522655305741570250164485308470343361979721380037216098013666112986214533850865438644482007438077964612277186341563998296027492754276872299631065153629103567669563054317060896219254343286354759865461423020393608096601525478065675874374213151907904688102365965648707281888842722699443266537760744917228837728229040492931233978367419390144339354794456021971584852381007279098833260901905208753853081537055163969436207365581873317556034596662215002166885934769536496671385462170964458214341593865798011045375979341156350017815833441588086483528855807257693442336846082743251622441202450200361389997213871783449451973096713870419750245500806803935967311528196063742586153584441503031201467170638963535718036746295766358401471013403225122147226769661546042979725954216595498878995753634500064011484916208469863614890541639059935045779962125069311872544923564797071673965558596302673373370887044057652057732366945205389603609378328861305575700197537423431892287154451093229841510684253922443651572931423673441523155130787501881033695117313980242579166237975852736301495554064988273615622608261592615804316786932677775957171427860645065911454086682494352757471955737171308617344697272105756685334473016652573860329689059890611309522327707630774430687418717256335871672508533438774558394443436759156382580435943082566897336688487114160143895665648094819988507140234757363614458555367709594939207666600091260265425838169428574322983288034655025276154503477755291530388435098555709682919293243356240479538405858767474158026046785862443059446883416270086641423562378236284574204823381662437173300590725887302941453034497377880030869700281399274234118223795040610427509020349018213088545565175802009948061035749683223906090017068982461027837253707148975982967479589872978057630056591313096822676850631697378509400650909120088379233736616044210504988699703187237995174964455878982233684956094607759833702864281580882569270644794491997572278027079259062007294845560518488788752801527358836941376586728808163723015033669844339637463479719975637576733703598090548132842693156296893421102018683703087955364674950287716327888376524896163590042625544773121596415145830574808438549138494194118743694720359362448816761489742663392920507119708123516775016150560818934822002969849460912381652790999068472389913094034567139714454533950742073372368761617645380270127569089819524399170895048147581519219391243449115800619256987921800956258966436837902937222596868219464153074994821346574076048934883905566298329952860081426785790964176428078762927099345182036536870916386825226591466406033511092666164240821031151139695016090365107741592055822074737180708815683868788801228779121928253353313140464165661165082117355135777672936764247748028035900079473157253652214428468947604313007675739004071395056024480869847304013638552462137121459437448247233196465653424130900042953095981911214442240313682086176791619639609488735916321985240609115074972354977964940276891258280031494064649867378938260516749825832058436409019939501649843759270139171145409122367077478691538523675930575339747105582687012847242057267084182142480987916617707579911538609908454167734339127706535343422318705328517167310049537905212082688933571957174551242242617048583137416311389624438602367189989220703425278416940022761767420103052086969295571893344066396832228501774937128615491813013425871003623581993910169911504247274726088422927191036948023172248975323952540488803869155698996087853090594222890405878041721910891151271981613104543637856234340454154034720422810474481617625206991518712645852951887819731119742769284063463818427120101914661342819236244509577472095522795954818200704094663164290513324623496434087474261540450451181863492508757680978499128657123886549296111794284053866308199374691205047586293837301019051730072015733362980556760954275874990075613451182510143848679554022437400087085984339010930824158258562311378797712567948474766195318650083090411081719437231611630914259113775162765187947135911217440821947632903726482860598446147692713394637955649726312461782921743841498671352064999868504290586455437904376548519953234820018296533459154659861000023082609066796289529737328338370295042811335899059867525790531620674082286749572768431904031197196470132777174752601338951737830962173627215026296768589787243364067727608163918254273795514384711088466742501207853994475995892399559832141057062162403782737973757393430443769107641243257351068519427287653870875500725218859245272148653091301413415728811683502399252546499417414973102850792567680013155234654957396927481312724686701973753958409498428211813461426365190354813124329920562469422859580632862963226529730212906506564120461197821240220498345541233131066648044118443863931597838819129677424234753805152326785985866560853095944739249476095590826589813668172611906804745485126844638882243043632490303917744773683381502234685538881787247972371069044151665346268237309209440810317157203462288376062707988161169896392693556787179662172209410845704984246228896694141068080759477539356773862808594546665956824850361155126265432611000921310237048021234612806846954478374070140163414621797278480379755384935829900354147689565519517055998902921582933643614871065260435342077022196181339016143435252977522351955503804538460889527569574832247416958134509693152660833841685756605045912640686525227503293965847497857946003265866988964184088949254222101473614341732444213090523462737868946860882319560460032858883836449253458590445043092209892488920314290836264015297933467419766141280758225283973379223118193500378519033746415008819011821254789487922832590721628047855652241687353737405196093740878541828810242216574585742200918689664184029608187891318313523320340652245923169292838294689745679325668130652198182132731489529506998431234958303863109099714726132654951782196287750213712289758789802989302667293795159722016499934794042291745995002398843718363120648784242456192310431592804024475099964555669009706222085568967479009881277701900733214392363793767239263381308173017888200607940987313076771753957412827020556050390927196579642126961417776699617848381347903793947284572794365176839859151713934215033863701323748778178474919319124824964862992743837138627751470019025823211242216312046190946271367720836407707172897058805595322242787080979205829616006346722433527286442187976142735665442048378997230865875299108129010918318596102310505364189283106848056922485203153112551708908441901546792519348969824091511958596821460761730686927653624840068376244490827914336728955036755598547035725900766082662890560388850109240686092390022494235280342349751678705867217319220291245826222465923414718068770520605228018687794642516730726265292594113690017840860239116242313928774499794599918433773931188219770864983720640570923583473433980267387020326264721100788075903353741372588246383134070561968548694539146582412337134318564902532119190484046611173353435650968866809044241768752962291525969194655894285338645563198930429528411730997956717061399033076757672133475257002779515089708528222520794197999692490722383292248454565760450189440277399778949399875851578368689177252394083019897343111095575167274132600144742180627430477318460012641854177721923271183583559261002909415009602276770504990290073750304369387361015525299841026153315602649690881370277188742440734715692262846412094699533506792683990266180107043630511542673487622705848541757903101756840445411716224178989457244161205675258576298198181698759671592863444564843103717780243124294913832093363747287682420979001273835374484108142015425378714085739649361716714895137099537752552046889844144302368336720195000474016769810635134120918083166112666464481344953759732801869801758413098017587071741347940652227916687745921933752916315629423918941454197759658389710936343952686100978804867285444643046405609543323551688718392549758302827587214430372214466515669711628658923567772826390146383648091097605694761013958994416608371442848496811192458563231720899106420692464441749452253735048161822689911259310664700177388708636255982217866809801217309423169416648852391434298097691592999045621161389219872146621454185796151550077460270210613775873832004988608732113008962581859117609771018848913710750929856869724467807971767959161488037801262482071915534646285845514259354434653405332616547613937006127820414385080966196909375059630147696095050998391264563200757320697143079532831247188906512462236943025690445851657298297814764558006305980914376973952112188322429619764141416892490037808956938556310372578934001160571050433732920540296170358482438773653958661195317055917724299541273595558346253779362363921327357517443584739039770823251397526759442275087335274210488727791231412758619679337158996558029057798333526777721479688259901475279753704018402369391657119798688210207625164469125865837970206332460161073333105510850345475134750076928332574716832682442901438795571468704491730925332039058465947614736721059186283421973334895849144025629245448515531957001983442514074325973450210170196258585144105084200915054574322088060364409048043201271051433666238806252150084066277918386594964961847163183060419043768305854930945196519663962204998403089900283640275809846210025589463213120859191268745558907011440316601527100879731752938546438355131922037146314103132266943834487090531931941083962026619096162043151831146198652981197353559077680940483291240327763368338948607397845306413938985186214763157291107139815155560112819532815943681000742911471332619993368117984860551144579522102273099180745713096478895214419106780632140200953365600218534892170299478647904089703813696930646186336611791411981617183092266235707448541389884984922988308881490949728996848115601780722005281714115720900223075852517714435954511139469144363949491156419593069119424336983989501572490724530238234197688362125505813658767964665105475866184140066964115739761437483721542671808737289936976574609865455112212151033115775350580840639868704360930480574459415891812659490698273624348649680337728225387318934762545417785658528742336311729184767731382283032215102601005343590519792521957128146243090644908143795123210510435129574091199498835703929732052205218099328902512305539864534954953243230620286140671036298790571288034364266016497136725518743040192409539233314011431266139427878382519711379021037115627852774480279483853572186067825249843121088489663853945040267791172550846230795455412352611552585718809574446352572032171648561580728518236265319906472125471154056623180264059384001898858275082905724838861245494459109255416057561392010516839523697549163071563321581027115554717426522755209454032356265382131331863793260263766158334518287741462507609905570453501735078505244672983276784558450026879482029886892333367113387818535740937232345915581247988748767334223373933646909515361816046652985954180438168117323591932613588224138183418832529866279843176598036551949893568191109285339816917346856133596376983368162427059119107741240574085412377462068790629402842351901972624221431379542080216476665592054562753732378176789443406620785941703600565395869642547250245850062949711726381039838774992900409761896381935282554195347171134715553981750137851101285438572528727750316657692474901053428439000776719423797393546511622713297389004599604171897375849393597328934813640483032454845198308398307778596943464582227034975295301987969295090025464401731184138044413638051843851574304301879955525858217261571011042029361744722382711685499243509610592580676514404048358258691347864106326088462900718457032140455783636523228684477738290506696578313837704911279802875089814163129995186023391499319583443575573233653915395002382795764028922719717858075267372427829581737320117974298622668742693859184887504497437070466063079122596435857679587891544010556209384013952139080446324922585955195014594462933595067586684705319118249877342597770814072347178981313580256081627560081959543461795495344061147376339174543532998541943071559631019580952414496697326865001092149905782360927757089066982221144438050479962655625336601810044466264142146825402770449132770363266875803387195964978549176413816794545725974660481342882393928531120679467220426830986011664528365130286188804407998934255141735650744775949944154460988238319387347788380198054992939050459077869565310297649754760548745379010330468067798535179670367394630976021663472281511956240741436680489637581363265507499485324862768802698755772239969002126889753157917506029419250730027789876503065309978996710984616847210663137537671721705797901642380105606353458436679220278260905263316800006915431692274502366402214087500735959363146772003896026462216407553052051450309105125268020408345199100076530134378937094435322603313674659124297607507789816947601695832862566798593192735335109317602048078249888774486015219644078541156431299915652380953962401386019244753817387989169158692688602465400813350431261232796771026817585713089234692412072150012346565915274236250038073207852555227122959127240650062838964600806451689054487164237325491874430056953092769661183418574610285737415158449156748996017004489373878636538839519817913247695736228730988709366103744044770253604075545107192486889547799416168776908734992490330649734710606891807276994455697373428505003798568462074072834620786108341677916282234397029852461463650325250760911062974298924638767174151048610705187512760260676832549509759043484592320108630926240305062983792113077048357344364060587634052411915282250196259132879286226592214044284150410171265924730189494846138955867152646122375362639679288598424568180045257810182064849154485386593728695567509639146841043161325847871019632292226872636337292532468170839749897363388619724788766598148420527315391569867392710925338957253809459459901318697665617368585635225199597036493070876313174525325216529073890967841797198259184277065565177587400023719660028450064527587033173621848910484195966921623779860839564395919854999214693134551006517413499935156471746892701106389898996290609740351303488573057214920449141510747738535647760213868012756777309231480862418910826747898839313647320604985873653168124725485902704106633262470784196049776617960259899497462452199260058633355776604867365665562136135182320800343624738833579709538583879471181873137096046596979173098467146075552670833378945995787063646018623743437328973816161169138447275698751626648362230982981807413340611063195956779279687381089449755359030227896073509936038763778479862282262312689433919227366391502176069976402642655136532927466337555604116519058372162570804339919462842402782403932233333543580909656895359164883393622333626008053756370023364148171251229254115646481352049707522831342843966692769745391777044565998337992249269769617581457445876613444958046144045247810881379363479248184413638030032544617630675609190715169077618212635643890513752135823839405630915627672108444357058454741963289351846951474540597195744074000493760495112506815524932033602147746711588170239855336091875898148038699167372224647831177471040917284036177099565163844876961710616601639965365910314529294299882166089084859547318422409512454454189702284136026832369948882269381452062511913475140684711041403450288426554338466521681588594645548902785368800765443364315245609304674072379870030427415443517395257079741585304066990197148109133308753982749815260725216519422660304514901730671484902035485927236194601982108001500500735865432329489471998211435355857186001841020895488237666486624755804132499164435496346008642860045047550448604810380222845720216209022479996127544479618062213730654913773358917269276229182401527887847677991223265277408924474120967794255824543361797290660284917753726438793966663256333729199817274992696447052966132867850583913337817221508248885657197761116689299879183758879154815299764338067328844557516378616500910196374844026983857219127255311124725713447881121296667778624130242149473970022746142224066038720923228314850916475055112344348799951727963707389468984173832182508966350751482004904469214288443207515907403521495522321354957015695327720886032629118595984085724834488306439604966442780984202049020715287492151088136017803381629030107887675865230872513603529407023599442332120375970868136010384248433817836725861279569735129858545809708760512323419275430029456048207239375933542924596819002948483114183824910050236446156249552881291205932897166225666262011981160462264850835919208107683840782778047339228873653500207217070970564724512419920687048609938571936164386898925451468747201606716412965728544229372040697341852585830445693551978432983006405665038274459034209258213628114345448350723941366225205594101024406294832031972726427770797910051137836376205583650032676016964317835867955340725055215539602633889888091839418800700509835000672386131377558061633643871859359178337552405872463627781020666398997393634107287467044444821658631646045634970063155331817723810955384925302508699337331954682226222252243624030531984595363879056743195881083133968857674584784814863929090735330679562963519978099113628663281160819018001782955501134759572839150213724161774111672577061914976534290339155375592068081118720663809474638481044702343406323466054249776648999149204789162394165451117974434289943354947508478590412070251453066550715822915005882843463607504594136666811409914552770867916465399967790482958560684281302104572009290395524538371047171267272151024019974815548494416474774476909057770320622632292202830561219967338565851373788470124844861500246984777474119453789503716990409753992560216187594039733555830999510561747798962246872640125649493814973177070021287804253350829057852640174478942968965371011330007544484986550047488228160688196355705191730552857886512589875627445078026128970872089689092452223678268600848649429519123479947809080349310711615746306757364720369892161682325683149324030136235194415857262089440706552033622404174166499524055001598348607381716977878411793861537158222660081341922293735374508880872096248475276967484977587508816027585742315055192979500482244935926695442191183010649907249229125744509632218036047377246633592096670151590097764959202738480850486170758383416877472930479539096838651092594807970958620817924261419956601934251718128171521811205572697698746777331952881844851617370254748148384954625620829699267775548126180602957741777671482694292699257241251857119366990713055037328823205645338280145936991429448752884440193933931565358754192673408285532642514130073835825858810913350933329173326830763635729858287338941780673679843877289911759814732739887584599209481508738197119858639877759010589131501798466103116665804583044256005143979390153526740851980643439682595740084638001750731159726743418408911577144789163105064317231469019621809201096325005325252620849893364108700519710252737777583532581105716367774639299923732236011709444204019115310240902418698678274256507781207759149891683654700711265932720716980359085120171053842990218261963969770758214244721282138163120730295437037746459788072382919778475910232071665446358870056634234120323614710421821275984456073017153969020367417181131760474872434306723660804399003061386592120671732157907383815992754675559299413547251655737960608173974230009338108944892000600480289641934191099575676670106639160630493095170622629471738644330079626368850084693731659040628100808141854121645230299968314791039012513875498269209418695775720017768560012634728881041374894230554991164860138597427379242720706221171645731169084620516616731713377234795062843961722700962957469763527294497682587763229658810141056973789521594568301722360306386789191189990619752200450908387296001335790143914550967592962508472849101305502768688829033400627201264132469658867852945864532630244628253665167868573160037889181806763218756471576475834695124006722945634281556604003106771433000669385961943894836826020364307230230028485892088797346520404273332386932497188470701423942688427693878398766176088299154233383344749098811296915748369579433318254976141025565479056957737728000158307857737480322813333717413176827826124560844023055900315628281655545306571623439216020350639434686135019023529511171391371542357969414987720301577586373962235207093607355501823062017842235833711768944359081944657262383577903731399767744666176385097152175357285883577862092284636781144548109821450223158683477322206775019983035065502434426910078802735169334746762229743659181088462348649901770492446993736239075666929358564712939204065207937980756246528009567085898786050363151168927629151060980843853466348721728986890678079333745632751504808843540962146977926170113989008252632957351186339349183092054690845083870459869979789044038755093557838885574738745882491654935361116741298879947009497588314472828998460658467893546660805680249106731183558424888403998805274431679383918017108235014148203650798522551381710192098642392621312736254773108642398310976883259851901926358570992675740430003077223681797607874116286995324522776286230261446759262760821403176027366732419958039279877659185304071417021394101113546922923635367476821464118199527962179280236528140142985061758765244337987488286530818384725321375517464265025084981248998602702094505612412580464394668506694618253631652706870437488976642050115862313352510858394858828005328572031581756303284298504007526284529293214483237762600252766053795582965245392108339599045312206233628740162364777900170471782150989992071615776126436411183864670983360989745932239864771567369131367908940763123201911988388357927531165983495810557393105197376191284636286094060179568879562984332960775854353077018020136827884498399391525577494899967795089863549252634863662102733446959293573842777363177651903447495739384121006004016262277068554371029527003930792752239952825276057577206664661324552834462516957121172798415008576698244754861909509026250529811715330048903313495614192131451658928669208749628442026065799132145681363157227456947533639690464036815457768763676355541910219424238116884409371212320849542967529791185279842761619772807656661610345962974589972202252884358513321520485986063709473522090447372629579685301151652657254173957886375949023083449024118698378004703910930203971512684913800673033053962071738217016629100272229355835977285837491860397831543549409962346082171010594244086369759412605937314756682867762512528144910024627647258623927985208513859371203217583405965200810952046827358371539393111515141438831152412027675527591735836446764141655486953828332108564638198371936183539670344091651236339267363709914591857035704925711233168516212869899052273928781413726021730174510654197459382438000025029505285295520806899358736748306617606363481469190601088877400530030063720198873313586294176740129236687033340879763404860482393122817172178259685180763192904537012515984177809972636917153581664745891263961757123025796168849762184270743247532972488318920196769780284455952254694414321755710976037313030668215155514771093957271245929579801568300867302450424563253104757408305161151862415815537178213332132176518391720184264010516943807200687401494482531910885853131188081705158632695084932361261614193488775462159450965694898939460787716044552412189751988616859272106740332833349974161589448038363831658565580795735144421439860633245027856921665008881065880228373391366834530329656062194307775266404991847385237057579635520301362716058657610318336011842661030406060886004474684480929690017047570824840150761557971272837285693280182065609248721534374717034383304100799111883273412725916294779144899130010286643350471256106793875713731618882258698923665781525100300458355972990626881016854987760963158950449962432747086649210737607836068637478349325910153857507980085999197195049329986014943238860857963027500381333842532923698470781596793787492780981177194656472715607665837862255539008796109566401713331050722483880095611498340964290277614857503869854383635196437542500286984208489075475557840855350104134312945234003520126477546962232656678918332193091015893440040949639101545026489829781550617904955893411051241955525489751022274237427052090494226379643463089780077310873556996038694672477357796271197771135614467973804643991452515418571180367445828181411800575760498238733176538818260714582138988280526986790163901923967893909211593960726217418974829929214965849989549281779395396611970504753444366498887949886750089374164724987502203031235049378483661384030851507596085325626600285543811329419144297977424478123126434904708722169421036482787625846813891210498347156260441081393706597985824243558680230926595488629435412230313160504837702959531002074389788743550308282222161934425726634975285983725558378319065165812272243731246788749096677519567002750004311347114223487422988371754314259794353470179600647287704794520637295511919895270404430577782775143274300535585853319432876990892709600571770746164927120940347181475849594971365609637476592769214853678751665347279035205187399439218164817972682872445372963252301434502703513891219239476569616936781463444087447418366691480760221993914634025082098989098584842464121356505793024790562198565303760728165101526565719458074378742864362231224714876796842072709577226815774941320291399448674854201336950111666911730330555090540831304187473629385361061221275470383791639602662055098921740798922347502438312610065556282056332299688483913061995255983863549637413710892667764645985766611307453890720423703475319756828997867423682227301791267398793061990200932180713079823352235194223383923679767769929657095172548373384746426552576641862330537488980856186871801459015795940257946524343556247717897744382155441738669318426040984236818576209972575844347539361045927277298237941879669891931406219899962670596487481952444284921854885145000067335745663132509775337886232042188337607712458417501030941171911515167058094276604304020025502873548245141237953166140414311815152461702005753069572191139073289767640490585011853256994832312103406567795827269168466148054595228131721250768409987072499897607263009451139857690671489208910626539957494486311145361458601429961751137567102512326496459043068578347389994183731921429899927937265972244364788562886996993908395941831782426673859313100233415339709259735322456036900193891149701282250081460719552428130687040353095339558099949481912514555102446518892819986739751172833844361056455780981179078085373965569355325161283694689518217782274951165929350143363338766737692777047986543799500199961592916394270358200375176369492395716901103544236795226003682581553252729850416855226749024790061972560578465540879087113855994768543966710520019032494689647657099833312403356505775668828055783842235246343258743820949571569660474338841336596375069725657207807120876007614140124411471685695440576922337159826096619483466717777926162082007256996143857841579743221982468113945471166538268876947415629933618353766316749925329649217375554648053916195001943246659822903960784712671770927592363174875135366627179317211948067783965030326647863320505714947647304562792866592550665882992589855196972219032214462474556635573154308562414638500514458420471122819550523731408060365020276668972064376163160324353358614918843309913358664018783079182287416959619217095095251422161489154964088010849585531086188310712636376339100709693595332397262085964354112137351863758769765054190638622073856132897571726147487371668675218338591343030879684151313525714480227799913176095352642166542933129792849417431525523440517336621750337488831907861244897992183132608401563970624956905523313478153863007524433394583676372539912219632394805915210323774958358298559531919048925638632990758447247034058237692596925069579033021763007226284588278547951364572287626032274606214749484988824611155900559845593860754696622762866631407571978885413948184903232534327832674875372562856544705282940065425765520764625633737396431571176000370235890596323916871257754826777011386328452679409296504079081759181604491575664149546589822801362272192614071929022395251409234999846500751101242343980851394748685149477795171461479134631440986269616872191386592887848636719144304531978755321797681848264173539048550871557483937204947956094219997325683030393641994888960056725348096449267520759703506577956516665251417413469506694069499261974625863631786841189349676145036845059044654362768496521578663469236877610099934020841654600959432792250185277658700642543651808073055188982695019897393741537623732099311768079679494101758696891154574762175069976400632372276163095870369198078633310316287857138694940345610392858131659873100779468192877490532262325706851073379481865226493468685740434506590983374668053993062343720749177596755527368444742607919489971699676825560588395471855690688768412721750560952237796002312476892012515816297424418524202984432991556981721501358974695486021062075515554586468239098779781131937255982540613016827549465175970860055958297740320696065027973305807652721791939762512190544168350606768915755768623721372519239370750998455177738064768291584138028441860465516984708292482013125528057576812813285722800752477211694061702328808575655961539333772796024687575806583804116454987805015493761834615073120743734682677364491853107009142637897445526433832946852973569273082209847882862626717542208731792368133881904750167300363867794196048557584527806450606784857838167852456490731731158994064381572111221213779995407714769367651418876326269615298804765534958880450235665573953753243302740378137120840684649977541931894999996291071313432216766323036532014762074487658755257197930320966790700699463155234652918796136905982056728676838204827257303915420133519862615798940847606845076790986771046958018612649305442413054170304255861320517118984893365444494962115805464647001152442228733306746676871278917969646393650188877650286705853562790698192740336331347204402140146673260260928961364987649417673625038589772775268171458574054106503956605689537214133937026804667589088253210196998252320215088831341529889833606958389012426583887025337268432399779254519989029422408127863093889173802590411317080447809038240078579301826891776413177113205311742003540094210711824368680711615515783804542385705521510545636418341408398813943645723149410655149800906735204677943801014860588416341242028815129733385455722831912005861901296282396020562143269188000810787407828063956640793812536273611649697470368387252578982509293607879569393289552532325796587182009171487608354448755465135018321235777119320142814179184943282609016430156211972593580183530114154553935666387871438529208367529086708014994622627550017871949089127488434668974654728385850517153143871880391397611257773421608378780255074404454788511121364000379576160674699104628108511919662771410798960255043359421244278307272157986886032390472308741750802546773895005426469423843418929304610105336744217664598521045577689684744686018452385742687891934610646735375983680763444670666258158953487509330336781623139421942263608573153975843165695709659660953846769774950033411446215067286261324646308184907890194759484538863289092243113219433415568114725438703963776796422681417991196754882973907619437862768298420728758979792195120296949025022675385309557530681328614070186873825196494828941595110819684137211624509854826974240232662048981663544284555193125594876775882945709771464745278632476547571891345208856210905798092393886207021696343236819476580100803446714836521729637118664654562083001756621852919162722817998699963895429437753509457949376535763938075202360665275959568966136431424703390093990052362609586962296716806531127516441402317757220258140991985235525831083557314205319223091863636786244823913737817383584741958617764661008099284551295777512782674859490142490208556779910365523739721669546825633072900158754871360546333115372725489880827534349650429888082468927626525561519257225871714598593638827603753041774593605412426081655855676156781839035566268472793087779689819221810567293166367998081111997247299660576956554740691156418220379074688744330556796628603753347461159047573588222220034109169797112176356500901437178805547118219826794950756825605879919636998689134884040146433089449434163667469038878069655251967142466064794313569053569524972618483271128773180486550606735231334355955863439565146316383812215758020664791762827200764423215999901945222651024454457873157995668815531786183437994580558292209397424974853252857731789067489047868517229153485942929636714769933826938739971340249045907162536238697685227188084307144507161074919615044803855293917902201277623609599215788370539232819609599248180460727912753121461475547210238313015486134949426548350005124994191484076485614840290453234470189718688620934687445335790602979523630112531207613362915316454388287418975852950119340349098136691264184735897816103490499801494557959984071926116875488426489781869068002144580482717180846490235965243914282686829166841896089014929947014902453760017348735425446749743218090715274266033300869635320095635645510686399200865522609940893780229474930000714362272780884654853000218550915046628637300698422549006360780610705812532961197014497874720494531316898641493748559206146595625891298205307752208634231642377189910743629175791028162245050071265215957310546514049391404640984998703974100601676660562942579756637997806828683326988040746287505331035158835818501904052608949569324830527033159921815013495450342321865604296103718008611453437052780196446586949994658023508575098609123305200957722407943561282329028142524367172603141699635040009954589180250859946870107572003430865324484103448995275337701163607794021715235122636789925589064081805073990408454583826336009568755957059969234260919103404860086092710300256314540788953592102870267389949909394149218415927151824534132519605921125914159489619986204967279192341159954570631073821279472045909389214770923953089464330313381922344760107251087016869010060144308168495703423759745996222322378044770282711589146137107793220103812426434381414291640990747414381324557427948697050700101182524611610904558353669848118732038093723010693743396269319492076406140336876037761059219555840136555736031278919361373351978055560240771344266442784347862128072933546059948127374630815345603878114340851207528022031726008650772569661665349818536621395256609549219726604532504460445621646325172552325548028273948880698769438040353773219093301172958773219567305650735251069128893905181544705486550608193679739586081070847266693391106848893229814996851135265217162822431068282853966654910007038788144910927424820284417640011104939702450605721915314591995273013297815773295492195835943030239241425222358702875924673020759618153430149952238496961505607900471489721939598785014214795618068330800117370903798770740989897230234820176550045059286888561050108254818888562553182640813870322741713993411376781811167541042906235222256173060546945015621617059743513685304626075625946148703802926846482265602246008300846875974359664914075107339669391921268502888110641395394036466991059091172051656980225196443637000496897628133352835625594796375764008380597691588874482514204720200915957249798595932914605528212285060976100126580979713804244787310196232060909172608326822357778775163080627498902100288869684683303194832838971937258035745229207995791500397172410404040005072291572630159943865711849516773692943319078840212738006572541065093354906854550531426879076513634713376138860655296950000620493854978195825167825320414541779918223747931778765306887855907820980837383125416611822621086352601036339284689082377799648402492523926114011595938294941584226482476850327150017454777789739646109260772937564912329904126751593703802958246468392061312614377427500029144841717328598051888965660617981294498711045371004083479469514899846785325865806978776184548986378213462173074699155522462239789932572576315411137607965263686872254599169039701736751034131809377336474467004084355533634998575217917948508459291984327197622060692864925707684459849883518312658378442994780409320336925250648390756567760954259957729585105438887667571432885036847465519095495289682114989066019046987186594509724482517884580384984504396582171642391752037231805394876993416996743881957286922425298479285396340201236609150358021295106363539811029758499796430948037376015436902790501381793454880753608131931671783946137958207859681576975597277431731701710166918931615219724510119358311585458801145453103672329589611597749193642596257530635655846122797658241836056456777005474778429613471998470466445484280803351369949562602824093497685514632926189468348651248854369065785099252136616315914368808805710297788555024279601879506881269943995706109227862193576176618893930684295267943155709406032481582151903475672643687698246466978390664629957518270592451749901699980651100509301984441581756000040799449756266114037340751891776323754407177510051713393847858686707632221525439692316676078019014384763615244393872670112746773143239349943305596001444558389207670924217935956298421931478304651582466232282179816710979637749247943930945644207920326456361708656178090314010266618946492629433167182058611119172129853768522171340874348525824364173413959777841172072507242095331683088384932179193404410127291221355954086108828159485112402378021132067970118746513462199350239028374372463519671862563234345800920431590019302596782702863331095706996687925302378658549465518244435984870195210137887824760939742001554046676012120646226056112411472307576447917361879228369663547885148324880753512237223031137632792397696384070503645976434495265469121775826651135631018639227400620159506165885161910437368735552335027028360869177375578827769225417000632229036657480063156193825871228847796902827187991464090520421707940568392040480476517185033116281913297642402614283330384272646782682865345282257713351533086575632824598700958140875421634596719104324958106063333537050739120755911241638599654241570349272975496510805945089936811589638276502115200289226030658025505785564814835076052815241443878775970248572947918026620978653463791709340824211098636918631604195125102146634709039022253016467057307806326690404248767436894979878916176050608372931801366033486048000210555885963210504373491214497764227337223718319910613284743434749403954884900788922868146365933968318675102878392176200827644584425959757848764327447270559954048815255860568424272832824391476194081730746834766134569571975091101888081621666118892580007805372858495609462120040189914514962943863614019014148101630665028511175805832534669366145184983679752573993971291679776305960357781245536818482504151307396178843883212245080296991014190939961575523117988343588153139917947633163294377881587366787088797355685901605785664427765510486957606909807255805536558228630522743445276065795644722058245268230235857210746420017316648645556749774200462405145664015111268157562365931531327027223293643941416891435800849930850878636016967541094805491995602819800212505831002504573515001984413253441534724252256561880457852654122768829991046868046185516598466103937238064890589880294419281856813278394825294587479995410813115726581921310143853284667784185900639376321329866663416870035749102514408710300607256314954064424149659433786496771536099041566051593724417165824538005566547485869527669866163372556484748945116976070457285066489132572552579844540077568988046944842062047449294262268744013712862072786612967842513126933703626304087660129584381160578269954389765816632053713739345975634420717853128865499677907410290076092261299555530231482846338704409781164405132857111708047930894450142883195213906583580198810214639089426834902795291032049309915238699809351889028252978874238318911602139892706735099948572998246181849918128898811460032289606878319607238775950308458951248542382195836253555779259507741787636172402921996105222709680729950525801016580717404242788216517003503894875566060791556004643750045021961527337874603111729176312707508864931129755521324948678854467289345820334308496005799652318400114659799954501613197234617140967913755993919979245550392931953142103869230913307211226557018775324771283234318940767779629778176937663677225291663834836190339593296101914707895844268418477196530223047660264840089220212200012340698779219865079000476432737616661339432072392267411926941990297337389738593435637041299081469842991521359395162011596961952169645058507164669940174728755752007294930498388354810252009149649211542977905256649800969013782967503538216530573156962353685779792371482812858365379228880273006163107002640831266704236875635627545153999524188203231804432909787703165296998021537762634653752023328444575756170732318156579427618291596415109543238836620805075633155794882659073233807882775349617057127447046212255684493664390980999078877370104574656110405355500857373653428247202637126582558091603015410131833552025265515224994406060015793048795968045092960681875071722423635514706323289034673022069415686526650989455551338750134257258190042039053135771039707468756310886873752038808052219141868761202216673142547920447387196766200364092332373875404014937501562087910925592361119867331830030775775985212836294135122127556587031708210044425538715271389886419061045311283514482105569173623629639760656414606652479655389536519484588396434300207949851710581558952606940296762852242792024510469464953321287249159817623554743746833447033851767973854728320201946586795331390600650369934423196922929888094940459018830481463948360295721169155480482353121072265741960023262026621808571240606553644342181148420799135268153649186970701953527430199049100185920922215211899765585841350247255103347989453980765859504391413978184771034363016482127320326853990376291398397114081245097161578962552452408641412047458311556717930510451688597954663579870243886701434961833185109671315637239845198108272524682922946643442289174424450742929207355124798830862109850676659160857595843437980267933568318382180452014602705175210563567947479127144627806021625533547659140213329798538602306560075582997308634458082218242668119480375791699958845068790952694511021357275264050691535143417211426257327459754368373612601466084406229318179022770968049193759597591871326084923856036541964788531040300228005197236379157321503559641199669679737962908922299868510944411077165282002486912448692442802636093243214196671679765751395417753259488655788786121654468653583849003487538643278309901773156298037828421501562053996570307243241749276980905358313266716397867447650775018819582444904719731435289698428277615799034596145904625514468497151083835764772222942468121223089478908687913570588801223805864345392517806269104578731390439195132281962282264696108773330526573669102214597728987030278396248458997021632813369180140402806687616940696464388787541176287368749801466860720916320699660947892255742781170913055470169918574018470463608236798579334324568725201775451799438552840478694440971361558682031309017294631481557381253948690355240237902576049570639061034015850951217834566063488275778702289990664913843563879258557675716662780119419622171396200610392933104760954419950204632266041578550665594967741366343709031982329437461796511469215489002112247445768564640606525487732321066433074223462007443812478463886061210708647590334441417146448727103578774430420722280847534889394992204657827548682190099634423046567594136266877540500685058760995416359293381234214650621633800636198934050178363702375738944816308092831421092742732925737653660926827071972683492225426608295964748038209953268286595142323127873818876845723003759595924309891875736662776336699257196867258655859404872999676869406528577826898470504175786741611121004707781710385766814869438421070199167213930997537476824823972735125182251924337293241981122219355006222586380017903860987525039157580374827516923880599515885239013652591647073900355206331228293563573779591612610923771181737201184620889208816311278722925992659346210601430392965717103859212110153696324689757428406385555271884912581588628238153554760621063763685923088459500804452810487507838861914621731880720592722159098288871572497717794344272011644552628197118472679441665737895808014682026532160117632619159202681062202661752690314297621884909520999157985003858718874491176119256879642841750325546683912393601270110929161693372346835161034344461483118473617427581277612049952644870398853972429719131472730923484685572508967197707830688135358146543742531685255970079448479358645244405501972510596246067571755849895767275035324072163447007788939144094363090740250747927901840387381046786984853311865226921797349807356875049470586489278054176701474188562478678862058309654048377430781220810033767504323123321296934635435941828640150454358483430891652476759161441837925075314100517844576030007854912525673557678504841817496795103891947697286805523240664859861093306193900352771847673569385639383235182545795920261205758871913848428340110585471772558333151517504758164415819413798365289746284488010726679670263115680853998361239948067653821787662156188490156806451484124394627562871372898680307112433936229768714540404145724179596009953746128277731098776465249744402446606285573273157615672504382272313567041456070112067549311325982002048790667863945363464393260858140157878641152024259105138602751216291644054338815458880280117205112279406751000639910129980073814980439302230159735043166604039849198617670637869915662814335928290908689362701650497986473852465361111033992778977672203281157292594375596648815321468921899200138679294811301281351208997129337417681089571207584322376957864204993424284526355911582237991222077900361293561386369269380037161689740895779332953287749844515851946035499358501534840399670450669908581020034502390000571664724215616636156194120788293782214505825251012377867968171501792534011851475756530082542009975153346592791300088210909039509035899339398404849360510194004683346741716802844669973923239005623319780466209456480118937254786771810945873264998268032435454405032452175922619660873525785993024402978200985847491046194480439179273666672609944941978389181059131657843479795379321145486503089436904554708547525809674965938513537800609206264278655409495954874435513630531043939656835432761061394678799402476662112290179884985824239031181565300094383531132619795181625813132618716111472938604765013130375210233883261253856001187980300966393744393909010752356835568109547769116520777344007953551163972255381024241717468094868902047198023915835319335734733027269737486507791752312248340109513780923623623971272365148247619667834821858864676386346245834898112317867066024595105997773750224312527964509711606466187739417372881090914399028604271972706686454727622571534009618772321827447751596680311181719969042983915568958353614429574071454941758376082450088106047844818328601277621172949520863457566728860866279282904461550223805374045837405999170829404246336647579564580580419153209613486668266857529330308305972057416846770112218406592390610244600386227852949284296191600563370216467253949082757099601249560029993414735947897105698326231109230054521452110305746704282442638557051729232859555477320891529674240328624390779149192217124493079354039114458950180862477909533387280787620800387427565979321947804714533679826437639161703654948630062049563093720672591168452128038539717801282852959267740424740891548148121175704915548496159876451894137451791310363381320563437817700132613443274364121494047447479702784234866766892801941312951749262239505544338089011535515581391055031827541284553778918275643896451639896855755355858601120024607545980232150937520153102665752788485926379888818108084227941950467197864879367285115014217478946298008354378660847843843939791072212435738829363338126613773716930688168353721670399728406143098105285840863626884574361367757427489214430319051602332204917304017307260551480262963415499766814714413922503530877656419848817894149073835105482020844520356661743731144067003029586738652966858149585975772725653179411501746869163640988823308966181409448922286992218500764830593103907449656203444866604091567620945059962143335430017224727743590122832470042519040645509753181116457397208209958013232451576714226654265087198696823528818329688416027546958694134438554030085226914431743597793037380197869570622667167624906008912588667046436358413347412884464472974478861322538905908103545273643371341356914844112502876492570217126216516183084772675212759644375126622026374066179212140598919150392011009655927229450714476172417902846698279003549572622689523408467999788503313730886945007665665392742966389143471321195165420682953482371981088470409509546206888541939651433663788812048475750764222459260190172149005988645598401911999661775782108862732028786632073103791622591916567421273396036932053283303468233086044324917214158473899422232064840014200252809482785086081310687707964791607745235158119540143596327275878128369861049507097880866063771658645392124788626522673830922393060323361553148303500949110528547496787966611267069926519846028193090915792054682113302855889698617334958588098195833951663420815220362158036833948808378744740077401696077055729689151076484732833758881568852313642075030549569505571147241162673253972081958406393025162307583504579823853685848079178331714094123063169439344241902717275773153258152250505561598053946708085404427254061127724419631756938528718590830693597748331389247979170619363320077386214531184129886024151226343137262759853205723875347159357555812066394417963901606299378906816929019851451862913547765154991484078719643319920232164741143645304346349206707146735577539876517602602989104375440890602696904773322480079307335818075519987336030581216820051952315280651523429826735752097354211354277666410657899780912368362270274009820013537524591450313807522763232691505196720015063989354249334994818089799213136209697988149272958935011444123864574451530054690137009242388847154561275957529595350670559920835221010467358998485515349249484172115977899476621763378508713189053021499299052300098238474032147442499514785082405417663117866162915376293593968828914365653635694376192904028027190751338413420012979946274299679946751804714780568410705251281648786862389319253322531499003356475122566281054641283797749007640498884589300697546373350510901671193488956308826846693509575155797066879889169686127763243854784421582643406704799083670611521665179840992552495225852469005206416825765388741245773135956109288970753519236232505157761778528798361402945043653186851638195671692841710628400572820062146930774449129102705949893232519559366932143018247704217875292998570616795942824307547700475229236805629338758754664319108096727250785086902995020040237849681539803070649564232591984107117434051083017713774720405895676765673815578738721195215479132310328636277799206488063746645252198577790360070646116932755831132097574712905158499102223754808905784848977985737047259275735395170424419228944058060433604059650410142559566160268884047811356163114223967611366205822943383852923812781787331263292470627961029271286563744627713975289424436422387849647963728924955631653958122923304323786834920695469842579506211567249763831253783100144105273916023477917884439803582481845645251443525005845227399357223715547753549548550946112274378576925751165433911792737868842991670212529705995636144718723557961076550591008436524553876050406526554414739089123624364188571972925114085558395055407174940339737204544038946240955991574171007024805060433129636884637895090827809336553544856216153974635023118555261195361992576961547736008599857477348506234819641805620626798004750353922211932586384759536511898124752693770808256282608216075047096626786507202272002276302220462277766913535128203233173897837137415303037845299725258001621159614872684695920734155158590175530140439686904209461073081523793376984274198170359482790245739728412658130000071679420620508200196670910432323561214812030001206121295774309919138793270681382722457046688067193103021783009249378981869225654406073346712274765501245817996528431372054280563457516103584149226710434163111523265793999053822525376770546824100643379073317603934224979981224426529462605740015956171895690623853721631230012456016052673654993981257150610038275810105656547809380587804737885272595729386588136838104199698321242039961280706717309244079014986222388104555273134529220697114510868210515044561789901415614486168575237119828513102371728493072029864556174249622229609835400737560270916085646411168857264315994551356936102981629019217009789637248135343093571643449831088241697174971928223158883281934326108823072410664914041419277230481037028203764121425579020305249679716769450299061282545847012258675335715475286759747892701436890442901467406779861038837976332778870278729685061871028502690729737958922043703955939699537303504873784040345808469008652786418472451952465411171721473235625441591948104754067713384265199886144524549730578456157422222342837795975341125754803406111000485152699777266594319815015236713416344805049963654883438137190474261293201396211772350854766685306220741349096074358422141272136631740025896437303304434823887084237900302931888298841961464667474134988384042647793340903176896664394707893527804779941565482147965504338694159579286786838648649126612695607701720061241011878491500703372449595737330958306448622518306465556449142131944117811314796118808490304502808800791123077943562006396373128291106096379712000957626992704738469548251401584789545581306862444934486188643801485659370162183872901562940738118996684050053989637500618183988149925239351649586261598948800498864971446497956336715512936810641841853455477661168101304563415805433737998042356074144925537459140942711630846947098761922274490245252286676800368819597103277448180526797881381810431393183901997155173661913755531786042774391960274937163048548366541213786657936512994612509848721607962761025802483936409593810297452653966140177978831571599851638641713226899101938080203604221633211313650896892713126907352936064892730539682320458154365312704506263112056427012418271326935314095294259588575636759645715128863839121910159634073486766753632800836636856973653677387997343087761725681677507218848363981684731079202431962968548886665063126835837750493135830381007717088592962374501866391861116587424546740531937975833102260934128910202772059241221290720161549068156466435316456965329167285590393633533642794981234649546106377014034887302550635535501057012519746174508584165753627620880759628805177010779925754658767203461306937778561921233334451836395399630341140334029879888832148092191610092662411111530178109180717163281748734862647341715187158286967028570333962610938929172818811478268617792582266243441792138834454930333003814087094028943421713866265940081309330993394398121953037350496851836360463480299299484724067701521251403308934096353080795765904877287619731605615900148315144513747413925543505526500201700632828798136145509092475862602145965279262633728006720753499119578049725444464273865644310315519443849706610583423626475482529318326759524950377733056782303641934424102521524898172036153482471390218386858723866585432891994778722194297587342729043566446448154475972877371654376464424732756220074609892608556834286579667663761291919996621859411719049354237593536716770293202421434901101815775804736140590170370208016650155492930390764758917404501573069865590096257753561888605605977676011707701769262448652304163478479367891034972302629644150130373401360945895170139535702841826902026975807392017825565837680211317197781028307837788392521093973020980960832731634709251236768363041720163991360071436823447755108393131183719045074530124620705059976184597850964528418429199679086505463098561417891981630778631475617952166512388386378606697416947496877355405981168676930129398354372309376958946508795572743020452587853449596707062723602984924430523258222016408383836762292108916743037596997090164144395102144323693803472916214968608793084994242535457625591415156588703924373890901111303257850813830336574314647602504691037434821333704092438160431116859109609368628950751374421066016369188930785430520024983838525413741473973461855256914393084589074991643024001600460424821992121214981132678038919865616973595028855242986479275275863008973232592901680176297537400169477114467794378296706706289078884300882124086470593084733720414584870869084432714544051244780796703900711552498442884991332793243485269405703113884472299851432321642135332761789861706949874631643833656846863805328913645027526386291630402188112799668513920410435582290546846796350537857700517996995846224773553554537195374406893229936895261369092532469345318245124424213340803206331974679231060792264872851693728168738588057982810377331313938688577991692731297792547906336281032824544689786278842454505205503524585133917233198636769346882007216560708229350584552974441561357101959310785182972881134496307811341285756428720695484128634530304300752420741191064910809245829227365976341303545329682951394745655937781862890624380600908104515690119271616871378129310721930748901198887114156881492591144723960886594903050372699186059108487552072555787643437274339228937340534545224395191890935412939781201961142603217527453854996794235579282012166022592078504302841335389667453863153047651825572857251358029315065219577897546156505643294720366661571822911330289138448881392590045404057090247456685628572535934231741814403744856697657511142948498496958137276500487141600250447565987386571365643146801161988435121181921688369403538137081058874770755894118970107447359793939398877087008106061375301470453012730732252168030182747257018204946750441285506889564130709929220337232757885429318758781394216681983456510879314550114575005985646436015913956622525999507611678631281950138059220469673356076703049008974492721136274645533164346106599354770332048399774968047355162307726789808615070791183128505514672634577434046939019539132591112554123686361863965530679505115311600797557637745037936276025007087748463131000282187532391740913551174044595092059268372132860287811906863487492546407635909921112434511468681914605598346797143958723390797153678207675369708522504147717933489205489884623212374565866762482380403907630895427267996920831102838430828577659877812122911443602380584483351729526876777244648135836726148353663538129969456279374058695954390212523181908255677307266701388982376659829374168699156915869421678169343010286190840760499023799063749253732111005783823968273397408973901378738547836152832433574326106059557206590376887867466200398455533797404768581150076594417079924361385796046338498324817155097274752873357986644767484296441938862642335858464461408556012247381067657315811088282209087075864772813103558073334276040007705893483995526847078593790989048728485033304096246139394809151412563798129803825473504373082402139743699219671321442315417382199110915492867561832939651113551991299972097613345646735477932380380065987598911673940646545606746615137919766973791473639381694307911928308034059272308125012054970530058308374437436054436095324570391815415474751731199559057371839390964266754870588106803791781903743841766302907072615558995282408453647867773197461331103582196462321807281069847242819520097192303419243465026593540510171950136120127663826690124878156769723014466603156061885782678646520476701324184655178273252880231759732834448925876019371921059436609285562521380245132804850802056113946479494514799699430009820178248204554935072484714939336444348151363727622185103244441170224017465683844128070263767930989766185326370114818697597863777241184487693744686567188676063330092360336984681146093404419280622581890581695938296283177944229273993462930833158775911295726402721779923841338930307389930037146206763073909528374930794070315759702473097976018112856744667545341120817175525254375854524874245602614221701066233610757399285122537389027941670916636767302948480890927789006714328228348003040943753852854632435987363116287484030494659085153456286230265319516810132935450851964587526388700598552874172783867710073051729323115939517588001745825924839489298319127950876569787027499364939205402243722149345941955624399512699471845887026543376480796881194525025384882140652637835891824121730571648766172526294131118891743078088618698162201770615443464580230091836262876695844762646145415637924353203989278847527491086823852330738213438897983707683375292917817402605682340468175561562151870987484766723071678019637621181515051752080605532368772054415455928821542217538315695430870248035223640117877190732315449074429618276124095605874571842255541331248439185120113798875805580383939727663620374517766029933377869434530414336697983884904770452924385234519686149602216465427782830767938505355616672370793390192381349516758531480582225060939504699682578415530023708419347805478677688351497302862723880714689693105990027734846606605010209470282807437942597679105154565872858043680579285841578029430515367313315820973274623659219841794186938081485085429461495925934515652317174816668008744663175516980938041750476571650784292274554884790085099692508695824491932462993056919091332672495819419205798897552870860089579267502878699206373781205294374605861341909906456535864183026101810804452010576546695048532283863586546914917122117184993666637402613229234147838324560456840732481188525960162933049119724695566479243052512433353002232596181388340353558763712081231563693795602685920728140094019219796088915097097190696281256417450493466443557141095298634844010334386093070716898073480170701783248318398952968177004089099498022518415121948137825711372736454242035729313222839655656948931331653902165460379261892664567783961877153291689450467683660256303905945321911528036684296252180044367677408498041289166364500366580335355977769969954717184201300110945912253352965681127716600036780183127101402265964712043265551225406782340668095167972512662171324536855656726471058002290737414146723764481050045647799909246561483857248094604508103427525942976865531456392402919951798189454113266654665476416910874050466196847861948831621483799183269835328926300902229715407724668891809242106005949442673744222806210303154283284259709259731967106708984127867534493377502534825782589428974077583394441364137358888993590173628098393219505929625683308717627869895159608412022346898339987878023763958865229141599100200536600987443168667071561833738985850135132724615385911727514927595726811039022386249637628454665932328219960796444763402525067666190129360768113980569374591100939988853720446424098505239137687520692061759795084285704612144137760314106187587145352397496632656945459006317932750342636531546893747218842570109575066882790496767171605611492647739562953947726184956578266422098049179826482557358573305016814901371954952870884365246434017811313505760092205756951093875793762173198493448902186816114825724681218497377631579154911442157403734635961854284649018000261380528321259393435389090052799893242480063743531233887476665314256510529880674687610978201889759982196295702619685578558850687350259121620042572289556128164507794750281809456850720646699227428490149298578915885056199453033899044741950704885654159704142508883373708212574567143652009848661248612504914026852862461194884662152438755923240586345774774426909375151181290734095055451776698007417667986535881985936843245996339158285401820356108315614254227350942883342246901330184513251867650267824332374834725313227839371217332523746529667450144387815766502243028995387725610734448032765383814262021714175855751395767037426081333943947147144916409646273389889442883868578766112200691932691202066883358287073646463950831879474469690520376042007870464995444265753424464834346073146305643907337205854804357052247168848170913210979057015458833625928345720033190169431674672437668205774790268589451670184122157966300094668462307434890075293322710707925564816287165433102411335072961743415151122211659166559071864760770952268039202603043393895996743560817553928286697444780772596070770721668875785971538104031547531239338373671595340610200575400778287085759893421979818129812190224839883954821390695469723151441885832355725108008138310857913743686757217741140287990489624704936279710497690562633810977987326276495800727365907621822980986686504097770350642553022848509329587673457365768189691481144746674687784056647722394301922293243838475226960153473274235223018906154740586026390857872482750124801949183816501964825613792395100641101924103441115817661759912508308500330104163730519906819415034784784864653024048909941676731495843444906685225200695014677937401155736815217001325714395609873918562562501589381673410538587804600353924976225658218490941857015482677090793583499540446175370485048262494883499450692064381836951068782298777590356329353574644758891022064349480192070924298703418539640922788165843945168761381713147361183901781732503113369897181686496432758296436145074079925886459432149376220851103689112206215836498478509454177743642117757183676816423742023161165732575708151221476797642874136959564299264397099365399813977328972323286584781953932605647564199317467978060525643306469135271583486160896911996086277993171247752662545682838561247317792163922412532285311733192218836012289072116151736071461746000421386089161967486767704215957265879944056439150943205584123084845188067762033011369715081088771278244960281732184063213189571387108129868274995818340848885306145562448695948767103798265146814464254223543541177080285497969793921922250406030339259346027427662250616888324811897728310531272613911078868942058948828228457177405186401610819377991311017122136673320830285090651122288610952179320020146496606057941932208057258118073757366064156387422814780820368256336806179655686241986924885716868807686956809159975921517582537971525136170745547173157554773267601901368473747913538475184232891203496255513437834934730549971960790924889465989872175420276984735885606726384839072627103463326973360661759416628147611879465923049778786217326592641985707521108285189265958267623510149174847167834748450134075430713060906148387911512501829983350311734919698895922616135248477779087160356224391393173467511550403654947265620541355534766745108200345378094663373718986386981802471162882645975272040576606439365700532636705656844729733852419042027237044322543850943127771502002298681790662973573701895673404823005904808050935926809134945792780290696982322909272082356178586768297836886861881499799631722734703318423961042417765323362638663512840087868809796037064197077689769727276137722876881527041394555797753855560459850756678134316109849168951927013141683368043196404462105550481916195964852590328489166034977719519607173874184788421599817996156414190974347294586810964634228869890289596704679382263068761603602671895888420202582599333874782961472794311382198919853817544283734701134491093383612841673766473441874189340750710400038203703646293209950882914318055525368386540716555484207219248586496349506283394961501514295359685454303737480764825534066720366689230827038320399631072007869645267317850756789548457867292557080238513646389230570861232946368674984745383752413457037210071531697935584359703946173709784055715028779805549600020801462763836966505061412454938038344849202109375374564826634904940182571903959076973311603947500918326802494926692812845659908770133328423734679487536827539423635311945430051942416263717897912184735986292738183360565819091581615794151901300141060996758677081706861764645665400663242340785725959696409391598632284135392463412597753149853584267597994321715950171724857143067124042105667186690397921561573559587274194826752872773756073292249277050428692787668970000265422030154752073763046456538379698448188035828657210544748898331139874370465790136010116306057454955732276008048628238928771125761484168533417453238149556024531695734664182788865668416366761404826250864947512622327315512581201624399658867719732236543699003113834278189913541956149135789564551078547330651749710342516908574069218410218932480002189930378838422016778275339972596441035929436493796145423278468647624407146005928635050636822871974467218096214650360234633592476102421196116791106004538071136216340322774323453476477817559292462531053962613577794764835917516557198141458787630957632195288374292191831865880350366414727801961418369073760472912553516268641031104830096312847472114763570117756919812364087158524009318756027689676470508788263941709986420205583132429151948001582285614178492075639321749743415431922410968147778703731214246672255790055822253437478334592164139335086831605870365846501533243516833188317707566955681419261849496729030479357035884873515732720579901488829669431924654651242688118094347848406621886987334307928428267637814578497922987205899658157916982633274365068453419088831085536267319590350419050922830092773801257427935185991489370152946246465472312401575177219029687315515262761211310105150936828563161305987007794673690486009174942430576082546003661887071897508066197764962728163632320065193760261626904561505446582243668052821026030742478023904595515779248229171297294515649948891950361164744824805145320666928164778037032416489116143908844140363145045266485857705517741268594271450200683208153909551022711650938500929101839281536331858336634417306827332971403461724437371912783927907595958412638464325684611696415632647394743978182327852962603579816442117366114435034874501563278455441301559093403290687853061864230502910655422961370033879253575236063536280781670669868902261924504091566908806740660151336278843587785552507718359227431591883043765683610810778503815992588008189885648523064417856899285912794523374031736046425116595184972274196709772149628028634912427837400150179616979200810471355068281032786762643449522329052956856680774004843720148492102796266664261448143559127689586839415530003513231585871528162247514072298846285944271384998845934424547457775931900191996877470085493456645337422039727898115947528413924090105001233112071703359980985920442440990477211396895833759327210748563440022952040935246679101650463731843890123588753105423817378071769131864443675121101915442517183231414607643071594542075669836197911032090797024138168509056046292652576132374919235774301930762505837139695928241312723234607544862986513242552758131106117916058977931391345372116013897333392042272024956493383656504079321725552611459338811877852947967885378974819620599614666205263181377745995842917333557252855180185333270850444136729444687799789707537486139477464452598817571673371053194478981517328880904527839132783983011574903061118021508995939625475197201496398769207019341536623260409462923885483791134923466387375799771291317772903734697117826175149586938428040853739195343565054349261107716489062102985113409805245070236793204091180684042708570528914853194297148846352014326383165715093912204987151830575858163532801529913943019124120973008455305114087325770787468053045713295827109615636332678047038203435647411681983952492827613887620409332515263563499559706284689529285404163983493776492222334414687241320544746474760829307412774194943554418583841405902525602155697502996939688281916673463365425545783312138904821401561812780948597356571009602108036707644845244046455304750171375401532372014878422008398769448966672023967691431201116242913834020299617115889344962036427915476539073599881431265017410987943838013720713347446752804826070662004114166030606614539194155325048117889133172519940252391620342573301006884767559702144315736611854143100741592969371067785182603212446172857918820740148515310405536029472966191800521003285298051913397552761164435777138880476861182344393244871386858453064799116147189565804023913140904503284354607704313999466542859283732421201597072352303674810366871841044253320841829908592273787022380976609928822988385930343052591309651262933921386612697580865472946649296049847343741310968182782205653442350406365218878889157734466133980862064948205721590851897441212887327411057649271006082668576907111591694912315310019363685391131648569494486730225028505046112187677488637823651494877961415661925818025752598998692220160561351368150416442538279721011765689678586002349023768700515994605460486356526370341223439718705203739389078674598399521030046864291927819175321090763728755928061925169053498404861650134668631495822122444658023540599690965000281744716645070798240526276069127513544486655900133291580963818199482434573709299507774934202416197448546757528765611310748263823122047078925738316046761623630131645210629546656073649545757915291373859530575386380207167323711600891784780305148009031564511201912537884870449572441063234484353691416319373182500062023104620657705451220946322789846293673171977623635419467163811587046666188043373380452954094531633931183832970839506021232260572254527452512303107620237902176788957450510904697739634244493424892519179214578437817209753575643170379913835308357439462240657572504391526111138494989287267217211578832387358879616304572643013672580275896794256823746593435190699552976599334074665920472143803634418923868486316517721761288967694393959878686521200994910052595067181184347479627503975767415849885599277879044021149573788974015904542111654931107072670197600999126267538663885098686313319042811189224667874613119597222002070456083622816265558408958334899055509944045086280566125673869615044020386197667575808394199264699956419778447285818089584636722762230134479808921255731315155997885823852843991882677927811578103590822328243095628564242024509462686833435735944596440610553689295510048791265948266089778773890307698456235861890393461407891755140088293345595125613643516642973160718866630213242395310140926813019352961314935966027052672564625015775686779381398876606787843996411737933591824064682770332313424871288206380242005904437966565857693477774024997547255834502516588804063652245217172223598606345996135532100986039461344139064109636129753414308450053671942891810184750635728830141059713582053770774929389050688832747197394999835449443915838504967065868193241196010656646200150043873707308975673973404348910950865386946003005380762656433447334129932779302544729520945202024096940656559978471521437060686382335453860696966267813185894496119211093467552192815876711119492764218966257401598757318476826539463231958010259921679699710496206642295923434696402545593071153814118907213178068067284653563469308066173759219014923701075318145178265897714153638074838373058614160546601234854453171206295090747715856566934586987548083438039311693466961056953356796070508067213360111695088863138179876544310271327271479673326542212368266238713400946001466759325642159127401824364321718726943920644075556455202846985645748969515628056744902188482762015972549974311257971729783666756384155224194150295348778507735055582761736378792443158982705247243644874119833532355789470208402577195478426787385305357128705839762701078059895453668786262294459794972361968236976855253485775990256382666730038071148372306959861773066725436109755113613824601960400628965650937260891900237393604686803185250346452005296387647468160627414044228894611886301210841979195666235762480711633314515823144128965982863795402591887323690058927736321523191339911865225891456766869510770051103025436225213591192394231503533798889538871261459788731768068904893128911050060076290095955315731625408426822830663819472260399684076055186337772808636675086012213802189303521645914888260274151830440684442082857527763125066840275898604064144096236801538767272528191565128185780478661856551977997095179436467651725144185262976703949001361343252979391516426123198489606065040774470312080546421496331393917792652665083388537527238647613364974821507054823518095218427997874370668960185409572577129123442596415932843041085382988622059826724136032228331666370817782159663466284710299449591704255412092366038565220026420987774913959811546526753139168857969875239903052611191474789376575897536113348211924536054152559216694538180219673199743125088732961894633548806264625868180855908990652422671678705520864742199827604504236371282218955972847763209115006492905419421286355751627666981213366661540548914294113947440662756998800263295786327806339440548902633181314404648980104934786875145455008717267068802839764490894297689102456451725335754454340817960519350697071257475535716441384127611084401889104811345975758345099949740818846630324810478971820839351847895979285091806026389981994374610364087659149618446349902042662589471442609357562727537569955968400367067548209470807033089129675602562625687928105459301633789723209033740841779135823534713001911806501049062879774018555234340379587091144138928856293544382822020574686652797280455859755060388464096852651130235332501189057616615269981057019656083134708891572597924656467212844908810545897355316478366934224808742638557055388032624615410332546343646596486141562471188050106205994653716604896770291840833116827892883535528042769087797431777977067733090915576656787068597381509204403798250433861451269716863189577729375344182751507761041141612730887724414946034977808368697631820082725596221427654307707533473723421126558745359340161654399964786858035997583316891295667344007610824422119187019420467230910553755758237047584073424960278032974498159844474762355909080907000436578188082209758499481572497500067860910052719492651357774938316545856868926605082831538464669884838831370414323729552910187378514931185151765161184846047064056218901550485780760235873650488079442290507069836912542855071150453242301798854435740220137714726968060528441759411355318957448130695399704944872950235232752147824663154952740249133745628540807452838942411086096808425486332594560830801504853524794079737950173914346713507008779677521262073277049288680950418476278237061391299207961778750678904464006537767258961613545466840515116661320890360648564799393147740334311938742664064357011016444886233580773454935063873346396811086604826641689731352750554805128085044384275282935485792328701659613333097339322254146692487391497702064520113236217116788978712429858521586078236411389167287949728810987122788118961344090153396574616599452158385800401999295112906147688377023900689324331890671141857254371686296364246032167458894034126993612780506555018499015033011958446053717734890150909121511260215414023598801920041622505231505500296906443998046294443523395571109198806007751309750697694268881308046014517984962387689067984989703081947180228964639367036325117366381503047213118432176256447242186134824512253970658290316281159543218527868585855318442080387692217695181288897690545783365426960871733140813996810358367896135129775243560305328704319519986004727951366693625988681982601551023142958845728771562535503381152946879335914060953358541270042211376866483750823035000237887380870233259546766616678257204546624741192730733511375731036285533187257008887843055548370888404041859983611587223082962052538131784085254235712691640866134333612081341438774569275255601521144324802981733080821662541624501712264264003192193961996544991780638426692928360029997161954735904573700003928352779284531150600224060052309059060404161430420928113411398447957625497919933204586624594575159250511580653099276518462178859752608348647017795939309364486525303987517453992068156859581347352191739742140036502437920383232994160343122134595791762281023628616700760638392879770668244959013802066006983008253189415850419265799491157813305111252410190391793959216470686789148327938865010814624321339405596203141509563093335320982670735663048763088158361450078830229802781150456893629347218684810019434134693199103750270270221622392660102986971124520524324084903710299409664119255102598028885989844674249048984036241135026426565174886953983843675670579515355184491801697752039569217404562607924548868424658474602174889643148711889787685934843008299100245079963324880655332245597628866687484865278583453202219015526936202839902910659189924840799814922331385308258407064702580110797958690674315905976845264465248217250761050599441680109656794398172343130362180810440267529955048996159619909562864708767308815182143741562347784951932166145068832012989114122082191888296207250766710239188710058734993327439324443424114114532046270043643772122602450027708311514369990618826300557346271157830617947323367852758345925186322134279037400310147738098126948017054612334512884509887271890120578007211263767569428120611380237562388305651838887992661825271464677719042905836591922778054235983837377195909643861082330138202453985128229823696712483497659679561660555865186529152233448905111651998476306326565326836741924147764502172128219405713857019738904279101490833626783850328492819831893113012539918853238232163589689468477133143615085067034017371417569919501685849928462939811581558075839040692158968753285964857023877029747810468690438927602355687521800324914006876687496649904992722010612162964629566898510575064568554067269433148269002101994153715654225134803945043772482627446145843915943901975587329544058157050321689854186188679268294354406280509751535371217568118051718195460740584947147897255713748411438322094715476248520667226452504042437212274779798598720596327080593825862265154605797432150427442355959057648351091365771043208566849404521334868229287369256215351548602253848794908580315458448360838355475437085057269529645406884843935732774782769884460653050189382412964645350156577067594244848099654969553737946357126571510274633707501169682689842935808404177081538992280687008910481124635428855431817463345768925606506574300355605564415154859347925108020995827143672035369548271162074712799489043028867565396153124597763641653848156306751990527149160945222414730273434208058745096664381904354854934831165146066358515635505900218900527051631729374542499883105545617030557378618485485247081446305008824673229061737374594982663495649057721505741490599760216417128440973192397055076002273970391184873907958831973327658132736733587426656264964818261475592722104162988610175800860457193156787663939047415885384205069056699112385051860182832353469123594110778241447205034241600093730139697467545232637397229372530988984665533496848325893759580042210763704480993714690280106952843687973270537090112724719232488552478290743695661012740849627913329520107328349375618535323664525269591559410761382401102094522985336225725459068516674897242956645595211371192852503837912497783977070044182856760971051227037206736715516981081737310873063740206433795905810074616901960614121269409911766411898269434365766184656398644098256757623465303410884116099286738540900514091245414557026295112886523202575381265689515645412663214029290483169723174370634780105405570553714413480419355698676128135088518442850813620443522456721702228755385330387720770320787454025165214935339904919335099276291086411899331053126497538881134103066501039915529890262557668921351879120717379553374775221890309450260304201169597392803780061686125263826399433386176137104703915201260523013040155398211903808382479325073902578198724987754430693390126387656161812362662535273091823144824038876570044232989800848750716846901735172201256672768960723205775662742376692781488865213755359590887945920990236896061857307982796130455949895855699177517030564340697098679830535217527494975256934003731485641416021528252728756901300654844959421610246567405507675869908891501672957979464984442158866138943290430812274183829404133081043188100500518016771205242518852589375728671956202120598985079764386946313517385157947694920325204899668781898429750734631429136355781861790921614086831421793891510092867800207390006487293868734688497562086532365605318779205792128324118442428855165215607520464483528077664437182764726028926052582333003120694516834604684378047724148418064211477866597271328438442361603586468313499446393453010843298247044265969746608293322168401384235235823820586142977104996352973862833695196437559990314639546783748825374115018035540195683758583495253140997265196701727574072795835257148883394892146495265580115647504303282836043152924164655321080973004065715994519701793267347036309874937268955035979884196125303323825688992805236556535946299795984058007608088137486986097755983963038545143671793745576858287526231746290513412130378152256232873573977487269187534253398008590801784465107414825127994550005367389004910344284065006528758300280411927436226982199650125143442353997152954810818466101736389046097549305631024266855533531780734640048589076686672045675308733663407498888213929648224360283354930309572154297733847497099787906636471748869425981336892583284580620115035646148386649139047443891634299713734909989985461577329244164891984456284481883425726686946020704622735293579457728825588635145056139704709087825209230036553983490414203038975712020287279880816982367654826648415133159797131349286845083321301058380795433351463215695921559175468522209944184038413012916169053862746584830091114428053186757420291410492009894080453979142982621196395492807043136170714434326674315877060490427705124161294707599707608867005988725611023463484749436284216892689407172804504591393747873544152518924355900942703738508232244687075151437970999597821367788259093491203665448485166925803818251040667375686545774199207403473777388240487852318650596878328262891628096301744239252746867499912644676903764450904640825786997125445824290284388585266664239398042973584009812593613088759109778287226875414340640107485589261322744472511954905627060789961460208882518772033659582445059714286039913453304267400678621026798121316110726819166965718177524183900613015882382409102150607990825877065004615626428868787191008753345993237372756552595621796955909764430527015797729354726091678942534256983886731145837665322467411344817969261363964350042694108096300881295419126182958829124145152904023827375293192203645722158553655102071627676183438649832822174208732809450416393062748021210531213804304807471229922045340719174406111259614797144478910106232991602513052611216736123803555419447912451808312068019428036988005892245098077626274118876767136315856026584534872693449651373132949171668722898655743554183389655250445973694127130479180397697390925236823872210418827643682176830405736310339931832594085916194972077212343062124275825890432747042327847491353950313925146832174836410409412387338965157989423690727433880039940054075565088506415795756871329345138986078596577332621139722386817935762090707796481191266768472370126859620876223439508198379800622990054471522877545405835688227523863598120517518140779061491540825447645547499088459493130689466510875061492723494718163804657685527746320878941472499562111685240694880288461269915584064616871490107160205216986344732287713539923055480260064826944973728580914463291442564832716706389604873811325065599915548993034200780059198715462504996409113396617407988993649908508288870822027013018078123297337466211317894898681215460655422287780352434547619863871575621818141524056202421902116877058662637317418741297956065341606939161516760437712965293682743433095451186089250412732340154505331286687326418462422549536623557209575345271186520838678862592648620800301462006276419746525574741504103387479998116476163214646716467159167129716718148855784754547952568190701026213556276007102224727923525923492497072475380854552303569332828602305051532375013516943603202785589126650785737703433497409667732242797630124462999623856942358916047602154730532322623235072676341983543145661605728896078228385212851593264532470958587143812328907809979514696662763578456817850587995187845327282543728192522625332558096462710425501997261065038586844133148876541085784655636538579980790862626795410647966384173661772490276115358581097668761802450132160671102479335229140745861092138043749491109086005911272468312407803710277134074958489214802885848997872902929406391777263636491465644025193822054166844679326318148365698226180563295245798602926785694775839335511669338949855838930425028587041801075102672704872331913162215149967957288404196625169610198881918785631868626906425211537296389852667274818290221955609222155398955693552458746683746186250066133859138115619748129968693108298341872666129878863257737558018848106185207009438797039065704317779181135858418599297478426814195450474071885259156821804413045183415166284108305013584403056617920408151463557569923052809975622010278447276524508678373778057137349431429742991103471866680155484056647746822276606959305288130267332186741584808229379476117396984111215604532050740440648572477273189040548199973321289962169965631466128452823677539737196517401948592572589697080172420003406645007532808167465729962369820076969316192917541902144863112089658262976990192762520228487550180857239987144543772155604365481628893644379963622156796075349714059624290732061479338312835363180945165939638714462379490009072524888904640538397381214560830768576866055503342836094573915720746484809899596851675879122080326240746627386598311336945043246316629974211392027478201204667702064006618276311762104962940164830243980134540756215744638555955172753066987292056326309010741928896030474385052279122835282494305679782776681299214619683604682121593844218372024767294373902333706457147827457411697718829751898551404141978189045201472602404907681111196251350613802403968265645238437856946134256565286504317805970253786513513208613436555304462618857828808925099444053249742267315601166458580113411161944987121061209812675097029736875932843819604585930404321841172797483657899145000543026416433048125552340561997877547992336895070165487980383120946289389682921834881793107070524892505954723638743566747793453210397050845053352767521012780864032394631766633493476046541009096295388529243274650045443307165035756433892461609212354311422977937050629650317008075852064259538173148131853891644250181514815522628080313330493344303898318602808736637946288088817321362866013745312592639440466589370248296805708544142924404551726422035383140422531065462737016093701110043600306732290955429764405237714363103295151913069509651006382669097989784689071385373204404454636104394622034125633707036292817993083894098494192574241741253023364758259528849642353218460787266931201213354430973569811195166287367146415210803035897009203309740488882568529267811205493879233188909598978350713398596385188038124448990638202460766716799018026246455784024629673261858865989579242503997493983329218069537158451268387635982295211147464769699428153518127914376486811052241324040146229400469788860992426106957615517567892096782747522355896047093378020512158398922292452181268357627006738111393552604633429347166157081869841820425553688926669215247623075744176255912694297038151212904825552759677133560309078151157865301079666702440929170498191280452915719432038560895925859599378302164624235884669078803548870378423746210720358267708707517320798223366819901808656451280505505120287815157905105684405615147135758695951553019913036142026466898934578346513547595152000183049602889653742920399191360468939354758527716381381580319091000619595929483966312482510032671414903820870336434284138493762384504806537656467757376173628731365097524992186753217688743654399736810876894805939802586279212606645456631534820940901420820188637298086483058798147212439808093989541007241281422688330432257178881185778108901115201336465473307830998619898489434095269227327282403213299379524923094349182826813259811795848871213875070607040802412285353690574903768202677773825164483180592215401190326498497415208544680268557562537511870974569093607229360313249099936950484706754004946941852751726074758104364989267523253984526473405333129117055485832963108660670490382418654128061044686212354828473638608704128955444288271666433871502085936170686542046272069314539018859230120988256902816585471404634070744577669618215381314598460362977910245471446336430923349672357343256785774468871511530656532370469112669330763063196925268907042104725997935250247462913713093099284460675441592129738257887353212789221679327344270906102327355709143370027724516924210980403572062688366912997337165788560005515526017748504309559440845955693288941794964068582303603425264912712290153257174045997039338172217706000439605988653014037722101663815474400318576549454706800610628181062572018467811993742421905605165174128012790573013933387001900470928699334487493140994708415383791848907016905863844472076406064018539490067301007247870358172851066940426925755418059002258288175414321408076734152360014369491365690017954986050256627947743815558314540567852853698786149275818676262068012464230482027275756022320488153691643893262843137201178916931822391417791955551971770888735656768105937270562124476796363616230785197379150459394605715419485311655060115177605688257004413573771718741773178695162563626778157939572296893032368901280270395216086192715692652972332905947192746460306721990751580314975534398422403737851693575687895148244406418081674667846380794011581123189847541793719511655680772978874935351504281794656602598161885921586958447816892490848480837985340261486925889646112814984566940427628442038694455806453162262880073523400990645639031188429939797620576573994748730751213388078002997005541289027827343813357421600416262456801270849508162647387264987376073930810423749924144536149156096705530733266246070473610163811759103704693270459448634115348266934734099519249065584840451385323929291366844788435252178823704729428450132854972731486288172737773278933974749940670190831916340877370134095203077160496083792516383599715528872745793891119506578045113031811807594816753629702161439158696980893436853158195032846748929450906205904314905507587524997620027663549198022333875474270756702605365577518762205024532769473040804503201324432087454279643803452584235108225125850810366035983187103392803370863825819921170256587771417129881982325631080345284570389578646450416101367938236250797577726955946180192392124960008326412043525258995533812005384543853319581048967872783991546013997323785300675618960915561486260186517024032435620521561319612230977000089161035106066314395041275906871472550572409377552838714085263407786905384722232041813919868789900406515998703869359164497136643192852694337040925280941250504181474213178240376268857158306128747060575746983661575039854509630871936372926550791245405765588269920899741385366065327286855243482938211666753674698010018676480997216767508969340694914079127629224773523035203571087632847947729032293355017310203875181403051625971355237720143616761784126045965024125661944956246758555468144957275641279054983899133198897294910565913595030688055183439722405489666526974342765196693293814926284226351307428980360324972839561998516841101965241001201830454652444846035309657573168392045154043029000855021051692701659204327626324538488019053813043494885634033826501739675164147749952320761341612452223278844986991819974140895846643830635002485376077998612614300710576070682709789214908812511563220762531030606783520564943867407524012937803501108866256249278139560674265899775874227238362909862193752111928971899997666331691344621950851504304257143510145423130450648059806659656621508237315617761598580407971729118738999818665832977443090440957433003073062411556459414234364703861332663979833778496170348505194139054055326368201436956367436661774665054665534363191993246877689910918971423783133407377279871220703923751249252217931216811139995929812001947093670606825025929487813025125524608680926858580180015801234159144617511067576071305735536448081941622494381284432897568213921283441258379772872571243707840068963814635047278213895393255109113907171111143365472534340292811639965727326467778122470244994818025400567476676773581734259717836106941607228877101821213417131907412850189778631677803424651871971563593358039802648728259716810567702106048190431127581077501809033645420812717055057518647033079994867398428069617096567128800040631108323193890465630192061040851352198715017355997133306336040514605867395037028126312311626965357471258081490251361966799761358384421563864270070728719290108905712765866900480582639529162503591033099724526985221770466629840635735530080019493047706299417897743883236592022256195977150781843596469149767316920495203081452150509024424346921531695554985847404340354725043371575500118997767242533088568683508252326582410808384086534606373108730363180476021605112595756942820622969243261358482906850426077971004226188663242842832852211884233499873316457010317733587383201314725661374052815625656734428797140929257448763632952467071240222154009677654398132838448152914746973212548381162000416490712659208078299082357605415692573493326391683886697166341355458201585023613932245218255373346795272563352212232081427238596964036650635067449180645232370756150137616487542272242204696118672921898299707746378997457605495399612632281017470623735945808927781783655846908671790086676564124398308499965590937191806150303556534663250021090530837694564083473467766707742141585576973191087849610026037496915101718135132522813607702292533687007462743548025338742091461241477943891451891510342752482759444147874482873077439344893032569300221455697761465267165045106765537816006081538451898627380522353611138755451800159145319495596532177773300418855260274644917891040801732383800689902106780291273312405942750715867715376541871418951733773046685630924114598326202983512662118513747771470080163802987820691932288355156401755136795573763225644834604824110869683860633096615118109821140531635727133139732252617681153340046282480682088638195128715313055434999940878449094408878351611063552415215546202034021793284860697475809392746223608735107784494194358361251490356550215790852559255568856990433086405804586394512199923544062326585902457780927448225272061241602317414701158125468543338453493446931357140647309886827458222452435537047340759819184909765122319141748581011064008305133231793522715423982249135749219888575492451104966517139128067459317715581238047869766442722572508350700243490177328149889836704764457534558788802000271861550882235126294807650575071861843984369585372947589425703158798208514622195467418940876814054812594968233828288769412482336275650377174982697411988322434149412738780389846750854055930536620951654720626926971969747266523237985389253092563742997045844945100932005513870972783126880135941319746136464459739570558778605873248695208520154699091387336910409073593616210792684312310440055629002096064824760141727007272160990158344514245896198577468725109289783221202645340256609562746416723263979864461243825190194194104118947077810880812499921269769911268035943216718376240567213706833954429928222074197569343757579969450860183980681185281311825411118172870734131586959986666326436192951980653878041316780227745619587316131663323124943185068099714777289391252208211410586100357241877292818282187214374569953513546724896350889314008208899529013518317544581920096521147547012449541188419878243275726119088740511419388523330346169915515752779104098189633795222949059399454415163468974167932402264945271398473583161871256596083301233599129533906038583996309903466489889373968892378283569087445371054832099789083687534901257691786780113234011284866842718699784140855378686761860356355694535936630359992176194230987972465821599744612899643417013374834510942762425399502737112384334634467721511656030984112579731482449241562995907848412053884670840217532511780198957649864419854569748723904701613265751113771344029708244559228498510831330859653649988010740591392378713727655168080324749599827637450073179056509019239328932096052684355908948257704512246573450518019335433284453071176659626319899245283611156643016920319803532512209169571005721193965830411957246653643567762448531191390872864001437502284681293627910396263861879000588580778714143446295694447389197240182242881268575384027121345342681577967487961219737016506488187024620105523018858414215691792828690539532550026765367128882609927016764045291936975921993762285966251428752129362887324552705590241713803138080824598624732651704104632764060373687662029261722956888397842519736294160453979110640436177196583909559640484548199262290503118161780840783136571958430772457683463533664648210460392546441928661465892033019664808334312982144562356650858609158444134376970874078789498205218994695010094562802284916804786194822989231125538758542629706778086134644623731384035620847660012979138738644708284223422102273755618227912320699603713794358766045862141103549544804257794502465137558309343727929025137363682317081962959112716374360095872870826991593638268526528031080511350929940687681014643652885528322718614905392282296369379442813572198004732809556482952773541324411249492914752083554940828376753919910712012078116603219505339769690832623804131209748680146238671001558269583590843726174136634773322098885021228297827784940609075176613057993803698958020030219432388177619213108533461737608446016582960059912935736884574397645760670452881081813209612560853345601129317706931115032936040665973937182510698814578374534015280126442152313656780417545746922410604293855625189269255684902991461878717892785004789075243602671776444566804538385341229997412834967665832678061752292258654393433722455477493667518061027887605752401298026002379104947896619132995882013751122293723763429522273398894857280792368987712919497996236573158309904186928979680262218894746958737209572197195596658912806356850865188506149642006818553864842338530342757107493988245467464938271243171066118096799030357522023110515711941137454691751288015095431180892536759286948681409172583138050264734981498445610821784989740374506575856167841303341734926580960085244248925854272908673513894668243245056884640266637955210088182128996078190491997930469672039329874709254433893871166301004912053783340563042591357694922737466137603295638114331627644296344621468511144866562374669823955742782361492179486312624762100583959416373735666854223461502215771780232528851808208155013770147281435482306528818535100179317615150422524041224780609358704791711822650509895274160395343153131227658364169854932059044898461340492260884687418912651520763824373493781599933775186128380656270906849277247053280407452184972834062331621326173756456742203569901646334801161345764486940864939899923389934695406951881817045703300125199260687179819465500510753099597825367676327222302924317191814304957254806372588666601640767738167400615915201197552095833665408635372174142441095117251963303511222886546155323641033062584279238549224883445042089300010383615766130963737475200587905571712706660717492677545607559337583782963500357340707571405717503194818154398734842734261510618123855830069218134448367916021991213073833394657750255575283706755065182996909043916312791197427738903782598988057715707744635506788819556469603518754575840679752085449365324422638902071981007897908520370265707077017199955491672164146528700181343609887523232765030562918840417018274009392626484282456867426618236770629879740935098812501347672862644997118136111953012924318389752016719357592916344408213125541701188682460475124630503979285228671178707503688982510596091680467919889055895133180777086143155201260053424869029041806702502893741234031189252636779021262822842461190325695430638570617027132871109865551917894547280654541501148457835276246942829755531287750560442398311116112569344853106320026621265826029900469707676684235973842364692791494306458542026199288987460594951731746910700838599216796236562008724652356661502396509572378001726209051429947324682455715374034413684574015900436264951051780817359918834240011353592444974743936459159274593838601899203086246411223644678245922829888325115166333987822327965160265812804093952047019023298395560657522644621890244888203932276217172196260185083011451956952309043746741240861379922908202059391570294489864492057541176694049214079253281621842974011152773068381392356461757264444300755549504289675383498820784474199968573580172102107503288714530769139076119625384237133459614536281194445762371992179080022319438349870302504649208715995295462875010856334885550595213974063411479036758328101705818519607478904661485934279635144140046576957346153321433229875237485608090703173398089826183189518916183960774720909866965115309337033725705251019788828552963138611228236532317015174390329444185945342087423956924662914514270394965455692623327346509388690871490677794984363743227414739701024074140095641947252467204548869398901000073423841423169391921767729339165993510199158909749790821446344711264977341287714135920637161539131040483792196083637935944745408854233615627972851267781599014099667940784164457096374762509650152438812359626202363007474619322402958130400410662157669267436824249090796526671060483318238753536472083413156509615025553727795070768826564813320100127575288077778339775440404971069082321681119921067434993355208876240126413657910162945936238848774567502176515126603249417523580297352780389267050892916910709306287560364874531016255718955578662564577681102884385137915206352261941341637952727110378764950598908017168904869119934789057976527966453171957128965785395346646082342861212689467472592183179663011379451820902995362046688947222002655572008237506944799182074097024484421308199059999784421407516676689044387272637346492310035277549723510708490600875347061187034116136479700862130620375918959415156509215857976089485641253040513651406728205441469889497818179436340737670780317582899876909697863625973766866098840488934971367837320501387123330263739403893267821679688107241364038270431557879222099881703255395239536850865281139282145543973487765451652146174315750186834518374048601684448638930588235522965244097295014035214039373173481185968122507073061980576009671518677956331793152131130604960241940039266380886071068808612309563282109734277027658872136375500757153431640019218876869453555409471249365039419209433085032182102518079111141982526877715297302545799992191278171138734853567645893089253948143485617450901477906428510400538999314223907419862909672510677361421337629763919556544166707563969951592543054917073570167178486792496364209466502100087645838302464944903674990206406279901458444974373958134648296153906904278633553438600200857083693637954341569411706444726547499593297025024383647237488585535517167538614079660195995700116443746103854700673178462494484725678229407212194745076334470818342010253039104079829577937710444925321990261469629988564218176635969158735714773458294938033510020201420462364756991022142073979243868827268906377034994724042786730109711414894433325889719495752835877228892211923330594574981313730763675147096931719588729855776560794858439797355854396296967046748922989205389088250145311368166261578263482544833299848722642774943932416096862913681636893911428328958954408894153804761506634290871002210176903214416386467734682393994225379466856441924611808860857062396428377968664027012674453833261633233563180796860317804908670300055154342826059760657077231962995342658513631647334306175996226851047643931950434019004176810757882062875074316916328356830024433691944869082866058680623263368358522249040970247588764484815890719933680248322057597912210516920440591456479333801249395479877947352192424264440641405090658968339719135277507769777768376528643688329483444156569962807409660551597868365891699327340899772949212427241709336100629776746045549144115174590033675825363877154522329620499253629513204157342751772286704648414784297017260800692848437296555946630132659771095088243453139422257701261587452281740168821260497592576831026650709800040972753696689691186920859264235395729394243067074392302885363176057052345151991943324585237775507527712798631408401253187572471524858122555876299528154299188804553373677878086231927919623777258860283086468260637036197316996762479886376448130278466805419225174612600600058734235877938984850712162816183869410902148929715501135170805146581285846784887146861849712502192002418885650907756813691122281292391270206024526749854437495047815962373886740608610509606914256323335634597899171290523106051305184583276570903225973803398403869187818562595580535230537029013155406345475841858416323705914775718953743229241544128964869466967462466706398108307579198653065119796449541859549083823319170601888355253121643656659875335905108263095098614953218730808435265972399993778365760774335260182112158600918487360364404643563685429807346634093756829707998554283303445481944292671192784229365084992521454169205722219560436245213392718621248827933303824617537796131998907614033432669337200669942398181165710931515874147126640467061549765620550365360844842561212013429633440439067704768773454395006752279614542695583754579373332386592595092677810195533464530910263675774645325248850083704003665401441001520797181986661279841060656647501166145876405323329205993459277256050811801381467432581394218294600513199786500823999252588351642589684824775766687399404134003561247775216322760921366252080218925487270543926040380289466533131861830205375576487486933044682878580831824550311144511247549874637585971470468040579896980550792408413961977961646187975052206804140587825738161852229332345380991567766104683897223388104099145273932072922277716572771859563067370079322197168245301820486115108825319430146795399801747371594822613574091738045911932380657436225025798490366927557868130871786443680555706740392649301140936027269554095470794073024787257900079743712716164004264920861488725964718256233940886556791360865477017385087348400039914904361553874100248141311444175765005703212065105507281998231098258196998857299009843987221815841806901936728574579993163936149719534533663606317395929194268440357365899363316518831524627448685837989900023057893075595535958836975243061413790856480058748739326065413125380585129241322970951852384809720313316124255949145823936010013289780390562814666200436338682426167427003388226586006432832898620347238261623925536649089902314173123511481761427912539433186661533003733105113305107390425706241784125322400800433586819820644221993318656790007064267444403987320277600996158162410094668231393441239314754464248443662735741956027047350606249333582285276688451697601843190031661972799427732725973372780332982774879665865452281965597959096690959771304862744940683767653125688449020837088022549976037982054583654645786240579739528768870844946514440855636779334419276291208107257179735110484780644831526701301731350374350217472673329317429099669111316968917600403707250687353176196463026511672169975618886770750407450489556543196292125217927391997049081486892172082041728291925960457517634303311610063292908499516264970994217150361116437326288479459617672616800335069225888427718742244570152309235787141492461323386082229121625490081288364862983017982089416854102368574295382496314037592651180233708358069970456775114705027890788874405392752576843038129127647883079830981999248506900184070134708648074390120447872009318600133096455465322842933878975809683216401470997441421083666641877824748934342986902872052949326037792110095890809824255902579644108082714749242679139882124308391356936586222098282647086624653976908744027832590083846062020830336618099871736794414772855272612685859428822022480131630158166829778808712868382010234063974923888289820032802975002379112162978685133227260482289316400965419972874372611014245458637484706827355495360844315386221748193060005282918041536908508289117577194909202606006026372498417611300979572242789318237627346543174982479071196152591708345730058633689949600728818467957508544281562796951217520744487816729004848862739674742599297761237564015920592090564295658165368421173723186705509438784939489795574248541583866689850743893226509306862690607380860173615968817121453510871965276068636502837751894521137795050798409595364568757205508649157851185494743979789235940403197016309241245512376183735998302216280906505603976373940112230348536562486844049673154423271296276215307384102627304566645315255684583957540737318046907353458704278046625109838790436959988747785139968399362210046900753370396580637951517195767530663226498419459807600274028950639375181758612433341078752528143016478701315559313075976239098935537969536680351765762019481725525570353209701940034577339685904983942389272423209714904572259045701255254846125175208255064361508635735399127247730469600634541536431085987884746854843206043401262375199653050594766862711922829872496767945026399243663244306165657481810127321114107451901000635703519313615267545492563058466491573819891354393500823941169823645961167417477132566304354614749768753944601742600087424970291811577895682544678047091089673667470763854271505768472289963037514297241775227856900172664978062439142895336175947739923779055300617464074269256987566047208482449534694096926241289209912532124717550717184359011996010972961821034267279572104770274123296915199623786080038274611272518725957609716909537635104538773843578786553117711211460169591406614302588559277980091059358294768894030225404501173818660825818084284467945176711244433960437590237768200565594951514353213706799682931949236776119232347789584539665516421777755800153525981920745286663811800132652228267310976453985547772934448324494457572021720430061563578539577365630843432772735257989727238556980375390444003346929507115640918099481256904375050805492075374675865902094733518844285699494631514615104855673898050998921834238853139416224937975666864551531194805993118938162692474306057040906874171887707548240543960552895340069138660634547953702312712057724172055564524382569791832870588830806755528148243510642274640790632039713080438967449557977313340466593135079722830168798903619698146162841103098687804631989238886523671400925861460254214883874239657769204585750115674599851682307497305302046242628696668138772766730945637113808273420174733014169947132345367982160693851424068685404196111188545511069950136042620371856244258368708616271851278079558358960486921657010403985178647165667968715779718229713546544088525642210540788314786072731087230141033188949182810186915465950470999731651676523781241988128340052141127751109040095143560721865618028368201847351104622147718567090009015686358088620304157629514875630653829136326253866087890688816706710727365006588349712389860501128507522468675411037518023760017747109359277725904395337863575417878675744476552358841192407266487146444994770297877147544204012863212337541252956805163829661372446696043133677633460597091053266056827816598759608096819135815063300433568486986554185212503459350928673105956388626276005594593675956162915975609906480483010690696627371308294055414641531765814629112127074391048579439116405159110920090756779814047739634010596705570367429306790100846563512715108112966717618096615016601992574085592640567281415217511422797563713069190344671059244715945835258957333912778434693750649133319707290765943596780477133658453457079741062950538319506118374395023924805059242639851993096865329315414388038135742005928198239013510066063311358883268966208467415223131417348759663672480296642082950121191459862222248616588510530854584752727533461439222180421424446174688867702917908942730480407259378294357482257130695028743592105850977957319929261306201159027780594686779396255774767541656500094274502051314836921017948607008301315878087348321967662086160396085798494360401022642449974430446509990762060317985595516225106647304678001155022292025544114858119604297461385533230453225723476220639794147347455471358013719304799914689453791820955174348630388909232627633125034092409785707823640329027496105929609660794615096287198176807385100092126823000878663393127382068589472532827372391365418034210133654036474708736724498722505021127099520198204481906496412740914534419594987895809132116938368147691587901240045394734871868956319399323075842037670356142522829549268865950518707895195191034881369136177098019548770064665957602230635045454973452256176617708297055951882849736216926102756334480082811198991601474756117758868407294709350824125602236801332560778912874145447066551738855010707343168323830227697445203182047179197784887781742824850231467794547828125615419683640676636824211702831487565061725569585289607144370694897842897993553795797606466625994881250488542234440550199784753669383323612444429291047560030392422907633030824755397535616728058962365272177007697122461502386442643229285135883330387272145480664439539716326443199919642818650760712405561513786321972892881421138959724485448090338778268713213411873067903841825117635091586604937672228502400800581381813030705933763558538547102258681517024098925451967069929452925969818601580205565768635559474347592515050298215836300056338408823894971351657611818090953766328651556062922710877654985767159567237769475414824183989993609068173750715605511294856904886254126274765241854131823303421315414188042710045055199137876962140114049017658619797298829019438577784123367281769030599017834765055026845131582174905626904507734956078270882458474295637518687270425296264910424769155273344284174661023261306221111904306534353143699018828815234213241211987512909869894567828155901240865473889718846591799888119140874022156268877429866650647029745512519908179909256820371592876478914712296518249003076599803104740575854011692901233410720139910664020881157993217527064683694310108816282867110449272870416697043166719260318357102004721699969694151450413104196494554524814593657464562443225888439182490097434037304302463558410503187425174672500238377153609344803345791386167700368924849831689064254953197064474304758847010447513015227497352094323583165708335909380901910039502098547036154852674749407373530104228113527903190285021648894093753037068283249441070526816107108193318270140841470274438904297635537032677800909125853893935700773669038569451142259201845157979412428984251036756553796112184090536060810760632486109947773461550508960877282157794268857211600992626612217965596844525875371451457465775221704627334351019712339852115660605024660038854347985835349961777628040743758438957818622121927377591694494610594334166651814160116604326479181851124102608158834610013664127156962262930335740190456038589096949325372913630081362174250557374416986879832295776469082305107401606680216391442335942045577680726654786314601773660427129505636670994157877201306427617551586463566243729677483954951208362579888962264733350947338741383305587123444551524195809999916693036561689015446314827538774812954356678069074758125004940950099544575547272347434781577798676083996694487829492222524895157607815297877584256485870935848879650913140118519367071282346663801683327424976995786728207541088430140565412438635681535922912925031528855934899165634353027274484473342571738282183889396456381632466890497720271981581937235374826591988494952292178522111161095286430387630198670647206115548297735621119899420204421790449490998223574830800567844988220760583772815731182658293456714321704905822773922651969334401562151017296760293650649997119905430882031416753741928330751601809513317601206945387943723145191696118346778375248084266800956966928210110554041441801119894992583562080786647468588216728716930850995131310103282444119128765411758788076123536448453966660891651288255899873545065847843647084870926960159404942338591801471256943623443891651278811361291181809422996846548114283542976186192693822101877404811489039981092996673848939182220978868844301416996901905761416412519406216465901861718478785147140110293640485598014683297068665770697087591571488290238545290066985233574590590871696131784692220792404910594150931346076169441931783654569557995667062594402952536646881344855741287436739607479219142439705316046963126938047765563050324958216266936998578473390025419465740291988514038015564805522324274354115232049461895288206569137437697830157626768831522821458521353684004399288485660108293642261029107971202554369382902578035675971389698610555878573647378337178335846890417720688050321336139662826865588007338487859093857415429975800993098180174201024975192037056863585782027787859861155545374194239128800792204448882939008418689753625082305767182514636787771429557071896233560874930553026183157200102292123892278165218840577828388884991725618635885446606601387919869428881109085308993430743879983152313742723430422125222831350756345135842464719189567006602920884616910130165007531351184473217366567964762199912268179008002283012259461298439967901633159714285805291422371539818934060295372734229188796624413610419489963624872204266191688289544167408655704987054697954291700249248511614538620446596651882845540351208136692892096146969331704261141010539871862880108323395342633159012790774864282441775945334124968809447177452022695449774691171672713754057085134710666829780315030898261373671319109811903644784791490420490850592206555097254469636770489958630986983090135526764537792900751545608055722301060227664662218514604934202018729979583843035319925883740723663712450123517790624677722710414543539646212322393866247730322777796327844198490666578035026260798954178161729791874400919587575056670322379686366740826199526557214337696905649950420387203749882653755951703308779008662068582377464392543585766607763899109900455425932458439373626570272175709755028430829119187952484095568401337505900927510617332620678528862266642285770852601135167310042671810268719109095599257756902493315119978125825039032667003090029085356706430869555453300965924593894765493429928517005544322551455711542829106228538294853821164728936072889475577603789756766748897529173985200848099743235523481835495027202196645132867583432831612415652140094549441637913118046331366340528216318476644119438542744424016385935971530014482196887057007057097975040919039268235195900634666484808997886606461579013723446839220439143298291179430010475407969524096657763704747149971001372821649819816738580473126591765819316843878429656318462710552649650120857075246085645476432097151181074963968053464043234590113742024386764016384135865313917619606459499845207237206480356983650735297108120045555842536315123785656416278959729145095460476430720634930952278374043445770621842217202650927863267087535649515292416170226988842921435602655935203356302127968639038412492781004008597253370765983276262707183387263106519597767505839080396880597666848817928966150753490150308630269512826228686519548540940682057226370988906441417944709807008439836253758500866638931345889161667660781712409887120855363430120625394680507475944054333561375120211094208447945684049982917426487862552782080228987916336951204175515142260549601499581160168785565763542707625302081136623593643855717240982198662842949828440446654461636127956917549965644166782870313149583033887956233874546766985008476699067021834945378059622968062610407677673314097318115097616410496035986878196362475527147268987790977836247531482183513327123869672231427601895336979426218252535662639240846214823871601746481075016303342526279279556551796766291421999545205934904088261687144468495200575634035806078158620759422208751531262015103880120349072316647050507389273050499947165617221648920721228191178775167829834042903563109572876664200392089883240574128705226836511030529269936208985332381950303847756616826133157237411866341138522721155481981301194212870378273546008797491232634681111794327493140388496661710151386895584777406499598958952520593465372675500428834601109445104760417528629960035394833982778438686175459524412851969777386731209717297387600509666763834683295300233220079043682017966202870097754759688429230537510572805650435429920417062735504838264130364150207217688677028310852257524556710608442016333961667262302094471484430618823999279733976441746400465130347585410733821859517863051048006042111133046331457351725006413572644261658470277610560585700906420782566547472365021617301344452665109401055775046472221805165395710030802329359314894675325197777120761145859551037669100729523201317106275929477202585725533561724968242311069346476821732743571366156263011197374732573994295096049134087009512443542677478535749285417279298700861962611691528103109868458480487478483531049603624952500285719780507655486666857127607180425227033968342580396904477671563885906185091244543120217820335339718825104247886762478836248105325397729767812135736835784436307148605511996465767150200002844281471466603701289244510891180149056776022278282665824958088932655121927192105965619504242560120858795785298333229930924603026522964594190798933161456201000905055411969669445056698231114879301693480436213713771588237819554692544826035428485921637747066925886165036143250264477203815318388669181951492778258295219375644270614452890245747940259101995605071920571535409295628589180541965466479015520081007941701560793414370522532642106945285622294163929674614857067955522061342254593492730768394273201557262259932818049176220269429241714680341358126238562154010808117538221556981596078720839502152450024119643010928709522830215311059708452827931976850143993649209253325541533632106651959522444758968680847424829199109283500666202880150757101780548667995521826384994891814498661399474648188122261155720610977196465484271763449695945748165225256407272012379871528593925466717165227703354676595364033300811507939980272980995216655397693603103164879924322218012291951387157016483666792080813039784742497110055176130500112842177323583227559642013536558837037629176307181358523812031679586283201437404751817941183115520672724499673785169706800965789875897279662819820792706275248943167106386973352013151361702916616743620733348352758752167576306721565263227590989819196858783829594700674154417473519807731784436352207050491595629796814456654743568693225456869166837901287547789882937850883356683644835691516643161980327868360145854001071847510678205970713677794488622878173465293977376495713894087854509297743121373379089398978402176771626061004313114375437706049167868891961842591081961600492348768575083155331549825126088189452478832910672244498201779484226987746648220126577451482871033099216779147103026446114505495859474135444637209675417112227838903642047193788204688513281259887276223976978299619366272648313036924192455028910686580465887730218162145837099073209134357557832277400976714350129905849807945757383336141940496758512263501152848713121968003381067027266009533984866574136182640414082523256113400485400809814540075095394087425800218361800457565477521952118370356963875164003536249110107084211100927881038648252126304675151528444314540330213360870197130784723499055565392100429692076821444069803896442969015852143956220819506529384966464676635386800001978345315335954122123414006861784095889097800396265496567156094729911161963490295009446982615934145571194081296302948514379190894913322423488894923724786635131436104315201082489753538056452279170068734531800857693116944463936482033154946709285650456504992419676301009799465754335976116082682285551621667168670277706377567095695671303775086328599501805809687602789530129433362918873937131405557032907072991052038892794281589008673362608739476143567384425578809838071784544822744353724375490622329464860273998773551027238889315837754311820609319273631563751706244431342120279347269227405760312347790325791101651935623944149046233984150816639913117479453162347052282115018505514032743224268096867546880079031798123445619426832422100571123126016103777607142519763623745028699815352219290423044988799813099185719858589265901192874799799820457418643710324151213483428317145570476987302881457203247336849567535040656112712432088236928474800182199384366868056498767361762218168399262909092742487980471410383092684748515604445839301322589432251562453964951821199685023657844852204026254892351109497530607540951281646467387753450517420276708899415384671133143108069010716524337188721233304198426171241572932769208058232614587266830721329689645283350401386817739598416981299423456790614808779489552880098235288825727166629969992423890995693386309972275813615814351353946419624990485595567408194374539216266014617597566010591519440852287411508968032157858449152392324331075332149682253618904210628132769453834749977244878098877051633492227119440771193918355320983898722660459924563365877711318835780632930214695823867508482337085593022084626667702121909198458080912493605652386696401893139831149528819935484472851609916462824126226362907782937612865392465364019312029275934257746041783856838262080523832668567147810103696930464077534694133822204375637096344395159809238752883577119258142305900970316980903516885726238714707662813716552877678162380120280936060343687645621230019355219457774828590330652354732467290085489628690815259647421937187374516181319484009908661340584194377218443394259500083235912032995686505489036590798809306010258783042314678866615410868634377204867825370152273102127965624280427916965108988108337547757172732067545385628731122595504190852145383697697682346343780141653692136558727751800708062322606154458988578720024989201426561269211707296911331195410405786866410716056987360169457840874698211772031098589389040352291759795389644678807660249663855807101316646380018237314083556381015477382667913351713179502142004160835687423924616375220971010565741084401926022638646803159502535826476979680962320569342359647199391499227048776411784208996550163396564890594912430274121958692313302999723294865378330689672035245405965928794042661661289415691707539487625216668622212333141606452737542716747409404890476446425242831071606147178780575439994640711201362983371891329134013304919671354821549723609723518699156886334529252217305506492909413701232907104256346510434587569388882307202626881242221418464961983230743737091546923573483152775348314819206433367585743760098848881844289294613296803742463960844483653571019209679091584475241705439448104919673653991436245885255136040002533508971722671182670693318765759610117617408630918523637589436100390855584768321891550788216316186037346080579355326318483219275339827792010132438138949616372377464930824184878368016334655523963153082919032229397165214432292549561425771314926909558537596082537139531895660031462063909799408834378057819723648138957105036694960694059770866862214793331522637144891882177302880723299768732709204749777545010338306260100807390998595342593065912318866306228261957499309245465833652119426971618780439024760926068565574531488487022353358037296097810533822168274219648798503255014764164461220458643631282206933948188440227839116963461618551161206399823638384656392986431422841971997846903379773502540142760012267425313315962132683697459455927347650130970933043915179367240684273150506172318027415283186406009008714135484198058965810560943242890427544145449941799586880199918788907184113659145687320406089244886137555825636158349328907863876198613245437852090453422378537349335406462134394996223891447410544839655196935971229596432134460613146389226797186830237634071616479323334430315805428738993532171037857119688970712270675922193418165307357621461214650296256123921856679253946299428719525025154964039223022543336159330010397072862449635761021662987403792589821889310061230061933856801691654690073214130237668496254589399750474481486178015262680876631114668946166489937806411472164637291452448907100770071150247671939693345031842773771981519253467045953901205905975597184145730425512704449007188120076817313145690400403487433466488943419821664276015570363856532210569211550875821984851740100700029354076638484745637840164102578785039268650025631126512275898885126912378124875115397148081359869939823805312570104123160852456275938308278914725320986074289470253594351269935905664482350656278485637078124352391170366913281094564718939459502830066629607448961824580742837937999335055639514787473544517930995495937574593231184180026750730005550979482510291691789830644317533741355639442211228830731211212293076039275919311137517234830229679459833379616200409571881248756678547688923510156081828941726150023697576208879536307687964455494684107719293283703329896285190123231862235624874057754454360689990189609303724414657191795678728286180896481705479919322535508434064634519831129007047170717871991896589471443618204512476193902643829989595229221764956966460574864953580796486301964411185077193894893840858029468348132978256035222441789339121008198255059412421613015647626358770543587068934863000613331110075864716555876662639551854819784648093541510309264048260465907454679851502078542825262292032780749445456169132263694375742421706679139556630747385822438471068994415101253620798534182757408303965794708987037577406276146650880536770339426719278734808744579856613477415274511217367125026975351252827565265738540601437171757776788239617184383114873333514364171821650560933002456070576434114414421805099972592392891460047615029356782870292493105370549843049702095325204627960554369206492451322722912105493314023003193233896745731199522905253483288201967081822610720526607370676976162904330116349648390064474260588318787289895061587323372907538041789093870877145965895299420117395384736762891622656335617589944281235835034481211536329286653822467359395200122148110711740509083423652366234591564183007307858330654429210404429357920792771534508361148900244347250399118989564154712532993496820673781729541931602923344378076048957131239670898004816621938562216087853819399676381054634831079115941276105683919582295236713225351363062295063876722991960296220449867002799360109157920105519587524647303636942254146549825477605934184720998925880519629941406940510839001699582972454018630749698555345069982302697808807963211981662969665178183368808518208267387991995909169707134422819086594861822351411359642576271005784067039525413756815320997096255477868253616335471268782406238443262474439067245120162094696276239941106698643479836987823039150760071472502151021114280363111480896912691745980718018458010800360182780072842255345773368216543822422031472696420562497778186897129436413280313417275563119214315828306036498622268792702820682485751600313109696180304628678232100443997568484617799492381975609633815463563094830993046654494172171513681710213448627911087262967843285718628514488593851326191781690008463305946632209588152354081597103099017157453528741308595640179526031460286476731367616116521865578724577626287643228256710949991697054412733371337153107470431125045927425473983661411533449792292974092068228996963777590696090899789696406579067439715792829877929976052406426824884131009504082437009647180471512408670756513570549198040065341174378642217285890336689570985801293970536872722824016659984586286751045792813127734529648268752424317837959479483838986239727276072334017743057194455296587232048681725913333862894177620476979201192485609249200232791278452155223207305312803967155887113193076509301996794997204620950877435316128783429906850046393045395420583548286329943062701662674464139338879799366509453664661920708659536115033892793885899417710348149472909032751416662808125453652964468599828503661028530346255556082971144919765512562403669863352360433393990294995139463024146656088920766342013560831190264283351304015410766872438371042882712544114880453896968638324672075051525638526968298260609536190271901743238153204803734086932941097026749849116637953338672805971720688249368921628253967878061644255959839232355408173185070874398500430693983954621685812117851268075588214786514855133989696757699134700382149967302027054527669990350139930374931469940215772167855912053743046134387828166667319045841169300407851127335906687011580040412717435584599486997750418628413349527074166739070363878491142003861296415690769646237093177898313436393366818271444201002448365873418952296077488308361173787448536035739522041217694797427400411678458233547443964035909012593385566892725010109145706650724374202164596890453978780001790923557283663354891855529802488798664048084190587466553812273161066452449969702331777659936740036264684490052522573223487761150548073047786753974646847135849628289280320661532516822130425361045843983277307414969088873464886387607395061657338948329022730677115377592163345013674466145518696351952510677212660186488840812883208758854914782707200530917884584897022194156765999558251060530904754300932073701745176322410332876826325435422258246057507046213270467517022847787576736419468381916175434056735231043098918451056575824274752986066517888332113404421069032746729840693031262046666568456946683164744380093345379669950399633967939195108746876873527835001952695932127985066346043845259260724040078761236970485917093294375427195248121886500279871072293055252921378635248638854471536918547152826035753027126214541861900637032915258749323960681488845384116194006611617103577031569450175843195185984799154282185985942081067523779672793055026993818062236822152292963200542320306557571515603093220526112154117338939313198939447767745451018013371800372640314426626084324285529665521581947495600276756389513276454945702647400987064785437264587152413432162704846385050851249300130648618533214475586157194478374862364939777546166537731590545815304671128987264812414771453463051045047746230199749901774965995462840288118436575881895753635438707393534061190762510563980405940120042165095615854845576810819336287873160459075698404800040105005769108857412858783128633939057367857040205466982179232224189282736371289121207648850753970366006380865595883219833865616760112582171227231086661616012060493242468537312891603505298249528501541101960953892879286085375415163488114982459800467549955244685146283944525172720630383691695191284493474078514959906396339342561129290764614926825468132884716589735735312452320765714343473993417251938317873223117684873467322433407583747809790169394701701567323825686369129653382550975827017537803107724481251351277380358113500735239051223013409877504584946169202277049795792364283086632612755703589622752364334130483298136757835985067217149347326073574048399865061459202397366986634343659451712348872413239340046966270583157024701680078726840541528993074416307958663243033556474233130139881107891813093189456470843702186316624932061502172211218187753128758564366925161036949252442970760650954326682315315675739186201960340539472833564754295430579063418340425497837800035752069790350997246800447276650311945324274486704487690902531201670346362861471470016543894139661641293791827906625527032487417644220560673270681417012371841305887844009559150053846363763414060758522766194856922964789185899653747190072619144515409256921821993266439447549660067238308486660007245981034638547651026952871718760432050958521364035938178105270861948109739792257064015864714580086855978736676645497073563364778848700906492881023327849314847997276977826840035883234220421984060926165988212836478754399423254858716876694771803251798768389649283234188316828554759954143746367472228285953046953786161964286186064223342216613025037429995972797754142085095975719593302429865716228895103926271439660691434427188800494344212454072453685063836951310000390197812305146421261788159862610033539411068064151269714175113362196597492029243650314609559128733429774024065435500534460691612019088207947634240471853369467404671268359695574266080241529562963618317636860365738249848083049901372551758331966671334003836217579739494665601384483182865072405288045067738087584961489761789919516601557849930836289153584432083924135187676523031906436985888847658485460359964371879581870269102731644767825086458402621373786568394544144537288492874940726592953688995149886433135239377455323825460351909561006982656190679902773920815094769024731189909221826678418353617067861996481967902522833841466398885888119821050635332027680314411292958637947828950954480765754623431052439932492791388634866121255354579503931614046997408273246417417382189382969167734023887007384499627198996056783487735017941011026133074632428249695480758541920392576463652786014029753049730204935788119175293328496395104773222851516156249013179014800403361572547480934512417106657605509898447823682168000969066784656961728873176417002035399531225312426577558211804705806747616870031807456236032349642645307087238812175347353645407085893071103359339179773765661969880016074133441539940253694944676609147683169646883634490115804659020838986376626489056372663826798853498682683281670856250694636102198431542410024540825961686179189761222377134702243277065782258107178657660033334429820727780741227756223963352804852318735692058444029221348124885602140343227022212253105743938384706600554272782925576349456258021451618424984255044637048239035998007086118192784126179151975856382296111596246831338708291428424244489516600646622877742679303266234917448617958579190995222059800435286103825896380758381623296141339723187440679067648943425573881655456504905274511339556785734807009444382272134754887487353798763144978323022505372784432511150144492440209973221200629973688033093367705906969419339287036668534316986600820069071749414225069741466581835198110820697542842399225525564243488842767006730052633352766209573234617789550383770986215041858270141235805544847909000289338929973068738616356484371331398325363262761260070605761615938149636097034961068584166097142360850567285004479154151001445288490228800343482856435343312597079534328669132788109403392663027821417748167979375928207052687987459225622557694893982604356396017258521966105491536275512077740395611390516044724329669396370154658810655156112393936844288639760898584973196621948577238154751227487677125848205564557277215778347763826163507859830199235289766361180614073601246754461237050568690354410536331595421209501245256543498426466137066729521114969083948706986647348590142023727126474781443493716422288407323691305592066891726104857962635059358101164919142456721273550791338976350511821191157489640820281498124075882476873897510183054218066914582898934357144763901540263989230597529866084546367736784328885147772313962352197105682602530342776289399103742362013082899477763889435396083474451444807529332880575305075177919959927073351921894128464063658117878400810494269492114979305587328176987994567977904212637466845747987546937920606374043610742561188250577468686448226908763588223290302119985746016542253072036194449567730605481994098616120549298655179657859947624590164016659123497079557752982556695802605768670106281626642285724587325791581989753145396737842275558575621020166577119890463840696849737187413063055867653837882635780787599101777730752486052829192173411077977124139179402028877025596498252870047972806517090080481444815493109470089296606639239498474641422227225574225518709435065472782692306245109608226235437994132534180893882734768665809821989173240649904497662830443625492679521420468046658354057200190865065088625731810010841056251334878965967514332833862770180260778690955076901128211806941719071727355949108402294833764188320832325526283250171122892712716675986873753256312373297440279551939207404789814665361412086560107575380416439780062785452069860940193830992486945015811261026626645456640562225428459850638648214880392746684223753024357538802876628278815360252708963692991569087694497991256570853477106087685820273141388290394855213650978040927006696342242707648310881161476699444766603783318050279258823228278564306332816509894822034121259292357107470246559658667383898940683129872526089034676515545856140387835060759544749219824282799308240970482000338038432642857726147168430925577960028025542574254198552182295906818672196324513369597386654997626114318979095977503693989187393328509243590871096152729490434644354361648006826372885727320889221679063432804355035965155988417656367860724264120488043071005369360253617600670181766384172108522898031552604288558609085524219835007345254952134799825629465561105964164914451736440117398847567745774696717533847074644350929652050390692423391009784912825830505728170984015375844642128569455389045732076505783366513782479250698219851181261095458112523134209924621952061553330423412278124474291630380382470206360942444417493867828907259469365373719855095989867198400887055140864160113653414494586385780768176706931355830647384144364177303312313129282892711700943434602688296176311318656909498187418275740613516778763841077167278403952379144474764545481363278048967976133054982910091307095469534375766232434454076888078371360075953171550073002889570930770419636038055357564203552653833667188342067971203622958102044839058357550489436749690574597998819262948720974174204034850130862532551814411508988649642487534924242254353869195199237200276587277817679250398874048409078701573575289887814465682083450725428228821138118313981060683769319280576123747014935044362145613932207998087298149247112432554962468378426024963691086431200350387771335789794379314331546283954147279826124537612247021622098515836597134148469856819609715301777828123848317710065849778344642775999390975251886115775070707890890103770929797337036496470024768476448920231056561330307005503158526499234294909464522104064184147830099068848154290487988184074227186638687114571897319904475307926546586565366441502941546188486420499515268793542677104311446268160862362492460063679858599018614683321934036677775929449522964941131413587015877804827080870779729464005162190230765252000227562216477874260867092467079431961321321916599859475631975063498391830288792847968632577927593643875983153732491014972976234535928154603449222569137153957790950459253244958865940659363473941470945373511807844386110438177076812480434108500759202634375992647767513987186481149952573047255922392519009425291228314659839776108706449204221567357071971908635352664600925078081032266706039767860042985346307922890786871477689647758376130596471586905862697404458796767977994188588944879260535224635937531249406074275604512046164544933203035774336920129092640089477626809978492601656486105449094977471465143138179833159666834592801818269916819982270077490367866243187470927689920935015437068101390439358063599239351029405750599644236929178060298978055541185341231940895138656953038265629744657073905300321424952472806691144632433256644179897198218189166006555567469186466253953840010822369774994350693500352696967690694718613863726013755531865717578965741318674149098004502016306372717203718243634118286388621654991651952701314105107172859316719575716229569947842161360793529539625678546565562524787564845191146231821392687969082267967599166190544472119215234749965925535012089774250720374778684563193758801839821969879294998156846553829570942973418833571670920725108560980816683855703298394138811651813771476534605915671025238827805283509091894609930015108994831399071870963243623591281304291861758550302130965196574372837641613627503521747235095150936697932700988212681649027372572326824092090238864356063337471435532373529328854844000137882864016274236285728452977525922534050850756730584782387771181695226926393259641604384175058020888082049946324967423340444176427941445330500782803213985046900100611753779996986858672917242534596764043960183117100749554728028337136002819176180920455845010277509386537338168613811111561389601167019553293232586036672274844460535177987161417199114581046610157989858429443622224618592363794235865340686542965168141128969554381279414287258846102960800412100252866715605614267968131621803185026723658438528060762230243111471821115087158323877822791469616427812603381179277882133344496647667191885972005463140854428584409500859308043622074766405581256508857485799819045394812157182596207929961357625283741464135053182220435447930536781939810171944889915596332475288687823428424956502864833182938129400373607325046045243920867065809681161673105991028695694903953649934992746937400746354416442452592790359097333094381641894723960669999318875217819141720076544820730942758866611228303650857006509904475841011759014021031295729273563839328639151230388244652364381745257188785777674303221295281026200161930629730207142044787010459457063127773528810256837365846657486495829031649875135945698798920262237756159241775786639420831361133163879586291819328723881416373553614728819044258204733719919951540265785245638323651970913286075996227321301501996783804200088110323220064048237178624947014097022228450461489178382247328041782066584744162910878154872619435532375846353943545553679508653446956761343605240601639604389535648068997385953772586427699636994686346846550610890210841398648601160760625356365807870709831651962786619940301135880517791754154235166021637027320461323052166294707446347556545110518692329018674445437012785408492639401676635187713034889080731667047313525000694754109761793500525820247954307881483553141743865788064364222722234815970118652480726199847626520669978861762264892766190061126461199849974500036808759827856638423979173678043828134065301281619612128918334201522582373022145880859707771994660635375066470619323848758426299407371978433725854119607226254022165560528971892450912608560557229563080196757808650057422256206556199172968784935417747067645637578495657039762276406644933623018843812983772259237243036003442929702805481295355912974941764652567200820280238726124480707266296362939201240397781754346263334237334767844319648855637331211039455750535552619181055897829045664939231528870817653853741638425768036128341892630199637528155781057044831216217296679729054648474133201841098750776190231819787248555389804750880176982275794242220115247030209294722354907542647835194789776115268536245676010090239415979431925633572625771200820641738643884364872108844765067163446550369324186755209639962378148452116052206926688142206874218276270248633941780940247162560888116883977985523973499080314588855757291110549662719835705519423262985336518097426522191748941292298356000494262061895986946967205604517068383291595847764635350047459112933744840247297648798210220526276025687518376571132214662219210946391654214830327203300147724430761155038583377312600501254283345090910541417326437657556686804105320531167394024733512891807760663691543590017687350052390956787353274164142290549296689839950329909213907816679075813479560560557326545983047667247871445957642836063456670702221104085999284494322763799211735998349000858211582689319269184666205383314257898467347081641831158581594495163642852267502338815913065762164404918407205901413863734205735199329857268806502011555384018018190626622992617660777492730180530431518459602470458422132129048997307753463864113603820607880882899469910046381716640308874934355325834317588781540236880773254069303586085073796808949543875112500685557260462096076862275456980996220372272424218339854878218969679484610037378487305879600219222114450338698543401307848977035424540570823955879618633427275658819458610880717783963382048019413558062846519346007620258949122743260880271920835991872714782621562800267635560617019965086280174710018761592998237002285544892285197789999643549070072829242317957330021150903588934239876526015855330285317251554424592691900951073334824815428367054208934918727425178584515791695494264695301150313149339691456869637106618372868406727599321604495063938617134844326769305886986812396360146254947721747250274493609452261766480925612479962232964188971557750254697177282152313742686234632658044819439386007063923763725079899892687937156112707306171128137546122529867715213894923519488237080960299013546581033042830372425154596282851114914175441256519910728051304362088467227606088147312897683374978554573373764114313920484955464392986222547585513871481724528970624650410752803448226714575435436552779576964065888995487565254490403110523525355041010148391278825047822391635379193997368871455358527882464303525964495721693630790249176220384081715336306296986109923679935798773046054471549002314265927945130932299698560030607067015157409839671154240755913599106256474217993590268314319702457246778588686318691915847991828146306799822681034701644647364493777761021934591639063255473981949693759599217586788294677379522858092969226203939825703453443829691353121142159440113209661370748784150147008844899875210955954754376533773186892436739126868170090078386344251734243687091825882475467173418843610719769853388719010235671880831529487393294180408285532721894071136611236230066347991092760418370385481190268796585528492878932171780901060430022725918955191114239100864423996620150111388284030474840946164029423855938277024068412947033230251619461334755760785113070996280701599711845632265130756844739518784875474545466733932608125477427408449352219846044818361010717143052586747841402748737677984043798961212805734739319617008791208900511764143531778926501245346291824190167087164646097611536095492858030798343439021570026201118692821049558182655933547708311372577623641253648160289562229133824328326547380264426202804635507742713134636643544346082121943005659796693971250074327506252919617558870682632156505479681592448527223475628897769456681883535740901186525928890784571822081759093904085614485924432871544555164499076366851003618071423232899788721198530062233497107824179731424639796283360408076479484803283197909147377516211211637323150850030936328959976918662116845136367602927707035578930399169951033762407993304291465140603307777044296378947796358089834400322790812648578654093995691243828582684781449616206273699772872091612523540484670442448194023718103492512641657444232977621742793804240425025036195133774295804986665299413276649430369168850315249902296880159914881189641619866469930576624460511469221419731935409040625245603599720700098684841823071129421975570377687277088533307631796394174885708482622804062391493951369196934684868441934561658049133465397798955794000969084960048015267110006276934761203457019905598666782860483826061876482420686444919420369349881727463300271304481574571752450978256322684499221684215644766339049893712435971209601679216950729052282697492336043359478861380246679467733378315977834512489667584435819945358928371260811053702360882217209314407937148556325452683695259867708547567678257840004707093453812608193629347909666042055742927857604808931365207243358144903456568703449552546622470896834359890673287266284357442380643835990172553994837956820639443458449668833746001474106209261215717200382392030869623190567582705692841895418349762064326262797285212904253831610513587253419074691695051223847237177779168643400395058936615558525273616487578925342212682105539103845606006163533970113422282714008445062158938754925316347510597220495552339578789237446691567579104941149498579854050439998457490111780374808790525968440344701533754644812259473496710563956433492609445106216422639558445752966377142351119361550022560670701946745687453689350030621054039359102472242758978326751538255568569652773106302469349964839799960473947226741262299959068749723975176741122554430922672925539518846086081883379112315138374175253106396719212639536526360798347141697114844722692670543102529666028445272157412099768287909209522114275016057650067728719811266938646169849912230374711532345573000677660576605730623024268512673002539188721911870876816304537902144659285935264023598389077272137305760310960572205292066610581629253390566541161938340453592789958372609420147302768712421522342055479805360442298861977295918525477828054222607792833454199848934581830196930178639779114556013078194947731658028568523640914488624462279496646847149135927210333717695613449415236265601868634487484029913839115765717537951770467817240426538852306162700634415807881590319020569359695696962451068150331831242355394709743685156663124822597456042226826144959642719053640562929534773439457847261635518913422384858736576854729963448731936561407147058848866003315989325295006337791976191826302742042801742261364052667503504642404548199779283779099758494600164353885768878301727364501061744308661127139515715475537127054385407979097111094406740692258200533769735170147496560659070813601349815378072837707471341454353433621824618392313066194318205043687435079611368641365192978227000855898059977108650485464936303947575430284754233716969561469904248245487849607110466126084486021390492123942833444657188238728829852473925013079971742438380937246741456172386096247544070118696187635568353225924881549714317006871376761030186247555057654306613308919946608975080180760338613587084232817122641037434695980545861750479599024420209139598417685599190834822151794181039327710325618556282148462820932360313653531800799524452084534076444853030406727523792023646448379524696612779313713410895473658457042665898984435963756974267511126184458804483561897341211963963344843912393871327797149895613122935213600246492375664217525181382515485684652686624367261979643228716631871323022662899086710838535571130551148086180149158213741250131461990504047943696577038418767412285909719006602977245072546551469558565008145717969268284497085713128513775765157912380093530449043967316968171376427771655557551727636757408206620680657839392114652202246911584292659249676218076560271852910390414381998626229640274872183947750362304605645944128635297736079650891438252610547905474324678672366262546272186229076042077019048076149704972621217834652263484960697025193862749077935430148497138243943883310862410195677149605902135712609054988335039381941771365100790719152328157779815439107366636568656192907414564299696430018434875081913552435617891218119894663011490642171976949137926532467095834896211211712766359429753545075611554638167868792653409787839246573722814867855704254905828447103083282235231501600543724405936815123523399845997301868794985599420905701616843201176562390183484136481696119191558741396672802142186847700525290765138976173257558165467197441020517499903444171364602684205624228785871296104843372853710699221033690164083857459688665781216232884113140252358479670208163749169173641865113459248880612520175905265657087846051927332872456814417397062486869522750072639898056501387261927554414369222931986315201595364567318992048329736369088942409236794323524829559268942073841428492096436358696836203368063377619812869014273103417439285536926977504299433402609587895265368866782735188423585986156839273282696931019254454206540175763000025911245009172034305641567930361511749891953321591772878330253726568469989416770635978945907823549047953412025109796511369648445282096562088726406585033068829906825391778385159483239942959519541421969230654196498271845753657278132893296941551144968122963984295240473942283227492883285061425938749669910106962250091663883706953311225765148892564130930416157232186640177214808319164109656269356939918465369705066885489954064242412391719748762691294393325246741495096631905615398442907249477797219270736848326174976533194689571916053292935368041503007876309510405346973242043346081716759170462952289960838117578602806149373073215469608632947929549433578058642861406641419672465652883705603980023854501608474121807903996706042671488366528782787569701449729512725568716747098111686043290813889140485117044824734680534877602340477974011716289206597400737755778380739526377100494744473466089770495936617792601180008060430339330695144582369230390302389575689317912341559970183567432821841486778783038365738006757619067711173679171699661681360424259933337786490009438716541245412420623543116246483526960926511273970577383038144921567256159066057148026889742141304602346675109367760335907707871323154958727655911930890564351377626650324453983260256957984518622381551447861553248489214062885226499209443669773127353120344195950337762725586990082706654448580039175708514721151889216286434823877177265375448215665950721689947164578447118469447653909700275706913563372457698495226720759382162054879435219007310857980706371749398090672348421258009984046414852746963368935797731428606960069413826920513450682073316614500651017567699209873752647420364320933847818839980600808390786597346331071275994287538000671189426705632172037562692014749872241157967060594037674799310285905942504126523232966303893217574342431691236129110201610862561449225823376885442611999024732606628466277703994269590503939896111140151408492525744562149036341337958390503121257037466877853731249393335708787918013138147633672188448275705558022233678887669267715852417910142767332277618425839057184515882690276693163513123849714963470139184662309053510373316015415018688073164364394051852207543999690697180657025684980054275252812445021196605937069423973085280218373479846467394772477792563099470250014762302894654742295697528523303712467143296058679855000116444468807585875445457608673157527941119503494851255475341942076280222617183247564571892081425790253474005433877018523441102898374826345426818729143037407208715904763227807499073287345371283791782914662994292493494444229664221314962759007333422969181653478519647662072300466587900200309618385888686948474835073052506594670023895462897602953671133855696462341183755547896186990324386988593877536883233644210348233265140468434095472620126168816197090177555419440431830831880614335194329008365426030186918415058227587341641320903463573890819469757490668400881466460642193545385700002274779638567021737883371648336188095777636032843350420940420121734262187353618083748802364681647673474127219481591319367011219531597466234762756955733925990101253234056729717752989584348840943795711737647253752036573897500664899966856704649732750129070194754063244457599529616366042783286819077634580475856668232255864528868878685813464729332728676131503697660638642720285461582119366280242144894761192724146712719597177333242299737243001121547069311996572174922661925180054158609292007348315427313632571686423302174637977427939600846154110084811951517724948983123768381913266465489805898077169463295413519423190733071095569638592035230721558126620914874515575205413889987085204034439177955878456585511635678189928000592556483224016121174036078950324663858458971207937088661849844469306416245424534680298607309937908524088179812391802840792616210567671963068022749647085669935651487283960586520936879736749371173490704143420332939995819201125229578241137570131945323008918348408707997581375109939559677523569970173375345916394796652376292360611485718243481658727258394288130301481425625662967285191795702744942490542660176007216847895862004340821974562571062262590466874569254959679098696231727181179488224804488880496644141987837776792055161965668963827954832923784467859757124767745131180058899628651618244444649112215186121361300041358226067068721861164780956159233703031752136758764537770059769357695462827223569423071140512317476627003337758651709695888815860885880457443171014732312664832330188713234406949625157042691771779491543065234580089965850397601810274924434895256755246161843298888011256481520768094373419725065133038968688581822578121202640910727806655537014900474130021294810459099416578703057679169280464754244825882707181614146540977307458872860215438678059433419850232147862228790054285257350862777803028531355278326544699630194948059029472374108138744168492772239629240769220159120273986984083590359887009955303739929615037681135430805634519842521234425273329731961299594422975893933321745761031873468168304074002759597806057922507101775151578315989193612730487899044673932701604751922766812589007542862717823227335389925736566661953785434562373001786716777261232957289093522290159819447798349310640664263142764134553443883047942775713118942564951537378598268525237751788037879249867906925637295039355742296113534573419249719715256565822139458603493430731452076321556116836757704822720957468363020308628787618326594186438250509661949313472387241121669127096980115816555918452164429146982209417782944385125925474240237478706993218591850311703660405464326419322969614989794064390344417353328103135634628841505459811260502638716652041283792862099001449321512007413996622984125739048322681862677212691507600796944724164065447997873504627832994870755207635791483278833486733176732279109428690868035705776244692129765748388016724794199940395051606253296225937241559861735678062969910939829950781074507115407929504818467080376604768955461437260591778355626275199415131997719852536071953134159276516943288411913403471216652886829137402962186440185098563619261275463604683269936604062710591126406961596535982600780085191061900149356675644081566572010373480630218816571572103470748998344324149871686932123073018760050283116596142916824896338781004662181509184361952485030962742131306868246261263336653093249392295294184881466636255675136108402043016967921384738285625939036384644379131514986419523145797951440153926102552493178174835116865904717488917485387156457017880893964800495404686299846264114603120711776185623323493280383503357818579520439744732863315078218633845095827815591524293121033484780714753149000725175472385261825505213121927433224451161156346231494957477622112931622397131597211057828523076373352337240893930242461990725437746996828356185321501393758893816924247220499709058911049666644209247970840541463936251132213576650479290732231996851411634313928945415446755424336193021187205128098722316863449146383143114002902864668124881921873047567009097600737799445599225988113092435519663296099291903514034873132969877008693531568767120430797393164296995210686187433473621768270637067180075791504048436286059415884357627387111629340463796326788457041084087337248321039209756432530961787821287973560471839098182613373223606360508537143053251006792357976745785100248649513274657964159937544158857727004158414126735673930104904065141134934422036070085220599091239581391314086923469487394487898356677779597687205302014238115592596404272493148600627445519033298416956223733588166056034377731305941035013894860826734557459509626177860901404113166690660312902293574174959300996187247011406165896273361027274121736946107820248809149957030039423634064522932235403431986689111670083666811356272638341490614442920253515250328939452648586703065060051886237093095527066081274291486858387382100157345558094248623357527148303646658726783359285840180742823575028959560763015939513838201689008515863455569607655021368255089060610458304585271344714599439929575699631123627463137915158161547616051527589072539443735205080515973848100261476871882524016083866344713712724628460095296425686535608640273296793555226653651233957857376753556863495200400336879495622038254261124458748534271270117769706340618854331084908576624536111470844778682889918847073280157962501134585467830560223737654704095004843058054144900071763244627953466310116689949364643726064423444662985668395282467752822119826675639258500905515698382514792176440365267620182916420567844269498856865649255586032564130192378736091827031815297814102184986332333832559572003547467276980287040008718188829532616091601095786321440553175186551590017961892808409824618368181860051126753509836600108410828144827098057942752606495043222858291410244870946423649034026667642512543454637706444343119921013719915095592132915740212968438490539744951207315289375707957708909075497932920743780286621809356466418663559830081873277183349580259913739049991506575985769146108783491759213048457296695202316809783638377551590443222992805332380052192631941305533920292139243132255863184098218794054640942532769545869000162340779833367309984691416698192470649032485298469241952332074865019156883106547419186149156369557583198406568261889988536544707050038366630270233326327844943349864911499265066758915312213440681492791437374669484914729091196628661153692268377722961862723972718035648630138634767893138314707307407613145387569796559871369760446950198461588157171649190626874442720744542594403155486415405305894214086229564368332473584320203113032812172026263563164194008330454301643060562899875664668734620960446656713465042413692152794713589659261805055531762839342429571437402429243770361053982836785983738675685974715181005079386822415511155079705035770147680679472911659901566191410679963440103082739813506152177456048117850153831182472123453434998780454090597174386080893146273601120317147771108078225222214946486043853520079225081872726089149069408497036111320429064264438860938704246646524320355301633377156019900676135614651885143167485458415600524553483366681078346532572550627850156844523853806093739885369563437759311592181448668952481785347127149433053127629724498963289065994102794728125821936027696908994609085096609792513918794024583552629925343073915153220041233428937288348726693837892139405726556642244738673516406008986404194158717490301059969028794036553530960600511997890492904090356968990390798393441680745232261404265607336912177511345318979863281877466887974410626302480400844792120994979142045590988012376580751122092533956128441306639004670760777744154686695776020472285635041730387616345678836913492972233886116611736133278455677226131991772489962793322069860464348699842977465748924093322206284477247220217702782275557271546150931759371303109794831148011559806561394800207650159487019491429301768042364862948745927911077931225710829706606690308203194322785404454805921684947012893322261750788031401658813621807442533125468703564114087710315320963134276724145751806586004308265343450450254225308301644903775442010063883717986246944658319168027715853479539356646775475732355110775341986186776128695469033674030907616594848288424409863013761098736974400875155771501821171968690127420982162597308767645145390801891129081062084644131702120349266973058844391399147559673805192842163601415110143572524572450336719249164759704019617787134285630037424966937020864674540341656357005452177840889245533931910519502116916171326929337618023760242034401035832283350099636861947823379695521290880074899872300847131280585260200860105085648576352630618977889270710337594359372513120335536574510942680018114855061398374617884301292480945193602918473773197666856535606466156870382102549152905432999294169869985938374949758095007699209095107885912437005770645659197773351727601161426618221976604257191831859039398184390250010237596540098650059593084017763140308747356898659774827456463862053385953342110371433093342812433598086113805103341576534553717020316517730426160534918922400389508093107875056320485589268395655317916040485819423388427454705242526768467240882374195398316740007986668996053657258871163851202928567052352686465217215599859525597883220085234225256798850139616476207700342558886056553777340353872564936722921128442117802956806153081747665121595507577804893113831183115449298480470393764465516910140014212162119032917280912741429023413660324798191346613749043374579272019699347616464200167570437202864845969835156867773936547226342522517421194165957954325013331320671734635586707627686527538878243528682811404369994912420781009686510904255924666469561223392229153206040012904426638533333860918783948566220957189361505890859896103468257409671809370473226280143008256957431665614702943216824863058617781879411218500162882901572145887263680390655467206110209617475486055251555516413169841930083269987529304415456539528927141324906460906995783452977019952403255519458788449964564951983276618482419627518423977854668927462547103883232819996729730821084055905367965087871963335690363649401738845541232925903270140340953515750549058667827393569725264342237415489626320090130801780371325552032266201624486381122022953429095611622864558610734007230162672000080248973449527228412093686386192522855822336160804473098544958148090427855994407116412268609027634287292075183804495177101158878359979757052793716714802656960858600570255615687551341751700649315268165938042016533899300707354131263311109284091465708945747258709119484770040349480862914527693502506064240291191246397222919696559722705052314797256500108426990723824774954712287463290083773677007028457464425325071676720677274736227149521856310443758781751519099458166536548021272718944634648883397412702149315831404347289046009892017653651808791174510073884010195888414462972606519948474838063776423813250772114686031091308760143726756157633120589564317000449581531887845403075672939701918774826037155662370683174635373086540258557083973629867628326978250839119455264927013453267087480696958382464268669651606082432291748760819139819008189279315661113142758622747312632585128938546232133743421401811454635119474260011323580245984061345497559536320556052098952530383924767448034895743574245802339598171382570605486721687519239827731062559176142871175154242502348459887405010943614195914499008701664570149468854558306800347699511822719370307391896472011308114882646193618395257243337088726127487352088575731039867328586527507369562573206574356096564570409057212039790112134617192378032054933189047112774636826135731913571697009709413752725562390571689955382861304143863684193056679161701297511616146351213207919857916247411810641582291307280915316193726525679124126479705828863725128852755665706265508946371894367318306063973764912018502178176129278846082579647984393290151269726372600507049095525710984483515194142180307892058312878403201352168134592960998398893126944435219482561497758455657659953282210207614074171125010208646179213281970788083666597872316934023340605013205181564698895325861465045873339719354545367534897473934133830984093447655207198999512804179954798063132644302716505632003467285582789253827689712875571353089133289981354581963958338415452413654645522405366429045947169993959634618725853003690062612749978488809365222364029794230972303057898874770639450228220520782242331511567240655432186886947353282478192976704724053472151092064963023500989738081368599054241707267682834135168149408220860421540646564666970854069550341516757108169395586077973141498833512017827375905093022011566661883600879534274335514310994803074636610232495076956093159343346321492900640399996811776782924763198917121772416090791706397474581765986533403212131118620537004153082068535198644084126440050597072060022165741286413986744518239329814164065272544212519046610936827323107299019179583678476837128008709573602152521440751300589464066201100778412642901280582579347923909280950371356394475389023392202663641718856542931787824070185766904862650830063458616851710970625335852650025329259866278199613028738607106053602496771035135186152723317636668334729328890216585151042500515538402167243049521664467106366693339300760821253984903155415338197500089224124288288267577583179603636531118221021973418296471453040979590100320648191609154505940979389059044419809306637207187021468987561078862406683529153012363609324910045250374089889886656440918844349499759098962943259348863135635968433512806854854848908577273174291238979773277726364953925541451875548667628409501100840130358627764574762544299204675016999433173583213935961507312072499677224227859517560381909433101291095426145401909892521876171123521647960402145107581236649616642747014679529847508197589365366585084393079991447968519077133995408788335345617787011164526261483417295634779011969459316166132599647539811637296691025397844381486899429041937559209346300408103564452191976997297555941648117716012388933858614142375379865966969618435698529957016162059400985163276544158202221501875075913890479888615334379366926754547918796111316808894145250733434633889810144566335590501900871769421365390024682159923516847022136248294977582989877499656730809694357403867571152160596509192570871496759909322692918671389148891094233560473813190066609113318421761672626888565133013709644320710124966243222775778193334520374571432100997493972811031833591258730058551377070406446794938343593029793808678565054621145874390534167454623465066965086818985296826308954804334654337903920662274250876457621016042355621974963315577936538957802210455082046899536908718983685825034601733109954578812519237128946852912917882825588371681414194865932658132046289425315482512540106076702233971199057227311312450007410415809077187863142657718229837114319146152436539465348160517644652068653219255027211592716020233603077163276875303617992514724715342252674891149509396195620913003687702077998898509678165792604046451991832595169232136428085505304109450992692592287864407235547246420770934995392599965740295187720222089924605104316624324693482337372312971887877332052752310557328420271295168217821562349668778762882536502112437313234682311186208100412004648915145788449416079777161205494043924169844600302066678056776251539615851225097766484314573962063238751206496287958430696803812572012187025216288144619000895428711981703974865905334619365600488254084890808333627727517463293023055764413592914385790375996100595705122449869260589058544273432791415542947078932038592496966811925087436455461388293352986565459630372673209427710255546531335609209605846527928285069827813852051853758961611665793843296287497271245258168151567267203382495120247699417929538604103047960287322472520339212310265652753923586146910901509985899703048481873327560941960196889836123808247479358681849134660588216256617044875699368827113446371702127357105024936614883782869878633834611299722756250703644763522399278516073438905957418353661260620509655135711150755181369207051004231760355314946713611229650941554954025688725680685565893151379207373173327430073761380877627785885022320881649592101495061486178238087266310122123078509789490082671474910898773933746106979341920393736834877650181357809178840205955914068170245521812311392921251248500197367414249460734765410330572212763115349863384440176795013261264043462273847219344776615162836350458754386935997546121941638510215230588314962379827322646975842045740039387297266964601705938301119110340666399029812958368650696668678743849272680204389709473068065391452496261335327241455401734358618239906594469445547105961072628583354702341235762521458834458338009461463795267921991036889428322631095867749166990848112248610076753868154296267373968472913384771012440587141746289301479396245319093386214206201986633563990204826294786414027277863516062805086792055708107820586431906060413103996760000365039367907770503799510533836210371807488596425089552763923861038714121029985633809646885852366775455570657493641060238216854226267383191110646886664107809998197619045581961368839774667296126851812996784110177896272625240130452340008318059045511754903382368800115900911508014464766404169871818378592509854927495636591019320449815914694754701227050821067529841307958719691608630740803532660249007413202295496326921208047767970449866108278392908536103681963990125225552347880279365930435225880262587966067675829762117751437646160367651834033440202109207490138080309454528535784291715187047446862572722564862157704530735725868655013603181992784209489706314837167616601547988530543185886334388844853092278026016777549163756853804535843017339520407182364493189758121214890013203168516579272413332381537646171657600047333151769030363084305283749792937158090445584516857938943709827133976572829145801822286314210719293931421319325750276848920476759911633030893635856464537694216187104388190306316986641515335164392378991060936427522745563791285241069122491508915076573629658950457299578835625138518385098923323074330291267336758719903951093562515175517752409149432581484340145597825712381525873472421257981212509159992464689383605962982729664373803007723684192352619678224854175381512215343635569945928575835002961156019466907091968760224065066355722494232960819347731225649813498414756980352819567634117086712202808685841774962278364561451807564529139267591962257013632822932045228994763104591261252578267433854569233316337018288923185801111023112037133772820134954959390363107001610041759216228007454881418037401348723996486203445071894249101654702758940219707916289902891462095735008543735930317137895382665021296860357063447761944513395537502838362206483915451777185889248340227476391627547399069447880911993402888058632060126864552193663105432710613262480995890284195449516317865594601004225239414191007571303644310028411476561936835086247926355107038081130401299555093679007284906806789478699274907996840862593671749221541779381716535962800076960902785793256467644981699697323716863385094370250306067257535759744366454165402230709065912940506719302861539128362492204880045010815812298550847322406504159209299109322585438803211182617125104288824665315295784294200351548174629815219637977563120428691726345082541024946034769710075295734576689767928835895114427442046487951884774235658685658336666150011656356448474775583770849390876295631156948145873344236284939317912471823087967850103328688410061350279118995963640073874487791651420119966490411958040595366339347408698311901834604762672910875138905320938883398234850810823162218720114698368475970094751692751609353820933166472837123350415676190851433071888174629443703618913958597905395467975194813362583186117957943212977637126730133922968931873099889454798628165874881892150308907863375712546369602398728322981566842799811861622618843464837256720969629659466163438676103440697629789027424689443136533871220061804818169548918838439702138591733610136231205326662528721283000349509454493755538772576859093698302131458993194541137175870127821651705955691220072852388935685851073670870574005430704997252987073983921581679749998017245794713079675152871636286013838803340716718977397283842158372933443889610589917704428571546650377676797323578375941321990843891321153940691165918725835134766903602470374026776734953903947881803740469534804669218654118900253506975795813404510328060910022618717973696422169796341400226004229683197249787111161477586662942432372520755322693006763686886004393623071937035048211108651044849250210356514746066232346056177902795602061486089331832921714157645724919445404364906620550784343294443293383170831648112507175664335812527456446989923317563006928547126790898963874234942561884150329877753827932165461512464051025927098203042547279641196066198922353826865015795812949378406928997005439053129154512673932117959235852575787285749869107952255704574007909317390710967592082150190321662753839536694241465931004670509360011944580833432071438829285869010548925938409960006873334102372234199269596778466213433273719811142254865078119433871796372241207176192832955952551180095331061717363347703096611266857575359757847094291336421258142770962309716711324434203884562548175478054447370796055078943165499692265146804667576472750571635561162990756977633088929940187591881943333750729803022207646359492717626223916798403767578403278835233172745783209269364435539521169967867566660829647242264748147248372765186475224557996476373924555795427779433532051757172610052223725440129386578587012128724496165200445407288180289284727433394465846341219670279529175599197068448476951276502957011507789970350314292105690931180154528947667938041891933897687155194152310609462144436641192029590490535142042551865970919566452944192436852756023247590047566355049371953945357595311080536087055911067048666181067113000962529478156234498082433246003432796319497950898641884876759145371173659434266046545387495741717647996747839713089524466263126033994261392684794062242636366754228122032418177853795175002672501254310123245913986667085753619434712594372109157071726982884469048328291434818896283659426849299287951246725391937667421305426309536082543350895582258925413059621823396078838026649100936302422040655522049142943963765671910324399650851537224648273196763953594534021017323167624954066793865239222447835688151095601013505066761037316003562866239992726257830786463102803683793162174207731624961918923220434561292378740916709540350058808407851285983852395753366549693724695032996254488964135113824171114515505665309387367839000045293018666609935620755282225301551617444167963252336548523408340965520263402363730200910288848552362274514061365818999352171614767225002342458762326956347606673403862609869257380486519564865779971453642032639491722973290117825378981114487757838075893236666250252781028267545838716538256355880576524522294125972398739597972682806172062113353085416434839950670038631521324949044839942262358419757810175726358692062043375332302169943996244999190644629428070458011967864589653314772368015886155883585023736763375475185269828928354506068228521162177541331921649470822681256568176416938829238130169546859012485979569257843069781818256665220881826211640803540922694166358632510058574194535443507542448355252779649238804107880819754123788946323747090544786352955512854359303914219718550232611984610784146857511935779686512704321664928998638529552390386983755460755774535941760493701728725223661344198655509959097786226725282897647231848770813687448328038634630963092138282296668123254501904630679710028911931939755333333517747336519372790388158069950456818786064890363730155217340318817876450986028888524203421068093867436566201392646015606453741002422651374326330847520160787294316450883242701630059789608929642349892416144051844282127727509934787140983832470504817049679274593594520504971868206022424870129076107032950355309009104219723305862386785158585374473693043786086507223071682009992162409507694966172613381724620369032479783823502268875785384094433189515304585436182636922921553691912178678345462846849697169524473745135909470511463378765524549730337261119691012015017830646501731721787402753848241981855794654269506577929225468576524859542895542668704203563449211690019171890801735015540036272937346385386456756251786975720746919108183760360315742591375339740578740094630599060813283872446587703061319353264849207189855775518356693000577040734894803643096980826453926573282961660450505530724420000961328090045496007627597057291959586307612103287443069276809895951249039747028896107659192459690438740263094321178520181583647638214091002898595192629723257385144370080943531825287473688609485121213110403968914454126823092701137964479716571651503614982698087181018580036029972018719503604882222236725819707276207842403781528544801464455123580495460716317310454686447384576759942386228747155023414627918275776998379314767717601196131229895364429435394606243908719033695292067204906919041639029914939022915493265318092254455713281411823691228326864649595179125533151436305575491329550493607446656981479929380084298199349011572921752229099288219105969227088902930678766175007123670101852322805025654918611064609789880810925784247229628759777378322952698473861434365677542970589716375004930653908077789728701079209045057820204364391033802711395952425485912871711094426637964259539308979355426994551695539665451858763113084939518633080574106345683909895594484267129402959902649418371577261145618512681266329968386186644976298952427073114624295355775782847798314621848877977934364150373362862442142722051785927036184576381797644350583394381316486784684350690454413088141063777974217832850911381513165695605333186267663124284028873606000222898761989403391076480227380394583987391745735533658049087442605325256080296801979309640489903816595020771499046438193051298451929936754796237654618917870613905815900865559528393882170976231261343900242327628013823996434348475894115525439411883752924475916358161585281201412859964241677571908154847404586108857192507588746665341215738861078761734839439010454951557047239232247326284728139374558274302467894101821125151792533008535237951599023773094167080736359353218998769998573221545507443240372738247135933654339791672262211725314129576417321717333829695730950349958831775715584237222750788157914577119575152630251750142935376616897183590059893437831995088882628559702114772759993109636778808968934439974756306942850851139514460492521939440432659859958045745198845334158391966723462120059799282444846970473109921018533541080214641352732402384387334681294241405867261025282688477836291919663688998873701994804721764254611081229285636682086723295641639816374938683216639899385732169421997192409389693645169516319653716954756735961255248431586767461822229102719334855196025146843114365261505122104547422372028552776167663180285816491929589466500457458374580078243036133276868168605947910548910914574332621418749604017128526415435668476716332248756200158264581649712971569718424338425552713441743106648615052497148153673410949977651013310974667983197569160040223159870309555332764871103919391306161346557141372150893700306449164844929138948654855730446739138520090747169776619406598611808315782592468644141288520492272242250952144401241702629750625015265682603758649414617888680040349157727790675061004159002962370043422306587947459515634691018431865064344504562605621671850957456597200474525180666139761095911594221812072737258202653693153072552040683762783780310792655505167421075908299914553087036486016939741142622561695556826615482701245974593299653506007407303663763925227872854937114560549962493651806546500005617015223255405629806491215886322275493454615035768916513099464218440830124715091534897516440246483094168794163332800188639161480900412383555804093944487604526571732878204417236502636394876782150128578341273567068475630461203856576188589079063158030244636742365395871463110341216714012722873332211013965795483642438436425301537200984543227070788757705743293551676511523714535188849120358743216552671116266879337535118558127189715049119969223803182696897359712296795677138619174939880279547040859084536561457503010923906342305455962754645437714451779221343326966807959334659371560053828543989540479972445868153571366504305543311709726684388788618321055495980069707991409337805736398926294399741993664158765569861236400307704632336405032330797348498636915066453076176357107152355235220537825914952947801744092086042245101051758264811940408954563311108179914096116595579625398454716542970430865248719009193556250991566522548208990729628778400993977990696660273008205604052548428101451332656414642342118934962471604628769778234560978909948753347924815699980680160826930219672954463126948467242084698140473965689579425862843556203269151179973823201673059646849493271188777499398572538851243926830375514402420309667798111320758592807560554804998701046830478978808463754387848887799840334895419740510847312549094754428009296929494231383975149115393860572967586603280856686933206431699214193776739195489822869387523356764271217910044247329997283413310861407833494958438922199146211694494013400558343439695814480686515331593906460491636368855552979819333506100954888486910543535299800541724726767259668638126358074354773132392897443219755432039622598713712808875438279484261258995220076642725203897520736408129275747183900527883825362474860428882729091703573669509125770369718359851399994784103045974228563286946748999501223614042175051647788256298746161425899386758900926876724320430174247424795640469243839634034747027389935546962412368423233302190797189208904700512029927980501268996629433847235046638065998903082601104520868314834702533619840464053546164730298209487875724434545661172122849933326284238046320363591430383856756422511202851971455249311797824758134471204029033160077793458324403102889183793114000473326076759290158051119064598570419286672035717730115349760718820519711558516318068415846947773915178060039084914479450354625643744952435001354962739530566658350047306159720542067487060161326149996765984938119982007166375918329301708308802728892969100725976718700761213502395870618662110316781047340868211878821138230886365913135684333856337840391416921435832258008729014605176390744068157717243381886143132720880770776524008732256991120024837989483175023158067130487162056392254013384052198863105175928060298901574654061209619204465919763611743553810303306583258675711085270353936178947824714788674826329313771096841629559333311477340782828315137409687242751423663411409863807856919391917209790896775133541241224128946690950334255873393751749643974861851108049693954920657382537194910532511195872123398437682760884304972931480506943308703135763618592624393181486504859759473802013818478619222198475377307253026254596920181040165681244011798021525616839250039436192914309213579340197584638878792989633235069862678901291278739958422146328550246069616080002537376062125434442968083604926262802381146446655740204554446857339729198133392143916686551023723998561849063720025773819082753021855392747210311823947674378471133698770188040707877827255685573339295528043456737982877105805383295788895503564005140700912635357156602584181468163160816513389392612354255476624991325216573258033323525469863840281389465902883806835512418835538245546098758977135079754670907870648245118505929554162970945255396145381160834879682456694057687628883103224841375456689894857393892934626359355746552401664403773179520317843283085833713429307610553326324219837956874177496207749812529067642242166068242378018561139427876352985464253709379196559309637466750932494640533854302331301963788211812445490767015580998170508246403272357308507013954197705086431852391601955082270987696359015036175874086388075499244691120005528526662853028253192034058913775918833137406814716105338786766010923246399742356814656284169673919511261024754287806032131126066106644258978782243076534264477025003384109968428345421302416147617378252239613174952991998552598700365524571564263642749628030753712421145755203319416908701917655756764114678185653858901521320451202453804234644971901735351983174240590347571764076759264028904598030109170268653881127356767669447114778480433300953415432134143461298535443222877463252883409033303366434562696725778019378889794571998081955516292410617896413010576537582879010768807914738060292360344336864140113423874428548737132375444404211723821291379575733344883994372982465681576628715728430811327907085039582687363321044430422782730693183042608662362768974747709119211559255791410782998243465276486489203754531466833072584271676020465683506243007777434340918932290941730644826621003447169460710296231156656008097563824274655029601172576837264044569959042503567902174053262880565809760669941438521978391594150906938740871447414002538309899046769666471540772550673770213057718467895434855181234449007523655919272609655541092931845744439006246843159794423792566372409890712061223927585574321882455975761165305649090246090174638813038531618904176887708624306033131075784576251166333527551591946473998002122990159357430929081642751885686071051323537243984493189989659574438550266544974295320214381611491991547994758091966266915589204743212169190234968689750471396353703467731179115766081771839013954059212716415781839149225653378572115088927121091849366119114648284210330194813844350606397312405457876067422223162090784941179221253234259792256015837148352124587194894698779213426976908093558135105912305247789043064820018160958919164189981996747524682878076281329994714818062907845016383475599181565326233373613248473362278490089529396379206097890335980072297022672900388448848896267956960072791126829397248099311650508456457982382047669652229781127023128232900159273361302722991442130238695849020192151058331775569937307652722632024691922133527232050271572087331583314231441636337159266688193938857423781685068284287585874397807480972992586845069041330494858971406235210107637137535420770270356446122475935871617304587534030678533475851842491143432776033692149520210128444083796937458271426382402120416820239347245918361006893816760421998786348545132772881229338321389403001089841386895071810293311298463673081195553514144667850622035854155042614994600719493781156240629716120717625507149565554868958295391011914160931649569629824662598135466227083492720399259832702634074109214429398155954980231805314749814001614992553293356126469318687625660871306221573023326649211160187830199387320034060511311357208989187028928996310442285267078926316604093059674096839250210631953288920104242840584536757774530220901694111217787304067417219800026519922477143657666962877133339541074647266973710404227924530820374203923603436622772498992565494660937683269120482654441676325844458671516455944271728409466398511802347670934872547990718822958648815623083612214083121169572644991794091739239245285879873663469047183336969872918831356234194777060857776032951819865735621898666717259547372705282048013915959363689029763089011897059551196399071852816243822773461438143670605253099880858398179476849307051382362375592297251873247508719891456189555295787836011672238560566516968883516660195994409314906626541659221550797258227784347346069672463887578939959239512684545229203313488640778467693493734145755213375048439145273975270858089143525266932145631725046127713028616616353379365077744300966842327106104999241480138548524746188118722134248776776598222269160942689474268799228599873707815666411554530741476015273547893707130118198050037014315884028706984666113937704197656042151047751186809274572224245023620446553693163256725534181005525496994101905270992026637188982948322783342398569735574948330589236352224432782359832338376545196631825510750353571614892923183228152009138379927846622488536870589282955489209384088794927523681606314271229307941557956164735706493860441086176859450993908280342678717730168538485516509958455734607448730591407208026561585459005891344154638514791375736468824568125803177113781756900279417047452656896050882650700546600894916595800709676837158684464338687803750840917353668049699110613604586399160713896504256299897392583792622502396821223739466398029899658836619951487980154801616911690598211721016104311661798427036327196585052460632298314287276102952201161438806885847302683644945166157569377136381221061177788598310014116427437412606907293128084632502374914290377587456626688434148182140772401775201058077140317088826882591725496416469559879957587652119313309319284614555948984476757673918768464303153516811612290722155200771787101160800197921217034304347355875008766258078076089255694584067470433216419642223023865017849654313044173431576313524415828373780384652280449583639160536984808094476614078148998630379663178859794370907973081892896622671945493519375396479300596592042409359920064463392152925359859272991449839541067041834816712513234042888353455834592784620523473940769810313115291310376999461115118054362015779902281253217399408030309596914143488298412218852648056330844492713914987593556496312879923491815451918261951691670823861689510026151793383063108553136213300581619303049183813471963023454690514581265823983506035021030455992936856637834044077216444425360209611058043180387312084329924514776766419885602132739807894551311229842034114324777788372060549187372944842684926861212500494848479074894267486526763386823971158702301604660229263368295270045492183534227641473861836776381945177329688462735503497127723386912307494128692906220748280715124891609005848324403866608335225499800727911554255615821383472716535292826042923852678654947954108509696450374980435384880494814934390881538789550932589222708482103895424218752318804742363753273275733640145023412485049186438771969925731855918937881547406211764978319426895077418655971071724661398749611509261001052569357624412163922647575958133140453722523313529885484775320891216782587851039062734991499994675590933511597096150504749723790341080642123516310157996399898320912989222934946157319830473689978963386083165537711213964905382012656581381464066124590891778879935797557911485924405641857017946043376895212414745938344709867131142331366872049659890812317318495495518361642401628893202590949310033033304238203310672383179469347740070538345433910449460623025633375277152149918306413986119514749351118177157513453983449567540174752913955829128400377819408797437831517801010352405323603459354201799306417220767727718877741973942512272455096797758678105265963344664794210422143645057513709384177027111382672219005423263343972439329819199017960937368026538993905998421634078942617170624635270030081650985954223625083079603370917437866809493869833350434435408053001875413538572469868642590941672134978523060777349657499226328186064054321666283288150934478607839836904846201886823257454649656928122691159218472933773379467933759756243910831806211772592555386564544882696217238140621492550197988486780277905841424575340102996017077666068789947521127663124268885206123842662292524672679391563791234032477080393295911193583958921673073571214485273924765144934294823049957848076149393453684976793115038632434765358662001896741312853317187342088570839209109560214379588078999653596207326566750539801939113507035895956179233864851291984600512053686644266730322098517785754091240031803854672842145312411212445943146379925344603064913729095712861729562133480569840928502940719725354359286642738075308115080226596917811811651531809262814916623002983953390792513178062302897654932884169250423948289970195045796163522072709224812014847907493387247096913548214995929383605282408083509736543616311094445103985964956459840521347231460339151286624301019820492616914370302966179342838396106218645408985316718758840039057395175641797425503379821955293712595204649648810570664312147280483737783933429621062340936429347101131496400034909495722616751617669069398405591687644915313221099727464043364143806186398083708936994293941704847611626760928577933512590652512734270171863633392692941407587383911703955456003445764253918869840973498321273145018520422761418480267058669302141663010770471333895037439592990690593667160005782272694684270270790919233607529273893491621968986516830734186840935073261700239985217156673130932910654653846816758486681870479354190500712761668665707047154869889153472847071480234497084498886141678531732800314344939127664759208058059660290174560780145641059455994950868643420040222851057169126508331725320483098932352330262251218544168445899058885809826473189325766830321176366454039583896197434177541959901717021856943613318990132106699348526003812896117328793071107628687764204112186309966926884465125252625846526881407015512472848085720376970645471093089630839499945621583695721852793347236377052095392789745914777747603424037735854800980685875628659981712168997341761745130516192552310635117690343636290130778730983547683990110231412079207195504271371727075282732091697443328849612312730458965928024831903350898076990595998906356385087719811654473020468530637557053158339852682857141795535708485526991564235944803347013975827447877339291336294857023296383359901194621453388649309048804712762613544379232387425497020690785258441545840700905064821969658098493122342401856398183233606918936942915439889668673523455811795883663934353457032782593686551258970991813386328677925600208446644824316184444149183815564938822880665774931360396351512114748943261848317466971060888061421691518163414492505344286798532614572778509534267815205771392205619025118715801045370942036258576194348422114615005959664325433130005915339652746901220022419792714284188808531078535414589478366712832001549390848668728773135326862706040389504245044172691045115509404220976826778110849149562904454435310452799346798805732823103082371837171973075160451242285567598132730660705372542069090627961177136407975437802955270458930722633941903690841143979507678876889771275247971687701101031636406902754794509239130843192937012263802519960891429355490673234496212422744502696186282696783203102684760624456158718774898030423476288886298918791715813714797796025724994686074358611239323119741213560224044929983222765297070618598842167115986793425649492923842161204184911160744253099317829752846269879264093634356778121931974883209764118867097307405488456072047382321282698202254555254269186907603975987973541349512183838232662315488328633418846900967888886982151169146898640546191911962947546495109715111374940905553971130470097723834710711147778002267939597261669161886960458904988844005921298041481335535748030696119350726291429463828162008505983878709187349821725379470180873598248756215395617597478489451881861053882548322278176766724416884623832808442119259550244857319807052123281909953659384063055317640590642837729582722108917413481987090393514817169727619194893417371155895606637863736926486267953905035878654343201697198879094844298153689539924792762896423647222651252539615483575282468921375964752594490340608909028360934219325876920249170715864817125724564567284203232979879333789984332925060678262388546592779902624801292758500545980831722940320156189493542102255848025596303056606853551564355387003544022042245917974838007328150638891384331297528493134609960872739734551072393075596423730661885746189798271736553418029333275787473982262643514058228315520173747706609276136369069005211641710697954344429581664906942849484396228261063621170068670564147243049877990648383476697907450362425289330661542781441084426099491386938597714596410013801125002808172653052942736513826771062447961711004981050110602181415428852263918574124441453494059779160568707525126194074973588624391073369506042952778919549864308583643735219663160633897265650586145105013308679081660393038872639464312745775754317572350587074741407117264600596034965394013664213162047119505011665141945609441167379093109660104710864659852182534763825622432128929363040664754805182703855089422735178773240874517265524335079892699773794630190768198382259811220316174958602459906093551713966213390244195084603403912666571899549173573034191718648286645915319152114815453327366692188242027200322281699868416714142525516544702107740854400918701265384403765623222351482480318225080180821764003792005039673392491365213351989582852872958005029156737808689905358014921583913299285677182129435534034662811331137772611633038127674362299093365584108268599558468487679826909711826858932392633286469031578198579647993429047961597530225715259383091665107163991426323825466149515659906065659582435552496410142412442972449179766934672794760780537851952473602755296268561200732276271582653981993792175516976791549554429070550337313642204269843087186793626089228767659404708881088960621770601478435590474915436078300559788274764504516326973141828012332963866897298829763825795709409795415470874028891799637126893957371262561298048941892333490544884995520875247920750950453840066625532649665972731755959929838606467806221776131442642729623260688922564468928985482349847851349901033770139248597054588651241582616715046233641962846895485850141605520640144701175343264262719871154742015535792281981223302771892290525117795122175590796916392583715950871476124160182582860009038836311076690741577038938803353330618873934300463821910418259934831809080889900086625283860497521566043003791746686302112139960735978594666452577660070526196221424949833234781831274570219628043384422667499965062198410492180221970816396917927598041320659381195194335554202452675205445378362957011837692762514895632930722339779579503436086538650076797030995402865913843815862674090184286242071196962093589467500826346911101502959896199865303769771685224526143493114940921295427946411782987309203369119531230397860428171192798240512641552339174627866934643806706265599730516535591335994062773281228542495719387192828009521402201042972785844591445189958789384110071393420573169959647339264795784425265316999917763220728572513504044954031275278179612118826438846749460513755907551961971644357757902022553074786733044015298668159769956376369032150432617495604885316633807018243411957892222415519550538869162694438568404916110293363096223228632180565973128040259464268211627615563025448147607461437224160256390349843734489394275540339204248630327313800651849577452079108031153692692573908464990641310453598809233227555436420285088072346225378835747158356137044768926470333725601903783860032020061408549860795477965512551200089536363689910938968825837819710634473652000167914469114216484583924333676136503591396867654498739898987405735952444890585397228969087220314325415360358300655505517422452773476312169921834472168052448688558767690304806790007127166765381108723981740337306537386271136122499613564149156632548172283751289850300163005307686149215626822676580635248815018032047613792437929449240860257740607212545966882996488091221911994675272226077290160121373414024561565313598517432834806575760209477740343705882828210684512068052643584409460262837985581017541764883526415604481892249815174982980197327762000874421473139748402371947618159174242784920331629619352132815944027690076887018423510416138380744196336013816346480405798539056721776441432897067804271625115736992157895805525313280870677374800506577383914294804606890799365495344878919625253714890541638629252286384472862491186526380309929095440998912461429695959925793898659942740676178029613434718207119080309407583092135527777488445214630613123563323389507154001280698246719904436256994183210458300139031495058429857180308970776419632845999889643669881064117818380391381846149186492573423047623942909665075507298586558166930652241426475360320512267762114906590342809098019071967025521153859978702454255213122238750477743283419501714158276569686415764189556311493550647811209645379028058707322334424634327254663587459989484813085480770052232004269104401298626265020527485861412685061177140166016644514946200998198071341023733288853182447337558355406017644789029367528828656251117128938792363570147116881827624070788955948518170459431601070974598662021350783742943109908364362444184876523459249937304604653191064378751386235785130779346169161490699612075016557728073177961409179010975587223372187508679651107857106836094563919053381267410904071462528805358040678288872069927768099652643227425731339579553632680664788803169657840808476043192916389553813084515038237537039790857184867552673498864599218263150893127398107900544234847450782208949105552460272652216137848704950869442092083962194715997317913055979157403745891087745816428032132869034001867053886840279627042863142115779232742484925779705835702918247141611286650296005873099963915442720194208029256037067550859370496935682623249376755154237683034374665963156824848313214729421855130574334584584691628928260405515513266380614018362622712269893115441024444033562740643041083386237596141772615933927675961502441707507083010397193661212749449280646691306485245098690381721172687065870903343991488146724425500381653191158657395531328311386048206641801514208113330535682506419089096954322472133397428098389205497561878238810059015695294214025133078710896390651457754337274565887763427234935683449940711153701771350243974042368566856314482086465379495838854667732008254699112001420429643674330403387721885948211971580710419463708942497990961859799509058737497320928056430421638299160711491441361535807637434904790875062716809596271628490797842650838426027784746697031718548935818402485383423480508643657356306282217175846217655166976747668399091012382591005990395944787783658508378361593739716737476548462262234046446848742409515722395298888073985258590610148667843669491179381703548322897857040255509544802610803845899833206074821372031525172799149925747071465513176271770563886318623967792759031816018202948410597655356215999468213220075552893626524110247988632657019705152782618262553725747165389784471312875104780074265812026166262893908579517088043762651913634584397300350791457131478892016533519005072877281913032196796195857051980567270755890280744681324133288909527727238717129346752516791811439756015891411740867040344621476519915638163635836759302065486600868256454584574840371157869966205494841913698717661002398991368725772434926160074070138456391059900369242882521883294756808491391648194018816919791974302548343129229277513102322172923128140380956691575231638628212616353954918899660203086998111104576949049337271485877095546934309764037305625906024152820452092474014111966186426969878576457768792027248938917499824255896287265583333252891593861959906484443361249830765432372741069938039957488420168609587422895916955022754627041191456032257429292744953018840504367963435093373991156069418273313885880756079024997070547685188759553682386841972180413788372240261518904712066751848964762576650388562263949425360257708813759358405384674043669177355952734951895459556624656147215001161504475861761509663789388796273901546170781718618740381087561272459908160562283870600443503548933078609527943514592553786553502006854166239011848139777003701891396202400301674719422720278391587278900668130544224836766984543058903984342007772116703925025392612011457378629159187407235444471495456765380395663111712815364391947145878809917123780907687570143127084108030761089136321648330806618669580805947725660618154729806257164650359689206094809823983870199419411505201499223756000694671957618654683307349644100284110407352538150318923329239164532510386834909894001318574595665307067351857003298777299566474106258137677730808567252551700906882199755198245766900105373785938903355537076487946936498973878714167440171039497782045375675206425723517462643153545864797544533510582753737819347664766669277078586198183128128560241447153783885678099198483872081510198911311312629465143931630889158068315045173314987952400300160845452699769012007393468916596556465646200840935462735979818251545972738527544314162781789318121102147191306247250259288273619284076894304937801024895039921520723863235898417997919537891572770082257083593919987730649768984268865266853446812351871421943324490158375808775621935504926459039883662311519653161815072168330452301134948929697074572719644486567056069929606607640886318357218814772731075862958236239321258755195198724087384661386499716643301977677225063893008241192304107910182216942722218536768697415391804783230091857414959473306871073137075886904732872750678585014761753176901132969075814646560426184263084843713124210817141409009070872787508439446619377813774185558597096173985763018292214981000628997211438841479590845070170357926393735676957192726137200805797550591821025337733774793501848406002785899222458025629299465903060720818398840373879073971075189062166115884231420722861655067908190972082721863476266634324188186759277550833146659133722298858848208060173117944811392112758920312459929041658420379432419232357442269811231769462030157144848314427022919290926238205084790964264455594163571827679084420717092202541931772460274456175893496001479593400427329493184282848698858554318676164490461321112736353820534242053383538480135883345762247078582258108444456118707665479742283358305062824768976590049546114342883569874380503012715014619388082451098639931332281313678887430084475854253935813202402712767630251960770129555428535464811675060874348964618349198445195405165015768303413715598954658523804235330156581565181518057711864208797951348872660118760611834643527340670350932932474559524929932938293603460079809174607426347812815075388466439451703765123830630331290533594110884968191616350634974827779415184852688926652882727694805259467000478005468033920967691272371082559431674940567341906824159806641619825902429527772351920290978508960097332621837072919103006162260101256623448341021800908717062226212689676595622743158307335122128975810705831352618586063959783796698877417149214876091671425484600085154016277678347927520017110117196739711475272235703579779996120969328416843433028971369189293064931725093909798346751449430383257040271061411263532813250160241342820230814017266203146835722004001911975148599491853621172441616879357987402093540695426342774248954505445460281707909532241944437214226815141071233069149923921782529427852691564657415205037532245382356468140199838966591384505943719717261005729825646107488378879022468466231296820605176642926188565680869293930065559476638768313992053056526388067288577545767901496399551483971589023133177849169025513830813191726766428329655858919458443681976647978637860286951085657011785398807260681571068016867341002958577630442188535854124024854565802518527850925027730804498752079193582299766148690007438881691485272880076648433300741086793964077973704757539499723086682781363544034324697755330546367154169416243558445119587840671851597709826174395030210265879112913245008511132700322079918504505980512381399451319454650420044057138360762159899972421224169430990835926478304180626494818788796872633926218393040523387517443421747413522155912322961694086574652698354686559827917665641599856698117303059432336513907863826732170500024539163871499695146483023485212054366196214714665597926163176158755034111811012491656430673470130452963982742772799876682550824692772836806849043233634594710672375526766337946845931028166234701123701501214048484693831649833989340984703778354123586932354112334321435916627078181709792811523722446582223706802615853303157177573501172323225336608263325157369299424246756305943549209354867474438732926735867823075695288981899860639788156689179850841204934176079354476425466910950515352584080996288089180742800640063139788252187311861172849112356577653864675182727677476259590403963070298452027986617154355611028183985748847534593132306481759328553156769813092946031887704727407459030991166633671138971259238208569914599209843388218403898240043497679613964357202367050460668062318030719697237986050694720153755098071073634258402918265125950895182659098288522995451254404449083743967503743654553361382651384321847215979143543047027822332059824249382840149265423634115902678533361106599417707391151385109039739671404592194432409101470968152231790745971779187175908782222735058513322503250153347065020329010316209937964536977424619405593416970545885329546062502164589222675135237871063305766245819395897785677049011486191707895424297273550940425660602944046941906227659238565665017293721231977003551187458565374390351257425260828466305659241909701476383882035003423139700247340974570521635509187065350778853405310629960057351081345668909673349654158423731504279448729082503479344406277522703502138392483158382720918343235786124242169822751896859080081194135340059136534802531438490931822158055141338336887245582912631839544638946228843336564038637942957226951704071126406409807862121054875223554378727523609726377203987265058492300795396989926062429293675707080024662358041333990460446113640096199586541549880918351004441433871195685564680601855872585752695763280619432232381747703707309962688711371957867101799785503014612808931650453723783253039911182267805067902704264559221477016646454283179046728441271479736067296122715858217114644717745058998770043223788325902194629460666397054636401027160859925146862800006321274684796543274897903534202120129430778256898698703547768700084600780370252754865557226181456907007067798880382084954342661824137394627186401439256919882488210681966608909063157444338027426573536593057788001825664699747393662314605090558381753026511838593601312384951186721771225639459347473520919182743131321105896430518951487509429169227533201141455569540554965270750927905971405223737554164706918788582583182182509231923561634839882525550199715657739837980308191028924557324820942399411853451037793077011006031307416433577487221146947106445009053330441991289214555918229239059303940390812723455393059447579696353624490407475388322900033650050423197495585634928125192649535868898081152788980005969650701544100124346947692798716977009453466246364028680198643173985775029951718131783910653114028266138739263575110505544162450730445012479872948713597641657866342018454855280140387154202033869969068153106994839721219221928956755296548700936601916199933844731573936904242004364404358053214512889151643422844395561982853630280802954637256256062755797422602552980114456872251510959592186705224098288870268837127978707044633484857810737322364265798568838364216848155389296999660271468658807727943385237144629304899251288842969479397254466293756392942042390635897340519604482221035775877480005681858360742760646149199456662806168291349866327704896050889463030075908081149876366221738320768203681949736047403315343112112302030876822357158629133177679802846338770985555443673388413056848615758061673425727787807490408860613303872157290404963427778864261553454275689027739118234198228421147634000697756368943282068512070179500133376441874285612916760662900059723496982362175294757859326925141768967960957128015336961727395368139558045301391663752416979694825981796152293322439361454812557950210980262544067878184762357161089684963361574846614861792642596372184687965482887952117181548052494680866396956819573548646844566906475221562371472110282022113165810631544067773596264051325970584060123246460165174745642515628987736826396810719874032248866106502084947943365017725783861990763440869255986336967734255583640382514870247770993568708760298506090550465328761411983303790638995512922425536578281147065420289755389885501157739919634165867782743966050806694861958637161136349271282240836372069509583495347939889150901798756221464401853020166952519503375642374617324047597050610052394003360563001050762330577326756922893624850588145404099049778997603739198634575148318711836434011240904734606757741285785864637874582984751334653346327196371286663395839897182433989034826804903743831017282283967606055199083196931647763460547852605346433039724320874100888518031165693573330350225657063516714243343014861638441314635620513364453795572168159165235873767019115319929040849045382342196486901461965791019477586149391015804641620146672360405999036114469752506811768278162742452617110189611880684114721451120899653832590798603265346337269553853839072944714186873927379615976123394056524104547166435875971651235211125084687289404720359625745610486604420361015487297479836439553558082355475419601693104776875609661913712682766672233137067211637764769935157884824863536164857523709826092907231647034420786486853422224279286294721792266226515227891762202087800745480356243737427165130887695794894262533340315647541501992554845950168264165893111581154051978244709544527952818825623776899025032736852418101407784072415571035316478216951485711998716594402256816148892781608287325133265068301047660216667875726797110960080870038678734773378612604581663524910162532507767982192007473475593940757858266206758361890248562800354430673973164556362714333786761734600084492941254725912199383502952616497917291960649339300896822464396780788123032365537543061077076818236281161369051550216871080689097808319775910068342578671896473790129776089278856950195027465187820092116577800206502250108984614862539666228677616171839861260386949918700115743084847130844603550788569858155894685539340289671186255544422070498907370984060924750118219831813584446865430093895349063974213043130853783244147847569406391081371065898815580986819087900264188620468197646579085607844187868782815863774772371916040885398400708055129821143147334409913968997283935557508016838229573052577467244329204666973878377487811988927732411635544191496520486903774612843714657164547702514002612311318481438240155439737747227991784791215154735727702638129558404912419080734858530752253777215303498817297348536934581592049073500283924366014232247369678983617694685090523885854043547608642785138284812567846918255362174627186364147905258559139282629903037606114215106442275817975693219774505901714468870179765921631806729340016196858689779831368448200061776854439311665008148340537311370286307482511877168173907182531822980910805143921726912906620175822636121835927981358419072244668411008621165834526527871477483368605147402184313960685307968634213514033935394201949072520894609694373670327546335172217416515865230624915218185947783864296883668522157998506638327644071311203669665007823066784593427307778799729602851849460524254724694623482260849630724182714700856744256814561883274100131713070558969778815167485441182115175888495721408559589959631714542276660713075699505091967398127233092507570019418508191643492031115388219676367756460953616581551486137659679015463410841359690497640283529165514167556823141777074337605822242822007077838395997250870807331430133798987228926458288150327993906847569011655470852163032781200012591429674283395507716537382795807067732947162553747096909413529315003500661300612905431630339577328887839578633807799903480805137873885249213573232012383982598142460697486012299073328648887569200952005416459022267693630009161588956076986209619525123742605499714172680282977295357653852566886676480164507090922522875642406744412936535861786651801322786537994488259002727777215588145831055366252629136533816799670223339090909056083012209447615698792976916734235366392126833654373438008404920895257598243780164401013194840584109371532082744275140809911612062268392778994155054066078752292642667473904204149412551050220361314835298580419425399925632934198590668190505800037039711950184872842206813303869723881380250897703974468555202556689347334426455121413111273960555757717868792146046572888208372083443315683738248962115399145694360256854561685601715302964003783858707457556000654484269565159211192438171335131556985977862660476667173050220871274674831539489504790342642563579904651546496591892993872269158200138510663290103420368255562115731881010571224722674293853691108037679195759388279210215344646837334726374703432835460140622721900773437219147299930437950529602056330703362217105121498267699876747006589548765106546104232765720954588706297609169886592430654233393102735739764129257770501503595805522357336509592724289651633760148508682343492901400477389889379439625408834174818029737962900973132364603205261373443922896133495042317698897843964389715093472363802697133729579723661880133320055325751358130898462150620650726341932404632650010997877980007169626387831115839532343217809416247345118522793964833147729772642361692295690280112017379034471025071495591644739145035513408465155709877882363426229358945104698719383958846294837024215267677206689645635679312431744279966594626498746025499014899169995164801097006643379206828111332131880104170074376524747912709573899556265868171023517794622848943141003667332540862143039554358800561692013289500668026057185248620873218054371486689004753948820901891383111441114024888532795101140710762174851776847091951965844801423059849480297205408089191990394603571476976192110291675848543453633502083973333893798524365271359350362924452317744826275654065168984745311427017073409517962847076724747505837477912072301493119500924177577887332433027580374300353695412310808061168102284891702551557852280084825343929841689534283790444869047051697694039394630737829563370018372093150004031042352759292302924271572912000324046197459520043992000549592234069106823090990205576123477942332144392532000513143157330416280427829259563728314839081110751767181658701833665903417461165083200205818420304571253365304348169659265349558803297444681268773783506278414241062635631110583879742588355533332702549252281557898281560925814856133525777806598165148713186510622164359412737701397801181342948787429025461629319693734073874923560426146853598226429581994278623427401409318515774913043900837476243180666735870196533157281455535228060779087997655094232783443582518999048739699913167068547729385573822473836550184051928111667668274520774602941763777101997205052436660878132015540841722992299323427346860748982925370147053327109903634971926674755870153532957391585306034589655161140344348855015013824444769423418516362010566807916443254977476907096382130419599031757769734536398247607757790901281582884521309144043533046208648240130282488336585621915662918299530143033412813711430428679709765144792985066898675962305210120641463340833621589014378204411410246574083110053831811578735882003402883122436449788701501899323371304491941277317534516705361534144450910490661006557054680471078691474827055863244305849898089589844952916684525970643135977005750992561136189226214401623356598988775322259937731086380990633491781377702219206753422191556052366335803326865390050083781204493578763207147647567686706470575811158385721300456531663737214435937111441306709269617564224631237089420953283601525748402565562283646063635898736648696162384336643908265784926054168390446168630259853612343394571333334457965192189723064696269993519192626444646545590730653340479027899643474109597196558269871930257912536239121434493771183022726255701456750241086866140539987866690842495745653541541126713458356227530284820050883893784259055933324741817250889797197979439551380422886061743888566688914339804414433260195211233360302546432266869657388293489975335133786526289955901335164787454126029618851664946927471793070620130044410378887846054049664294198187036277853960125043635136405133139424765488745257176993416937609988209711868826301431627592874899176817081415236837003113347474484977943207643520672092519798225345507926898972070576513053392162863487053461818662897899278123731073339350056565197456500284828446991243171225488073741783645883985327755252829485774649126632419985857377724418067340749039816309801119000261437544526451253200802204979505183325407785145854877773802706143630370467419036279574786510203837502487577879013173216599138504132658488038509124729190175472883901117654729602060242661072127164280099501297365723829144945321088661204004165156521298506450348006978599121399556069429933170256589096229431747259510393244416352994349252734917915500054896979134745560212889339684840268806802695784228185788481428771900450878147692595671861475973326189306812307095900490865042540454896623748804962179119225549377935283335837969283536212856929185236485878711978193397581880673656571480880848254192005927723611106949622736654080365880637651328861636648697381166725750428166515280538936098989706814385508962070267729269736537789151219694354942331179180807223159470674955462826429948984601637274474354354666420595403188220283432057343034004458484293216712608588386461146463316305560172870161920698794136385567940609599672950366898546818346937636380770888660281482035611588423280891774859399307957306593858018848724616183854424647070906081170348126018877689843186190787680062884692584174555985602753112173498697489986962900784855946427896804321099124785998469840099875609771698811842048449489294894154094405410379943979127070170857404366947078277843626163803226273662692064733350414554487056097155565958898285555596434121646701790837054213576880903074840650001172801603649935305893680016825866606651997425013713169842810561468523562297864337655495045915780248699012355828069163021086362288249106774450189615052162216148326640847704140632640134805378051841879103636622332787521526010452866324953137504979198044795231983672979379885772437365294756843548260943754753955514171198435981637397992534886536758592629613133603741000338452188760507486612663454115957688438783565762245465334800085054779470190690410467491852801437166694270986683936348982656406498902035875721631556759983944828569622388880690771159797765630309437519708530549887613037797764298529033121644664423975813304821055742357140091473461917062319952098839559530430447443474592090568114053681496397969946433501329995660746572453312401569386184208597322164040043444373998248640179561275035880867685155765208284125128001695287661461403426882892473234188122413256069470684926195226967370172070318728419070606171082444444968177504727326519711055334252525724359198199017337231302089909618571363072411129518112036798539980715095205056233200106151620825960499120317165006220114038486233250950374178705612433066057055871480372178747628842037464965731251865886192416807626093633365932793929958357361979236976094733527237779980121904261844992801305817744478584853232682834582744025084970093074198310138801469292229433582472843580456412909679825361097210764060887593936261880318291489552821140533540381951395194713498928406695958472012570727123325442617475873394595803469802207429555646581718415629183123643902465102253033874222105018313683541969001805823120333345154644213221749370001337337155418582711079355326617379775883488969579925865539288699940385151338724733690858344400128356098849205300233431682300601448391668778894666260067709769918467145592698904546033993689692665188684359117947367861188312806907368208629891988017818811522145347580868788049056663894762677938699102397083100260472023067149981632399967463572583287463267514925737885144213633106093387788957613049317407118830399484820640272627902230594079905385772370821130730872322573850581876199254464888569592540558329972704166405842068074503939743867292489495425311353071791829998151373740606294739797103101127441421301368299618955613226110787830085006423769406958039793922334552464182296321367948151920895000408940299890977865689824457420913740060769129250187763755296596642985350941146993861366478061038038670882029885929836875917059694697430173035544700269865444741170459898800829215643523198278921904220955373932241466128068020358774932714677421967443488457358135510382552477863626973307514891116677811744673506141667616394499089125389080209130838155262054138903308524955277393915084510682811891368896725158431604029833881370982062678763311972964770015467422825618569723872293513458338234957712566421105428157638648613525183468570465557383053443986634387103221018340296662664550505990845536214237838652373466073894841230666497300750927810852723390705746900357252113687649652226651029736356543704449496181518182864229282200297570741092547950691263458479882542913444115736018571847574938328499756356617783877745078382375264703369924182097495592617224374423927121646126048129376922032600816272215773238314516034880399424799498246284443253227186960072361055036245550115936217124384805690637015336179224633897235525018843322061614797930320400601897712023094328388127411456541938400587806388322798615221191819805199600503452642369978975764985607496458048628878866997381346300378522777032646632941106664317056419872557264220325279241930915455634326059818595713901982223761717994275622702899348521774409016846964084158104999690379789785347598828993966918680621406272847360395404766369789322555774730534381924649291616860682000413197501601991015035136500109362795246160976129636326034705241108786558909329977314927888220816957766221357861217371360011742081865292376002896456587085914743281336426272273831358292117563623991184539945165914770334039190022062537889707779844687809810004682407072580207514338379297035964263891058290240642109648864580016286122516932682596920709181251770752714557135034232954639562552013212211091434480131501316219875380881545490049955554166702165075752400930348344117515914537081257789436211019035794366625266417403255460856847633252737853412912909723381302084381388541769998704427592179615292996498448540434165017273271639022329563234074379128208872942625343691396054391025581543343197041089763683232499108831795885607249030847559383122587563697537153389817481140637885992626653214270749250590314000180882328217160522114569939528427254250810873132634550777108488833271824371144095887298538651635371896748274792878211646587134921482034544068999029653051950894776210854711026499751293828557961681899911399350128633680925458740969740289951699350665104050417089889176059071891231080282049080979343391513992147116041988546323589790419235903806249728410462969069303841632717433294052887136405016245054727397222733478161964652580821556653352734315821995046947009098113968830642952625038238562569022679738918604794664739388154258510285208991933699507986423737043282563887315256442484779825211835869445108487842732885973712320831769592254521119194991274661137066572963380568695554767722623583632961943700791964743622112630087462272921418118537883977623980988829438464746548001700969912912149483321066984091150320811632885917223890321321874024840292899460045226256931876638479846571628572540044994505146192622942166219326861029573498160966665508244671098403661184145070472399441407462682583244100032772924050371891358886414380857290956641359281442584028534445141619136201563983679719722196206537047417605292707405937260852169192052437000435562028241274956498115494340099308008365860731239274729540532117514916843896401375322050292312051906068141031852213027228929482290176267502057563079012127420683350141624707895964187502171768790257088797321639270322676720060866797396705242808254069092267274489314438594041783686323415835906251162720266858530789454325059301933201876754750387856956838951418702254819699822359837814674394490262244404281389556375920848947850486411669958968044838239632566382206008164180292504249176581960682913375528127022297734415034365064556662711736839133583894562237369582204994327433658436656458393745006903134174564530131312220874670373795106297661381191330931868351215830560739232129707456664604923340956406858480632335118758891389776071905227673267269875453819208124200572827809959038279825579590935888357943548929597692403503790637487895585724885778476610077429337449311854624714721652008180824481590580390743651400243580983589398085773360148286647029902641439422224897594135815154831814502800953632787700033218745562881857525656944655139588960653647086661744963771464156874439410415312597642069696776509398795773333398285962750647165436513259594383285126507844498384686109417451196956741089045189995305918439026320431491338853824086697234978280973232764957083374928152187305004114379033199434692610035422603047031090954260883909956180798016931368903307352410728466658609204391054401752159533117429693656547769234895358351426862986903473978174127405186805302648619524605289888310005572899965209675222729938979230336391067811767321418819083114474672643148080471161461601450274045908480738350672456317536258663834907896591457256426552523877184002924151611588440769003742689249320599707424619491519903592579639131420669033290219353705211714910958647156547108707647821817968696161788557491378855390710711175057098981704315097137954923785673615154109668204017360187292354696439059650239362710620721139710539871661339312799679409027968462894500588739961157231019779621534429458650780975770799302184565621018253498299705468774956812096210371567483394337886373829527355952662198275938583830151560434308058226690985030494141799141002701774433435822065219131244165249366991917623325476306892549004443569771912011163018397074868595141016874464472216611868651663771674504942753831422990350800030769702656481414397489857788668801755478515966594537666452191706982383904380690717266043625264286614201487292781474308597113414189661367384904995499172711002029006206228933197225561715557214662314097191172798248575480506065116730592507269929350345846526739949290774936467343171108551505715255506307107307856550746860267131268890407415060624355949160429642412311775642507994207210844868145272418379740344617349729952080726822890133214850067936810913341711784271230937217847955338774075879799663959027818324437255055091302091240613186757466811025473461867238786182910736831967050558312794685395972429174885271994912870875447869405870210216650755943766068178748847972654475416155207521083930759597270330709492564659727785651927822877289317067041920420906173259387522360406856495799113304241013962534446526472219230204279598720556394090193661927966240919402548065166236487657237085540322493601326587753553686490647036850772053142765356051643429392803051930709812104697341546114934858296532426459107257249690567331601993616924271829358983055542370796641453414379120745255502813810120643657389772907209229261045798646030697444749912443195464850892016078944744855387399391025578650880168966177173463126028160396638806306789279468880146687372961806738880149091170791729938762830693983371787326229940109898858363087652613265988240653142345945376087193254969447389985196672841479640684375233132935724138008199976179555435894040300186249776379481768551923477418435521156523891028698193677029071346251685061760645684281396978215156815798845429286878616520460896073485060167146278214794547882652104416276673521325982605203557179865745267442909763504561538470601944988038652712926399576096096407711475545964632886338849579600028974864972984914079988107322922310507438409636216369971894650729132402855532901615089067976206887974497263362827718314102698093622311756983557464599376834489401318874524326199588996269287093371162542362818878289996532615914476390909558255980594552548378493908381299376115428694011366303868359421565683476761740068572133585271491313550285725082167749254964644976128069644895423877310037504521777483713943156957020939053620568080223527655820061021630463665259622965449528009820835037754898014463934075176101960197130399711159278523065456722963765758630835741049972979425311520141843348971092951154993016975304541881730269229628180314876492042846913928940356405855589607433792052938355561511960210973416492793409228095880387394088518127654608360202428279027589348284811434691509296352667591772223398829747799373834576284955883325085242193285478931296994357880244936644243987741335034176433449108674909470187978194013744827989515711757953031299122673178125590781229136515799634899129978761502734695751089987326828370840547630258659962598256002603831882521094792246716671121746859976330008521084613333453636316786328524060294680565108184686377674757631366779791699756307891697875853434592159498470523019535852221318627582849428635619649091322779397812861033202167029281197661972874480114376808695145630603136613853478038647755493100665790130525059181882901695055835451117626485215558175997329701176737654534345456088971726364461512693491251909476044741805465578197921723756903339193874984554208176499679933043932192524623780576561968071304064432885859690759916338304268598884110854150018644639979019984532110737918947222190729716880190496473455343676665540876413633089297131971348792501167248201946111981646130277417555875698152425388984167048259508873694637195753155612524668619006986370226844074460301804772282063741307095711459954282276985707322259599534256409690111399258336684400131441557701048208686840136514225541158214221179443521903136248475113035108735701178606955133321741337681978856393907286502451746533827027446696154458594995509962855981157444754430144512849921585325916528173536576216546836250822277470894139151162201521684580083806160958620181608020091065788903333378191161066062546271779238791730048985327384918912671529806645836248502350569389770699275361190402398867454841503327775914941020754497387687278830028974281449070588787746288982161731579794235907013630763536725196535374991435473045742803461577500213090392551280503494940876833026641697978861905314966815742202066242333411410016521718310000778796032563614013278091704813787208976402334260936835747047078002626946915289898103983504248802997129412521938986643822426756372355806105703835949334906488014350291615844831387379210577659016321736195064635425163957524433845667388254804888332126072146799513685401669385578989182258537813121208531986407532215181939741221272467273812341075397973358457230821122200888815794931192514170366879768669076823071917477329499579290304939872502141655484824419777189989117400733578776770558543442762979334596211277705659098737012726591242941534551472853662723205495865162993446216159689896907408862948351756187117324665768587274009624867984576236242876394092407526176102405611602126703331483068897514224286226144755326985004152650100283407377460205155577043848875303717381756935194512538904826165334606177178057590341927566288041409212584069377977941684449419919578666259809283549624191853324415743927493377226686403594970871700776880534713909699386988921051336781274887439118386817905598447234782510162371606661261696219148664819640304522591802042949575658534633229785562391697447961604170991251457691840582048744909775377885224997415424037072200606789935894890996193363307040293045064523134837212355028313488722062411068377277842341190794489808294281485326349219077701453137664938300644544524068364067589122929439550529546665077724562866515525388617159040310987346847933232892476396180863688236328371684075283420535036199623343268983549056923302522182288506193127177357930594325391162377610255089978416472791328630070287831562791924924291207646162387454619221451768793762885933030140061386796140067155709927998259159489630560225143810286866416575357738374042510161196694287474968372162995761683508296459152590648078927898465749200120479407522089489043017990028151249064332586995274034446978063167896216759005728447804915991776595661933578452931430917268094001507009928609900583404335774629658807719864626093021245049922704557134485560714552228100563210003034014159898557032864386633540550170370253835446566668564340452522627956520371631422937063444174268300781203013178828814633854267711537584615022455442850238370144211393337164565581357727219576784963449755309804245695910741940120555285309085897006675423462818820271559450571289692771765177825162334830363062138069061500417878093334934855745422466966037552723008514508418745856891191614753592674356259940869963023849235140570878658522116430305134875696628537358025058762907794336356789219345960477678104816604440680661972721730416223735217410849368443446506097619997461706295455532183513409984728785433065818915075761822986334962591993590536051219547334702986282966239080029854367782685171318873143874133825456599125352136288018614499271596197549778603396577350785493540977488637589282906185187170925489626522955992148564524909217663748983322539012055001084216659435838609972922873834600105286838972658451980240451262878262261783688203310480205366522502832769704282266551126995145918473172129472880129713897367167167320229026337534362300240219843453091217698207564554873558714952925232953057523166673281049460160636300949106849902760860943014968904955539716071089069478396584980363015359828637511390790426664151136915633020438240508544016083274443656057866621483532552223492124192446788307864776150507374569729217091176316906589443526659787398607777263362167029161501214884605090164959414367495534746788009979404368157687734628694063847435864734034073052716277858797143104803524696982824359917497567030426590912427790210355049026495450127133954696727423469888608788464500847045978247108022329647913048774155891982306889124263001835749840764794362132074961127887572330056408167734930316750685276816083516712978582143175821518756124962616672235643996340141558885690563709458033495296772726891029066411467128231467325044922281436790512818423969345240523343578400376533892328619863091721261427538420509363736616328834832048650169693927992255236486191462812230762698485750760163253780829025776465976611367071941262842872243203426387622371400347278528293811201632349993870482408160342958197382478303331254958796554517767718922988810034687177546172221842936542127213135994511138910552905240955268164286779766320719000419622106343409423214597364145461778392032362865090840166395638176088666710834939962923352607891664806460792513104439586852241425533600337285493784806865375870881864338995254530772034470520614993976832071774003812804205080958797345305665424212499543779655992070118023201057496302317477584095715172445120769547393309785110770139059370639309701895443295534787771667853057334303988586706609250173012158379358395487065114316089539085418971734344600981723625170834230718555248596061315766715982046189926557384699675096353924471826646293184610783518185158431721418698358888723822892940088270755532475901642733941963142180058554745339575922169218127964535337160756794711824908723059127311215711706506920036808030088106454203986469522124439638346004106803538761400497843695290843305227524540254969567573312382052372431627366266402466248113985907699467518271935396484976027690000080267080824750927021318819424540800064990562082962660828270490070273319984858643084000654574205206014230465424697755034574193046486317575776241729442066920925405477301795492197899641584922100477447425713059995977747879211748314625956791301450420381572225533155503481594424438598825749749596759750593742408737864204863033920954465236642666163726195636601633558324102928940120712071358593252169278788904134101238197781061980090247225582228937938823751878184711317458325677937552921484083525647228853358559652588502128929207170460164729032233866664084612869972655677441470171525229008195040466915459031730526510123824398077382338412431823412939411310243070313997913157466378117587668211634298109951758690434414286590118849041619570842967562433921628988871927899791702841463079154426385426806608517665226347382494255065832103952253785698950563258948310818817385217513714121606082906783743338484130283871262508523315994117648019013292359507548229480410995730105845260565979645536840338632325819662457801944090394136486425383961270230080616413550210804144532697929748033039192167890139227328430056278132883533621158341969918226301960097837315741730182506015624449074711809707785799255871600483798368476986996436549137567421568396358069898709482674279229440903389998815415611483808313065655016149957402961008755429175210479181846530857070411633992865514940001792867520181135198620769655225409622153305028643960032336892471330487713948433226775732019273710822263186998389506654657608448920339149495226732779553424183747288330746081177364754718502435650509532920302091568614071083256260083125910828607062752491563763774930865743757806894851370691954107963632957047002667686221578171207095047036636482199447469187659413297627355360973350112635436307080357709367832653947116811160502476764053409372758908933646891382785271897712502555230957923016404586115842354256409395128405423992298155862336069107413215789715117439189553158636203470504516275263338141947767764175319100628802390601636820940924711490378087260945879243953962426964534933034573866944397106434515201527008351996303043204592932345483978692012366116684583132945064043860454375406388261981255628002256802028698129835315885334665853181432442775064123433665601578174376261783091844541411482865522588213216318946311690757484362155594788277669863294840911620988560857643269532548684409799229182722572406943428645519660704073145156952845293020770006904013510099140437037675585722085911409908475489647388387425986661061545241286479941014168860522903042554535191156026821500191998160667983309120652671895203085224974604403968478714055519779473239094955986689369763337340259769431140645281776046089436221893458484013435352265710948699471713093900922000838412629342263539183824669177993227271915191257718726020036683343936845618385336395836284628302609809838620188285596419858977689916849264235057733663872183637460089402897617859580805968257712121327386218184829131357055278804359987874915067256748454871590246162371236411167835278310939812927409997714258672091839264494896299805502292006555484064531996972573171421848172220389397179380779456066731527420242559160916992110436760640382345574930228121727533773636070385880119551359590507991697996086250170737086274428687367188839077295271514182584584628932836710104059543180405837358883783764949156461442181580426319530874805202842464938085116403799764372108362084419067339624235241795820641540617864663307811950510261438378178892074726613944607387634010223510537759963991766920034454956585055517688805919576226947502238768878276495692618629770874655319850209400370910049421213403239969651809449907211180413820055117470682068029176282104385354388636523231141808358537707278630946868033443319964012935917665209348818023762176140103094673390328215411911789960492054538831309769937850691956982810790628039935299695400274540060476644798457072576438317789800340674860856429513763597790433080674573143590367247579274553467997526467517146502604705727489638944448330329378781628919663247095628504689497607081688417801949014078619422332590200407511038673405594045391366492589105524765870826143217061489386167762437022136710865653485303661194214657810836196745006956608047485350326148372120467381477766195371542420715006589277790656413913666628016713852810541148768974577965373124576956918630434521879295247420466821288763422846074480547565005990690589624151064560767049939187818397185734979844638868641400256195478321745016312747761690683789623304408319652151360264233820210193186029776597837484258081419860694215874460312589398356200061358001407120148093564714326642387682281688572382894579188274548511938849874817688347564751688025365467999270648055179008263280337082806451812640892439129839232851259648587814840729185633177494225714301763494936579497849207056377011299863208392541524671340777366661331453025792631634686690469565986364196861632717881707984740983984375702930466224555355547764847410496538251663923246138941556624608409930811516231532548808644691092002116436171346681864602464512041754158705512090221592225246408291889154229156228245315264598272948829185110932233387257987801745425501444491016696870293923571253739374348950146640953263559358721839776042712283629472215023515455335625239901989812395634909155872886893676443569536989970301824068938026272787071688923398669927451105346714499492729272181418631402303008685789966617073210183393920665707121848193466494602647171323621920516712643977552202281923534395450956926900676929763477492016232483748424762625938640799682288335240158884102051731312217581286510664306389909614159155472646753919967024471619656317393459376497479691776168992482152257955547021530065712834925543873117303695755332379459484495755511249158616482060732946840867011493916375338523110242895187871183409106468382098301288338193230918952353300720070869689488241790561689528263689838608354458851756694840136343686795021130506317495210233190892862364695336381626947928932666424406548422144139558868298771315012321115513197250363919403470150319858665551171218557360663000180384280393967617191527793852498510958516528107070585676678284512510171705556273948099798455056838311270058973412680791828334590179379846077249386544055439382608725051588283816954171088959991101605351216204133800405082037763782222907908885387787620665099519922479748108763273841823839228419970407675230878816671264111120320055056425803909032959843831541662212711645247627051610505390707733695183585705302170917865425961499053446361139490161490626094116552084933651163229455911874639267129041528521827239342153001774111944558063745394952102471428680413922647737135192596920563329367224080806523976320007399560791349863454740923194343227202603399248338797515128092677863133798897522073876664739667084528904798337029272068726074623772990848584597533675236312500334715578833841065515390526092106046155438354080390114029549209089205502740453920074864732696625999357803861202873700894098318742711304022669345301504581344732129035640571199698907127599714692264245491262322451597969384126443920761004100284909546973814336756566489877228133315931566105747203178326820620820434328248041958817682318980272613268411446160627101724200968652562606007368627418987366596065045762927907787340739773086679131292556414239332007605954541813949105703932949011155050099832563768683109935834638705197206527336912010533874367200974846920441387732647899383804184995956025429989410074181110101709111676575670479735826326958992156912125942604505884661507545368674953518778474360309276688791353193969924392886326011878662679254455172319164964771552716868406618904633986307939516313838797375593421151606391145760152533356685029191218423247159988626110067331020074100788583076684973825071195611346575149870075935604830789630134934284606412234854535425096819916260543432157027583424552790441907354592355491065685630768199196829504101023597331874815722771525126426235799685752064931616768697742986583291497098458950846148374840673953187681913439205669816878383092364825545751419474589638155329419338976120415463097118810264358160083715694590926974625037127262265120219217890425064600081745756538268189266563666412996575187865573085536945928259507808269943325437186941240313570813918243173370292773018663878240818495380533594469370921483551655925301446946727909201105577663730231090508970464813768770445433965336297738511465668770518664249589074442686127728249061803656847930590438528623996008986264765936049202184033030669970235770779162096568849727826262595828272261552943152013568627295610584642635932135406455598923184827348569510954088946618231463515789794863016642879572271614179173449396270729527423817352189033142554529904283852469192091727100441778933011690738337699186277543766025244077892891950137926761551372427078017371746277633455612163522938187651050546927579426808488891726537367506940358884768740491603929869655197008748041090562548527019188712687187496346137409791827372219624441239983010834258121297732254878476916609277177193457136968369364240756361425286604612460067687881194951197035438948051280758321361059549932429550068876137260834556729896805843264369903267149870542022304281609012357903174767852325452541911712502873331813545472268196496342600977592670702215906257293991663458803455914341818954667459209315204627558330871339481646355796783951697735363684872263659766283678143629108464650651057499252461454639573040421708424791861411788924348513962879401420213384394330204755629086346319714877162741555004561316460441121281355393798724648150558377566067734403718302762362846139949455384082177828928204309266698698796181191961310534264295901554817946064830746954953356412109667071320577338153297188088622796125850900776894435326033300603802550902888435643233060916828778091880090105873306669222097472513725038872175773385278491073836861811850840449193118885914546578001875723632975295136512189349316794993237964785570377762556459867118938994868031183288612459708963466878814110328454339098026116516202181526183848450989898804346258751047748992495685187905874497831574301098977210881901785978897336413469145496571490428261829369989577848846954745643079751928496776094895103631624039700735697886073756604963650440622862722933794493808524257249432972124886593183178299006223360205741198558328264546999794622410475507580390194017642813752304614673541384339772452470794263475208191276077482175117884717944544323420984929836398338328787079034684915809607850095473390588091868358951747674818494822790699621048178189879175630894571574104865863321856668558176934715433381313684510182383327740755648849016744094905287215678950517785750433982530310354183376385175708848528656905220614346719172870199863700601473704810952531946981793706668880264503426975031746307536250131038238678231516817534695067929566081995996869581999906114443342461545027041571451390092495051594080467269603107869776038731659410381484506351330167504929783980810815163384236939976764683218803962484659839087599699762231243529412728028781719713179368518748832545168782958933265960755684834777291967655998459628639975654795035123896415528988695613332715737156210450293034607872938427555405889602315737735527703803090507498667712321673862716218968697952601512861559630594558689337925660902282961082696218623702141135544991917513939541645415872970017925016728818747665058409997607598170056629676937218752576762258160424077068445796279372282112100937121271273707093924139311240288485714324941747168208075898091958978162245743075341254205665313999386259289266444401745851607702662976320540912376167866787088788580797981009448180942401388732905651752496578621389542344270185553233816717656046390572721888873337855346455993499924336933228322324275187548259843763908456940788043007324827714588441970909396189791147011720607192319871658802627777802521202557461986686188730022921315161445790643739668934203951930001450972035244548692854026216167102559771946313744767486628148936182308094987350077762558196902834857418057725585753474227758175928295692997095358708591120647843526395160529702679149475150967826078543477483266391456562567734085526375700389613901578351993877244057576304672635424955713669225131707936069841393603584768426345958717001895911100091422627059023332441059277616370068609323932726548263050983337281760315844266041720563343328071287593184423321124819354802255074449117558697122902173402123076688608127121440174522741238964764596538742373677863315360095221414716218880410499500798617575693259884994581842825702686853653543051853579434465846911640099115387050364933327496453646178881651126889785188705308219577555934608425611683084456627582845893314438747992403202554187931001952040301345818334902916022704466687260360603890469817035327972836916843968327067111235276936217082285068364426361529936425680912455814024003917173604717822087386919525659339094930596309161073197686284480280710005466248282010409386472000562644993434544063231550394025674359305595398809035390514280280582527694373427389644906031582314628555630228825074305173613242558887005185560273816084318766330548431150864109041041497293739088538813855803963557408571280223249227170920517747456640264531015350789021762121076940532736968868387859401427904677021851889145053010598102631482204895578101278026226036552047122912571525939607546429957270796621472406432010235406889381625694417672742353312512952774057792885217161270724187243892271827698441473858695284221144184735068634316588951844115216274450023268381586397164940373574364097249970721134443934552460639171644145171787332856035454184080985349495114713797182392329313228076875500153313154462536795334847781211112688657001855990811755486455650444983121140193738872201703483265519870010833714036768259195327992945164387480298323576368693646965632116308306706775476587425343967320054723314310622104452169960247873918918611072839216163038876077340342675679461126860093941195567763023225988034951247508215719948709088683124184337971770857814333059861578860870357173650698015614614262358641604848225400613462470825234127894415879332457399172377261686630271148314133346242429932370344935982048389332723566616980353326058521185582181169130510472508636844492129396650303517132642310631753814349590151081028988010502297292144244701541470893865065836282721554542778327699559810444313823425002535651048375064468492465988005635149053903079111682965114853652833805691843212945607036923669194850577789393562410952470651205373039860047948835032991258134123806485784782678315863723066330168494695963554203478830191436909462085423137292341142773644377336807461862148149024288174193998345817790357746792011640241185448020494306530208927129880085010608208495866381365251888339943234633615910612722894937912385879573301071952102009489508970095778721918493070561868425569005704196606263602569016200912399397643649693612927096399583001987610123478616720638366205536006322976541834002626191870347979415310686902473759064469676853811959157671478273282278973777467955535000980689737332217264018669483000476459659069614264654064969310726492488541071077635813005746244857555205784575326556125618521304954195334024078647281075154960882605989858094007985733389962751483731401930425190281918044482415299420999703194819801859778277200773276982307847897656085037857708514806373330004736649701738352199512770326022930869307613232652346795844219121806498705560835186691874577245142041258231126394051181309193524589188017305930140482576315068163317599638657700567408746717632373928986352226333507268133349171814326399171429832240031984326608767205185163666350385970462757288148300610107800772876426017603585844482581416734883149674305967176490945367906819462611326487401249277528980011900201857858748877426751044199381486174674896006170775505075583065889162235995765254090333483355940144940434929030270798976910991042498227388417176829209935672326564278577624276369969135752716616398728929991016248090462808470456378513587782208955838520547425106197619709953477194729640672258488885107080708346477294179076744078624299398443933623525696893412039655207839603182842583066768262587142867734100813858139353073588908993321209470599537999544910813299033603689241457337675338037145104764515826364061622830517083961884525842731309034004803113764602712250702566195700052374809639689777335891361309310823919502340198951106556238077680384311294762086540835267324246610491228033976080390690915263351242687465813650490152173189532812733897078968586008369238955794621870881308302425312088196912434981089863358516764827161916555018289671047462204974132572853457328114000598540946511459672450465992186154259837780162540540026368997640524938480197811467340035906352588355797581860002710548488429307350047817066609757480338471119500799134570416337583935906205377014853514000732214700841275649687198032268682780078701420623921219123289354967121645652146973479742275483891340670962790928016143780694960404496018614396563514555807375066426425709241789224253891974724834539873962124958571921897416386448420483874892654363428286496233375038768433387289424299105549795205835027274481228245742301884592853626621388615580342644925213946257961278857264766414465092903920856944959426941077305935247078138408550891458494530209671831156224697705278810590155677051977532647452424404519906462867296394690853900750543182652576210773540796743421671696600717641096343953815779261492548527845521703480056461032512854895669887034355206992861117208894008653101855706459030424557092831004437743605058717993279550319277122053694915546741852521504521519388981672210798723516922243493947272958873618091125351316667677671212564705173316372986284918934130179649493089791100099203486828227668627974208153321842693527269965185833501826932567389481925838087812833664207849171077101192300579809239393984110524200595549373365319050344749741925666374165769279195528989006375660464390454307676673734114580765978599500315265693359432993045934791947954024530405222402477953150333022507468845066651717124541657968996970591953803329231026258725042013082212947198021529160148643505412058338854025040101164790649254003422246654570284188341123190482632952156229369560507081280337186104431744138923520500329875647080129183276215412382230331019664448563605603906465004873452193215286762035315804577344740549954802539253043441191274879994993824329729549486386063881574766422191804670946226699084547027542790506132397849040376582443106048168459254793535204307768286042305168973735829850455951626462851029938606266333484043210101442628543112635190806356541616981499546385802309693368853929091534703836891183686681398464721662274590132053985728321069549347108732618795723855060811853995714933689952956071950761275444523002877374695941006758433080546656187481352714745618343174990849403138548214801328459867933648290735301367468473124385916191327605160030029168416200476316513972267735101800678637667937135192551826327967298082507690546410088363542307328939308460003898155831718267267361588735049164614047828911702801907998021717192459722454927298144782739247588293677438183356859921866780576543493036256100990858506655798996101705846954549237221337931486624066247493665320714168722930662296822941149562718545722416695968097302971679238250861155640102922629029837334325582699442358415235493033156360191512106885884568192279850171634039050026899291524832776693112094685333493083044994026660943911140757226227465720889826302405836574854088080488324248802791585605413618534338863189096874060363699768942909192472704977877552566615016022286735779334045919952219689027127813094533395755281396383917492001337719379253476610742958094492400632198319421504891107799508099706259592387743347176292266789691401367048342978114101003485619885381467195989358071086096630750630805615754857584221827205436493856626689563212168079941520471236570652140832325131476023863911108306752847708032284041422595688137441311910471866001838883206612577851947346625929344577614023035324447006964990597748960485395093972841116210896355907581454784212599326420200973950720805679187516268483468113532766915980735968936594354299889097018602217049009631899024405061314569752422073134170301252128848373693653470146141780927999866533600022038845977438813475938641318900087656032105459432626285322597824123782602301114308004044919549154017552801817695131933522120913693191530359592279358266101131953027648911995562881428553073527698896223603977682296559592000782628937075404511598530689933200676993247770652788629687207849195047819989925724697005438368863909053301797731553140949326852006849323750097950722012516703448432298957733151248660577031739296922948213259851271141685029636251116906938720298154477343934649729995488515704751595454586876192094553224961135748590167199961102053613049594766661408565041650267027051117249167276733822263099181423703882576566815573527748658078567386759906745545485012525047569625002127567899787588183472558928058276055483056995135138929765791891497178958989363019551687881769602108047730507600906016018802781380761260024295984904752076274728654389609281022451570505051530220982756956814461621001716435504220404194168195304960561155488389400145639107259653327681910357635956404123040081299005433421008489117273417924304893149950056307299098382812756794753904258878354796093056828699417091948421523566104635544735279933489149330350626179287689336952551342344004309148869737854828317730149439870998994256836522284804656398598176770550734940179646832812247462496281559653209535173294025691005578178225035003295252115674840669747669446106189820102567836144847626422586632509930296968209015373301226979577811890038355983170218404250457832367771027953128205394406752107629823545287924831021120195534976998934018566095901062419879518874984594908798052008543131872727161611156773912460092751182467681601871456010495003012907247190428621377352940852719315384802540886567827500336007612979844404639023953848294502090664352157157140333602023773464067686885682164962010071863153525287073063794253571785390005502380542516286652586663291254054732008131202083776769728365308346287801690690050451964477674542118156712344666884017632925521721490645727310294507933083400043491005753221139038287279853907473493616700297904239963639535720680042136820874263802569618854237070119193343490708656995031331295107701035356283132150123849381062299886688467990334964936103959588885921610516709146875208307573720783994734477391166562771715747931951373753271083045939891040549409398395839487793645931735260240343648033532298416694563366124045037139324164114786250985638271745094844870926289331830976347430645355560032426292370293775955348242226639715720902797562928899162905915807125833679073949193107965371855146808087372630371200120585168913029922274189026109305186917278998160830882423129712962538016861534245924511016107292023841960910593592220258347103305370473692768378522532531658810747562142870593718999425431601686325006882595256043844490338137309089343872065052573796347796501741161849823882934093233265066564829109263335273979356698126507265832572034279346407800593562628633964656523161086231709304770436253371185214633476930931729503635521422959849805182128021648523724582346232672453611172125078636568521571683582926515897550097673317570947754589544598657701890786904981374917090230500122874357153975587048335571308487594978001913456772308154033319070673508909623214469640704808967984383376180405893015318706878011170012832935169188389588869799878993959631343642584215585582682064178227455347237592571505365945728509532629505331767791119631623342312662951428911792745645873040319441046756954729861281114910398871677874775018792221712226531861138954039955219228286712291477405331967490852199274295765339519709995714816684261462159774742431212941365010584931169363412514255428546097569528583229600498043394772846816432319897197146321056639651230344871158546516798339880385028034980726420092802636959940969628467911999601728141839584566612963612790862018019662799429136662352001136457898647953191575257771361273273814276803731365226153964499863065255870802450204542577050894210116073478978242229222204726178190656360327896515555049900471419525539276524130629056484437050274588864777656025933884399272977791715128944987051289176317572776967047933576814259713699866746745179408149976889813815651566433995539139707412722535190565299199395950464444108846066348032504917121825227056028320392097946623729604635027676524898831499060102380663479811459126610582622928445258657006901220976174939914983692412682993117777844340754822551525289068577491860618004426344671800762009793743005154835367445720266289194134804855481193816419317739862795354840681340374843313849327524153869885251365403774630919760007614665949391897579236749282419157458564398465882271024274681010377421696952016581402077296229737578513924117825755393408384183840096566428027019877405628403283402714394838870809136286676183023465284128551860870502758771693961113240490663553710290169538356813046590293157295215379854301622426093316211041569690190069388137503085590975710863659155796243417116912600282555358071695685702223689410290548891888059171846533340995603578470701941722893939458449453452941797480336879156802416193120212614583854704348801203149237964023413347863276347037203727949001023359660226104730796682405754886961147132587118002716167033050570917209349985123619909427792731649365561631489645822504633465732388159341161527222456642828489011518870553631331171076612767945407965001919569460071011029525176345386667504031681829440143634084536374499596135766281446794347362284515145808277297166801221092155739925708010435173576370705295700911212463382091060013404955428971460244249031959887697213191303200728673510873229546970655447696761791967650327088607374227268603763802974764436014234478524986836110235479979334463320143260853982264646187937786851497755505356109435177542335230435152444292144803386769757229662001654334059811550948071869813138262443514653808561014544997151028351399382106022334595996830045536924231408807631368027510419689100569747175947675329713714352516643553484385820137202720543433361991051840319601176115155842754201783792596904106662057795652760462624068179891852701604980076375937962711702573634212058610975184880192813272409686561942732143804189083873473736469916787163138005942615144227304185620377109807189911088158999594955697351195541140366178759737984397025176582813057581350925949581907753363590125351365614261692815573962206760205499442982163029137210249324602718765780930131146913655103302358409512154983818563426304842358088548491094405380916891024243555063261415234486011460038484038434983502432777627205959211210860247617450026183122202288629255805323039984283088435746052371683462341700649765676485073619428168440453536730030522495518327693644976427738553589763140308490610284798048262546446396645891813157763401247300403477147978949248189019265760642044473257854342344320961076717268111257791463151335848708103944786070473523192550904376972189736015323186617060708137914024687466763301964506990419298659978556139521189443988180127745852153059111919473432385778862345075050600734220256837214607541839431262632260835110164530388139402276035250034708946133439810007596097690082556475969185333350185722438703289976507656755034246171852985911948029114782990602841657128775614717089757173800701090100523052321466774244355328815308293702663233954163007063681698910091055739988687996013396661688768047185481525285574047586358396578368780017119812603853107327015773174686148743255903644965929786962104210490738910573567578741927070250319230526386268225095860052585514439692672533418979858480079735208031326511287973590266933506929865289038904713403880842533923111515595854181493058884463508976766099973614286220300653997450138363697249915774359698267636752439266015860331113668003444078914663350536876312886007161301517096885648665679676009995427302694508575094007264499596173042334895997488028530877626185872284897179341831618320380601469658024380755630899422892025305411131997461896115279626332046459639971018886888664216053406190181651144935857500076123278715311957104335361853088827721488754990088907931995613576069429354155308464813391002543156194278633103590768614466060636164939221527487933868610777801175650090929993025891089233319495667778300825700016107022533490374498096717346668594273643477220888364886782630155972620894839697755646912370656690374395809446153386236936711743740322958755961271552976478823934672553758696813409743863825415094595438930126951915457824834412611240327326718812680847190384263487901933717980601962817255565721555044272073710001431043663274034547042901248437507432691658967027606218127054744095289441079186980186993513562821055260926188979773373017989100973707210841092575177296995172868077486936993697294487555161133785028245832661094530504379403629312452522925559795018290919751463398367498487506861341126756630562529332794635411243307234442854655904222777296749020030032812036200844111972892552196205353940380378038702186852182113677193311946614260601538999145052588868878368901958454539497618941198075820275281184491354618372954445176561777597775925346857401588059630661947657932329403782412924653201271779129526405052793980148250861108073891801496299928552418455563270849029209581534808689336454845347612840613685062101540382746908635575747732883583765016256236003151445147363951072244884361144566856652579475005813115063748346009869444000322069810391458025233245647648799823538685875148679238302875171714635172518692592880833032655097296862138355419553551935100974511191888507116937436438784446358965832463821250800911796805698425059115936190804298797447266925114110443275285471288710680226137869754091639402849579780305667905971090526309385648758516599048779505240068701838859183187486702556741244123215724197576947389401574488141498492506127337304911990082204210321967735078872488759467935524508377919060227670711044338575525251429725223104729732018513874657559842234682731965921665488672246593662863489879651971763031205265546754399034142284784798119948338050282844403335060521864232995780360956207428289665175219768257566318592515161193495488535681940347621079383772951436193500389479899739728536017086315512123045187578187573215659373955977203363253804593871989807259640049672504097889078319774782827186047266832618997474336206412363341950006099289049028158905619025316636613803772676622557810544629707896895181020967826462313351348991623283942165437417086316287964759950371170355406491610776656579829928510242209805862520880059600481223277524261555373778860470051419250852552109797487957831332828916718995386959040463471062413408854936794553114108479819575654056283226959774469557370700719684442336080302288503751228151987089214974662003154783605151011291198620402078883128253904679583834586154531179066174319276351161073907950498532121895847022113891912652328793091592567978691798735087140771102861834624334110439548225713870414116073491187832026054725139767313997657313597143396045657377873471975691538504299083488499277437213877897408249449870006277199261419034287978573955100569812870719385583059041954230767720956740714953712754108515853925313086356609925411833981810251711669033482879126887817313036018837693923571995400333272624362347397608219221458591030274200948655347913973667125368374460190459426924973505214157803827961357064094687327200383974587616404309590410618380199195811895036543356982102911586031565546677903414162358062381209157816964797898902821515141543475011890982002511974322409435590554362597720577753815563800443161307855011942767150202456872434781594901665834014409459067865367238465328713179679079442680550332560010887390200023282931235011089348253388312093482321983314260306787033886169373669488841694858471108319880894205838361608793436791518192164181861718620730992070073894976234281883734947232456829200622716547014795662523956252292168575866039336299675669427800028654319240955658959583152280036339425912483671719915920217170134140320726279241712870782308252747084880558314173598533627530555068333098659669036471376966249895428682269569199272734045625692879154137230937902924296446701725194975820997730437459614409518979138914157706009561962725800428966564730902796843127108181688958149664988164277147693496333318865911549139758406875442611362373030760724140468417787939718527632217612839033987982772934171798601590180414871892778366633098113691458986407878989491157075683108760576243910216480435471108999366985394270611721482664084205302152106296642375054087593046844869937588828000462797459701477043456496450215331004028983147389925424210158975200255249728828020630776175857929579548140644036180891804729541065988976564997359241506829602579234305402737046096472436111730603888333276479957916021251923165989921337508622450821708582737269330227459707256094421220043857972960854372313625427428394719447722450604556115764258808955441344875917756780623166377427886972313667771010279399784906678419396459185858332912995600983708677930479500218207460293763425839652863570323854227649692053642078242719117771825326135786215943589556947508432986892563327412221394981478882220800647386399661147155484398279200435259620037728099439975127767909937581274166902420677699676519137563862941579009577604105511015591370240973161006712537581304182360526540855299834177702106027168221738210888418331173953618639016389222633084932720084613057470061714583414093767439559671298964803125849835948732644632685897856994223344446035672704528488444113369500791105979780961684313808733823241652697152292426767460607801139747044820123708849495782799499370761050326909176843112324064881141334020079162899854921188939819211343014211426155627174448073203500901209079203931828281340189138316112958661701137058395824055751633515832939400669876641306856938737275767209843978509270880326365101476895114158390999687416856125544863464099612460834972668973993930718857159676601654514172630857780457306490468752362216486859700165725268709687651716981923182015447001168918601106539313038078523827354730987705665744962862507415830620375381777055316615739970684420467277000150418843395076977819091242584231685234152301226140716419231039498549916248469548539746431826436672987728650996325134808571221635871749311758079734737225561274443484207599757877040356230349466642229057430214630233580155961257803228816850614974293572632290846770897561941452519060995385208723380095317563864654469756873248146538761366998426685962404229550893625755332244683808225857654254514084967549018830091289195553897972864011986345783964969869944420942368570898634448503477140821515062539068838082714435669939790151713696931622109748806233169424379985898993607878143293962174110425790510677015676552730522114402467004170701605128949483583852461169527529298614421598200903465199793807812064107983525792094191210493148487595153909765752071531594919809810038452454504683400038177025978031263863719590382877903382215905417054845086162856374797219691173343370704615683247517154414721119014535977263187642662591325297356608820424113015057919837842691750834999054133850813360861592055279533916802971554609404702290212265801490704148440530822822552969192733868593888778107388140155857447679218356426718179350300335261573163795604473641447153703638950624088562052280877923469231476770256668487934914222185212266268911459572791851645189011245317006920596083963151780140554201723189656062845803088186449252149890824150560504033940472589464830525049471373778753171564302840434357911774806201001969596185001673119264402541380246763004514637322513820909931642582093349042508107330101404487921360494240955649810846273925214816181604976016431072758900292187900997553094938609329063769213893835102092621663339079559862424510621347734215046633296999011385598525306376867912498699401033018914140718860145328631039042887050047023927498915754607889917189762422053560685822481322669300773314757835017751260759471516257231056862251570627588792444627453069926489074034120531632724257456666337712953844761998365901347074519558799346412919929684823678105255297559767025578128262547261530984753414127966579860750139964268802046334124556334966830462526563044654738954453004835362902097785243362641970889890015552518091918631337249541832016125512215780057698180008183296621765870308988551903523924855518317696189726883436919263026374511781242560107240430708755008324360655326985978294344500673264630785205788260467993663843522977248844660269378924865798203180101992325988485208602230559410932286464430341654692327813557984519938010134467988703484618940236811090878920876967048477888772786923526905805454122379151642023095870179324783108777091949243003460948137479530272251684496102331815961135068056471680724705694592353178808145162971011217948768243254677094679854003922649493073852897572430433837187007843460570118282420015903096830484653235801221057612516438971250106015215855479330627931225744783626624928914657792097349555242583181173595661919246194930090427802995683574259295822870370683787446761540215073181712508169293282293848410656235953271337767375672385085824961645288116192149547933710080522648658244617016524696505616765733170710168883695148975458062433580463494312375094449924085651312172468990341894368469261604048658063268053643988363099229935649006859369424331891773649370190704310093210800864652541041842232263068576197867185915985615965910891622082783708272603489213010437541942070061953111242967431225770657464465766464962054934696648088345606165167749892755677729709230198086725269710340450130389088220286601987859077685203392455898490895236370526594536895263425669411785862793167144393850831143696310455947785756666201872332399884241056691006572089419546243360119690565496845222266902134736423338680770079319546247998928360478148613664877836906147735241503822700700948474697819938543982785560816852296519076036838544558415454647965892645181546614917997017198903086643861251505110931156211877170257692520694265923826725487608612925289659855370193736262916665720183824593984420705944770852600608322407376731445105597952429456688950432536124188407618647543608932990163544286500577268601110985780065547163794730213227423368481896367060266462788349586012906686095582548353421944625345847095769951019340596582729924808343778833529534034771839690117255273339516042738214645420140480983841849810652768827355653604242257882809110904911083120317390651516347249229247719394195841717353911762274503383946718425704747007822617328671514774430809429866909726684541244654476201574598898398994843380995099522740744166996559990229434226715320291932336309534554083162118559783471587570997682482509487930461790662030928588208134425033012936715901078075537529376802590619245062179270878814800693591406791540568722366598048313009195296375856517403233478005885281248559799181564642233272727079747930963828864615398392665886336698678069065776840831527772486634380877199831168509206694649712926490639158575749473664017424101918900383893454697622397553225299732477002721457322147409948077973420684692643094029430738010185748302450066828691056461522376787031625299705108372016076894265422331406304277196674286418204778749568534332603253649161618525058389798478921406238766408309845990905105664962362697546535979764805524957388852364828536023836320748521709295206482111765677400981970234733414902216139570464862140678289949581781474592920691959430871999647608174444635737811638447132401488752930237771808013141164064881003095850744535264704990717938952600177397677104942700485629643458018353631493307647999761388550938863203470614283789305252428354196898674719270618149889534288410894236780027105305818990491226695169857712938776164363252196720980432752042620919471341633734163704916550598958496503329577582972798652025289918548304549576210408879831806835920154294633166031240141379858345824649148856861002679759201107588339996690738971627987582165408536725620554151701653731830474903105912538021339262417119122659306893109330057211851881504654288234834501429309171052092274684119112612974166802307310393768823224267360490839731144458295419816643001563233969161289617001338798485971142524571717630361635485925645833692958916954132779315008237748914186391475796517841985274028482869580365057701603403800685059554876718095989572496513868694172119670405937964835219327738992365939690964665034706309209142063040519684584914894376268116325396665004857390843098034433557761189502028994005514476705099906177852504049459551728748418838894641906773114472206548337870334397835239058107291280398552749943087043571839118901399988199029818927697412343133150059491970039959376629329325937943087679352191858710548592930377553400458410873012386320115542341846740594049340387471702239873589010719876837220117351528142170004367989536389723872945743557645242266697364733567158291920974596505628012785423994578340049096757062882310438058290431091277986738284608458721431436503796064399920576724240312886576246245122595155856627492700409649056063847951977218062779051793118060664971704534193859806856642027146215976711582262593565658802799527997988980231497049083856750816791785689051853326281214961637534294973553254374012125306523955903882660558707850481440342425462271123685777132332395236198211141568406754831864683214322877975165438130937020611338578042118978570210113541254214747169730509637346237817416715452437924020267632486201732916448763946537081150731631317457093310080203752611800610127200007136935396313144167445393531860934915010479751816736246130969351570100759501507647032798991328305682540098682527199480169275583562415349749314514689344783161951310543897934786523317957913065078578985939552453250215602706494963624996218746067953359840026315005062622753829899370138952963295218659410888486213309343455778841203523474727755795426267088199779474993491039499585901532223704534083850086412112290161917409328306026092693286771387454373592036412637769780743704538408903467557910468380729640110199434868364558717151983010592618648427986183966002933633974414225897090198428241691590734491078456344898782190171951646342486574907981764267047901956591073386325619145647065224283435264419968944831238289867141561536321974894612295150195904361008056120665355179886824059471016398532423870255145914316225798845107520105469069224711089977011513512772591058560973785698206347882286588482460592763252180035261788797156361998237524653363956619072951647425955555543996221282417340228866283914546510786584978063846779839241884240725224909653125098726648710929104560642583617805115141005754072600628587888157360316757655684957981581787053233436450014039563391076496515373368106962843290455481028389483468349375003530867674361276873898204081530363874310033925858782049111784470160078947888116517532991025670115716839884690410469383299435462694062915877205677528680082970576508710718305180817415599020220041042830418619121641521106707073772651794995608492143896742739571430179708969298906856041145026106486540008920290014974204941062830194126604433025868776823936031412746868035262776359609228610739020858838671133824777482634764780397017149266363251245580699520252943563969093726602490821490846727749021338235664511850144920351330653228935951449234405389941907063548852215423345320065167220684030370185019999057332075514078527725199833876270226318421712493623170860270650814081220320687381844519799156845837676060178896623726768644686319473687054134289995021784881881507146536903760324541907319288701680601122126615045894895416294984729164273095030140680827439013943922479135484743102818730092105691645344206941018972966649497644540297305701480113940996244583398901730098463096251131849413440022911904911989753363596906503181961533118930879318208935218480320737315493943964308933623282276774132259225133423132553621092903812192312275216224693053976285179302747605655723418180345147602943086027422266573953701198253530522835305699191703293913099588622334517623903228654699584965713139541568964658050470128749684840506118710721478791093625533972089901685838627467930887143506294209855451379340832249977723863533202075175944920414999032852417420602112084295165133395775312859056704643541112809937443970488217561348893653668873588761499083503798688075374461583413929366433714439754175205528195066884560290348720290297913945225027299074342961946566296791609204926051481768943368859510471527293733671530177916656433858978353637742601986583867199629261911291836731899151958546261988885235091072348680673701079176055067987254469157137273938428389274757877836648354037081785577300796053839303584469179153234357842939597038832062425776112135716345829614564181638189200899091492193267413247561990845262268443343889027531171120936248010323783091422636579702327287619733194142679933404330787687967568155010893670078785904362764019512435746227332809747331977959810899751887660010405220201906727204280484783802683829005942665952378478084108043553172048069163642855957642825969095849535462459817405111395228752759762941993128313447595110954742785298765714857915419198023768230311184041609655870653379671233855443900591137541373343555791299265032415379305422554694542834468647292804489101321235341197687418890760257595496809131816558390692926036450758820824252043299926701209996423733754412723422154960961756840591943583363003293065593106711537825883529574609580772671722749091471142742200529267589308331100722609998710066717524084642756178770597429394915168156583619488685592254600663393566237534369594430015784397062288006273392802572267981220383963845503117658546506282934841339100290655805313745311536960703553119933498380674310322720895795260863454225001808575647594750099213209151811251975797493897998237563142823804520850776102964615887621507758295685897475014905347299015724946765414974772334213443724565897767377414570502872963279162797951784224960759093173668996080472428991399874370802767198204281448459751441906832260257105659111093667024591609858384390204743350793932335231654263138238150106685391446301808099190777383545099644606749737997045897345336529801406737523133064522582718460599143297511631386683877880167789482629687163381563087834094257687244162410924883237324831029862762955169801651009170872104850868203971578620857661273138356311505910519226372274826086298844246011988959578373313861736156988622465608143558115466169943068918051395096312514603038691686257945788599491632895278745994044966735782913545929224967346383189971207676582054936968291833938380077960637565563661139653566994965510195967995523301138761813609667375348596112745861179817704734852073612394949157352023339446358130538002042812145320934510088217682351532975433755756628712250013903059270644415529617700485302859928403855283513078203850399632134619573598256185445081382945323657605514077744858583624904703689234905138444121517002641891508696327230342022642680017649728482775170334703094794678383602409008365072768947025079436094884547003571406766971506524962195664406039602425290173126939688189428427367327766401479761458487576781599141803732072482646336093461772562413506703256554922316030301166889425730587742503630114695673764618744597479173523690576046957790460538368770259749992216975416426632789340499704274751867367318713306952067208049352149438242107466967747451547450729845760930319597850855822286631099566761960470967345078518655566597147999358759041311817021927500482922716877870954841919449883873617876879026799384734751634864032531203707865667944772913535441335783606314230119429258548655883086737995973917144255472050604312691208576319999842312688213153653121188244692272634810720266257298367012465055260676274222286890049856217581493473724011251499850671496135637572880483258523208506806991285154960151860858818714413329063423788399217543734377794569326350890274464662917440011597169453709354900934337112231666954964295675522522091634573612756177374458357148700036380242668001601315486838568126065621881563420028035291526615535224016907924235365360743197748806327410628364964276119165863185220880147030363263951170268554521550980875699635968058828059035574498333897514242916549474223921316708269759957424669257771158880443130266995176138500757127226255527813743390432430290583755107695480701307733144046984471277252727912934215316633889164421864629505549032795874356392770844702433245217888486894200381478724462931074621161849375579512586090054621863544799184263971676332137632033941369840338629244604837469911074387155505232542523321574083585057601999450936138343001033398233249825647123771011851160228794094776869093064106913780448901115048319818401568756137408191983764416411806428430719123154482733247654024275084237471121590495082834804158290235131187258491603631324431613088101646589829479047925436277933264740158370247565234597050009411332257259201869034108209967220655371937632337580953865857424943597289868234809638722550389948554812371551680478565202246757888093662429849011603551056011513410150967321990671302433541911728288968388908071620506409612213584839049320896526615849963322343329682278866783342310318815462543698023703067949566489126559870831022900338336673490956437439484618999795184903207853397063389236369321351757736139950368820644013843632311327425555858412846018964435707713038246048910851894696206903206308384464656777170157912669608020313392082233562546412982715159926892328641924732886347164752580209810542886003050084998908808067019511301140382580015485250777214366421775884725141481159476770920719114975817764866301721864831124574557530650166266302122586086349620571656910734326793705772959087390351444834004176750149819653052729337704949944178028525035748355345274777234938544179667665868027970426503416645194583648575710608036336363294699985960310755028327811498333097507561246584402514103096158083755400733671583939720455911859955817717498150794612380724327861156319854044129468343589472266052108096422695276241026800369841099051494129369896448272641166291636059034026968260853614747148723913006665074518494479699472510897835563497596329095674917671141910527830206082869150540723744264558068741386869492506585583653009717213520852330122522299436549904086537122787204180378610088604538485119698606115823254052655978166864829014008942436410051123164270222687152313103215039946509346531749442767134072284952152210100957631675995173460192816132411465872495171261191838466897844729336439899514272692004987966396244952416329334964829492014643031575245704865499079175673801146174558919939785586594757461061365232561798814469419517005922286825562381516545476220723328375661526215554164700334051859634556101668990589989073916030497519867403902501457626757201549866875058910263715211590123932552041415789407361449041770931670399638625077996215378602874240073539546171729352682860204469252742734799528089700114610747376540482577262807600778586235702205666502214864025122833079572850374333683812146695083124624843181804895367521316840557308233228869209295773381963966273770008719206033316594337924051901583485396265039691752347822667238329227468588613971891566237572757186766160808497153091807304153048747700102065111714211821973242596511624742176616299610252841268298201028232197704899995428704482387658550768235147570483608560359274031722294372444973602471201014617347850060250886088767915545876538568035911126052646046200242398321401205823164783176782661134388020663815430153956799100809244893684572092765475541565984731191146826556847346963866844643783799101241073474152279287363790384708210208327099398346909461485076054291104034307874717074074385587957402535018956949392604791922135221695461460101148212030580255245166584438759026931280570571427033125544630119166929683855852951119624436559571088717950125663575133985998727968340544470399459219969180558766545853608005077698307021326866000657373472235150196613407120214422527363824057702792387756767359320250601557074105711893883263167000241106831697156156463766509718928605212221361395560125806725847485406238082174196877036576437440529356110070779240205794349835643655347375547817469351251081375887210903302735798929793070140321461681655831866639039279361471069748682882756968643415052689459597694828194117548784059882486377305009114167518310587098289622319908438817265472039443868960867105940477958527259385608959537466876618803731649502238540403561368007179632128603241637416934599268174864972752517504404850799445854420593812516281247636980053917558331283010168656654468316873068413010611966833738221325431703760217885503501886203708653675675893028638793709601104778885841996744659223055980555727693152027368176187691541496322197821429251962546640628776643628004948928591844098077912068253969289851487209820527239566223183083334534298351653031725827462820439726216228511979006087405764524155801983755503899538958612632097613852618226339041225040519465847887293815788989873441932298642480916801711646288101406918396982635988825921520033681865848830030520213127327804343983228197194945103810936711722761425090725067942875408552770273649348486877644076285083440809905293495054413796275099577074733007978756195801621817872837818582773993093836678799780152641960036661381771501511710499312425923866619126170184103126362736575332476538239584168631295414188300731461531067141393907360532291506181839485235649873805048386061411876647733986297880198309335282570792608138233343012188992469972698330749076204484412275683754083992328741484885434821170842992217141145355355847104917600964634118457429710002596394149471122495597523398863622642445459848255909488162705971825730328509926450961855300805467208008440889407788133936470772854789680036963997596571692689845934212340989371037459964605486084242417600822906287138495870898788663107540391259262383631573544431905441772979119130073133076467778873604221428959861322919367939588390452041143270318382233554805659150517297505349584654265131143519309204457077954415876054205364751386186387146595611874871799635171756188044526866469568115510934880683334713282039491678365865159643677787547672366829026114808006399053204169593735365831275428082724344734987237837739611047818006526716804050547311910823607493758539017824065203895732509429549923433877918692401949600525860834343326538121461102656102878859259924643358175322916892625464530738916952257362493634246477086074016994400779648015990456233174579286951799779825073492913759934814385431479638732965344310610590833205834145196820470557008607484769930532701717549615431736396352061981868224141943408430902750853030836849616171012731874671057009923124096296913524364219369246234876268342631815892726618731205676660655193383865703974182429070597594973581457096134908028035224246483178958807338767849648082761192631702536753176933627530599589079838680124809410188744215086521118318580674166493588108752610521996234179470652136559859943384313941230557210404804157533282262933282627099523822593807580766246611998858762036540296706154568220906480636473112673722907133260153207129815806515635109611430133957005136672916510774139062608376303239285343231997784862130087798432196441345452019204770758337514228469641040620600495994765133591795753815229445450618808425517885172681165481757891136258413935549899152928630818292989659355565650593378479806873695598252082555581915520079807522511469313062405790087660061980244379020928304849029091220770751187784154471395769969264854125308527239177971154612832801618614892718071991633994165174852183811995255671402703897177177029354968383231822756980935740135335050417322829157372122556401547345330930942047250388407524840555856930721426264819338806921929590377442246314334427770755044637360911368416929415010354856939256658153363396190530546494273385408685768693242918177897940339613599823432494049816748200431859831718419461513910579870927016278485624402707704491242610986568556355776768518189390900708860534897113054438647542173271104325044422982723902503314512647387939865384696506835920248678623164322787004690131779576599100974896765253373589398838073133746446145918237309728183859493886981843100131586754627138483492097381136255764091100837406967691779304470495680545115029661378212195950993114863664387332939968463412233457231443584352010014514073028041697955600699902753020784947624154683386613125442631999212410437093053394650813259429728699810359835815921403328595320594200976283163113737846610083433711018856407466031805045571845116976530848569426708103970133703238709252595145666191574976621833364066368929092961665945498349416858329029468448101854182467063211856018905083971746157372166894563937891832851884441454522003394278560355389209456546220005411451394175002875053031779755274066887771428079961547032233163249897069250289212010910035171487424077197646707456540149470040031055243646943856944880413160541074926016279833038848569234631342684832172186523656205869331917472484737643157550130387341913189430497030246541233530819859044209825172089112112974647206772209935750582135456536907341203315998669320424881081092331862379821883039947145980727319549415585991051712355041025263261491589474178329635141239483160236890379318561452374653878832078695476002323137325086975856467777667396415773782865610228288331868064488176790552979268235258942967341485472727379692283208249382611845650297597513322335716758900243716607721599585013582566723280382882535819294860603667653851637296257503829807368633296170379026265036578702857911651450977260329234234716337931894638988542636325493983845587078075313811962534140567033567128513889446216014417944506500968250145383392668155780964028761962130673378501703825621086659411051736028109250891586230367607469957256466422019906826257350194358802211038273874584903900702300050132714175730793530007406999097013242593440258058239188304770609698853022677230033916822310767178083628933822697504448387061250966004323942994628119024826781497886517901465097504113806055226223116337148177495175228019185108066145094282578799116968799746066016851835400509679869570906729955159436178877444453713134367072197081882094539324750410236590050355832722988093401815370317501443791647343651712052597294915198291569342487230005045651092424716715192414280448787341424051447836884669749683876303599660282085787684506193151296937551892170050111917334825567596322340470822564642908655936578976926912551533414279757335853162020387754406508905394254302073978125765366366344462710837423685879922218390722043284784096369793323237362276544374808617395889525791601273845585782567183264282042162015861316653518032381427576078495300021434737382341681266855487005422809009548937005258595698167231953461687176114976268714896174895907271196933932077943781958208190338817717289147139739140501159155665412015189995416454287391858141330648239591410825560537635313275719111178147219386664380972176104984073930904135972178200588249137971105333680873163285548024387163762577780603308020644108290038719952603426323586853783349684927960413259157596016763362209857284880548129090677978787908825120883695598472041234883838978746125353550996525188779355568239770852243455811999021351690455133775266572239430459750516506639848800730686713794883281721729300563467540003585287143716155198058378316374696209594184969967631825822441425657285188936956377992072250480885508583772084956524567588268517633091253964073437204813768817646811836512859472766348576314949247764124333534150605445307861500394766231142701276430730998670924593130459515544010751485198620328882692617258779512496237359401260587518288376625892938576511471958703316456448747789173600770073178657212677577019350221901776534225849180912045229259957764825023422274406678018643883578113528618921138480518209638093030822842773579258814758654470112023965512953870690620788533771513377203411679343381756685540493549802352637179762351820056971889603198333967281228981306281218594178454375678400616413238719772552454147178752175052703247115860909675893164238062516556410521880227191374041602796768102919458522136061841383414913225502628594078147557364682154315422507827535390328928555608650599967831017642490698756578555307829982964925952067543917513327841984590056972250740608766715670531268526653894297709210930853641954942475432410917605805959219416495519498031154026573842444403160646635838201516513305197351671775141880497281650148697906975697187705126697724132089032875873477918587611479109495948845545398235128797550656538604688435994182456359478332301342716190088846977955998151026444514841573169966434199217102626490161381543523696678554046899955786651947887468876229934944028663844042158934630492285352508003654147787099808636570084734621275337092163435138590204780152188720136793627087403088464536983599177689857959165278814813686267603245938065928422936332448032346633277575041238215590983402565692950467870292484104588804653237758421504010958359623711369770004091418436758489981656806668998785887997714758952396134886481113724474352811257664470095811507225167978619983840541385299470896844021180462874322930870430276896139870025190793446469625691961911385597983639227619220758527232034996449833740180364254022695319397164109379903305152088637602643115257960604084970961675593014926011603266073930376438535844031419214512797176825826493534771402801902988962199284776263870420979158424037469664661955258654453348241777672296787475422370985487315255230641154006389939539603683982147774568784463957219010625352050176965885590614014530971157083288948301899348111091910892382921833430095767902964575173558155043909785969813601179656741330940038309790693930160140061833525786128728433833984961948373906474172410447252701350346107778365088294618984978553745658048350270732825485029306211901365887494108060962859763594983068606317859276175010427339221116978805519587603074820613830625663579900248473859829843214432343792304114871367391786966816780839615057155177646035943358098840073619565939993227004432261985741585482815570527751336157273684883771050081269308821726644432482427117941915294827848500913206599977601465371322766114798345568224410725194571443218093309229731757721790357156846774252309330247464732572107586199526748270029024722746719516256386780448116373671180623050228272646549829335721570291187271475000689070453102603464596320553972164962680122043285608833687988017513687959022117294057289931597957696502410447597031088883531177052836913860762672896970544101993586830491508159681398606373193224232149748484533564732309475212370908770518766171742101385350345264418605779978181350715081946721375391209694373744271571138155690309668826745573244170267863226776087712979886581138371530068594170103078860807925406057223934291258904317305755889587362634233392473206469068349165674697801563243350105918070059562350513277387197770155946573298595456621383951301599910475541743158480350049211885012345072995234371815222466403079303806336173642491694632433728972178200853029065188075120747061715006601957381239744137429469038996793755866455373791095070363662315239550697879417559799342123470250370064262657638137230793698958061816101023940785728713225289703686499422438824934200261397198696589515521571220566265429352221249924810833315169493899327548457303519647711914834619796184604216286128190827377890958345134992625213263012142015767276728738591319731300854959702332408252984694896903580500619589921653108194294826456722476922022267405158535191256225612391086362918308385656066746009394554069363700819325682219311767965930067181439550910999329631505500897179559479789174397247728797205153874512335596205034015397861693254646333015788738171870919013452506964225498050648476481469148279213367900608428507012848924605704414660779895552610003005603634307056165236494122619687525630582735069094116164356292617829781309877784573343082486151784697173338436487939655999937535764305910464465298814839964308614294318777564402412330598479448473564770289894667512720754636554390606692298929903965233111057971059646439642766206668804089189346503406306983651105785961954963867921821152094955454410895519151516015722084837766659084209648024097873581073307941442077957943454435489082122376388553871716187720883194178139359250609466570464173730800069220280760988701569960897505120894213238541223356280677189539811111173851930879790058781294060662566913378331246983178286926450154293906941706373529448931588144022468145531285292935379909895869179437001508201757640969594001420805473428211488008816259444059351674239478806660585700258167496177199807990183532233912771578354481968901997285259415285737188985534026431439228497539555551017200579013054189362770131850806725448140695201950221623109240973802276665050167353765041188868795032204471477937080664099189472186262268360050672750168424031024532076888988967198149197849353561503473515289249796585949706880941415057237556048680981457761605481139177200012002810236322288509174852673382243062357392054912017993231510830631304292529648499217719887804498857166376316526959636069006199521034072927607545863401503446232147005336328582484290945941374140920646432380023313789695582338847621115303264988737317051545218745273743070560440628188226575795872430509202096642703634490223694841168223644708273684544117582527751497635848997291030929281194535189169509941033134872454200967811744307483177390913984075370889784230987067908015670293230364073107097096146738207983157383726765027413057808693723137474122376825878405668491317151086304736731094761060838265493069172251637242543952151424139534541327913206344141910151429583937572454783159059493144444056127194255153370670973870440250813158325915958750918661474038800898612146261493319643578597983477295272161661032563965414862007961333024934294919069062330786471340385844729440992870653399318139250263682470498621074958843933768174812637419601721930893556596014084152989153672128978121704138223918860923077077417399005865757904301822598462637833437687450574004951311767164869851589275855900551342915991625083640750612981901507332646940880833922466906567997230287606254388697013255144572540512273390862309478767040988193695207950017218503755875681211980669974030022289436109307645252556481412738373281519637558106022050188629592782474788610346274595206017643218664729897413351699440090266351404085390515150863990932128017539336029907593298422236961354532950121148363999567510565190793697027736616915152301819799475819159742940422081446747705599398207166254942277046315526322651654815654877174586744354281030089443247050850963893729442212331497370125091035164070347912497992020705795143149864426942053274985344817728712276887895095608479636752645285592641784283890635285140703773109660339980621668410026172471707522099804433982328503905532023853263092369853459311964254787406953465672549315451077954898900950182769978637373531134428105890803982833350525153327968177206487678097052406965921676832853257794215162152450901386463767793480937408684837258680598091139963051044331415333155840872877735801293277271634656858044012523024459089859750952729819006687424641522399824699498571420181885643848235821698616582472480017688763975205751707165886098038776831676709428203089028323465982841087826643292543461151078832419809777160727132512215778127343913922998180892797602469458674542136924495170983077571179781357372046574644032999315251494786037575345349316713687965443830535917639457050486201437080174082235980283132131310297804889337166211933658502880100143062029226953640406595242704336711446588757409957690558791971865335314350250263550859155622559943794828174056929814507154780663001771353689597059179812631589270668459341237216594896378629283321879250968823653631805798637732565086490690314560862373051921773922922562962812330424845690786417884252160442243043406535882285836372516379958594970250583867547782535122626746322612287737849211589684576769753954547486784858404012707423354984688302492825532995238993346701007980206691627418170850904981027185304244101797076723956381849479391897275109399778408502705554358694229156700999343080213442925806214024879282390442500179390458313787858234811077551913282848704888978876744401031655252984747666419397672625172581730965604312990625848491230311031512725842837328922055255655572101229281581081944713435419402300329000527256977388230530600480549860302540409538086090426980000633673249326503283388201568366809604270063035003795382248798047156399615872623755840653736283014015259471421545517270623440265715027636730337076471770816869343616853172159142039462510719137142419299673393159330722362894854839725169350673047014254782236465624930134845925408399705796258445738947039107883683461781081477430966826826866230833143606962856969508056293589281360267488168465912369665759850560668278190597831263248720905468479034546108397144559286664210290143585105218318820948204923224117484353989627743364689568964867810669023384700822435657846859155235249338589502141683555691177285192087815885707194047474443545879234361665473724082594042906303947825566251840441189922627864533310574599205960543231760627452569748572713510358989370063595981544528575565728062986262095870961083080791632152915255120176478065111648304601840428353538941034168056333222624323269640805341480880258405675804955366056678233578031317842428432210151453312595425818737990676073121384333400863517957873227051202431795785012199633447640325114891292382104918988026291799867842711166641772936152313595865590139500417502797714778663032725325910284521289254395113480916663193645637499241229760922540681196412395113353752655359447271658451841299246981456040224763803960850705696834828033670766719470502527418675031743012162776178615889319676255276754021286362336229493044816960024401220004654282217894032608093426151786153052660872023271189330584310574256257293181517948797120181600180941412219472480029007239285454247619569397784347251223243686959859977832071322476896526361178165846771308260550517070975646233325396906512473817553229013625096229555622363306336823035204601706331413167674945414648338636554194774232149722881152620110897093132919169953065604373636205818328613057859521970222456068865453855571052611791493247974533742371156285538445012801823085349666121083984084426141396969860672359356755084340045793789318595363812194006341006435273421817651634462219516514895007659551198046821538925357525509261771044054295276222904218758301807975793745040302687349833612018966820751612779419015173652169561627870663341981897376801380659582394465392466223783420817648515736205934597018180970651977588226211407231803582620570282370215098314615237700574753323907738873420918366294687012182875664116918291830572207048950884425862799839133250153440453443434586603671353373685193778971607212007490920847081629168400380150618395144697959302362771380169394210944584675772742171747115851287930099664991864079677783248535632421896895444928596975351665534168302837701707168597069925931490063822718466081692002833636323848054042235445303975130033570094595032896360812731384086493251021240424194270327765691898351355474538882494589889304344901588444233835394095451138618733303420687623363346821875283902682340120686693414226407800508984909504113934792850888632473210275285126284165397496227233576618563726008259297278578012517162026033448781784860184649490859337544947741845648319977871239277813260476565086425286266017895303452133485628589442123630275634310543864691061864540107598777474471509625217881150417430646386247700171421468521763097211109459624282340874349083016547360757568104524205386160828377244424776427347909739849409263640047068889756963938571628203849478738103721452777509448875658199527894157244926670253997211847011890562849593958827022077908734138717330744442991924645263615869923934234101719045368172153919673652422077344130334748750813421221103264105627791285504916018226894398858767538345087707469952493818294637631233360986827612269281366582168208598469366584014496677778757472728439852031972791352845196156893474024418724497499193188596836046610107870367307138183689506333228507096967481615721095633746678456216118004637462430616320073629066754034106826914180496254339381061176410331652331349792669893522940770476824966984648934280939476369913846605606001536948673396752042656662919699599977318356220875068350649461698748161040264212166565821176148142544163037365083196688325103807565436320310676244521610006372910975679520925797529682757241663873480601327012949069766414338128455903105562157869698438886603735530107300967713103273602835065477761306428382324433407486674447935682744374843159924023160643402511661684154680486589092269238732621795569773918116742333528236191917628265838211769329618863141280181578457100249922755298208128586251116971613562865670939275222837269648760551666095330514366029083475851966956839920367802760874283246989713174980789442566272214190933102716767060444404795721807086174342510365537473491477565934562072871640828587432950292357209188016330583610108931476675238251150853015779439389757677291797935168859958813448815563186164233318907526150555262324652787647355129085410517940277416961041192148684425608626349667563250741518955972192028060475482856607831484246607133185965645021996493169995785305346960146390720851552100553031814848849505086060629604278472396857987760947451801373182026139395737786702425177099217112931701672356651407670969934448873910124663042995760944818218479012467886844979167746231065656647671308108371609041644262860546009340690589410917627988679481091780756715723865512385467795794282120496412298980671817148180124669009573924955071622982071723621510026301755881709239573212965288316672920194817195391433216662477867796377519793223907812890695777335554782084943185666116096325887918763892509906541228826059308268658066138940238043887992349515937357528025133801276388090951033060580656237569767947580965783039377145229464065811624173987596018459976702911458057761907299448296507077884653878639725690761175008209348692472409172820901856901867028174738470243266484990165855370174177314734052036591191810473534575923804591588062513091484374027339147909261384238666770767779046013593995485924766949516865420999564075183327195696721863770820987071055816497567588574918372028424906051887974744835667908057568411580757970306229447844190292812487198347081556176927984005233163327801011287124307629680868668632574785746645303810860107202160734279662272582606121646776602584799732268681542541725775597519572162897786726333909795933270108997892595740165144586790652962543427412226438396967764908227034043815139021816117853911466800486141303406873342548544130111567601397425315402321235650431938398047134381578905877841157098561641341956206488701686035481410956403367588617968509376137811163283438419751003578162444959590327042475071081735898828509737667144000723562094641142476817341802714130749368373890190383017220384192244293878257815073316576890193465379875766636188569301626059190511372120546112349702306401491501119729474161617498760042686826542140779316371547626404650878072385168340730387236052244725187647155711822511197453387977894318954188186359958574060487578383550838573262983098099359907771646669333542504284467521346780515715208553191854666235062120639227539834580359433753905058792673014494091136521432555866877914326130575388509436701417176496895324323334321081926898907072388593885906046609808495343010456787412592055986732217614214835166756300481934848837126205289940896151080789030760064787578914391479461984807676107740352606699669766328493220313598224832541555983616693754410934942511652980667196652385055046298686442162047221891310574671639110122876630112487720919357535891829213900086880699826119601443327457553231064860064119145358010638007955722015947917382833306857456628807113081920712327193886754279226485819846528299030282668265084650913710486182699190770936951186801759648092634434044502124152629653387971850377115207828511216639161080167665314205092561539261222050951206977631731863262385353714424881179142163525030516036853986789113393323105145958034332819412094495630213707177366029108678711039648184398446296088328175989043153233694023095580675464052149859733002197309814572676191211179650165237538207446536093489333118696803896476653381323001200101301273877134038023821403776086884819080212006506089033698598096397141218129133453663179958105978616363083809899677489044902147855444451887253252608987041687234383277326397109843869506255629195809210744680318996669610181290806712579463196468211315024833269900090554985763908768199444388589804748723973247106037040491393043710039836109116383070638638182002025798945292225339807170146362141952490505272657159353717278471982200559942965018821408470706419440698451351736416451846552802143601942991990429422044055426859828511746783604400163296948409148717969750937056983205129476637272784226273107705987629484047793368836377831245227804035118948773881265577495841190829501507053319182952661886114191049945767400734196093143870148124858362223829498798625449917630170266274339837312916421653027413512927859881257831402144294296827647483326617994277078038513367905796493793871528168611980597474742546387126553240845415799689481503014656113597468749433457164559598574151255084833544349157934098584810213867185845460441950227659625020633706645342405198666442548879671498799258462532063175699632501917974749264280051390371393470023423284389889348327157101419697384740327789469934159988542942986403643396149027944408953418505388939130995188921844182864422091403650460972118298810044509227737412023221406562911356824798325204735160213160940270248292994873954043443847158753579437203711245106083919473970439778492539954798128445930741926276542968383470039834217034328736518792733783476718682290489680390002285689341733303857871103750342435938882183328048890296000983279785465700621440264256382684770714328538671486246870092980577948743086031044254178059754196253255013058752541231063445340818139578511584362408913976526356064632512947585830673846494885000191651625079140000673704027221685922302745694643247479231300877739813129914405632562249688458101277833485536046486683659339690943973162464258137496704426104010795603811994269940330620672559171033027885415281752304000631353026680252581272084287606794224214657346286137763979350599695744051847532025348497538595077023003910078251362873037460789416294485739643580314838040998173775348877219023994452307798941392771355191597462122766420487837034235384903129044688696391646569220365167325058393870998681681324318601507160272373704527149674644194480832603285538011675568364275501838623420652835390560745402932221826357634556777809448536932631917951364779589930688635741627329700448878574938550945115454934134810018191479458993277701152554775368269712624091551355141783074455026746136206223502570410489582856871132675078255488761576959975549004521399484974828175398510144179892801911320953564954295942111234263975583469545858711722156063224800683201931242881040430784428008735662448104944118833380602146925178224066513851978763215737539420070556737701678277153718640080817591566909075602050209901557802027808007734604156707977907825347335724934982837946850198572581111771728843113896677770526573141023902683756952320708630021813918569876196273776818327062673175349100144973921366424116107342529837163981010905390725415506427889563274133221176211258774787533019264929404466705156550395810867388793355118954677083248302666519895366921323018887585901312466790683820973692728668031528195694473881798289558383502637890953137495477552056473184950671563442547742921209861853585802960614200681294191516786624997883365288823107639108000662037651486631748046173141060207190219294784687637905086378398145431955756249579443689571185544203308685700781256607500991773460277346633047209114001223750924642270424541472498988127960151640149630223742102960466844508174853374456839448644200577675748734099668401552599439439475370287102541722243025273504195389173631386571717460831390842450022048255644300408328838166891066077905286492537386924212401120294375267560811974559305264353140639315290646307860960914344471846217260404780394728085046760201236645879787847435666222916442517899770353952984571859253290005123550946541036898555046556267433929742311658035274670172148640817728557850672017716184319716579540177630485393403836222939011435469471564022408115345215648389974128973063416191466396709625774009708946048633442404067348935323444218336391022906280525988414019628942564397663329631734133835316713903707683099626076886838682152777507321072043959393487768252292306701671403570621581485935250989135180827763481175234902143482068498743155146514003083230187280167170682728748772318223672111788594945823692313286970558958698790892236810777580515963867953233147258351961077080638456805910870269909696004404213487993991905937466441307650136202539214111915719104109513240752947329632326358661463989490283805245942113577698058453039618952906792981772418209075259519469845171551423860862662423985254022540063111075340373289583407223351259506863144755715637227044932477149331278686509637232040978643192995151916457349440418932490956089412072223089484729661568939997145896128480039032672056417922706061198529271581669718348027250029748794234093494040046145848882919156487611944798534259305107343300198680988781149300253472528963964477267722674648565729449576802755919884206333795653784759607887397551243361175764963487970645081007879834942013108740541195888118148196627045826427548087486424416987452387614584978518542012681061553379488450869945086763855186665794151698091166449062502268891161427384212680519558684968800236624206201927683575659315364760358767270992751038805366651186869953403603624076041627799120751119749024291217322787511846411635095537542555905681197121315262827720760782411339219384062371879132499314491233899217220746857822659362305827788566164360007755313069106003053462153102652996558778609571981976010457536687808329243878875318432407845670211889341378385350649418313009165875455651410503584498332357476946524196855167089934348626922455389866968663125748285780642509448927634628551291027097165641437511359581312240817018165369725646360326109543402748058614736734148122549371639078841833787070981295121835076509165872114569575384456048391907806186938602086673443713442493933218549969454900237058485702861567161855715072614563925713773866808191736861125581595333702944935491724507716212834580032979264680469847557837715382685561619858124025389602358985905397668723029277497801835503173326267531749628386633580138066106858050773685557679298177464505293259997849456641083469205743906640375453950916027016618913413719604316504529284833023770799028458892721972367400365276764617698796466252218792540941047222315327987455793612015253228980854039615014762535373588719926897110462843846871831019351760297496937520936675398842437466801206276118677918557542776872521878082495578293666391491152052962241362074029737798507114817895456927174201869476789368663692196949377352085503935821163219722817834184337288252987193877427185044728082225653166869045308124512128114027688302515871254022568249620485567807520282529563796797320738396544488623422728524430406828840925758867720347816730218449669435666209019140709237362883094995215592334677495898132086474637941777829558756416490976653570889649100146778170399181260111806458061781725181234874961333116749720430838122967672278973605156160485731089539147503214933774654048609060512706627550570307160257591348194882503051876400159933484754900988310188886448653221938565044191889643042246348806591884642424927025015331763683481324668661447383484053931395345865947247833954955835685195080013778710270151577637311127504043004399279529627516086278906407469096618970856156791130481240751359784983561971916541699308477566875307153762661142483458601545088106260116905392183660792431251559218272548161491949089776123027480812212914217608933504336753998297295665551699013141818954703089585702611425852480270992014571978965238242138095515116453836511635022608616680268762795071785955214323294981816764131288496627506266062193779901681101962649554838740774029114816199487286084083656205947628750360343616976390940977452890527053339563239454511230948411429914364383987593597403386992194580706472446687940278611312214322256679692762752112379810922294903309880250202677575716906428344387289256179437426271813711092201310353529326639955040190891854367379890153081953950662885964908690554765397143936891317725924342876767491543570018237300664961357172805112671369035958355391813809740938331225025035733968640831365821371432049755761722297606715314046530139005391638758486508472154052559083023534664966871244398315772432030118990571144622074778188556917068599597025735957523439211927959242831510551342839949589920594016283565310092263194755831047486066112164100681814932869646805277295560241001067740135117497139257488715751133400290275358576947239332564375472727578409827392670536011146736954566124010978214213766596637992546609246788930115912907881874559247543754558462305091905257007064413077849795154778933008997491786609417670232348381549033715953880775400641518901649229737014070431611836519861376338077324688694801058171984412576361837679404254065181598758840008863031813711938082718178680515511335753188726200113827540097760694588164344067609352404269997905087235023552821931314137414680282397940030485163174042474218320879183398704489509163013159347081130167308962755288453415635147562820289238472624448336450442723853536072225000135011102275325078099790969420439568498945900860467539654506493072940239085633399137061375966967120445872596624941756452112717862671343319853284628634268918692854339337789752264423807974751681202687194319613633059965910259313881311085737237200642463704895457467765546761555687229676951865278474381181098751531921833533130723807472018411081189415099644664873722451473412226321979922922920176542037929293862543187553275492440280507547966806794096147223265939745006865129335338843376870387684015084139232717312227743901486704155883772857324302572732622376970416125303739195529725094720537170476226546374019930329789838422395279827968989978285232834296149306481804685773784514963626183376467625860038611624904714402313313366320387857133875357161777516703924794333917124542211986104615744001043124316315621155565697852221101714411480439536955312877968499220608159437240350355434438130831911709328124650391769390794811460890976741758289066005388226422850655654429611288891698895707485902270624135512968761387360617460371089905867969886848961094769666748825486400840470582376022457689823250920729014364865498236134018304280635558967799838265004015131033613693777312944324672811125008790039885809854423634242359038058668640757237055716246769805600773824453684400438622767473448596073971307099494566087592857989910218331987676010647010669989721759771600911750827484218241775164667975744336379608589825897625483157634556141657018265981123880948466573264891755189474624304521055353587514605300690345801854116881512839260933072750221284377463750313443730505667718560933312185666100671286273550123154021257343662146538354028116405702864171892733374858273582856812644234771885076523325862039394901196235716250455149126514620306775802612083255607507630064683495527773771757131918965187064727179406576998792488386342202701497514591611162945782213722093195146231571597010700953778717329646217954391039801628835719644727651357321597372546827922135670520144563524729702478713684688229137286943791927853065629604975949409291512507545542839103755137589204600719848445150406942766851244833920252379623412844506964634519030608917230527388595558003806392444673802428303473798715742251826796068365254449508489532534504542771218283105256657171576350778534995992331806444391224401433249268604184760433828438642367713049724114027231886478711036539853920845907662391242387180210207916127398778075202764531978636192743649938712776917434816179360896899787458775150370581471510509459162334723345821283942733039565100141644152462730881691699682913092388975864457718925987680140539760516538397641947611670124066992743830112231856365725684470414659513559992782458334144978689691380968568626089052201044206434280477324522714383324118348713708020878702478096865689228353732856244535055999840907892418050146402572174986118058730480623697576364729948129538898652990236542170500240457581136176643203825899817716977816290525862114367169984865787677199173721407604427153382864555826011636078668920509161845212995597705297156199618004384208356565753595910382267305495789550913446321922958023352447049918341303128383717589916458767583196960653581503572870910945121256280275202714917240981379711726011588504083191242566476838245303279225303953001018375370204158259876302359196852428247648840590528281423912318528485990320425519593969353767235495052663509986169936700312391288498646611664218876849333868585122410773735416293847978723861335128006207720200717174079833505524552644286696727534115699860447359331643423302977925206087089036510919530306004260872090709597863518939902256064754507210092079976752060736966014572231819371236544232449339293171362055982734896958860080228698525292305168371473732795663882290304302117752960061293134932078364288012814929339432589796546157537881663616667416601153959549975605449551055701031125746653969871850040249067307172560257102643660504802668536056464219290482471313240838366355818398967355520484818637461060350510298295844820110128911179614929472010513982749269499665801390285993412006980154251555417201167281729813977411005852723176003418410228530074345840054505420356226077993113136802142250294679123025368816027579543606584807007544134232916028407754979186158081153791670419475724552908352418978649943815659772228341220401178859356228131940538480598602445608642924170439447693812728976330220010633284556371319432394449284942614069837139219217401937886215883181628420953467275652209415451271975939726525472686460318423628196356655308954372464601979011839828000737487489066250949043735827661102467085332085341345116624750168671031717941200007760197613460290856198570723106042716048368345395544315993990807246980609288685073478854243377361221324075523479503654698632460355377175153970887224717299563016400900370419544730161928895043079562169872259572374772633508698261390438997078446820964785270665491492018034650051875876581966917298369941754178916621280823447269899950798747705061750601734190344276907439933205864664305800872726016807828716470325759112844118486794394691498545995727358687606649325171660731841714839071056734322613916991829576169909959790866982196253280602850281869590442885959406813285395774840406608558839667112116078737233779788770753147685686913542518708728984564613236716909285219649847655640971816612986186968038240897700895469830225524399419787294162472179653826849808954777342313702780483673287535300170099223066845313113342251697553882237865455226743820035475592186675598609495157394542708251521255009797902809825042244654085947024663282734963698687517749605145410440517961503697601028896910716615923446033165279819278961771438217974784092027248115825306772120308892933504946024981025822921968741043413069357271939906708728691639977714458292915177883049820186245122790795139067997672635537109789186832122735103442254802508968378705765578639464297464654187415440726507222675902534045485467414891244660997592425460738303924667612592355790043579958664694012182749236774485637278613954553511711096988285969901956883520105291632258287572806301232572239800182034673500587088163020804589736752268758278870183302243104178878101196433498816971263946627032703854411137420055912725906766036848322630395510469730037869021311744620123441494821277104791175664092601467285204170409110045527354922898178713677548222333460593239288635407632950162686444199894536306052995683818318127686692555532746833833907142164586178979662355975351013782057825914360353443743103952841370439060973426222834183448709106923594472736210205737071831506930226344395359984026181508489374958194083096935141218006157771500367210446282475479441348830488990805317151949992019027716051183145950258315203167304281668373671649642024699898360639701449753671559498828496481709398554652188017310587007104135834580297206948847241663410706300944750909351727449339494459182183653422921769711293428992364906931040771582090614494874681550128143985945994498206225215521656230927760937358943401108369247104578346501941541018824889516004642498537710879183455010828441127755670064610140369749546875946761936106222286244935197506479655809114047912163121964862689869302923944283493945836501627350995070964064631190081288584828756131614907671679781170667363064717798973303680710029115394105492208253829592225765721089723120065644653103634944389045107440235946775373403437290690842195606838478619645159671462207390175639224481276759851195170592684656002928969940723021928040070712000186642705351335445794922528566895060490834907001665915146743248235331781040931814160776351597910574457434057720689827387164203740113418603077754857860529216675286407899479469839777537635070109078855954555198408433917984899683963862320011846986465872206980932563493339124020339715238187451122902577530263871801435536730456450396320153772111667360652641371774012511020729522846253604932169072426876533485198345302247925206086582980721071228504911713793502973611729996896137474636989179679087455949706297008886500604094799846995905465072400707678610858473437815046677993792464264461998330366238969265714162240871846474832522447755499915064250735549373384277994148333581787534015635867705431000693572700138457109239317671087092447351110468234865439885979502502297268936238712977133326955459982666684584996305886369799702783751923265362547545033996938291942926883398005280903863603095503746806827003874373737488761687430480011870619536316618557027684208418595498433676922266908192049113158843368273474843487267011162404053211931967158505274008182408301378286744250687601482935271040218222347049956004627878119641743328394042000909949742607890452757905908151648090504732914034115808519035988913591704396230348298013300693644036613176880273068908725013157943141560018530166243064229261780459503154001667606193458346320907856211615338909833233724104566261160367869771447242002464665169031993338581228132012875328537676108749557450425294954372129342233272581359880003664386595528679125672588285086284898987917724512767730268056232552135131808040602661298560184258375238806751486076273693275059269798394028731530864242035526570245576909188487829803713435989861222143790571017010248417676023195922815381050276351368947339041623017138482119519358416938846107427067013429985916839490039863250931720099659638097923474989054903913461100184025090568280907839095479822219015030543919709701398619121477227188378557831560576621906991734386775635482656581072746708501965633836834020995087345353622093020226347489661149696923446022319034560234928905368349741215258891798079515713543565039247281736170933916909182569440062924097721572884497866969036152771057551929007550657205896079750996824915243525332633524863021818800701572593829362330627103665923324371764772738931683484823508881084274103669331953424216300854763097690612945292358107170785561847154673263486409186380204117961195377805237650135585647650493840675383778240919503519488058794278411207807614118351641775629646465691156606779684384110344633785211410397222932930440449329306580376651963836013117740308322640629507026361266818298700452602616337697543584583684754318534486580633696588054813127274593152668914805185532695509853997290406925080023273992759302033752500155507901950608293881166637218798758173307608452766592367384377307798310308907399282306683002136972145880718368169437102964323346675780582574388523997251811793585633487165268597891890997070361716356493509937088148655802828723944004054351290447118195772086691713165028017914832889080871586364864872534001674735255492517980154735422102988244606751595786080956334441867460442316090588405849229211410794173071981999615565226473553519734852079696871152634676186436587026971260124590158661921206946571638343431950280672192680368034946703998472140446244693324514558630590582966630043895551090250417385106416266472150465149906707130148272580763713621540506868011085511825515785670914903330626016653669685409376016018013934098916057259719341318158403623267061884476078910337673810841862909791160643545032028955033237168586983398015382475923201426824144476666720822906562016063337546788949820812436190259637689499372998269159110432583602235104291032030118899950199742385661028761762163382551680646096088792243443109317963171071334348056356644716922985152349408521604337158656909637706393606512978673823844271563600475785944484344367046111950538627517634444393649896528565124503141190844451583235097123342696091538507284369225659231929772563775697116340715314672275893448144419690144523260704744166207448702781989567215177063364718422483290225436927886706453696125053608778116157359710521986930592025304809073642012607264888970921601560574226918888766726508932716088074443481285706260864829766971846926344854884905508884918214411217300582005612147188204654557170223195257387583052376806729766680769374951270183355053291018453167298660361080179780129607406430423647297214812768656129063676689558334980643358918917519608249915076391211036701992411428743665205039466666594103707254753997609130007216279477143984730248613823200478973361525018374960518043964446822439906219356633379469777269131281475686311356254176829060626414373160449224416685499695492733715314113926058073234973208136558233379108913359402167433360344037928499671837082159529345010493263095459418890354885074464705814598505101227302926921668866360217693782626212205142247535040172187723213695041866250704511101926136496980635030504474190709686753169058403100024750464916755725920813874858921255144101467390574287570217837396500191924546688077906792027825180922727086423226706054810804184125215154361850434510795231375254512683151377968409816420473926672089095309858951042229634500215344832035104155312723358648298032408824609862544905732437107156193764644988169316648125199988747008271617078520871326638437436652702021716608380296255464347835261138223386723855116991626730245349726343556594757746486701171371619246466886142378544831995547826360386782285538949012581192122331610620660985299431633199070884097676062389708030313392940095780957634803827692381658437623325023484732857615191127226687093466466612840798388147169522355852028816634225768454482941681691336714271739258215231448278599072188418037484579637618860476598191784952002761484541136108768873909569812358700850538801679694712048111963246897598084766826028585862565551383463916181209172837626837038500863762267479330671711870467929765885412733102015449070829892190405244507923259572006413479343999185926475713244623081384981968221313125242037218703688772030475610260003677150021089391120901998464246348677003158460254948211371697649458771646962055650098457564117878143085953683946536400120828111912888270511957058877974781278066051937380726985225501158240992587055060764888832785695433215623370833575908075257226235036186715301098949639131594275563762977700886328216545153945252871908633439738678602820337983530550094003159227463074979095629455779705450754962057147186728828335607259574447613081037875898726575719101903284968556247999920729320991061779966116766596464453076330048700822590607109192450811669672336220308252768224215726769826069741107595206122223206028003733033121685173456993222984525830010195385413999355358307087374071221078537883019992004839495416806414141061135079055680015892882850971457622719474010001300891462634434158492526169069364139366899901828521753130850876083428716188591354690729161101354898545590027299309945149606307348536137665214523244750893036239417349030894510959093927515260710629272085479721024664985575087766500693827194543706143096051731423831139269103372831888330267573818243438666395931376483328812805758111980702331747108528123013783721166925262487091206000913572382687735500372607606543122332770120757803052817326378437624157393706758405312060262279847576073325343544069240142977415662432562115436459960898994302857652750507025964893666840608551321393743791178709107651891873411484055675035728129284817210054946309928958292807629892414164188369112631704498456800479731824151799757519141888573481922017407321235675216180813284082491134482088100119609242580789802044021903641806075591886481317249451664514520987328842126585878696705379301884375519908882474930694672033620175877379633548579235636793293203146880609987457031052574544091234436660226752695157154525569845749919212040045226360932836975348050897368815777463421087922065023348034011673601212976946836947976703584189257685714809430783097793386303942395514583952646474290292168826746483661606870915641904573384352106453231703435764196801046790292085997071960528191555999592404689426308789189460915189967428971291360460444606316370806325917659176946520706532325618554758486461100688846418330874848694457555383034480189867074295251972306226752230454808974490536426348656817693256393425041330739058473249875756656826538322656009286410056422027953551665624519857737746298854196979712649867849696706836251722428882984573404384204902449140797709189207093702589525242142942843899486568102168830103659228664448306760100574389208997506248074084156973167663808060336116986661600923733732140695420613477860943509176413770262535438158885974459252714035462182808468970918787082008307974435937096458540066673978905262557118523620057790590603031786661851840884857324633899393352211308215027871198544846874820734606161189933032589588060784727701268769021339180270219616800080232877879600206212771939388479242922145028004918892935025665875411359971222493140688519039485747015756765658837524279790404758838511050087219121414747399971066453751083743214113908610982141079094568706619387076692878240343567981507785255844100303578563314092399273794724350991103319658773372091288340128093894142835880965927442602702982893923117286803916019094726045501481573077241062238767359913200417981231624598328967554516065181599565581936384480674316252091783949744542633802429556522274306012731357873278353690694134583236967612795120509420281211745259753593488263394366497360750845860307151774762094257351047382737869062741614832664449334429518469522354672681671699325735970611991776792068121456093089968164727055189816359074301658686716101343659154631199020753197206112621576504955035072195329448891640836267252702698017061589870936190398543389437445754855423226769200967281696981910651759326133637479613965220511172668469285686935518725028926956977429408200851105283603912753536692636977241955754661293645946365425404717002567601326785369026349934206924160503202217357192376360089017110615440957644655682974506593051102553811635882900420372258716192582363327957111719528680543707219081944267612387723442802013335185107729310870412536731530619524950545607973502365462592625894514572595826497401377287975880320957325460791294854699916267129922696938803538230647630703237948892631117343912059588965733669039599286402743539575798255427967108179884224380072899682603922227787514559754314489471596116497114951231028064596567551377543710134375675653561636808918097793324005903837611964117475020330096319599605982742424147505420118671038615306104510293938376372465608660633871189060238965351240275457749348436693438111116130644661215111864501765185600744292796510721943821513679807464639222080063922006140224894485090053012482134473796631107108332889638189911177916190921475967821741684488358289970625253761772046247977379028863165476139381225565663459129051861072723888831388692441079134404673531091041268629545036315265111195070737332305353604677364446694539596588535645077530212743833613456582646587070245667570695352866450040034267537613968565358441607528500232010840376798886561108246540157237233827001828231787224297310041018932912500598072921405719318153924135291082961408065420362414087467050268995918584268759728820174229524630126308621118935069257914143934976218270228435990931024329921992578313923481341901798535449562513574063549270859989047475852339534195282993669953692093761915699821186749864984530499128396594534117245235303340515713669348852389544811899034464141833932036750944830519790979443224759546174663981673416221993990752668852000681930568186032291737786825919397748472542053629534943974203087878292205087821300881113143239234676245781028835784530864417580771805005318221675784369232792595700669776431209988951572677663373395440564751894678332299610796200282194298923804344354103688671284622623501901250818057385631101254106179612458346082847137235058495944390861692029681415360806504272886387068983197754406284546430658961551290748401240894798649404050883062549014170990051005551505959769593935065061419317510525934869014533494060301064050581606187243083557984069281037756088508249319386549696877086570027080576174636339814535472854128455057603507730539701565752423904466225822958044996595249449410544332413928267791471191090411315275057515102586842077555897745231396437979654716898057978674915242863191551233007180554268482159090206128669719788541711595637832845264784615234792248352902548888345259079992188221585810426819498025209231184924833662637458032241311506184132191937289635419487062378333541175791579542891556765136046036922849512425622497678156040234602771106725150581259178387933782540176659980432957960397277991907978902824884981530112778001614657122808196129114111802401121739336285777646901153841056241411729992838164889971966763485680242038308222463257930216099259542892156731603619247786428685917303970021722353788131299885972378624181868394720010600617840440693933727379790935524222703371627980510842096648775570454115571305631660241850688373274181283632275919059523313627915446265079650837186635432538313591822096990538204814249089735650381219180440762671979621102515046151585252113753010772409223075249435062342072815966483372780557373265592909554813893239220081987285338130977569908287965046795003385602192317852088841778514954766275697445307175475160199841840670300589911638720799395422945896400701994934085153144482979531674781342159567640834532297169606837593956493426730640777819916479513480453206869650937639365531059699836837579624425397784937862384470517767797233559283086005094764187445923127314311548163397101712077201028728609715532956644651045650087081443003672504686217683893850804723931365266365327243919819251379458685935169999615401015959602767438356559606431347324211091053642094519988046626472148556710726435151278166115152787461536223520665907199954885219776677000065276009355400574746643131660962578684056619133335452554363420512805179907975404517533610709341860032665379792574496783978837810514861777134830647898170936075906780194871785261749226640081870667111259074884041063957873765086831428568742129844159721102961285395798355048409670891953499666479599318628425665723902471781721218094228038360254682406934911697189967784379887753439688056193482905626721422649006430482144176544822025199069361834910893367306338482565184336796696922605983128279799339290844120368277508888685924907829776944706117857255193676998799206058311826400490335122733833537535931258819706934552437368704182276961622622999725627387142728419522652898766042832104008289084697023227277582012442064084206063007590181139780238326129466720049428193721958120528086180292459166617493064043877232766681105780781785262452509626627047104284536182941490459527898793871780063507954437835436139092424235070361214669444160061418916717636111266899347206694761867745163171759033331757364257844277859416888038747594972348820399714078811300118453547668408026099069185557784207219633088894764403147779353474534515472186603159153065972340932417555721934112203985330815457428793714738883251088580012571500699135476516535514261566745531553970472251209372260271060329365199324089523260751815798902455299278506177435554033339233623240499932093369769215556011577174653744619422369127960322683586783651483305021439185425813454910052909493684268966717648713156145289432883053812212070940251088472074830178939331450495888890090413063652820409467987814586113680981022385514545309607732614560880328271741784455783420496147306836085021424591981427225752786686090732073421185192516341002220855798473842785929911637065568430995261621009174691594242157594271920629143841716570004860825219138927673705671973717941666023623109146826545836826865215404872360284392260844545624898706817773020248373414411512132607248554996808406804808419770864834877255608538276247687117481035509931837181417476572377331902573776104740191103323578142823867882854223696914721152485635074236531361974144585391369368303302260184767291423482805737556986566634706862785626901485947003530960807753211725933679357477949935669305247968841512108252994917821036265753655201705679194693621518111741560413304048877355052443261657094317816048871338728062339768107170112595730612879391460309519956936661096271801284326145097162815452632541047372462318459124446285235050688392648478719197569493505634002273885432680278048537488187807911799340887047764572354738228698157931460992841897795901448578221957416740015081703108572746235970857647562601675887386413503341179348341711295868847273425844361693839144517935291131229642265560537183861155917774487645130648604873514750642026393020434218822547395145396581194037660440014507763847895474396387573186911075040044819577756208656522494607879091865198004458834896359831069133254848609166209419308905148505097020425049673888326473175938053340254473526591040123166193640502623772613800718988774992710993903422966263091519448092672474903974247425434678984395700249323701683457290276088992891289948219551310198886947944685628797826983817694945005577724366246977206968014389755024424869816555594695598631905375704421615898997328489633913123442291225569488936404784529644850217186336644067909945436719938875336694054680441311260027606889854056474116022095684733921767771084350097020014833823118328028434878778505225288162134944349011412680992931473682242322103219355945015727288041251825849298476905834243401509527573911203752792931497509277768433643218953566743334059645780555230003441641953584178298515973903202648205964086385268769600848968157778778103027470602375617934460433671734234390825462339124996111541944583852460017256806344504087901270560644645198756953800331199402289326514171363946728631998419008205730389154235744549364824736431926419172514281552682477706776411877167480855916185089425835353139543415855397384213983025323544905104544367000102258757907545762141507568130099671957927303016738080109848309703894909033086294551296744521355469403917296362343448842704335524570417832776860208389008187189219983063791886192687959849680310797576535843439559171036215152297683144346408306930178239407794590783700981278331387589247670841138204794287526489830451212993195691708562689376788101305794809332819008525092322423299082883115082494945071058372256230762799481460144878153586035759590146746061433527476313223448266865385707649058525107627573029926246679223972607433960041858804467433839170571798462821094756585819416570509913528527016660310230980100919612536146870103029869599910293179380926509191930860769382702556936923178850851245838926810708749009212955618594220719160227589770592107630446436671277659849407810097085468475158155073876692283494109029378364066432595589143669071016761816622791938571860236657643259167661683276361906138121073538633760465485037404632030987362794953671456967397602275451993865281376217847379543642450490817021379608665223459986572034547839942602519591714937525419298006813152796767633769485794758628001486628784478282728490928864161359008867073543983189109287781187632002647432783678152229762987622994005405838334112418935620847080364894158470769356843202784671804874720654514132590989173422922548934047230160858313138499205165614737304011873407804894694623349564744412619831073003968909380861581273719093983957956390218125995405532454949896537932231815900032626197487787873609932189461574023945699103350562488540471019790528701990564184895371451830485521759981777334642269438221495247455256377864461250041042123672612245925249395598390672983005295421640117721550353340078276091751956840892369339725227678670277778179570776133436622279238316193300804319907171758483681654256257856369154668455976811806221290781900357861034183813383239733245364083102678993708979551689969236496084643507631513805432202683396302165542353069151839786179287251031350609816599480191838425325499480676886365662214682703069407696730654951653685490853729259269315092220379081508275577084533809760487404229219763743297099435740055621512618203260662740215929347147804710084997031169319131487561333089006722629123673246314930833478285441076053366224585658741983890331903783752826736507041376096556976040195876121449613970664118707908693950493387767813143587954573521884660902287730003223126011105275027488242899968186236580922048160617843356596338564687658927419378313663644549087758700569706369644950491483904421119880957806998850943173520192893650598125317249792198155521599253482469618221637196727613684502676534302538053287688585798031601917837742585245951295931274633366389397033764358391430796655135319923893055287740844625128177370441770124159266656435627434221285493084482138015477738407994767092425223037831837374241274436504100841610678924695481367419684589151208365808259448949827119406142997682921489239463976405283101800765645946868856002629432564259079185864951916506807900951220651745163551616818734935784558762764315117906571777951896276388016404149691456756852789083617441440464635908331165293161709846246761990702503585669526720926711441183405092208234815319533499029891964155686183813863597143240984072619256778799114053456251806898980872356196619765346962738901314695183565938639966963587233488329340776826725140078731095417682710649576012029444627874245969220734202760130079433150820365391817758837899137435495501114455081095757120222505427893644610827062911444499697699014706690910461006562388737052758395701326978719059182649113671094636993537587897202785467677527741150686590304390440688602464811164670105688966123049225451056071634085361886888560254021327115277329009328063063041123704621208784403585757321561006294149438827420763328331797582563917486753441729642755692443434213529995310768783553086120565394010329337543994917584018894026961587426084355323189556943534628214094766939320889133662190678781710334074574181272988507812952597643591770527476948824997129550780215263882242783629691531276494586139591761275755172119528620561968799822986133505470266919531070618156523070769865418103453340394914869978456508939895193979095021993102116432378322055709788226742673983393391761355210844636497366885062772062528496991927000940348008544731579259210525763466004626182447046203483095678105679403251199678624831665958487825031478391594828178251054131469360498025192270944366594870222172879206354797231137699501845280059273270898979823847125024102094483878596418944920269157395763624868543727174524698936934340402203048020604969153948463793080525179001384964564264753874422205615943706788396514046189384769292161071000575910331636716973928081163524576605091638832644159968058872311934417152685764722114154141487461830138611130992570238077472226975453205376218410885857209990284551930274882770898690505640889943979832011346380840410690379336211956360916546879797681183499547539617117181136598726546516819987382466529643302498528742982034410862445708655985872982017038530491037421976435684214232081395942455970491813295909877079118955690576912347387279657259615235132683456295861312034812934959775906139424696215501708145445030799604479003944379768542373819914523994464718871714257579287842643320962898277938283727307116849688462363763758436120844645604360445508394884709984332220908066484990038968963934976076939859451383789712426081814430525869729312131425425249161820455034148553175467074595443943316746966180504639393556385856005860266643017967554962971973070701030929462355127405230911958910655543546373142754652075016717838725914210725199899093674936069711863124423289608349707827117544496196945402980726036566853312866367743308322236832506330702783886344558292649827101901910372816775021931667742224470866246133193731655445789547915664500709219554257986382607979885404507755701815152080482677010158189776502621218040584998387076264802860697539431666228088645717428741445132385806201012640190310361140946858256623968559101010981595234287568453552978724037952426450417370407841305565271936352266406470188985298922780253337421879892250012161925161865942770802297890554103420491396276283028473779826717977073644161805566964309437870473144085308818769798518909431134451484633856381318899725865897121298207988838647252752065892825237818069832271674010192125889917826915407231381092854501860685373993174721714579577507200039933499336974205107946546630506290812318962621288370447560088972235947918677606412223043387121458782048722219450852275146138922780953804091159301092735369714197647228622541500170448429783248238007969105310024813017142414902046054935694782993429207876556781519525089615224583672923077144357509546271785929531211514879944410028387565184704275780579430290905102430294198472266302731218661193064040431625672516390272438881555082934965417117353114018427281155980398558935295355951041251181161949131979451658889398771701609218943697262357854890149357716613468906759491746828184275403834610932433786908874397782884995172449197020964357184295869725983287658344258592299565791543967865578765552596326994790043402079378124681016732702643268077212989593459148931226436978787687595836778827882559146238652263823380384138856049213686110282588603815671170044359415256964593339525712789207317171316516513290367326222983177549452123428210556718247454108702155573607333285243596258321830610036923375486260838406458467327086116860785189969302831328812810568231299400848916304836541635234514793428626598181747301012854025626480839767783114733042665472779619594115030839455599273480491846646397109181511807910906824183772079968747776057474853697906340932446137918411739058755081752256572717272075689544335673669244202667875239987398404307671697822386812850576324658330821426642829126359694408941108219636015299476076438094683050499139280190586657192463424141933378908781148160255292380166192911628382130215264696673308368984945053277460976079812775147483534779321668673912290099485008258952886662162158905946169987711633131594084954814140049806467735712180120647290283684284813335034177194284240877706083198792679574466995410637440207147987384391904120902968101663559993746390409041438332281583104759198579242926660060496638661147522319052021674547448528151237971429865771361530010428334379505522849770711934371889837029309835708736885376877334931562440508960237040419398866807163072718256263698600468653360042453550369068127408807910666588524302572705634148604451884395306730413050651099923322800790521030725257225427039304555104068832686117997728167128073753975183679688798908203092556897698510912859306542885405706737878891414871743489876274037606753204644298322947984052024661670557847951364215735453053914422714456184750617195548421687523024016520016011225383240693705080751746374327170476594938463856511192914137012497271407159706606313253688803280053819970407828486023497029251465098088727419370736434908423783441170972397512614733029341383256630421561655013217012406048649835435460083684951334460958523507064355976712662279212948007352510094812945835249833613882217880086354565338033119417907211518640482082705929675860526320834434513713762514020585729475425559365049248990449257635561795091509420007994771963964712308711878750718326408444028066719108683865433012015439062518326192203886297347940183017349639979529458604852795805914991458951026227721721126001524108098692904644333802874674456416002388976514259790576925287021654418075595665113254699292633391244317639795261357175720332470489271335184270895966128872348724158059518951674975100416219672888880704147662921610531668266421780086831955718666144628676202858054437161394231275604445449091390304272447676462802231647380570165967791818430816585724802962050706146074373329878996324307805708648115353653547200990961731433751566181280281331636353362860514290507678231501275279742274104097948018317803194048380901036613741235556630428248146437955208753975560784192539086776967811786513445448997767426900353491259715376732886555593439479181661576449968342653723015671862423420478405416361059562938444741738531586465642510714076865012194098197475669754630646753415198241494245673062474387152893476046016369882847156470172454161569558911569631086489862236995746287475472604996993884365853406936140683130103669975710476874728690523886294279450895315487640864040265356479211868901003937132835368672973280391832302976893264373570849841152383411615380311888397648194075225483220337159660243417451767099405426952756744988085497190265703640241575824804430744016268308635565656724146011043055070233807207624264284339523169837295985058374335078883315671114863587923581421321212489209368021016258578274114600484028696051843062195286257004890064863741555584303678216455587108189005398476971551374416487534927820049113182050023771379302758004910926007068028586218199045475562639463520241075088383537197781705872793788142056792627577534938667127332895516146722568019299861276170293713636900660800173289727147450984157917779936031176293612543848177602994865422366249386591238945468238146776538393776929976182109522204435772130850796584724091375986660893329268954915212001845809574845284342432869003255098129414798055147976959220802822134805787087231422551671512839959085398728982689648313608674289881030143098474955159075118441143331048558036622766771529369427970020554183523962535590935596468747245277833052645681241497749824606837410539930985588274798571610402370264054241040621483282800176923831527119080787510524781866047512758033510497004495703934730721953258396463966618743292658928430484244415475092416508217992919234752513145797875338116530570229877786325132488549073121972189238042310372894833975593857114255937549808705947247153904133028848554793433778233480043926218388040702883541115279906250039906664800190885036694339887641904488573397041047506965106803301774972386285735394756192252847589092981360413274554073485210251461361476042531583594607729666671337884003200878034516913347461274680430524227446620167715132523429498053040326574786773967724327320665857741231097921026087795704568233718667462549859452935942956639211768629877898176867924959474063308887695374870338612372229441661027533564687617467607408067726979266242493492900018139961743230249128836679439966976275452483342971536173643510638029024544558968879928111414132555868244719670058399389183879578956552677146367238733248141372837897288632129147955147463868528143837715517703811883417860379594036812227125179662095946517406102671153346166538079324099742325929412771369704986623565706845737969780462180682926356175103094166895000649038394417796749323426768848446339568735169726792744452997280014953766806211480753269059405689194480093343450172198823805395694264554002009892802015137016661782029350947358414785967315116643248714413058163063912658300908658605996177505142909776522770384898178067131203831149134689360472854496555324494196701637048529339662859403528598660208778241361281224336862131592971527655431986576456903377479036988924247551329128335777813761866118860898183540717939645859876920796455213711553071437739398176359093890820546877658987162027983251236966167640024307286146576990832935355786124475025245870859513950261997778905366351278496634609284116005883876106035547753586528247168659206939775233785451509719803958960950867854558936463195634032346532037226578451803383667842080883339342945133872017040787625470177181718734136081303509902375199082044718805151893551077747666999022511112015373482532550461338995563116207359413475158584126157862745924292781202555523385065578704641874599031886597661142591762790821434475395034433672390567145752758494721000138828598535546424311553553056358063995370853742279726537806969519871950647128728366265021760374698007627764327857139775521751607400537124869488893104576113355330554538031716246601620087944955987456621457548190049529145838712843735470331220950370987650769070197343491297072861910349951999483329474685142039079566123450023924182771084626099954900028266690451228289333340122952814636583612609523684293699466151118474600954787930244936897963240152460955184698996799485616103115948682868545038250750073048319383129956755837288858139287327485564997110928494050392047374927969357845914728593067533179172600474823428589346441478158373492373671703735277623230038486417302580972410547488413161899542277068120910278035090084278657399455228003889236021698201746493407386264111656376739062848010658357599540550055708565994359080985065056011574635330164539767166189505999029251579135126354087237745815683471823217980907335598011593660684352785107247653345334801591640084785552329689610438754171631335356758100450606152517828897562509910717994993393347617538485926006178002864997339662214653011203531173022483166577035435648563882629512864680870991274878067875527585456147495378091507005294258048776330393992291339530902992276473432660165658454175253117207634461492010642502055738472614852946966286668565802550195782103481496617696166399581387416038083460240094896600339793885219748174774504899780238283990447158654319639301988354306937559513484606312706075496866796291414255147341900418604005906041784735801735901596540401063211338672512101499760614698854217402461370146679429579233911321721156188102503831010527968321567802500889517742419570766927457743309871359048949262866390476704896877206988724116802563787801870729125326235963389060435929018928829103270414753086860650597800316975997465574620187630082652783686700044723777655191388559536065748684846025488390325396240364559185879622576129059938545134951617877844606644523809166896207401654336118552485408585010215864186578343977033157817905571828903478883992655489208028208193166958215783453689542986564072804479210648554587105886206011234711778225038915181151911599357200784001181778402624678675015843007428024825720323490944010042632854604541040876080304175028829128411670843490289043540247696172431689580346334316436699473649167801373744124629205773238417745420612211299630989157726557572887650632381262393982437675256046769755266407115483531194583652888317001270300586274057311483934563202472062993383633477666644589820366336425907924031926728921024685253331706073674665119747977064894086375965177120876364492800489100911310055983445614556661194459429226155553040037825804247811576116502922599843216221941030975061593983860619318396697429422634529884762135436013206553294389239553605644770621614191807113638724561452388059588589644555146447094952857876840387602574441020810174802575957389969532294667320814490164530584356362203093769878650154746683027915137859745335734734823619133556985831610682651367350153792136140304575518747110550206763199199411895127069743509492299033452708178219627723529987296635608561339080443773915358378776300556551193703463675953866583401840345603449333326465739530665259752375882309181958797423070684244778608806286889462329919515787397736243260024922488139872480949220616149166561648389553010739113352889280068922321102886156621390171576755241745169939640411584379467253420998345104795304835711432152040325176198427105379059010439405203388700486536543695202969501160787901998139795529145329506413121838276124156859705967340882007423782601877896133104509913823960270794915816955320790879938775864915527513810296241887733307006212769710344865436368883487183547007177456008096968154588435965535418025337039980464595229621701592408518562396710110011553973514795490909809660324150792045568478869835950092867600429086004019765914547595970043802802612118306603687482993529486940614478564368004583232088404242241075449135124600326013864447947723065910348252720860589619853941636364238178887817011627786508686493303883607750185115531918887390915742246208650804281333381017509175117939590903849010085617618143375134982814304755117597274117774718473693654838822915309966047382598475358175706805904341677629408540819162540361783952052603807959636945020221068835690243598789574224745155846063035948722092012583974021584435104511188164780826900802486944867874774615642767019411972053246424841168979801467233881741836331864302449292336806734051431255523103835167235025629399159533845907348696923404134049556308650694039808964370825060740473951227905864112586525202161746177427870387953844251991233190148951082698899165998773698406483900369282564181609251249414846352551732051165309551480245988476503130730239339343880837762871215288279961630985993048028258087410778288825772260714017164241447405707557193607504894738255702542404272020604322672629303311057414071523319036490300988000726058221220468984793159207839151460793959499761974797043882570524784454642414404634138583857069869154059997108405516322936212774319633644028500649394700530876330536632565034875046464857174502325801395947530458609232290967358876121337737859603637760172311862632011934415483480978268917379919827646107887885700676268860143504664489551499827028102828712595646256256953692464473300561835655109148550262719104400788996018922640232739929677297232109429142060898356025101137037151655972430069908356524695544968791461897695826756720798522064753813000228051840770057219031104067424547573981768883312682850744222194290049737561045954488300845589914143009231244320815550588542279357791630298977390827628913905577793537659652418887945270295102133495805350910437874632155339975640755524806864434555498074009764958462168691690290445647204162929200660343609175201293843889095505357916229651538493972746173802265070776996514688432095901285149299261032883571779037255904790282538368528382522114372045264823117218601136464649364874024393424159088851110316474197245250548658622501137838130498403563680443388164999890578364776655629386823822415879565474668098511820835129791310985289056155011725574083684286613318292915935967571738081707512594352964587975482533169474551232949635666488145240952687939258759721679817472884919320455622324991952937088813429181482171371511928534704567217681662682739994458204897826039671655807501243808573116761890466092812549530522422396126382485069216854976323489477138024419407733491989641038652031081788325289116950502306587517942964173285901458094387698012257089665782004350769403423572237244411126887424653744584223212553328106961673788489285748379198538919589949096925739113640317969820005461464489781530287133977209753434819906371583745692581079504261916583958272899318635020192680308033051412484478106697751485179793162173752700588760806219868225315658869498757281828826552946665082858142155108851774142782309654466661246411987947313591463264208239260223405717418926659434760861734066563688986541949583627163485403372396875179342937043542162058036823297883783875808933234819024330133994921783463180202309194344800275063986723482092474810051371664725981237878516559721132847698403287632313747420001045202418042372406503424893837811328793747352799767952140455602823214071122319082458698681210272024533825410154959091482899890126325597782101585709990059512880642171236913332721748219056033558792486935088503473769501336923759387819126057126932240656996906945061918977471153114374891559166571211760797122366635539460952305062431402383560207904955217308954654591796862861597473015601984283531321817471294185479304545816875247234484168727345095571543589854202075671064411404354194892870833845130219410698572347197401378754095272930287517861764689316662476782187975004115648329015114525337073946592163550560436828765834633508495661750794386729547012470155120861434363898912038050594401673748864073485601795630502417155202337219986475425158092620959908515633211870518609505282125964307753317218377358722476552528857453845964106527915234380275787986608828856263929794442983963008905238128374878121414956571367404156746307154689089924964245257025033461793046572908205186932147887532035786132735826855249625847244063699044822444236445881867831811244018666353758352917389245581823128648191825079993411016222183458930352277217926840528910493282040939774508261401681789684866551963050031611473991217038932301221326447390896416886810276909414590145090007322347003271955415422349141669879061973419546569083157611056356173958230475416798969728334737170371911456874785066690580195782761070408377714938186859710739050426324673922070512864817053547249162384720880495115392522812689413904297368220778263342019400026611596894740359667132866552714888922040445106157448452837938204709224699891417692381371420984102582150779963501118577833865450992748235485996648131025362698599664195194852258071793841153121628614625602646490066572019048570084214265585648386516885795083804043045915591220194966899119366705924110384215291817527032455656483638878384540119327647112143267999079888358180742774998208834001139266755793173264891788469750102494246044150800633917995533413841504087023600409666919795326652121255037683124385036791727367616320729448188295227140995190818161463983527982588743850599910985160037180685281250857630103786511950947891241659541890538632396768360407583573767419309581059329024055980107980391527522886173031140303006734143643334690392624982250681780726582158379749859442546959081645759062240378009724203986137946402216738861400787183541044047077468851781034376568703270964995264210477549603657783287842146317110167034974431714477381898747298651151098239553720056411253457257587656987959608138001935516694905300682221483849128123560267738314550305591265926366530055246829043554652336190591493318648191911339023237452035232662161818266217087559317103318943507241273120825255764402078101760220052003901197991738662501469403942555982681740784765646188085938664629123236308077669207413694408690855391884426910496033629948222113143110197567692120325247939858861796821835359430868239681389458944117839308857110242427361598027340172188698126857588664946903784876942050142499458329308303068412280044424720429584880115672102066652540733887835443440863803192516769096220924464649645840437868548970079239277559511371809193712888471847199499886032075506377497405212142216312899722480986228840871441847219139807601124686337485066581518421235294578724720071340992534759789956100637697333909644881682576910297000519724138764172530549108653163377454930367620521002899358593629591930086753655188783619897719962506552009327141380198353661388999379226502338598244957999116454660280303126418729931213183462772219791285314788039018800657246326486161663629761655896559994320788682616872998596749827624907275414746857018111395953775138123130475751530175843722567768261422745562865786585366803440362204633418673803466038088849358229330972595560806025892303105346665845266753379772006691160516561472163412208249248831965742378972525847713125188720744193065157293221954303079589822937176996723012003995409846645752671075142805135486604300114427789712476104456372045049508830367359073935845555500618975245653753795401373056289722986965736672622726296019205544723559714732272551497073045638009732769133285347703302191963993549570083128161209793910828804738357316785341279892906627227315083388953060581294265700421142794325498498464135821909532320884055628814223530344435491477530149920866962871184337881185035190321953361633320741764450767437858951761620464119969242863333378922968821903106234450490220795766047838066036892664648018933038428030256043002134141322734123195716311709502360414530945346389252011995985270168713911085355038878863731817014321348045456606053376694400674937293718861877825408982473801571230994218990927287082310466883671985602029188832792017050415046415905556979047094163969591314356406629569947942421019977530556798916948184719440864400721287201334122191589984674588133366984455367431290575190655237505561657795114391358715199715832847206744046984817719579336962454410102292941657638410768126154827179611666109206440872180419355794066597236064609277859691715669085402018451344008076464135034208308922998909441718613600091826587881987467081231689114207642151112109010934218952909038118917497580595253728909748168595296611123703493253754246425415775413875549522390597222314754543945853821637930706553004484387118571337499459449496418769072210391638511428039239634530178506925323861128921437229004663484876367828955427385290902867547477261183065672286219073482345197387000552625031917899428714713235352873729766507671240081715002704764163939514531460697319297980764656918538775825739089701904070131868959035963100620025005158966723438352740969873968986075400495885997866904980585336115736468856062576135593002604263967711465751784315605056440075991714964622693368553004341230170867091166883041778109080882897465456497373832599901872391652330409422893923300697630659372512844712461497646568773211576670750229356371235921754415691461611230489525015940633813718509168688740888958798403778025572158751895527369109821708585529556170867125448035434763044859862705227293815249693418127099580984555423141791080173566554933990232758557338850471995084391846227364475864971174536441149625395961463504060517079343729657433456008600778733411656351521978531104953264191599552529099131190789293438152030769620200806195991734912427971668562742987854232969758863053050273086279083465999498614444461667950728758380930529879398916439012275580932999599824438586548349746768282604637389246924778111005422079269464349269305378576054642054895879748823598882523710336218309892927357350607316688691031501318114821049219198873924734635118854383779582454477303050165725993235555195525404394385144133384523762105027368248233893283357412948762439135982319499350030694544359060575781799228445125909531899600654717124519904372459418303765732584552226997249109992918510314001645929118267600039929997510674533577584287649012578693341243416077740165386649087799946112158415388465576766344564711845181379178204405303992110320538849871237268332530959679646672337166744926621690768142620438562461745047577206947380120271238117995334979227342486756831361383144820779625079936905701443594423825363779678032414212970727979587242888613187798097018860596481567417128653107023362240063952051108866380183671813515996344608825896295971820526107498038097443005402478321290527795240675666887702314256620907692871031446954240864488174389503767925623786059320600085785023336169940393658256994650978212051144002685228320130300949664782911435202787540433443785484490667161099403670228784493958592903825853422285158596245659274495170133917774071345928055563502893078883186146938348138926771606222694089968483004225692919051918540592647083048408886803919821486457223939009700913103864490324071256967999699557045765152575276984332289105536262323163787463408961095478763454166523353778089213820425189018230205339595912937244732796796810965203509643935230513992349440993542277423895108226850303289774885471517361528443695991833335453382418925034993673341114511288945958048828469313819868236711179472481223283059608058087547464857575413941819128844246685248926348953068445549429858198026118483847170378032253594051882790452547436261234269214404756008213351363551001109384298483273394709602753730106311773909987602865352743399125833727451726355254906321600315112296162463167808034969505646011870822473468057521481570825819609863857319329017663942319823856592617458102824593271067796397481346207228430762281822984024310299093523051930248020478073385071674634474883080358591133263865398595337590209422721736543140820958396772489422647517198472204261353913424716562622104762116087431449721748424317695583561845305440856216259499217618414988140912146722074576698138821980818875430907633442061041943445859859065787665085907284649229552620256438617499958618174598929060311874901651616901131742339812597631332034194969469998837165461787671261581466461923108316681520613456591852366962914679153107052662194248184996562884763120585671688458143068056500727119139393757232778613577659042082502887930848618050021700673596653613690305218148082667466674776754853866307751966899102472409082894926826504713502103550980845927388645914624082465795137642312650642138791198961197817447701179562802981896387008995750235145514825262405559981700273191154269478582313801395035625582542367009635314513983800509128230245247861988914414697034308248414141604368776804728285673473219256064288690662148922118418420929614775491567342674222865069641315039772722145903858602848827772299307363809923592430798508388690282460514140393352201138842202831292578061969274244444728927431932919453302968837640303299937157606045385144413571124369597326042206216323909191539996365275215167657350206486108077106853716613602025449474941129084383709885609918617121286905965808100110720596764277306622480863861102267976642170803898406325332279417502818899092672065877728580063812193482343886182172929858855679556323740472077860861186378847380167153278227381373582659512670981825833040000275764698629889561231627989986564466920238662347108630242694335078488379496197380239310903052556337890424922312861332354233022466317224275792904317616675905758639382371815606184714434950396878800321447336542900448934025712190699058962208740428150234097883917097430394239306802300787207050372609020822905852731148096133602711300725951510797546201264472063503198829777466224189065689439413428192248556551560728122870331026537904118365490874469745060140362340129522941403696699433040953090289887254986579410689628744668021321727784818145559114093152300151688582821854240299730628105482291577503600859028192526701420770477446835740672139550396466996739057670803789107180351052742514985289804519363571898578898248821215104051793741454061580813668312944715515353231225899899297309406909625342794354417185890355435048570488393677244336834718953229182079162705675548996232012508360233676768087639923641457729753591085750389374076539922651899778119422579389754678903025805219095419556523957955954023297447736451393237449088238050435544177045324578905002922018611395598987255539060678997016635970850359896045811525453305306644739600390455417491761145206264216949286446753585779905137842617609076865304723756078715927989967307438993184565377758220247492475774448198851398007018294434295759209525590499077809014823239780172784783108704719772045942445801824245042581195805792790669800531510987353532593720650165069639238971311327337695135792040498011327685194595658125862345359357838910167408023622297075273470192219662372811316903577823501873303503227307999445947023805801206756239905306165048852263652061524613839941349958774217327325023969276331756073013424675712093210876094612833594201656348680277570383752900247528713060644827956103794332726703250766014294239273160471715999894344879724113725613732697876371158642903374071249824593007346507342362703240150834299124045474139205376712605398037658387721878411022252865014139580039909033365595250431776751350486144982543243770929289122989400732480544742898031969324864451377369923696118829409804613075092173437079040679967140760544395806368276590707656521950444752017020987894218192247109915343778077838489627914964361995008519850345610498072341341474583886903349434987379163821443824468330133427096528989718393578485191014828890174124566709358457150739974249414313494479960629556823785975371547719719634431214987386528151057454436689842719463236973184038431538383252477600426030910057310811389896261241552076852160526492598354174250486026902360884342990819278273405560644911722790291858372992604706026325232186525720167563709878019069514269921821194933217967742806385224673145797553239513685204675531176354266312830324056477984218031436839929337944201415803347017790114753647912624400094012837960979333375701154818719961545076795262621922807010861552146077412802792506754341168027728941340169683225648363056422951222505556030949280523851874659471033053761164385353106561152269157092856554344107645040020527423729252066826411346256391804573472493530823127712641563742671430459100327100065427985530945100584205365256742554695492744492879838395360907043013766064461336641419437032227297425532350341621460162015152305072001962336256163890120549383456688805351478942429450828096114130321412765517605859448775250711635694172611461585859298935652182806951462402344985427534522007795378777731337025463247611273007285619063426723296219778536132970754698771638127320388227383672953320205585953775230688855624174911418982480063008610149011738038375353722921000027187551895024162945392981953108549106785784034317221977532870200489917318514197170096749320054620588876729729261641702674905428575232218365460077141097952917114311081132380657433853949180279292813624975989268305165259192765993329285966565852644292730428440062640189296686061408125380577850798140484026514156941614336046363394516092369074045575015660150297151410809293328934956607170899618374442027716246244760307227918852544301123195645956939865078919445681970073132752455775319990969071839169611549231645805037233826006792735551610377567775929644550199649471284172360302877405667875450432982219233928780218850218034559188877640633248817190263825690178131311846572412567067231168302676775835724168594161099442360402316862470837971591999399098992672375479257805869413626338532275036559407182312762595109361667746539606615127926824316319459253974971266103323449882062950703959248764305770091867805912629721350152285213713451713492505063579925826715874169490644166445121617139685910594169774468526288086866008315755987175226639013529602188325753219301946080027863328581343366010587029959190722466382643528605818983628251666350087517466621822547281919940616306498138943951652411210808339957586733209584070035746460607969639967083561359265614218513627899182975449391961486921230870600895011295412716959909680794627977910092464457211251178534037078216185745315936674089651357555119741151804192441490958153227608954860053878478560340666480744629731578622353468609649001818209886768970663496586392677814200804776376504510842783646123257923078837482594320484035437878845492160745834180222963747385386065861647206650648832692695033670546491366428169108340614232729986763969641014493487839917079550736538829466055042909214577917027961297067033993021003538623048768102886562836350312443995230221749681981984034493637971893642712449233966485686933369970451703548146919252968134739935164138826925438272814594517807912676358214112062557680199339892044838642261887628796632872742416518557137577183920503603872070928235128534160749742516468469575910143268709224060762525984315067133176704779865307666460024679860889993866551709781512784914272835387156538092078572491854209014345469197499905146532038574512604493653108907325046394621027141515138979980778220273634350296566739776628018757518757663255517711745734266247577935130083417371118934938559864597139377603071765891006088949844403737433517822636586399853535330782177961621691931685374776334153564985299635330702813994308192916150476553894708433893355462888098449197183738791763381969438199611292014997209763025626013345095444099929969385977944265031114342966542900751441889127768527098087387869609501020507188034665070631418923300934808689371986960365078765631019336027453214317329716448652216464181305988868790537274448839720702082500045860989543726502492936708541141241714683637459346446401464244744756311647580145724046069023536902863611216579806314214639577382750983718124152120128401190775749956546118320172901561628878663428671788896637421161290291016354681731003057695921704114383606457245657473554913307783519645511178544895710378520092165774855134218177852495325680597106611265395030502033595678033516506218778487702051547955465695539785646245570254831913726272776959473734479740538011491003655511733773994239142179348724815925797031350902222282982457993546343294821429573080159069660635081480290349698939749850732012028713275464277037465953858218332609952798854245725485699241124298674880356916878811974354199190477302050565751992589387677350897247806378699536796805321684229092717227965243217991944599659266523075391724872259966025059541522765288483042989535096599401139328025839855350007716240349218066576218605898426005567816491349911438722393042510645734176212333597839791325980044181827633314394318659078824379368762278227916255994776009473808172512603699967921722568327662130498927112716456195549267787901373626051677632402337646060824624427020550825038547226446993619821576516807711913358282536212375618571558605484743239582499608366912672616076913964970117022012922036784951977171181549961129040098368870868560586269699638664837152001757840807966541406914754868656808737427623011799035818127565069423604785014188194791553480485051693072461928528803392243000667896491686846067117318805676178373679032295632611201981551674502250084132743016608373465144539200577324042675051902898864644001149398672057561478454319291404800298365329406433518738182924312730610434683041768067416575182450459953624723022425157163541599727611301816036278150208938920858631245509225800599314501057430599377070858419131843655741715124035226864281163754709419155110176941777051282042469752098177934319135097284684932569966544572730077253530476637353633048144869226341535355499612097324472774792680828034663475014931086475343969845369165810036145722758896168429646437003268200427046046502929048648194819085404346595235003251078859652019890258005815967895051508989093878944121940063397584643694358482371294818816515559949214833816332669562432538340443858444421317408000573281067286092700929537762524583241151468721529769880564359968916092336872534398126427622004069994996409206143158072845714478134765859254785689862646983823602946135411963312435295748792337646938814277121758555449426801996856863655250775897932740654609580112916640268846716236142899376411133361686883376203652070581706831425394526378928022511610520008370625765897036521430564514655272643982046622625115913463172891236566167840691471847373678535265684122758151498952472289406382266282252210045743755746469548179076534644387070972684491716950814657560937217090379291169148530702669068899026591691689202200948442486782289029726314062707689958028064914758807506597442438054529232020580531738663554552831210945081051023772067036803990341696804109009668697499411223720986161688828479062023421147835791576268591423081158004708243930074571488088629371217133229121338602302011853800213503235301587156266135435437930930781470208575051244548812140679294925721160126917477223948322150801036767368902184699103789766684267909794885761497439879360493455354036640104706277560709696795309966004231175189706013950033285514353558020248846625731548298497592157084361033235651426309973388421218631468075471070569461917907682810811634082896715061412893317130362916203250026058077028700511147766813032330371038682800833307080715618892646684295618364333821353422788597741712007842603360308878354607318837636237284036777780217187885421935140748115587584277692897987547998870938844734855559995355093588989402870833698142310833473982843146109746977685425555682043335128972305982267946732064217022500765435609067048998052852108359084079563629261703728128250383807030448587466916887026126665716578931556160319807102034037252142256289733535608714456266981952686798603397491492089721459605843745831115915337828541959617427907123827132505629576288059692522874349041513613543290393098911351271632793431462190984198771083444391880882395215688050944303425798935384651795432843010517387366646182189891737503503902647060917039589723867899732722681545410645356687318656441433870171025353402153373049323081097204124216803199517556177539900744778085386919553286131808891599357077048334238351647607969048564349058039584101026066023064733593214455546755444431409200231993483425640981524415532278079738594768499434609478211014073997847980345179987730938611587225805712484087942999002387927083865515808897013988885759132331687313568494169792474363189072352347186427873232567171030436625311620206277732925265387915725956870969338592279898373683903808736810477112490364814946369630763120275029898017728690108979907002192974616167615848153089689457706677290618015136276102995094805177864926356132071829708777049209421326769468061128024069529937383434643183191439275391462679225013389201875724880138215832808088945705829375734666982528159452603545077015102746276456911646113170908762530024999691708685232633274041874828603496630347244017460396665949355174359550842304079399024470383672899289902858971912009547988036415669428816256711026315438423966489085484059155591975502386765962502768179812230267250203516872718489808954841625675176057500899841210267990544440885085357151165233042625247824311085852337719698065806313878372373149772152224843993485350604126028914573899626713077036044415947528460142443966913146844619988595249117071612392597280999144332021185496863786296331161459114021537069458633519112658730154161371184391428653242674604849494450279566114775133237308130915978975952145201091244639682795665186739794859577717675870552099584403166721842568931439139596881182702654237680548167058886661933270077101928986611775166764894580122156616001297299947042036438759753058268593672924774231876686229069885776624785808092986201253843680384887436997934514137589053210575184934832691549157029057500278887738993011439171072690078162330438985925105447688177838905222328566598698222352286375858050498471174324623373675217361369131727707227418594270180036557406143526427175996398354718432125716440040352046688693521163476171398847867746134992543605072033265956726948296282496237394079277035828828795016299455039848696617871487800846078827516510090341197424978316609037978389874317612837070728255310308576477430333090835867657640169544702302575742610974043935198643576162299651529609074474124905641241705050630670308764467091970285556218571911898783112196635171920339415578034343966417745407529907959820455418582271765608251426980070652383457105878202070643618367447249195593575328951571616567952274335821343743827588349387818005775981809546500341204835049234478042188678098901698296850651655995147755598182783118671014711853251992693992680687933555389176918944956773709803325716713031396857131058721074640831175509555425776977238359364834917011421451280194721985685825000369844731702309880778363476122202041165073413419406715737634493848840967552517378789395018507868808449927246115520014410969791476782212939310695261063561600403974937081691620690699629215935053159494421597120435441483827055116181416352832270073275790793596982116348730203666556529769583299362209550698443036487219426954749026106318845328810454470681339161224481812519741306606822092867329455575937917255630106764721096968804525212288056591086982742817950523907123877193202860241780988031323254566412331861339272166290996424205081814995321054395952076638477411323618592085617332798798275128241511512113821862980355895561873635331436323186330879650273768290729364582548872389482253460047996632578441446721597252736072053136390685672366889477721398071213033902060706863483757070795985695157062936270289684298222010303311214946224048221397540589827564480297031238610585386299472248239952158468520737485904315136222306648892892834928639713115672493353070018283880789919762027627285717468383172451977233355224704468532424948739898158471795277738827629348686398064063942577097588731062518857908339061335998036958526349006357363146876363060714797653521426052007189925231313002147109716790602634531746130208512282343390000363057823525062117459648863334602293666978590651933006802296967163265213039419037402604901731281299668166645431612048607595562393818414859726628300527399539024873642793758321500132340619080094656945447091463299380879888708572920376872059995648308330913599222448074212372623984967840674741563228275995169706381266454692465785078674215440571720696898076064485446156067440311093991700905600307090413232842627595892294921009941770790716636971181821975109026674556524205504669189590239570168091761029729126756426964667041123352722815061087411551434331063318488560463543801955426334059889065656323615700702007577528229422996997008369043363192167329224793399632136543492437033638622528215914219122479268021784712384678982871131728320171773264093132934144407871329931492513272879237310154348917759712136495902340456566874038089975252121556175014347731916209121516441924324059148501353170992759863582346839502802137249538220636112119723547772575114694758193357507859379578583159782597246819339868118704641166764432260289808719348849074997801529737046288489062533595148204590199762821417813168069032818201689522324473909052021299817611405421690209127475253060688134416325208927330506023212693097186114972043800261127063041699620601924760858591693231009605651722953159020032024983233028337902865804402569940300786833762183919508164264218955222157789875773823512824742533776532355531677129631521910088345185381967886594997973383160100655128972725336497295071192646299737356537822038367368003376106333717294635589584213983334794203173397890680571510129804269096616751261920022986604927985993664211802525949500677097964071845631944502185389469192338532456912204853604896824952756400457511788968094127696330681926553692183926651493672249314745749276712443027820870813787424340604295911071489070188143068944229155508712734582055591923266593365127515773754378478083955245854517465004820384749877137753849008958034238609920603722919813808991381649642360339110395594397725837419411029749184150560053291998716898683053136233178157860775340565424642170163556389924463258038540703588549142671978665578135891924526277680804746832304829346803884152291841127770285809781100072160179957437063503082842887218624051333834406437451892718291243442286357900211279567493822726697611558987836577459903010182227628674731815114796954486881467660979807476394183504924054276733019142832868697834939445629949876862542884072851970269696426510869812613824676249410793985036409789902139226418559170603735352729594865591788467647450431993498315657888654832218990013217692634119499392024057158434259099133816234006624228613978067100830455971245033650346241821396672906407719984111260013437669660776570720727105210618871159020719089961706395117976593613956093854583423546349771260347241345470118801165506277169361675463770415648077808710964323710112538241962549412826083848470672801271113277687186535742251504526479145266919500828569866874142557889806762895051978404753569788294646541345740902412352679813602253161470358383265142222762800002415204944176605541416484103115280633780888780893975788423627343291513339842040202498411633262258882866587650418369230237590734408302887555128909633806701643751750978163423087288934650624311092666908940654649929576748509757220587052584477773888050446954006409016707689884236528621106600845033607043775786166925890081169940900087084789310221792542506164183995583785010852801296466176236611094571781449916513626094829877281827732328899350857324621340506163433131295267911193286371445252023223836568096481552227159796146827700928505080101967158805027981741745911157256647531141148181292654669518623859061843858858047053566057533888572884043789910866184907112515041585484415706415519983408507097502426512599938239307513335174622858782316687956019182455535931716569240642360308098124417764267072555292564844942665272090886675854287953271548266298914039704592903742663405513441124470953267849650308513068331356776837346052339148192031261894420376454458871242985410006283067586791643094645309309000863391780211247467158554958325878583313053179384785356686749126961161343655610123638750874009825844909630976575574074837977479063284120504218573626636545986584553931739288981377075054273955720559116022446709412998223370233453027672892870918751837570310076012671430267109086078078607660519998539821535841383033481860503155119099510509602828572622489271656333036500424427254767406782333256447027622131735454129612179075953007789352869549360133695034627915405075461782826478884247924801497221316378442139568526793745521642593265018958780091581758614741072709241288132372459928769688473121776022792969651153816666753618271807985014875106804884302598649882386180199497271482069556777509702299241684982790716622231935093327080004107334672312589758876447608630867696938816865867800267029116535686221092013629631457623387677285062984151262949471616492444817318391846079111668593841316020697739082319504281220242009144338043973491183877996268170396164762048212370369416916985027390364188036986278415724281406648959189646025705518842496882077139363474346890085821475374181794405420936702427676469430203928884044580140227619827960670799204923958214632376840398804965427708056082176111587021661255132338439240803696617206498529816814308877405304410337427490067798785150323811265981305772142343049537540021048109033416722430231739543321663768337651438777025886174198460042897401167543757789861317404117140998464493316207904431973132142341366842071835490245479415724835472446536481451409019930132190676950866939805350834948145702744076396229084803740870458095568991847353811874932419569216880529387995260251817864592584796842958901769456962431530010115843649962528776908200847012016105839572165635813254418639830935221896632509859394016895916213645901381472422155500818752897913432582195423503846563643685990688107625358747364724633618381178864349057751697895812961422626803446405471127900367742590410084035916403041252901562494142473766647158397980292834055086642495276263679987520296011354092629153098898291478902371263083892079674415475051453960991654898176628739423613459817373063698362715933281835774479567922117217061066853448608805370718932525259401981127934001480889260242545608417849933036995603252771357469648938648866135832619083550881998012001615401665084310240561895676472045203216095408202692242350373382208011737369794324213096125346037656664766038873349840791839307130838639524786531553595213856951716765903309124113475356967561949712552906070936443723991096188696647472360489137880539394214263477351731180736655989621306804066834815326727547114940236721780854474729288136873785135092665447372757647744774764618956251566197044717901188957203445762605022188708860881847833072424275527270908109484175226412774682998120591592266947664878119975898160088738480235075868919444720557106451807836020596133520761640178441705539842107301078322807101902643976366741573068486397808186430344537942797885815582320084143810746479553256839134647800826107908288455189762520687705296140554275484176146725665217313644079487972498107375037564496055150471649073782428461380937929689174406805646185905653078073706467178262111400935222873594907235455880624081104332394142274847188393538193863225717718832664325546873597013275160687580892073698261825756979792851249187137677718154348380379950810440315173449685382811372483734054935670956116211199697912599235910812397452172335857921189237272074976331544177581703733409865122585784656168471645162516033516417200346005881290443311879224725921655873896507187320381658845613771244164292050360890613451089822337386757732072085945423387460809142178196973921690147294934067095675670226486574634367033788752148802663129431370975148919556565445379183737916587089249861996220894813625047161402299853444128233954379934478965280876192384886734878182295174957170806440163861651545597299460400263242900166380100493471332654213163361030184169635509362590266041933069540453855689972828949335363012604532616926567219270175755796281790660139437239287639673400405387142946093794714463488182174685442075350342154358559278308550478775910394427346872672264064194263887625134741354839213704914389464967161331398509591064495111884909659657288651404139141533338249964567053984392766488884308291846839619159664721650462933829281163871527692483065639949113396192014260914484089294985008532587588072578536768513059473649526366737226495211749517592414024472701345192121484565006596020067811320020783595247270133054097446291537974365188565463579050609131621794600375794442553059427994517374857800639450162990103446608395102535302596385876700494844887259399136307361073720474113055001458420090435672336207300673617358877338780361626114844712344351862107928430053608116474251595721856634754156115334735293379870470048599373143304714822271563409344119939377805732771483012170275868809972856727903667018449886710826744437061451984252853567236608243297055763758184919104496472221949177348413718408206718654839486340035204296968654043137139737741594466275432609574640856117444023969606663248523769220225354618244162644128435701110964659330866986485297456094378100177522999642220618469445336091893812370203670003840383242542878188928299016076765779478944653306051372288073591605735308250043434227959575563445936611589884272681232922585265473749749032393309597690275681193083762037922433813987772701960615004248642148952549839407431191408617370579245445059012575156185548887837188777844831569849739147650932733477854442150376681834817030946706451914303332055082829835648254460490208632515076443545716041051300770220163123274304941718624872535415155864906976753611256680881037939492322887358391063053941942716310064134640193293193166462487939337844023133886464506353474497685123025061578307480049910357585357335372781067582395747633320621258091892594381252392664875022083302778043318472082773644451978104754863602764696702067857375204704648105156260132341391838986855153896580580230661911535655872094627243517089256705074123225964260701129510524389114826284577343597426745455113578518339783621836544223183817305302377464698991377096031580256300036416904819392301397606756554082735604016166439821398610749409038986151249872482024716904797330609886602300044704244280892958092023905693490587217033101866311827340666121381570901431774742721606339867299194577274009384310292515134500196583285313575712930029693564828488236356927001857756347589658588702273786830694777722542654568487440267512331785517852324891266444830396267078480721043354503029479369302275104256767808121286733963011516656483192904469360343267283418499427178563302313199636063526729953532704738123343955488631491266701252916158784351426726463340514447920303485116632808735799848425620355877484218264230522539511506359802551532168888562400740694309176983355439179713994913159345247945559736703403105533833359416834295460207013751740504747192422523876310440225762379022486212350693589194037269733233422380233983046916020958690916826294683393044995380461224387503308274722889753838261616136708047836313641517117218914222092923660619175042967549490216229226158853454247787755224709377390858861044946197218247194679494861935067438240622089184924970234419980968548206985492132681631757324194852239583349294886299475023092056012689767187473537578498740093689998260670959840253375220953741304531494128862003005804470300049653727433065528398014324942059303462138686101821141588198509045034573388181206863274629785662529493204119574523199463894049499938509349703076128760349588430544308978297399377717721427358754791831593745534653579771104451276223418393603459813279272538611072393982941383553322483215251073661202149341456011778399163605442666535806030283026613708673269793747536604427992113344557423830408547837012751378528807508110691225117434449504466110568406476928867796672621111850788675663558888100586822160245440702941959038026474373148367890512349169372345704503605520807396698991876396606921661195470973295557230988646761534402931560250700359679315075730478853643072878522521933256525323871719783480104761652108857378952936612745892173637665808889746925621144825189680817145210095749962095064616617551441203018743840886731734073968229169484476378928936161183787118524256651818176317336829610899431071934245751422816675496568989002778020242965053912962264913521071911912396557246581640868658916758526316554136674808588685599773904555743445663348598501985705785767563931835471562216122044714826891075627619624837678984659519324243584479044029811589940200131635628489939554332464248876054452404058685443892576223285998455586407770263505550423430935034055788780122256765602440506446638371752521139316984921359070126708410965115528141834158598872914052867805784928633392701055869288557894900915775096733424877556337282310128075487014394901460669975475768669119488702751026925319483339528283899814430828003270416408838776743756147702557616391721564622541982650290985021795386946786519654704831680364704620200999197971896387096957305339202020070308294128835187735382272209510603395917970357737559814782067728132118066975055487289308932474326406895742129497892893209605661444201462803892848733866275589012141517502977946034244467564073309031200470365990508594750771172854601664609623222736877851837944066175923140809940760471115563188770536448854822905972341285703333630731257070820966784436460397179660152192613952255154861489094068547109233959277289270833119385107089706761540518854955799871643090672535795753673413134684214338590770593235578792561544015344387490706829170751649714799017462719137901552488631240838709699548529210824042248631955896568284314159731359820706805306802972642367409865814988129635993930922365148331270447598667515823186518061728779322408071221271681893382806480876661045495448608249752103469019210036374478830580326809220504306133780190776218368315397733373400122844510441944639601652988173201159162762491666986653621267189898776121879767616385286583202672653263706098799343688119656460817278110356313190285721693921887709474166356440174786472570716841163034887154645797926990386473001329233447053465935292898206348085580410075267616915989959896206722596289742588620505830428625633858033160910023891883643420508259214160184915285410534755301707677059932975539756295596675714037464217047867135784250950591528262490713987279573305208973184934257746147813324082851255143298475483448225544106153545755042357800569318349718538679171708996014417615325122337708526386933941515163734989135487652859390602892723508193035412740919630403928399918176421397404085678011827927507752681173485713432455042655266181737795846022001706028351209121268626114932786073810553856949363244362032998916186899030945882873031422907259253976579428086763941550399103829464673090579788154405702695016708123447568184284012143218877064440183849313342839897930909895872081233476922847276387621570531219323598949850636160327570450219780475415195502914843359090545703349707425173470615969022277125012052689081333064906999660730320141018571072216907872460443028108586175427348062737938743527158334951177731915873296745395619813039891698832892534743698575837227700085805542082382500782692610283028365409717114399706377868996973490884706512757211316750096647041482318001609118692813103262841503832924757355146662649129392100065290463512652134312129454088012360539044601500436067599264970365593357591361437858659681344374729834553942210349511145979375727188935459318571945744383155566965657858157617197357988242188144128578492662375845573065601538074173662662514010132301411677188016032302201146390511553311885317805053024315691443401568310683003292294654780873422827591813013986477642321397547798531509528388746610974934733395353489636393773471297031761667746640863835479430952941535695921095136879706510900010210936096833494863605917745392133756991773908270428762713706490988014082932829904486037717304713658542189416112613778880057661640598048452717577438081770563858052058869209855573250903854696706130023483912669302847014301231747874052012092161009407840425124186753732883120616469182524974430497466948404875052708541014944195184898270489294365282642530910771897525428235064404806645570938213066498618148202108737116621006884633372481219761696812348538265918849483588150605433186304087840813275479533106593536951013302658658117343986231165211578177357946117854954906865166192566031097831417768886635318709753584361803652145589931505864805873298515253510454186213897782095945884475191065135420194362552079662624769342267263201297148658269955180421328241934570424677571099644071372158087913023128284726294155997181483810328505886630481658732657285728472145890224340081982669107057942459193394456380225488337170979358195463740874727825502055673619263416537989539416953267959842803092586820262505921828108854726508891306600127916492298304831324800612295406503787686832868591021445111269262271360119573280081958922173853899076534266481828724982338383506418980760646753783529259405425229991521952707137471131356692972018991584462222850380453964130760166944209335364674910594720587102302463790813895374429428444790264022130538917312125852422850001959151290411984568275350932752911257129090053964881916003529487022793850401988359052440420998287379091574801979513363263542492515511629414132353244802641815281995440122350649402912864499626280789129687983806120862884252764556446705780507646171477559993805356979464835381100591441061351854895187302728620830789845828838519525714906848536385694780704002568835016578751927995199324182672251635367534307209897446548762414735366134531221474221085580854510074322401949288404653918847761628789483616351726253661061282081727868822666856293430956429735816139797435881782875728264110180524996657910973821454120091237394677790212137354921888921117842959801891892740422724644506352011524944675245089887026343324905531761279549197380374021735494603025997135646431470885934312543407275198909738997646618155335059081967413140128742247194560488605043018411383436588198676376525812949254963315472866170574284777528010285813197513069618743992213809975606616371716810189868048638141261302957134140960285042688349167334784182763415305398338947796999912496710915759777872627278170223676426897457881688203634551029901491062611673673382833497280426914396298554587632375655229421036520672911874899215156680976277035435755966345491002313933378092602143185310576566468101278887840017285272191375512417379684259547408628046828315484946852183239202708090412731096440285738574035434775783890800114777055284314934367495659585396938993932698652818149139695417256511205583137486318845119608472479338396576650534883165894801538428042644006836685737034358062950077172821246222928316500615249324850880523551478461658615065932729623681008687207215297188274596150670587102954558968428856221131312419020341208988377316349873490036609418196252777004387955942510573261949207639032178704986612468072586333212006497824852380044630060014978460856301301382607496686472666035254835764592400271585753110537728296090931738930937588376255812979326616628064618822575918583554239096451208235465113069582678096029409921300768176904780365121900291092323107982938657952326993740895533364418801324032670377609629285080617070071299779604475249503028418530806690807971333118475381599374105466119591388333925762251472443670883711524009474615729245030130607094493703417271130421505738696217731716749244316337836980564829972424215868247516208211988989258635198464937535670717184072887404064397099569148103260041807733273899982496175538100306188558626924100463467891358003040540589338637809519325599379836757978762684660683906675208386685750348177560217406577435222091061124351181474197154220495170699252729724052932339509560392687566747916868908375950798291514684724193098216064248295668111925722690339966076634745083288097564848089610309984240826367031745538898320657700012767257484934383116220619085670438171971778511246068810930729124068931087605029113953295822596667149348343572725196445610978281235461405640235441555485048625984608872255500402252214609586133551573896748624796442678858485854540509810902693767415043887534168759640093760803736330908920241665554630093596862550110340747164974361815292169929595159190577281019403275812686292198621210149805245074541612197007681401235454153357351800903878446804688838627202306320290211303693441559476076561369976119696054258353873903987732871337362882800989768484109989167860926688354795275449700336161842947252756805904089915496236769667326223322886528066291058756146144041934995117342228659396193987441709339234933476255861281821425536427548287896756058688669606335642559572109575010725053710780934406984649806535870179674665066220634250645404116604998729000895824183666369512036607224115738551337841453797978820120783417325860342310347912257486443711479994374816671776256832229920265975688606871940090892592854425107905206984894090061193898884881759423797965835197429203029814221753569157484342378414293748259301858305082894962987528056549664462414999495937071088692333294966721986967336286118600868166409921522321482950747319866825196692816103795979629933242230931386586266222862612332698790437358312408387437772947681898408527549471849580378903348105363686431895604577440341464321477873723032592569602135125189975375115936720973879908532769725449766918225629784467216843572740890546666292419959969866036471461352176655516675357492125330262183425739541363730452166614114544371764110966590842315906396798351871416680730799113433066202444350319696967799121153798837365346038135957867401238694832850077813451371241472624134864961992766184445394796757935478290946746215237001391966310917176358446236919380680122941205797072365610683402670743676477410621875465056855028347847220268267114766886028154102175426716841888109540207469354886769740223572638583833178610477465809034796295006876479081483835622351110981947749007542704142289144827673852625144318570262625274329843274517328492987390353099903598405305332706948492084990641444578850144972919819370998626180559388073438978047863337179399236882660663583041096784345281617396624319609279725843304258968303201890522989299071760831792505622134249214680828699608156686236830338513965106866030093901101230595762866131545107581475341017450720235300097370315653454790193215836349224029240675388642894435893121739159442714300412229471616802477685863164686027200020235730850019552051169152533593564082486292792408293300666455145125337136017289280078187749339801997859128195815700807354128134396620758092872477770490177981130729990995035765718465797027188133942903571201849071066238556660579580963905118842973378965399939559355717687609096476004895822323442639911445695201746010508699409662998318111926478326371820117049676274222016118342814813635898495093506976666808245983337413075344256292923580084365242808907865266601838563509926754406177198820055722692806469490247184917850029757015962300660774115862571798847276132490863097650991897276047151928870720806933287932836355367625743704063697227411059139497028504893499447272537411890923896131894195458216281201668181758303551027043511058158792502852416800739841827315620821482619202852143235505435798658558156517456436051317627818613458328341793954083576475730342759595196611280631697699252060172736660543991178100759853409622104186454165363718283454834254052094533181193351775290256164055212054981629856756574251777097906185794587626220830090688486163297761134577720660473250082684821162487867927276873974281079459339156565683927186140849059327454555817989591262826180650250114158788375624071558082495102409514028335094040367949383205812886990729867359846802145449282754219275710744089334843843713793966976620749155054306310611698476462798464950291008147109446523539094309542336962687616921331301120733661790369081168325257816501104841890802725993996367879097276784150962562053804048519424988280307585930072332232487620564353784659781887067678868899607312368640958403723668851321319495925098317674111140189915724947686309678564915036135920486973422443634915010112343788272158820327773325514952963253921623883854258706983066627378166938462601518920716764498945385108463210254156919891669335720685139009443429887160406392926772232845077470299918835625219855147755374545897778663642889602316466329776945792137131818845927392155868763051756593382014420858687780272186811502733291663155029643233426334002613186219417002269625557450254598224197151439312452511657914034693775113469594909499114410658931355671544018755553773528198178400289381813313555347640585023401680415345861091359106078871059434691913964907484760872647993381221668199300584565737096505784753601146078921682552274172920744029130945525563574332469359119055239076535856201324661380407543035078663000598706269604100849047971075122354996642683605709390115885478038230876322369467800256746891881434027556406808822151369491041144090802023141328849155531108804408916143932745699012938421508714329682166832442684058213485962337957020872997566961542762434518733837066176000027916530041884453798718623200008502317310338590764282046673031858301840401685077277936125771592609500944302767679043288302557153913991605880224200509393801203084489553466414374242257523774082048403325735592655596845059734765754808120662808419997655944937865005293971105352717524694550530397621271264641430329320978424149557603845935659489538096534060141567694875007124060826012104165788344659596840879288469842582356386701270470690415783038665554943370879337345531706480866917775697211384489671320650719081276116740095125349159099101022526593569723934441184031143707767434653467521385035601073998185452510974580049244164051130397364369042232445888696564750142927337168798810133261814586284637431859747473190627524656054797338410147608821807007383634936448287822514038568150176640215647032856567954287364456612431288340113457905775552924005031779598571226687939608268165746358693413609912848039138050204327598286283549496217357290266637812345176129112089525775029608784704293729969453363424297258802116281823599743881260326251188364720224128173940845043026712849443190654599012060040788249020328446857093343800031640565454756679313520684277234442338788653233612766368484667797485393546649314704336488431165818828808236250964061833790765825010550267545309352820139765311897412532453324269093194414335547011375407843667526948150986541731872126877883628734563831746724487547263557460630971361444701410599388273097251809683607024249025443785491251414503140100145815435212828119223250752294584160569628277831891568511025203864597891371219919327924771066081932623451340965025749800516471752584430698327376583463474036756660619178069941979109507016105689709904217809765019275427301738213651550843427818810941187234020179251069121994722037406308215323257893444273532282788772736278260160854228561189368822687649068635956689098000695953607277967621330470259329874221791702687006156255607685623412827471329479945876799420941479666231651292978754496983824564400953354574311309068917184118141913051800100341545956760717876901321234729673754790570059066241484963913770071120804494111678284394400965634919074175220280839160138365722644998581503186095733610826635861844916345832500007612462595929896900750691857956252730330155352485517332820756920751752817813789094515419128146335270572718987073479382298959962928416618599069528758338795755167289302664015122212543229170263620423083675327701669611642736357228998700099419349887541414031669156464279635122032688858926694314467933891744194869477442375104205892371303569177756883350382129524535544308810325357329216294316187826407814357227165335851012771553837958881235643968961666243796668065696632053004254352712782463652565978905002767292376557584798321110487109167169806877475583864140154713711505410676885219606479692115200548195911305562916396717632427038344886734721472211482992404045732400255009543774969352238449644576301123171494531790347280432270119968749239237683254557986819582533772966715327129381350842259464912043822281212834878777907914900276823947020535688684941660250142012035103027112633818447937128610722002729530195348816177055409860334563994190836034648503022770389660161998723923146475599553750982300698966439965118423945921602021594583706640534980164877270109425069980471475686286322096454751480681987415791186902106113503101622041284389690417230180929913442960836612500307042026586860527665518883303843529415906099798419217964295219352360646467515676553848225690392262780655290629838341904203216879555928897150515925329558504310399046373230141833556063892794982985796146994791751667667144155361778564394416882172770383624895714027987294583838868214235510314225891813722798444408922302036945068072861622274878409709556461879144418721104539515939429205625697534793606270293011059998869065731733905113198025668441372016563252123662583594696084732054823513526155762792838299895788520920329350932625859317776157162974446989749170280251606297885327942434535637571134950529632887360410753580008031090824835896772868056411966220730803032906474652723098397014293486517379097786610873576583076188212116033090683006285067031590554655993120057170020808557210780292003236858759940626692746188158242631612748029939498317345634945862121767735997682707038759171101215899472008196672946092670316016032319488410624010170462221551283755476815885405405696761174157084636081816650126598169560927031511384412067709019734663628816674848476382595863773912804898257242136717159617646057425779201112074254694749403279364465405568220376094271761988166355770554428791518680902910119847589556927317159041396118666803810294644980136272016625170968612541303780586852700891607285886805976820455830403400250056612369835149231409731550176743129961662306266339575352851741158378735248615674554674720047137091354835110372812195660052570470830948847297887385778550459631039685894334016865409268286835574704813431807429154370148160695665151638287375186241684237093776105675892361482918907323476934411464232856155666496778209203122788450051735193824992078526218869745435989854267793406466439214620785140456118594077389445111745708220034294412107078524034907481092994752215828783916234337736215040306173559158431714623801645039023415610327203290997385792075533102559177835344057023914025980424591503841523884621946539824138132232643540929670102859150525308545428263099937480498922369124364056919921589643323089672471133052344423558038869341288167860858610993922787921568320680904377545958699447414794917649196418039930986094009453077096050457402867921783023780240793571221562413890367235789386249894977051949768782207089990733277053614673802263020054211566981621409316124667761965294200737020695293435277379183894081728478675589201323263763959257296241744231890580315543421481770084560274967815271267131107676847419871153571129429958040033693223630777917100466214197823983687852038244391526901194327218073485854353845974880606140364350554586947538841262116933727531008940518688960120202631334349295307451087135588535520211988420906949001327293079225107402486100465786997666137090646903197882274075612786000354844592965257092678896862711904292776723675043328656513064171124113068981190166771046837075310619758958767428239269679623847542492090441297978370643838663818801554223548879058157436023674451799022173050223689434065592570456988449246425203385170746358969575382379590349956203951626234643220649274460223605266513114026581717412851452808601580570061013154248298540003096423484581836069906830278440749049207642749443132547921987867994915517975746490914651464191533722259385756067718277082295237591055337963664234974050889834566129011753361255884859135728910348891677462621269101046373092739284666730523316627766540312054331461468878050729312390022181267508158028398565786666959194991327268087398845861674425050214296733505063021338443676517018682923406053303657860713994257370255231234963497167908426088181301089364891035684503137339393837021494125679223164449344444319767512341100954433745709080398986459521304276236150011763779791234307028954765987121627144333875604751450976677443028943314353852070324155489983495279592869540147620405000903132158278828806079364374239023618562154004867246466752451667674936006747655636736871248295769306650988785245073242468857840312729295952718399845117618983716739096896021609141430035143109443591149284987130936560590803860865170682432365056296293127562068837378013089804118823457994958641515652691000928213200659199580191206495237684665528501797469874851848668797260322019187225674737215423833179657030892877089421302937931150963863420107236751896445349552637764467718492760956996608511209104865387608599918614801779220622663123376801652267506274530735615736417761006228135843108996196611987034194935844160777300375752756195854927576588295198381796842307130526132913960692778990003641554121754971799616785506083179557780470218492283145012463672504299031839720556764066563602841418677044327066085942593500197541986049989565494787960281747949970167444329211469276536864247396208550559071890484736980886789510659715849405787204638048567564196815180880272397141361385797540107932888469877519224194675191983901593222824339755525244541381607496048290552247515093569012731766852924001484372571228942390816983022732361193813008085441334627472940037610815081266034526614778722509052980179978471416566240489593964232957505531339317186177718193779160271004542330910175740341864698462429681898871874392852957089711792742890132006960918262797739620236333212839309885911093825751666283221575911206223291603352490215007837098083240330358512087067206259334887638097774953278856493556648310238146390059637070447670867878620217529391780047311707366974849054667443066098206887910900967984873298721328538329288822542244010220644345260532891997404884971315308197465893735256447218696555566793421486940033974321780186118938777979273942628388651897787569656663735758676740025539006560747161485730163504688204355383089881940862077468458858406497115123887038879984537645125235143941073270804711701178910460582401330100841541827090499849096712488483959961384134128231421945663195441942610998185895513264170661316513965233671021344422141515560560157859551890380174624267262044063856005371314884270844125515279491168691511276871334189839180667111505585127218082033879605069314946551846917699396629467492427966968531599268594580717640021352773893591199152839131879424719072216370946489083958068080475946057590179968076148670282678692430970138327137048670621748552567527968676801065826418934585311669498296417024157952237454252645267716066064540774393636933092308523701235867547059165433441201584271986487773217838857037774470885271036153909439737226073480846755565781846484922923220375767377773393433731074985836180042830716588469264229139566318859722867945017481872612039228015215684489054050338249980779486013103563677650194039629699309771805766053684749409158337785492194148062710913863485217747840582513350954046489537778328293909058666425061489848479755210340010357630402012253923858169282747513202799210495574754899818158995532448636724318586154676193882027281768005894060310038207051737971372647547263478381484619975887430174398775440707219698136236712364054824696958240717176619580119509955595681912932891685156063212443881101706155342670135576750314423064249071227199153594585157976630909757151932248728188388829636718913432936841674996385092160845287103843753049293547240577562493893693241282416200392134329513470383348288477283928592537485173119728276980247681288716969433712197578744163620907242735739174310448343813162079997324965271302593093470725030349668335916198863513378184426851949298360455255481381300901019096095079830525087403715380719848429815608036311215406422618647025470939139741708741535147591235582541766439872698243634551435747223861162246140426418918723450739092131245608479999932517376491087672781180876851425770225762943051537943657579990837834841371200659484649010108445350567673847345012460162193904312517399811330351883703309127053371081314649492957937178284817866215314144766397052014895536134401130581090545356451267648982310546534964349930246574238649380412552367092529799367804538129842886971892490222830908806973915654162759514920904160987121038297693727132433836693448431945362984755604307473741153592992361077264112573670591722477063279387334109286484699987117199463124320141855401556520487324293553375205304792803175858618659744519732882948450321352930400820435441081544122408892903973740146707819283382321372223610048464238064550202088924347951459664132064119750158980998911122491480782701491992273762805647778908015718349367023459153027852206155673381478285320903753825738338025856997596968443263715884543872874344539898053763385098152383583782884645661575057038904093525076209910494202759482409241228049257696272158194754726932489911941654219916146703767586472766134770504656503892016656871584112905166342498772231462147111938767137160954536039268312712995315409346950588286835670837901064718999613282302650221818963611702307982588276687845835315009562990340052332943275318003954419413025362134521427399881880648561129688398075619986812562726836315475294256038510261829825424555871164682513742146171783413709509232895896499345657059568435171664857126915712118532333754290533221910607880059762641767964568707626175886884151976465888901827129565765275774139182301172389612041247669652943525970602387562094448115768552310816017216146348281515596503384423944013285924773282448666420251711677434860923958581514427022243725987232803447820167236688727495751401105810458400942956479090371294052499636396131299183177881388467904209374413387912401666386357762716442294750618061538280448234163311256263628214528927759997174222882000322395789284184655860862233199697709780847424612361361560754016981200269571307980416627015653419478042151666136510270979618107067579929853909721880245052528441261373583325564453161063212091730419903645929667450120071007909968993085934628908944604820570568340752214393168820844911762231074714020936192150100507353715667514494840422269837922612137695830093223949167984227233956582345611012229025103056605768181273544031000173865663687073853028722911234737752070843627646094795708803261117820616163486092560771144882349492121252783438779317880885407313202894503449485670173349500558369629011120770645266044271414335109720984850070157961901199211809547091051545800431301466149605594326199063429147800481300649842901306804707899676576247201336678299611325505898734138761201874076884101756417234478025364013949243683111631035120915374559797500967766976131847237519891176441463492781451729294885806345635599943305584547458368272176067257956980561638371163384104182882454610094730852867262192038541964264890105006674767793238250282731170785069029591899422096210328499195489604809819277471152981820505851920711376825357631455587257230264892406991088411484204791612066355377873464985406763944344906442265517717752449099351607712867094704325497174043734400381784269563651345867815933778274592477632413107584025677450595507532669895477079298442563168341106621297388837573056340613706116017810265341472685617185468632638026516154005123730801731571518669198976331362158674411471357720477489761851901030342629891871264914783079812456693920963767725526298455620659338028296791802678205110453636734512623203201131750667598080703724171961915009368353697852580306394280263779373797455761662203453913801230497107339998428945104546226564257689539989252132516987077945067902921303462733493899194361161813762218720011553554059697752740079252855845945653725571150160257618274344198077654332111502576464723228221691948548607264137897310656360206432371502330814052004100757868165329435715810865466114854402741036669761954684658455675014301226825221060646015455455006708004599899852668513173324191969330020013006856019306025218368594053523304564652642427555129566498156465592982666847239023147156553357942996622217543480408049896201404123867445006711151308952983315094906774687961497685709758300612350984225445664754921565138147548842955205743257013792880317201129706870800437184934245785511630681027896093809085287986556662038014135409012897043335497170521851310299110630992807640615315264590643653758048504083816917037514379670478716299191429951528137683359264774966453992863272683827427795475851111306628710185499610210494129255377676525048736883533074872303515660735896741956664784173101863629184517945605512351244323212877464656180673787523309545896319784322734473558213154260613736742152317395152127133409533057790630379079018851769162911027982840326983888705359339377391752766749668214253537717958866333135957865509633585146321448943846680810352113677248314152274954816968864226770498792854445941903980211933237477512120487342433492792667226296754684745275387875652689974935662599204596545368454795255874967855421420406709834224057470733621471943806552638680982376043607420662461688167966410794580437770743803844936617794696300431782585568376694737869200454511754296059572119297370613095109066568385911514844361829983963626117464442424676830374524223146533719383388653817416692825899125323863064355931648894831448019498833822306605722950648691414652180000978853170917696699216517294405646596657899167793826275581288649006802512383630324190698759686758969963151828568858362192380414197627824675279398267972991094579157217492459243349194022986956697351189209052144390069600577890806643917568924201358397016897329513820183407354857743038240731064637803111011178068131736956643335491695726814468569767868525901872622550348587876972091541237868269756317089728377044145439094463908945908443704787354857856090866266423969498465797826773248141757931218241321747971110823426011530928089161954349052631918186169635824847156176774552438939406215345082513869792552854510642015605042277572110831321646104633754967547724137816637539488976868286541203917748535192650226658146873536294217907474020173318646124721908880356871391300069309109150050760630789145999335612611563998517927887233812513261572304544749434205614426912110078263014912384352104179140640110239941656484846146607113222690140804411766089810300501671911653623121383394876892153831763373548052769647965496431005697932024223374267914252686482378764827524434478056472752069127259609399344144504973323603850323560734219301745304667297102087941112034700682202304749067185021917200958810492073756481234723374320397695353042338528182794336680329507047426725142807781626158995745379358154536634873380390226535656776725038437601877701552925568133953312691482621279289551105450127890596174263412533705505480068207060264728843102204684100893243267742733592691071613312259466832277246351920777845520700787483020250719548191046843952445458073424055294162215172144097404830189347444309543108354359971289561361022186046604934260535988927737957876179146650711436864687622152500753133193837918455524128466859448397932482217035361795361600334849444327198777575478966867044129448502982699306236449562044375345852090945923275248416770234950470854817380466994611958542207711672991287398837430614730475743807375286771601355951962608552043961277615113532043620788569615335179206343216390475932815246584180675268368274597754259932641254382938003382483235408164078024853230383491358417714167548372052802193378051882405403847419921843117333061324065387269807272118766175163938812574841508371232540459372690051697583219772976181017116564439928659077304061877157291993765774706334314101397522882975399588090756417943460456381280857056239644144281392492852257607043891584230752155495620546038565711897128602549637162657869134374769543254612896581532685888485043911635712477807217535503966011786446904159399156721049250961578467712767093635371072439242336926765351347658971756027798293732576844523657006849525906620559786307749694913529779852859055927348605235689529076295984842551196977189255632940106564035326127777170837893344855192074247971608699723895081534649292665557614541302537637659545864921455657204660238441262425108895576835459328822486171591879555949561214072100265822846675526552900530130296395592113390585394439027628486974992115570280380816125339009026200120366247784577339160818578710395141388371286357541934203277450264911111851174435230766987793451284670810021090569551943562051284092663974439189385374646496624503064035695424718625545890064948141481762036575215387144528002155113699212676420529277027194882087071705768934199443834149495213408938651405652077949391736242759464554734147908905486132561272067212081776788732115466034748885193965210467175551409100599683827406704469524067590431672700598937285890380937230432118054220050167733157308426197640417519381011247808120626904544447774535752582273343263002008148532594261789736794723178812883283416631334431525012176073659539728263894557693683119212119763336363957098453453293524276448700654934882593225038220677460717223279186499344372667856953552722568907987394560620689672634231005667327439870149255885100141093155687602192753505550964397141534702022632183950713298185263926452299779467545252575739172954360039969380750828380018137822166727305923034539454230738254875811139255888361668195629769608824594447068437346304529821871983246771485762153513781078989506477809563171628982585320177164800827448241244462409753568959529025678928687934197059055111182646700539873110273617073346725254298066371732385281491973231693749432594166433133858963920501938631094277815738118613552979389069116217259206375628404639138831778059984871321225649615438289800499348085146098778823227573995105557938076701114231765988505391430075845705673849839821194583388128844851493518751507057194472132368669593698295516579712815577420525239114814144505691678456090606352130725512449158416784310659565951035258755457923221326764955278254744435516263747472946589924695751700193702931144968951763404338772308567879052892237510348341468933128716053459713072986898406382010730767388964852786974996163561284172920876784018383493377308440570035697691953428637429344830914367346378384274795183626372439092243486632631836824092136793671308220648116466863704224913321125230334305933408860440206044353949406512064308390888261258450908079798513118408926506428042246998665652467274802638013928542586387493708089472982224343803276972830896603546148796541634939573703749049456300130042374844959704095093028620820236823320586657123931411502012298445675194896900056627812651714705918219675069446356092903422789685856408813640931219882339391157374512641977082652019016999123240492169198840865684140784982195565465418231546783113879912850450461711763868331094547734662196502152875640166335443767169108019096524619049525891107092743576187094503353705159629235925809025822125275347439758544646944745854479104255069529853853856006704257506159722073507202669143441320233737898412504285145709505968793520517765276322476221331462116074799504547553524270131194440154580133360750802642156322389533418613749935331890890233890206009684349918118403892541469768033761223548405331671565877767126181381479140922379425202440995207807169604773872480040214125584882211911753625521781613605785334481414764952804295012225840514154926668628381641213472517562557289969006052077225749314998011883749440352056909713629285401155072290265686260982531087407597034010918365297234437456671588261032911107645411758303203279844464645677345487392985183411033704716875309737762789379000419401374215174644203353576577163929688433198880116978282200083964374529766509800542458057974439390917799333904913535367876183047242974173738986942821815560553235731058767985948894710895416043720193874193285588910788887184299657491758158631775537217573208428545003030720717269753567708331997243462917439726548767069460891800913859229865399658064762231908295041438176854380708501332487404158926521785290886072567641037972266596736549070839725333965887580113484689349869281467339407368633040692314187083080682383887927477467293779117145192502193585793664499385555262781245157611468638649702296431612183430185752289742687166672576343071943709526119981468471630461757978707359633494309280700708114427125327017118801609210249689238984042324898055422205322400926847172078072824472612583601049666184528528681448245380092539999130537783423735372807834328223162681280691424423304902572311340922692080597288536938423847186918929157259578457919176365443261508503970952086081787521184084041539864063362407527424782281182096216546715459413988889608978870097135111711652667146653968227576742045683053789051152073903351306715203111653899709783424104273558644781700662453300716463937309764379634645116540863877408185965940941220897974948985841339743705739910248227866857032011202091978365581582091094362023216905386463152724894458604207649404945874280772076916140266703660416003046813915620538318533393711655206289537878882127234605912225520326900214271203001889034004135453984263515207334267631492855213066437807515503615616383215331813815794111324424265861141266815130097836153727596107513830738675583849975308903608583830081504358031395291697959837708220194503577394131095802472749161517790767180857350903094178788176326062450081453548122882742206041579902786062209679536522339601085146420548098993276572525783110400039066194981464347745007636597699183501282643225945425124284902070432923972125820914666286044223835577100472116539884518603972079524627713693229561813374912297407623463788736708588655207586265437098492589776742577162257281038576811953164412077931244187146086153814475556361170251227085654391070874230541689356215876216995413452337364943271743851522518403820611274081637439333473151368448332762962475202111787551536857373114640598975162054520082069056091525139318100203496484970776537276037459331512939805005520014787404291873841477507230342483124850747400365419073457983436418314163652483609988546271847647978220709834545604708699057433384549616442466790408479969516273157746791814544589765176274283189162947833119590976692168007508151235280721843564033999482854054498235874863785422787032238232167780325159106054755608142029631619352820248499898184824559622303320269257297258105527276609354586986112315911021307916249116308476670151972158488134913695795629524514155863701147352805192844506352330396701798839467188337039951684108322750085832078000653554511599778385638582601358802645567051861372244433836117177582144898921003739444878419149193431243430242538255155963022960034179061929973274331727781493455596934974425387891283987736840560409808719335564982461703437293990452570886583668984546567212448848670592927652476247374174134843838426874271217631863598197814406206564958546748705073275459666215618499724975389669928111826629571861395144278794098014101242107843784424754496866723709843223052746632875806612848450184190319026986791901031781566952141254388950079195757341779129213937249809599317018669533979294192731114415171437644869592581866277754490898860546143685841984517996905618780512782487409577051927026278233714034204906866375392785275545518785818378858931719496051467903154992263980865436996027187080603573536807352564079854608261202867229370154707578435693718968603341197037750330029836384522787632968734338509830491552274280318416386408857009409269361648635843411322544935472685231552396616204528055430425109357317972999799098773925672077716687304953850790854671257271066035793392634113848866959323490316221760759579249338263294322144082264512311412561094294994457371735793461169128954007759183423117501821337781100087279675377841512111988597077227983114702550674704940919038375394208985369129472244537732400795142567584183685315494929736579109709595993020680308927219835613202910038581746566564031468327419721825479430964551674599729648326410644813501980896266476918295069156689187397913259897379787538707700801335106968537431700581422226430908386853439886673103145635504825346277513679268685594639606861749968109888730560289886684948742649487250319661374985682171195412583688427511012994070133876082437784906190413484176666003179033018932305099576541631632321397603073617445932827325856342739861082481167435229406978448958292613312875573911795405969985770128749984726012805061187312613739700919150426278132819023239643845352587759860498986076846073172843581201021256127055219117963931784456075540049793876865016831563662719785530829072462597111204383288902745028603997961604397370475619500853044143243861524096022369844214007348985512092859747143053917571930097169491706230560760317095001753012470049779585197060244330720073993953817094618104662566586761689480241793823858463035391753241607141980145218870913115843373842565682637015720302781945850262107418454024358281639591730820992731565445506129033924500254197521667251433731356565600094922000755604375022736388482216060173578904922597052377161774701264372077401837989373189110240800207548171755214448160646302122538870481842483591433334401891092454987360302443890894191996407026447570671690406464771427047153656075917923072661467683790359464103659615780035723838269272121859243535565876144698071849722364713390504985834961965614672631430641011935209889138526200089117948561797252096635059144668514946330207745487822002330490701713004448289167328272882637271579327204542904693240123603548078749371879101716060791781560256038813241816283849402696090887616198467332198292685254353831661357111569469906669350570878945974904840374629118924721767273598404042242168078624420305485776288845190954603349348954890591185627202409017309390927434221848386501043422439203755640710372274240960697983531232819065995178905685841877151478498387373885721768184582172331767019258015538582265207145110352606072957558309286981350069174268356880911789923582797648818082843800038030744133514439946185904929430483169756500227770049818610683722516255585799127986122064923940660525995331485959637214187066485446535462851018851842709624947818006882697383816587252497295251438725338465986901478496343003096943020778966948452023100121350408561076568562974297611649052872501955414993882365406564370817602382144596076945609875039947844698501865192585092973601687630466716952713918540709490500144560836930518830032931039171585205319582702233642676467213886667744199541883719482191426700813836786372673710366269203676912526828260807158402516260514347084893061901248491869162173046168065231050197971732191591705032822502710809552810590118982833583048110899948641110060499021460774675667757082955547849827412361212508240340810293663217295163887969145605226235596442421197320906380930993418872051878288548778422979511944400667773477217776536260561912847826714238498402884870675816049209338669218342855626325570795196065340905101106144216475876447839151694878223649554235195356068811250099209205316916306897798517511130800383194164946603184333884505994284748437840885420180197849306620314206789924757707723650134358879013752062583075193312566867626295842632025035788547352050752179964706682821722417641926002258908799873386407034942631066389257435928054019894987180353722913818643189219771874918176723375858757377933269713722968663586770689133480540714794204567882643173280786627013697840790167044807740122356097967661362139566138673370335546003026803350084173751343613811252721903201225755450139773453563814256367207495022461837697497528584458102484581672810525388216658549379126314618121864860277449503337203241336113094718484867520572492227013576359789214967280348323525088210766700648273577333382593552346619644830877610123310121611684909169642630527618806592245670643759930991724135929300992835299382779591122880325812048895125439799045514572171523913900909847122216494571849396708566762988643318031669925490880613303480967487174891490994341959271604144341840110536274750767326312653626225565235894599939285100143627835047915677761639287331162445468428990015176982164278888530134845623794564527080871849903497483437243320003565584275835731962717583991126148599454591620310558742305327889719145793342267765399296339669451917313400029261690529272343863656726081795778887721459623390034288813351937763945415668757992000761771926876325115564085739108838570165890633717637466498101935052050557594845711983682683294854139224074100117372336130338868098153488843446740346990869422436612604013967435642406761208346419133640800384556394605326959597148030116408430584933039657355473235680799078054606165972291384528775185572517492326643308161891372478830726674416134521978326327669424220535153558405065040376903742895800222976711588252288095976637182602136588576034635470045423867748646670987091494520859250647109913458402366919896781159804630387588196401896250222828364095959882053446813341029648505181225668589160136653398269365282864572776880634805875369658210372499048428985995353617631971202182694602509523263887385812073909273200720327358016436300688066766399176436515126333916247523459399034776687136026889779798114866250341077145327864614204662549583319354045302539901267168248649315163184024106837404872604512315494456699499840831314838470537456433987301194644218709126184218115554479491656138286303526907864175885586276140440745284442783427481551388266263227012840413283344847743589884349433514152187695135346096346087606680623255826277941173447879694698430360964979067044703953503767462189289527045425666953801941805720769075022278916724191596437578304264803542303368676162919905558583925950299092225487701510814748377052524253828971477042103662747184429723005939393717476859044652754523523459289112772901884221280605735327831089972350386460382906927872097907299175866785404444549692833798241999707044160211031666316257349580200275236787234627645400522273354816232210962684980641537208862202206530550471686003984078266345839980072755011058518332472745408958451880473347013207471371178401015544992281193822461696439022916964980484870308734129632607606302418002221724005069142547028905344069457502654506389384790753452788490742285116339450601650512579378320399494404411398701199062059502966452819715202711436493285955436875347918199914953868813919878204952174081835788898750422411575101394369488051843066665150207292316022112971313736663149912845604498578297237594929998259789863607263479522659802911101970590380024905208312150226538403930766287457050302971450811175060833769800587626747724857237550761198955296013533487149342819369626862494357608903849160475305553619351987577688933393723477371760412018985709168112267543557265520273200734342855923031923493032382873175084890785478846233182833869290815764195131399618964839888856820655604164888746025788240087655951109796718960373895185599190036478674693506447930988694894250704364008212056542257914507983394548668077881410634245572611625355155180889557760042734851910526802656284564706540925949622412363069970269483609643540182303358115411573069335097963940386204261286112813722492389304088029074431840108245639184811216628190040651657917846387731670715761507772911462183853705505637888470900263504052212170145655389772554602881910993655828549969574596493288624479784518872034896806159580564209251718904550418140568465819765433110829861632814207803217248796758369113554992677491318666775453338120472020165642695835048247629545961673089818737491245659205669578569190706395917257032239186191905662486896112071557011120505269994129446778565064855617863277502719280288630278646991745260767736467842939033079220625853578657195294531715118233217609483179041419368651952576608868631209770755127402170812124128206351094086552738833012101046184598303259913828707729358448857613005496625674974412071073743202025293838022263456981613688698202420905276270673340047646808811216387995675933817475409214135663467042367073351271723199978210603927303096983901506207427998304232664847114219709429949995037956821417829195830636921122270971086787440870920904195505625433986397749560101514806092663000707444759092280092901388029364434920331838253277473047947607743321129302973853236295269503917252623490786943117286121663899666131439707767730014792188628818572186572116665856938383950572901274617672756524189022995355397929794536194026210803456381050637812912831692113862161461407080005135972620762929869046277392303548694135131481402598815629391400389417777924097160168252197817994303069773130740481268111449920823803460252343186422475649650528858630713826966466006904032718057696929321458760707200607330218018694818545309831559415143180727583161336124879363527729882276761073224144186389518558911713350689034622702509101802873763740577067686698704103732858822691098703791955317703991911091970051950305314783555449738211829406682266236699134852342302760512950126786262752565812479515170612581132909503935088931130888021879239023448416589086010175230925145225310709743712185930075026451441812293524566881386033618420192504495786834631258925859435052794457686594603718426772404942741359584024419457688021396683557860604937822835099740308677157364652647282319200138396854374994789790416873360841492350852803291840008273175752382951829899659259476355833953527052552304594722803426477182357006667989541106940106377160706153758556067937439708602368641912343191089051726445150940896465941374278349470370890155335384449507255946747885968913686827589051228898104179268562888657308559036756161912314168991818950522307543607610638380518761525632077862736652272207615370599044313982696652127309708367017324066131486369951177368950438938800628778592682880849340743818965570942945200615349858801558570597962009460113631442348204510295883563314351091258984672976480836269798341014036150103924342912877639963695003092812790790294933306881389836913480222918669446040723236375584813514609995885943282959776939347357900726067473785278139992097851837408851874141592786970982409474971972906442855531680112695387563079676802182695674412752869164918850070991276463818231895524277964972436265436142978268685475513061600665013117748069311955890379147058853350615018416287872768763366978317570004946181887081805920741946187351727332519880081924798814093029218982307760079510469223881212743487067575265402595999456474954605427256216511218901439402505604041196619703621787230965585231998078449523272721396937297702184002479476317614157961446906938968557972809813674044630327234347450423225391452287319231828827725402592928510199217272554810035526675022788888038633030478860538570006468931792346481728529324747050727396750541861199242953483570559604863524725416868336616550766251546191069824431986824223232104008996795797757973857152418634949639169240264095659335439987327648607239823269054982436652741119454419446315454401412870806470086277544429963751704068591944737403489231424635574595395089786453238095564479855002798250173860033817922257515478128298575037351791379507306901116505135303480551176796293158026703759641675205476184342038714274932800306501018608740979763413906884984743893094738970843479871675945209065732989452828517675083935163640312274041375186575493568797845039915314332914298880338039374972141925757353639024395795223641535797305355787389273815368047226086665361908404122489673520409215009010615301722377892535208693057385864914206810153844688672121065279695799185141727508245324474291820755271471788803324744364054335810843232752976028918514340639906362968598775458224584597579054167232749338422726557925940305254234579373203170277478546292088405697383405074505092985560035074743214510932378935463315987889525791644500362241447473567676837778847101736991678610036817548783459927987397189959368480792743512867358407284145746499565301147361169370115145282494787971239377034389240150249471458937292340178554750526874757753238947133754673034065419312652967386891704977911594394243568917724727961426438594563199236707224675924693918167229259931054361456530734137743110690431267563354761203743342302003342749949680600802720772808706609920143065872886450181546424878095637461601284917481173951235701997063644633970688991668090154137341299570797931066804873143539008919218614713135819728485563977813800884686775521882543751010707258476733432528557302564137094901272835522446246935571609703319096836948952280404905418781113774642962801199982303023904546379634708254627553764348992708432483026388675381480943416934507745675547119852686913277140223180590284630664673926112517581584580321248315566661262160848798953890369677044442752113413692102605887186001483706379751183760238674579951157772931487017771067270445329184319776844383278242377468439833524766055432032606260725910134568857649274628844973242292972485431869697735481123594805210178534504150882992258813720246605646362237488313480894870126018738015669742007943371717283189857800593862467715948086846947920666443537621456496942988141676764431633652026246677343999609035113825772276106833499810821067062416050057926351083790528946210241013172757477339751121762846389491703250174274404792316941512596876256137211158429651138650193697611825152819656277211669978670810843482901883686898630066693820079348241759493308648122630452440069974047570260430767652814620966793509691023895858657083400447251395170903362165302799035842111625833846594756595422006301097400750302431434905109754425238291363546768718499787148016313502243695733432567858616659343326035228591285233935189058316774211185368582473890067033337212000036166222904972098894815040066158143683068694245847628723548367006950731272498957918487966970170013637290046682046673060048676314498162416309235448878314747155775272043085487704249082155276410981306038402178160572372302277328547734239310155877539262537218168112425010034758238696817110396967939453339501509043966210798826409098899917203322130743981727853215524660675475936999519421097159474547867841260548203604225927188573622788908637740240590007961968940114904847021255403547017210245549644260168214848102913750620339540141501486794383627626998499486959202324804782263397515515978248800032125739375666787806809378270016549199733565429778057503229398162926829347882047156198141609662526942729415123069285338658185052066759123718821927422107801677557209999896966871619912212707068279701101682907143203686929371079751150281528616301948416406022468564884489067115810692075161190496907515613448858555811008455039397743361070091289070935558511561103243855706166547259564690367707261671899891221827384310388385252472120088883415511291594820584044225746758544897200689034497180661320025028360961216837604540010035649551448185738331884154476218740334197191642128288236654739037331788594299226105076080025807875414757734755210102021034554650560554963575116993817006732685765322299355690840792421215189663056090913038589757390853351535174760362671793237774100817879362648974451887752898587467537250582526096539757505033392759883171186177520272034494418471210029055667602119005552240277390924860008229527389883264891309495175825523569120434075767372300673192838350491253863665087240916666101249511272316096196354263728089146147696713603426264318724808570551521987902810022348683301279392360668905627104285718275616006741353673974243129313374375667428236575832992179148733067271428237984078639506588571191676537754412822104923861247642991918608190683544837434455572438213482298604114700674701786880467922048782516007034556117077463895353749000226859789503672653615011857839662574028293672398517542836844474000419298857554574465916474553876941986748583875072043000673598573776908706780239851626347146652989393703606191992791904981424086110409803466794342939422841809064099114801457095810337579940534915964300895315743983522676468162022117479325051442899624985837972897628704933564130203458398562166369260494708609902595299111533577671830203329215765344009910461001972156376901212737606402699877842195348962341740583411664946816643606175859761025422940841695901841051592072253015726506147437618987358574795799726608979964012274932287932684496323938980101894688999476479276951642401506435063321979544733969112344258804409254342968350336612655883289855267827803907274912182055468020409143301167507958061441814177491926802280297876642441345925186565240018213274635517586542794201417605456998468672606427088622300696777572117439675093179630466358227826458008991329158559786106500923498237988293128990952066982580036427608938335641220058658392765800556180028993570357293587116794817170627395840572053068807540236026110471755974627128157353843115247200739025909776727714133043397575541081136680693479836717597703963408070216476715453704412850998009158308247967256567761676915500680195595514297648037766793829695100641076187538115285292041271077246374189016989872322886611715919096734340997716894205036195376335945708595551681480666654278398698446523069156020818149618111768575794902010872983631515436037508379319849325880747807817896251778516992342520662606839454025005885344240135431665047998054816580599067889285625075033968979345156657792706348740411759889183251727822817907994244910649888343927090867090926667552841168584698397526690494453072191905252429112918804430827886013670538679664629400208347394647967848252531973202755496561490136215579611679271427733569005162791696769710426032725984939636513672170035522824435983562149828864581559111060760956367548574337886616755331274225437714558944857664311189140839119244314768047595773669205754688399516562310630688848161276142337019424963585376732113441141854998142289909950262325449355238409640166770324141914174274743949546613842145943633993993827096313194723055711191401442394370224457634562442740751777898897319223394367201693610922317620843046976882222849575418623084761036666744112323028638041833404797732218522399387215907528113486024672900784531326878853484767517566071859510420312508780963345464077812905907143394023517592957184572587579954881394280802107232209840792935924805081147373938976699979141896550980751175586569417070737326539973928911822502990253702593725916648636238721820432545482745750223528235305820359027667412647280170193403643610171629230028639020709067857468284082148784036195744713778457091698189742817378457943438051843243726568873897558650070669953396473082114647763481369104884406889452077614103313397678547321877748510761049338355039612468197746020015085339310005777748773823104627850065574765989065898749839799451855619175053420029791061366877409277957679941121267442514358481789685630743402514788987725373451901949646053359818503179378309516683242556700284979556301419342203254206149662889256026555386811294714908377851791004504298872991088600443166647632927333592167534183303938606329501348249579393650625211353530856358476625313075132733987317863800476057578137760570923479958204268907416384983659100544971172562909060659220362141714799036146042498796015103361823773690091985893405907587316440159520019941690381663192842212143080176528516592770382907941345397908379881688157312353339401391660689459429245164187054914932476593861174022281275904734846643791355895737299650768244875855485616289438321614118952829565464185986318469993843927163195278527607315973423566188569285603161030741182790968340372224117275152551611407400595979822308923099328304786788878136473770665668116944572473539711694152778699287947110882964790440843662020273681374374206989996858127865858769246996085526426194623505718412269589067054521174080469343331412501304221515946701506178208093264778707592830897927246606515855940228394148738029340531600998433848705444977581526218831910537852694380005370540303820806505615179323202726035571167978786073567740814011887793110057695639369519346958870645384463604457083841923692897817093358508105644146281961019366847372883087450697492933749840664295680019534057026371481231972727700376056300779461410428639840350318305059143382311928550026640552525078439948191642304846197477295825084067176305093397839319383228559578062282049859070176060192937593434238151707325274666325375304420006167552180082973604527425368290372472742586864501322273181207921822031238241294529280318647188981238098596265350706675220106874777946389697070929364005481327606483539667263708165137516166156386868497646916512643896990633225258703616822420852259641372747053578194192193392536686828717458799142873313379330822561766570594598491313512843277374088628184951915208574970579533030625096906461178620862184399618390391608201861306763441184717513320102203633746490920950918087734316340777400708804383033950038553518140345308794536996485130907890501743888591095915797592081956728645076150115868190124933416522119010635905615446493420075777553904826390035048895827084779455123008459773220431007677773137365305562159752267617511813249935361700379835458029064919428186897018881304220594893236676867063596476361857214395940628038455444654330887832410744698900229625036502096615788655819199994548206623480019168312282328462772662408472110593059137074731192406876316324640947405285137107307789372799249117764402764763329072384536729465902018340121359948808066669561354416851327802128137657532157891044098423951254850139523527893656067818831505940799716805408399692742573081785951089236315783676036760285603322795108085939601078192748511813547174245123722817227342023495411225774630757198394038875315989848913912992162428549200220988508615263470919596087249486092622461824551952541470466965454296204354859472130575221520124871311333531618067872861465712918205602756336125986822154791970899096330611006256593070695964342114951917220227476749372164534550338318968556090139234729247611655750390411026349123201844072180850815446080771508176476820565481682568761079422704000543957162855465153430054306692323529959872572689794162728046035718178686918256554126330509332768557456294946422386457938429516950474499033489018232492561738604085239466213843628169773082110313420390659013810371420495980377452413223840638411348212419320283667064142456372806902370529416333822893377791365583481950894293755567335779728840682721192941323779789289611295258613671800167979139637274391197244187812218873170948126572203941354001382275486604060884756992651039249764575118265495222384554472539244566267702283485046718696023348375166296417479986051556410842710452820778694511627128473970505929217644693939598079438816193032054039630718644047559296153335897331349813594967763560107204398044419186752002902440719551150670420247593832296879028880649694837083911095304064506177574602901433766230070691615255199612072847883751564598583497967009768701614263233319900106528505432517496164918311361668710549311645977029084927422528173849062711002314054879885115755946369477401861334366088836392622452727695870956626392046433076751776628925473663362515814122330260038253872671370047846757177536291350198580958916318833962889890376740317288500549468720970825771073285163836165789961313802106008980713980060583846068841601606697134713114420384067200364995651083228321628313763159414310041000230286244660599867185410165295632463298842616416893762082008770099022016859443277281987052784686864398464050130123726183239551504766264901575412511654383823349694183924181964627090890373628194418078307334296601982232813183074391561617053052204279150324742016112551936243909977199975079095830382189114002552509531293999957492952641060131010539469590259250836225722016602289025073061837974408535902572938823552574684849130150932064757356840840586170283944193153942774237260928303626066112681499659379199906565197120622343844491832980821152471940499320253029856968225103121123392753747364335751827214551632107977088010400994327160871968301914917898768222792647136342793987115005553856984795851750298182472323649221222717963248081301381015097722541605453296422282259229017718870245117409413435263121106648618799613696316556039378393469213758575767671142388879552697616533785985552187259772920696521631018627383141380083312699433241681734781754124014424540180113938171064313814794410040132026779009585345650854323703763027989640737916050227242436543508647515642174229438835242046856982353944340564289133402567604387221183800361071741771388455319796041945572170499214128713468772301350553782950601407168658039498263327640502466126949800770959476174219741846640779546819081843568332186950250072344620199848853295952700225622011733518799762531732599575182899505380278387651712678715296994721619811208643753508445665584110589368063283852804386752780733491005960393579861739010741653022699015721641752885791400712638937809400501633482247610862092718906719966590005921273341957368234365843221636236722040233890018150268076955928404918551467722936746922443813156291860197236138411707739123804074614139528220054300294998470537416214410491752079096646586065184185098405803486784738679484748486726305759794348672433147541088339629911451774414409476553080068018851205056216825119034847511450430464126049870948126853536340564489252783987799060612142969693649607469024725243751173866802569018603221161092911203680602372339891030764532921512095043726991240140678974562521978417620894356526193628277000646406045699338129170018335458972420400982792776894702783608573615295809794538351320590542409034822841563596106193550198926248195339787649767484378623681650049587720693570202829320137654707144565685365846302290721079389584266837114294165979204837935967198733734523815907335461417981119955554967469563895082893625506124929105112421523494026049943344321718862369800473084372796837208792621174753251998290587165821034049307720308046385783556517654835463917510706808525950953010535322053194760583342830608934505202402977850643241781695029169380114058616252388889205074161561225361461991866506314392407465169006750344356270817860771147172757788189508868707756373291882664679312772876395122107290653428724730103423325191651249145602255579722703906228768991648848913317617595578054359003786628707649103289730847008660782251313775606679335423438876968463095657570378619201329292851785965973752339079836573575265332665828275128441026217120086970089859172891120064295765976257086171205826452385980917464262542609267906141209767281347539700109956351317423509730411056584465331526149373924248852162139064214158717924741977050014336940765517127308129384893078571330626212125517344051378489415232537751632743700958307075691021838798357706675586266399413344235552521443400297670575177047894074991381571710656675531694792821078850839970470142990751938152451908846216753507221275276183507228838972882644396141692221286062299244644305052433372652035035419974931342025374761337938953000882056805410607059576428334226582559045594618065785492296795870309611794538274966952114449754837564043798352657833333711147073754437695582842638266253775980642802433940901936834595246631809185345967731185037798095149845642873093535693309170622032462882969811146579956940818466820255989902151607268160616746920931489406297792386073027139559286530312237373775021528768115086664851326739799808448606443960844150993453487961087400348556065271366246051416182107434804286936855860132183656821712114451026505753866756824218568347798850907469467785441035064563464308203446558041176781610298219127236059517497917315580162268658790599948098934480384178674096673399634090791871428336424266475406833932834352346222843693651814411880429113793389493117555835649239003908695529219375318732977876836354889410983235769981591844779962865131630854926673882830612468472192616262692200027725314881032030811440304804118655104155249289789605995695768524079723126399023055010273493058472485495370138211353983268172324291416444406869866303418745154097192522816973048520912564323432990669646204800700547232272334776419811135778936327150944434318382297766824440420534092416085683501149393508344252488032243719012170550810085615818940465726422123512720453736645223746841945611645383141668813765680697684638620101331422554091585007038106778409189064525523992077119383062493132721544006392437826082355329306808875703308171392267011637866515250483789837261602275058251135306272698265362874414778441397097431735053574287745740699667973959867528859026766819188021711588538705755030869663577176570787249414483272342436046758598572562900516078115011748739125560914766909266581485986361235132167592230281648601293584117934432664693399080443632171378632177569241441277704027321804116637811124936906365258300922629659982760466603950434761045227482642145750326021225096598909467968630544846564737273373461502604711023265322902219714241903500423922550375255160981571719709038800505513465957293513173628127994400850968711825347374993519550984319022012351450253339841077878157806138308291579141908914199110596401550165301676576838753403057929514011526546589076343307874708606121365000632908038160113386944525519758019655473861383322282749085327281058954177900979012599602752186075528592830742013416349830588234405074845831453094675094690439682166864205419098534627020394991775422672145043130670391727725113082098857749119905071446824331461116108971524922841141693755461337460083261907582426290714552755819099444799032201782734577740793894108334581531769978397566132919996457918639536236246449651008252413822562764298908872498513418161290651217952331893819936160642611185777442445036498236466145174316285977517188164076508967767872729048680591143556579139996566152220372004803660479728219002396620552678547324535486873039091919564228404888179209045843230391320649243649477408102114024206664644781920682574127420356660211776918290794317409761492415670637839160377024133753799459698032866592283429763816872912389871208389038682969052320037431884447364653418663390531662108525181443407630050992724817320272363638143728647220051912536574629650710774380104222629531269470060853823754365964898350613853747094944444851205526736274094659500954653325281034954971066764215274037689400121111354937813350304774691509661527493946558641949040403274985079269787575080725603744489497235130390896041704897970620864090099631214300177296280630334026268781014785242526436148871219323246211417986096792392536219416011397438324453067103768835244590886643257017697223314377245261619709943851726399065035460981580749906139300590838055585165432919025377770628744820074687462752686214146985366403297198169237451365876502968160671151896255616221210760325329341729502886483550148037020914119084668585832711188365211623708721693562278114246764679423621428952558641675608246322623556240741694938823723664720117985292993076242402420265233732867602777625758563913599662803282841402990916360731859397101643096605941546233433599072863424926318626976994525757823234727763660214554900775574586420385511995356975898950294748124239283752753082156565561979019587169099736011678320913599766057884481270475436563289296813573213749453344881650777156886583783081555869186158245152211346574598128944636039410593424786627974751910662327302938624443050182871393670937644690166406339132549391858891672830674947467391918568464868553124516772257756516556554199112776907715869319107273428806361244775872199496579625212780947700913602778103401615414976411714328641707286419319516887200218248139053439295668323544170874695531152626785785056303732605749325872652379410193529840180614952526562345523763166396377222898275833393339035174203072912815494224477485185956678912467366400540934023921712338889623560724788346228431919566483555736687839113739428392305383176873957149796246217291702928329580530609839492743049493267192729427446686698951458493341521246737699605349033014135145456283065491997694594648309015608483138792993638144074706808813626872904048945078117854023347828187206247518069383223540281571262708201271819998561427059789801578670035451337061427480440824570653711695528068223667147723965700639880077065803609641216958905253390496699686041442950082389015822673712363713341906345113012942209335729356799005426521023010143774531115265831955110918459739203824160634770430412366034778269369299819740548454702249645773359292371354199637093331716519585046393438776733568911085514804805944646080283059185775625726279740114852260856674834413308926624787758070292231104366561757990487424387981548212025364093915526406074745495000033442504592795639226164730005844448245743229826762099873082105652551564631829996410033890895667676771507106525714881344413277683651200969393689697893892936960222215040196088738342702998650425070047688978314198386720500929644580665028270033273838286728043823459760172318089174424227636441797784195307962975474820602179443131669967188192611144676379913781334187583091068172309241319101916096174291790545089724879648363983879910383012924207151496427789260469467753156933429067687658111839828075922234746559397612616801553145817255420507090940027287791205315116859788970923645360623988862464741295264521494488003792484234432281186442024806152145281895020088026134352280288774454376698487152428904882002650375299779969900923991976476384633790680879541888762361875276377625926038073691624715000210242082433504400506049257966896625116040284433639798323526107572350036877988630704399538356170643559270236481023966862074709548729013421620342372912524824018542281399209211360167789037009742575287465908382330264439249508332225191677427503703668415785858896859247974242750890124179859735727662669652813787339639056555923158834806231950191643023320039754298762711050227657588266703902114532860148989537459690124878446452112607205795825684435831227345960190172606632100147978213595388127374245367589749420496802734242999679625771407165171091064466457005219956170115812985621382754171794480112088082323022809137518820453090431578173605127581904979958153727130141642257994059951712481134510204279634716256720472309530275002105608824567145455827333804446415275276039825849392165120310929379440120318600173845439109130429397907161712245692978655049390758144021914417053350803371000898449751869176472771456487775452258530631558846048025638833543655357091240329721711770976800405590054471807885471610456328409726152429482316438865491698031804741918748027447048914470879896532639643096601414268965378142480781696843159429821084455135910240335821338726229815156086325597331379713468110275549517782071543689511535675049134789509093644523704186209617850700636180004930211864946172629385267532567724307338874708383082979548562046040291678859530740871770633184630782829229590157958306193920192253946500542209677964211863540307723264780419026629617448084434072823418413491458055425091863870145540968398305155730877891538422201552590206004553712213153946017492421755194487130427603061801383208727080110992903815568263830991651748464657577410422810009064571552667225910281355526038157770079708820384641185438485550447342910443238540509319246728619804008513835166206849105206929605040921677073476231669368345750628502787699394402744492254955930183388608649903361508192143312177951974547456819015136206832652787665104547408427324237190436299265546525706269970023078090178227421333634784198686896502577858786693217284713067334491978494390643634491055691914014401154805148871869087196633272826098177853104553613617236243400531344707443859832906028010279491813504794398639005032835621904094883937227844319651243351045693745744257987490530084463228099938028934003319467714097336671281841503957708883665976703308990999832207421772920482868447929215952023267529568005027588246759260777618768739131836555401926468741664705209914539814516857927807856476496719313568259870030978394050979976192887339752892768233168766103480264473714870722143160457040522749204751730047536139262949474724383063630760980875415690254621931538186419648561037700632493716426762386189393296900061726018815483992813460719803464750140602371054163313458580005026511127512028772728871672885630901859801190673380189647016887877399914045078192113603023161281308695515848021794368853383852696099621162698148391913091926368791001490533085471677726541003662671998040287552781471609116840232797641576428106900459765407194406569877879247969023145512900082981493540953986301798570684750571172114221540364563539683915044380417569400815810827089357803280170105192017771430777170944194387743171048493577918634095116771416540411417191782136307857337491629293824042304320638887010693557115219172273641586687830164863775347263597190409025061251529292364360662058345859538288085269151487201497116707098744021862326011326408554607410075103010091183511648701565141038816422372023368679966901712180220765459144075476463596713978170143618778170576449037275639178447565850666608628460567105507483725979330651359402244366960927931206262439469474985421304824044631499415013096945954754356770142320583513541539419136534589794056324105478512344884046180785974751821551768649028683593835019955138378077246033681765344488318276167056750222686183578722462123861435140021447062545549812549351901051541068557485005304924205790438598926464087224600480669657298159840803982507837202271802763592280425065448848868932982802748592566327428369963962964849009867316214768301470253762594116270726786675208035406259011261961870442431349342461387083594793794095658190669087123018421529227554345540733329658205418897033967165719155177527198638121453302911575680415230791901539864884040462832707766419649177789629107628236909996558237992756192561622871129507900691874832834973519102334104078825206913687490185832741873910831585553203782560967643575366469874698429794296712669227370070246424562934108520953403298353705152989751419577778019051195864598948684419444665951757911259244386581837180484756081982110682611413755279760719817193162048453319399756264731802211874920107310961877587631382385167642902203016435720394065137935478423476258120910355080682819603895721676938037669098026524340420574785710243718582034920202787048682741027834890656223053182768268281903514081881190172521754871786657236885385078237106483610122950030453363046412932979174724842847989059905133489936474012471970847804183697100735629277815285015355941706662122766923141925372983635838526018691583294411776705789934790820478313698551696087358684810045557820121437172610445437521278509348037020078979240492945279553956182555527097784347436368364218819593208859899533099762762822089865929340945682970332432559403652509861710218911889176259903198846209341125362369439914362684897505240794040047470052006636174696778786918941665389349476238036322907855722525958952598952966048753284360027936995530424575177467928089971989200904179440721996955242986673158993437850951145391964030691355803960184833411645883077181127821410323478368167293819561013852366394044023464995414188339032911096457916433449503095417586030963974287726214105940138952464246323852994498997669595344015939281610893744107473609876225987343857917633741051678058372392134729857214929641110087317793297294913738969011209035692068861942545488610427718326832839330870275544606028043731040545378140863659530952750901233668693351526862118739918538236648633210740997003537393230786559057325141444398196932872222934210292571013691644825764383137995948235837552920200329386685168992514587483651864121961002434525563134425568790240055860746190503676985583483427691843773655563941648493909968019127399169613644831216121781508896056918294062228964869878471278179315214605605583607762935941859526527268523088162404354027952419773297804120710054146739930078047302314903591293489307231255393794243942672786582897648804648428035604573694841101431585782873971716375057278752831627824905767706707199057919020032525044975412730292128524118619546914385382307942881739401796248464599911012507419083383082581466745966428211058363920077126820026235049949243563184086536287764805834367573524413205188947992297439285698636864687415106483667376613622082938012610753956580034888516370710407109612459723464825415756573529198424801452958681305436811328999889101856150457556852020365361147560834719903706294033825941108044743092562176934583461801623878882558644054953554078597108517082098284575248893566564572437650275399980286613583399962426738050746391292953025142854364580228702281054423534474618820540870972106460238279341582769671119382069831613945092815356191063357153404115937629108878597658267781155790657339339822753907395784858165936527518391862967808641762592046296120025556746640346264996247620987897706333614301889215813808197500340247711455131322540809555563751034859248575023468669916278809512807795376311579206003424389225409898396317815251948591772534438981858686460758535253240385542346432886603595358445051192745180067113967634973018281241912933386409143273051989770226862568124771101602785329073676354916264632610946586554844985121422123418616196949405039284012035558842676139068751258824890003214943671529297713574255847886967021385347460284745260104318455421383527720917527467698120627347409818246243593539096174266746229370658510518180381888522658641510408844720216726946225649441458641472367797760252199166284582434086451411643301020241656203748737247203864792633834449755732343068614027866724937335274943689535988629151416245566370125176746251938795842977687127187892695555776374464864288715475265680165279145151554579812772201177753417918618604418589962518341653218252725640616789305360086982027710790993390352080041686164204767049766019777825866951905931626069017775706741649147213505683758268533806737278430776946134050502088742978753417317772211564832478435908836909398577377169551631296560273467021873128662898215602605522858686796480868923675218295814309534759280598034737127803420846008078990619207874095714149501914028868357060245497173204013553119008292638589304249014876612790799239065969031271235045078904846394824226548717943607019399543390231575479925059240812914689802217058757901395961211726544445914353777294388049529278900660042692312509898823247085149750163871596945401272595436178073569376019325634100508039983750939399511659330986244332845333676958717842097776850464770510917046445429585843048907915961416620621760073107072528686829338522827581465665687756498093187465426124760168444490073118891214769083116472085719622603457764102185859747493063580466587745104218007698750155820906871436385933609126490396881833108073537782952920496212296793126652882494773535642625846093913680989560293557713159095319576446163060617596441241781086724330025275904342204240189402491942451457498419554649852634141225576588230733196289454555301778333875362073343855291816871443003832695466564870690111127375003179117102667006922905184782188861072766362374269815746336125382466011044316460136522131638463073661382790083789713421067011198739152453813916251929120812120404542117757199806808601648863084491196415809449140255163419491959401437338451611262786540810657481596496321772030838833333741253302398421178783179562751244238397498419276118795633321676705945111063745178234538781973999879187768453683030333395660999833741858594852941726306797783689892484886796122570987724284732581089421769713876118107310816322897997647804334819253351508055302350644612671458238650978962433830522984345538542128913272637788943846097861261266361128932287534332577185409272716859243409680851970476650258670309386535420790427602043922332547089983346107960891128810947300302552709278992889904988906031619914826898232127559583461129552754997535388128053347052679174657800477704605810750764467656739911278140473172659553049092847446471849158434438299377231068354061237651456426867581705404729749312539496251434432126321478257062169331546682478490672709769851740014824998323024028124566833159196751573710129919889234664291729336519844424236946008569228934759868890792912589679995749670408583230493535006096158327264892303436363447868279832408391224701835102276229236968499255654678742750169519260051709208078978676669890162140903134495118198522855936685117514449442624070580565334264684782930086807175154794430733768686440800619594504440625636529629946629440458774711094083732452553134378263801091456515414693993683699871141292560097325558710641745156910366696885306782745110829515986044867432962394285304272335879975108210432532049503811620216028222176362457026934601414892997783517254753732236716017929732883053173864649928893431401963111302773335658933586596102170727902497064469607840225739186161615839032672580357616077388785825086497878351415092920255669161064593567025928933998545510859030173405966883129325528846015420400567474528898230178123931335301669303458910528289163885412600675563822419989028356955162283126630147398870358386272533816370204998466622851849336040149367479045730948368507001122221424015092927659005672106375459984335421746229949171669173140119705171267250423113226279064448032964412216158880129220453636119147112118940494199650470521204687317344895319566145962051066989616740037360883303668491067025531181427883772078465994131602410414394498814701069945868503953979532272779400177427173102171909120701798589466694467540770610397076757927743942599922327836045163060298135506888958340946144997650822035205795873271320892133832907299937226492645254583539129827833372482997371550879832028206220414535060151985275168618202799146030279011305363195617013933262772323512909865144482184218101625895922721956912082580714894118385917175700440444403193221229969022553482436597743395616519425342256041665827411620734744303861566082616055560758273642834460486707483566397719654266461670190711399591810430965536654076600579392280639429525521439653573841271708090340265607845559132849822726458137219705294223510873080460060720536922431432315735124687426364358187623000402811736226201645433786674422789923259742617602841833472367005162547092605821281812254460945261168682103620191511407115779185495391709530354030757856870665634989849334705482084672888118717387741322132856015959446881302781039103151417176204245840899168239794861805972185454967875982118065714438669920831549210329847430411897278611259467890698981315594553154732566650372446300676455391808309736059255781415667544708404850111406116509601163830592398429569567235944500885917905707181627226361512012672956460271851586810840459743107410048770716650341360813671965003083059258613724218709272218010668571889110909786641401742390981089253633991432870290014602587479358323760645428269420562479550879918468512077294025791174241133507864436856599562080132282861449581577902929995216123335661049473713589782034850652542901248893701850900456162788212067702996178449059668966119504069239534910222824834836496940889833753219289403071910932553577067816997121673234228013086282592959152177244383339087673989855523662672069059388677056046779007175763135139858504519439998897712055715779912145402579371465894115076786523262853062093141867513006343362056395039755536503280216666672886330949430677789606822385754998990750162897240768895983713046413083367217421144630562261826594439602043736171681740481385509792205352691461499639460851305646357647221251779335734527400184281052203584914344392876880917216750355384459113940246477689368931657756446230659348981122171449320944052023104595651019935591614507537615127131051065982116734187919295237507920240086277964497056348304419909377821145066259313843985007174833976858215848620494124385222499881724618734028256770816086392783809451818167208791536195327744256308160954234101057080236823057640552189832359468064104216961581046530548333860576702736592241269576494929233743671757446393015582012048056336822590825914080465369922113824710443807601711225517822215825200374880394811776657274706046896896315407653601118269363765488891246882370309119556846633294752845092800912051602053225643083756612455643836253456082208768299040826143521373546576173980394092899344381756496258216634549241216964901699012396561561572623466558211254854022611817899327239051524279295119550079520946212997679861508156000029902898777036601085427079408822029475410982656820924572026804964902876066856571819790100808612995238047921866291491017900125026558094907911083160650931334240234892958015624237667774788687046883219486631764839731118193155196320410951485619893746251150911850872070105217932223963118085370971832365173231724395566755979855732919808712658751260044572761259903740860656344792598233691621493600325376354320723581309581998261657095907595628181397162096951952505788776834255988443083355171040657086268333824348868205233275603069833554971084690948865910891146436504125632426477319336292970490123053022013243897762907884933188944073965040894503182401408031490511920753495813840178675475058517262693764715424808436917641188415986424429416975638056853173180852941511820394746003095103983931126907357311744700836107076544592320359316108450608759846482585955748857368346343624736333429522446685129873769820135331089414525244798652436575096709392744413019073552209429595436351256139882741610572094397081941927831666149669877310405547599033450167369109982701007903395765835526702832782881186630772458799828616545143100311327428526580681233228791381711960653420271073124420455963333119237766631870518624594788088425671088873517729049266179415504423031389757315335553674714577713017765057562297887898193789991114124540623655587930579129460559018758317184572426152217636162998314515550026280592731676838813027603897780634079262558405937688394763931841675855733871289865598319989961147497917740083980442723232364266007542917376690394867923978462934853245894136776136104408364424262014505636718720351059184179904238133450680276416105328293622618599853432806807454228492901121179005373196085506791028195699769683578346028004142595983734717627841875756419269980744228237339885092963726250810415624147593616081349705148037770740706350791045261059151990673890026231697020494081838543857793881620618980783648048879661283761565136552857867221332992717830349812678524016663420386379252723023694142722181559657034143686147973643106822351379777336975716847478262147953360935488723343896219404436792844466577147773716839231730586910029249831345089068253168939054761701290136126590916851771612905089826771747231077474063062925929886501291457021666398221700277427271619511183338192813834094951717039628402935593455611217906122962674981936994985075540069278119767442133022529487400479210657540329912918877536798065165897349656828367848852050885409179084552991973020840340590714477042306798178451940031402663060845980825163197199759792787118292421875428752716086821619803201493401051776444701782196053694161040890806493121119374570441119865180217111952798668178833923379055754311637036834727408281876740595515030266978204949278632615533059044478780705669855268419480818277407736869106368679950328704761496870307194618076248786697109209866173855914273578981069774798765414843334837658359097015585334253456698344142751315758753410308359266979164920642521111100954597637173390129573195546455988357837908009783753021895304632852308356997539707899518536201437849927550309449240281866288146225218334906866797758799324907084088625406241118437660414825424084658147506075906273211056629559651245641230206876751142838621455591396459651143152770078271031654962947709665989584740812128920310249938204223829518851901777028101291250292688514272476519701351954142555707891298151352133439044868996181159912384789148286653838715936382120389771298680174199740409826567704168891183004105502690241076809211626251307299315897928639388785144789520889841392625678188975104827232487752680657804832424365839563446445691778213423321998216091019950570619867194927890224645819328521122182357037981972626810908496904517612315768812544896363504666075682146262244149451067831315178579966550032620345077227793905374086231959491634891988545433686164288444483135007008152771956862531567036122337970718199091680728485999217786177798804718162440489448636890979038118350605662293955103680141204393078610918227753620443641859454672340023691743368927860957994927755509021432783502630614132737881432443057648741727372486787715245363460741167688719805978944053419803830825090696888685370192351553688238010550332621153645148410744466579116567346259796366875796146206428789013353162449602282768603403605101838003417674104495765020845947868426204760433601650083526454920086066439247105244195145074873850678209985484684149045375478014484915193094873952570920814896538285412997618790166678573271822375233886668363825474214972502260602765532645625890127294269507030318387806335923626246729997404221232657633292217924673068095711814807559008308298618548223567227802076384042047812608735827918956723172525832148925488853269307377864225995633479551206777502707212770960954405583810038997458539762760329074742429097327934577775261266257905878462573632469268023108271506028434221281009417275573097317209001973857316813222038237010662982437967036998188420326430792542115748290834608051642157156291296629787914904862592178146518703999736053082725422283404192693442607271072380949582270737657129841568984701102471409356172404182828789229157023343260111333641184065497844299338415916268336672990280267861885643235503671385434032124870697283271834109936131298797375594524074681923879092681071668670017724185820945214728263900617520639321512033429486649791575141859395618229875212027060741314471975028767730281456706870470965636944989894721897944212379475844349333602676744641639465548357459130255650480486257443559358100850269896714089336740875473889599566328436030140671040201963177448002412543972167522434032935482124377572223024458395631203378615628304777748111159431011896719097708147923904461985875688221805590543515885340356339953897740847394666128921132597044543991893614682864147102934535626617550769719366557100203341005049654114637679208743060941214753858883558592571136708354672962196807502892868462296992178106124762425001679176405129362613254695575550622966608738724938942481737606179495150501274226251390454116706446489137400703041510226972139459692280618575733231723792579182386418286725798599899332037253849051277935918836252760364371134736955160932179121837894027232249017062361241079404761722297158481938927741420342691673092236993984900978852501792202158563858117974552983764448424470788443068141428345311021443294032645049133282259718852243680252943169865515648392057583157322102311736582876223188149119710818016588037420735673079331454988108485356958712329504029014610613982518635509594581670832096649012878159579632555982004530840406850375305729942194269721845256810250078175406506847322317809473907585065926818089863887498570645487371358263288945582558455882317811964131328038656932801062226791722256951865399851695071757176716848232012476541267950987420608473780501909588025748753563272516359636682552037485265969668249173303545419596821773644967165247694379596543246588740267017160743493866934513170422791028380901713840752909225085673299064118429533764364503342299301814353672960879775319645736705439711747563150481329002862007508200514026230180659188509309571044961705316935522783594490360653272509983821938448819238954713708290755158648383175365173428198741301773670701911464366918691370050410024824669913679273893717027057374007774314702267727961095294397126512474826544809867997986059581832742223633102265839933836534196382953736091804171932901625950551818182378681840449927705428539591779754050018675774170897516469386667690303663134085981473104241169337680805428886736386587856206541388047199353386788547082433890829746807141095999014023591753704147121813855226520705682442752528882448475029498660445078459133785538448496157724427320158121646226911500925615794288615445419324156813712520533317210020682180530960347313674592097414620297301460569824322587350871631191089536936363536970815903976275140037274599688833195670613416424337433275299355010817793098356359135989778612469275668779721339014006419829987796191929032981663289321733167657164803109951001785479835666298956016553806405185631858299722749724561706910926428256629665364039708216215872901018233022309612597722342895001422994777641802322584346808400442200601601596300557890885896895043529969460994749985999485958645528780019191234567276254894137236045202637902880500918813882352070058433047987312177667217913917411270576224978559457987814361486613089314963699942058458141866088524374376125883255948872511146446443246790906834622916375593508464542942644436855173946099882516025821200267821763974970503932164882075004296605682576453115450225637591416868524923381693919198639316890585635199701842327233416628363466383418875811269155516811029666614343384443941177239982902925353292979487782505380515104168871030996596145738302842865899997108014918141674037252092691282963975335676467440692424466891029369606503194859959010892884155868259117312470354380263677715246698839545795996145221667379833593862633673372009906477256997656902882086531031951060574813512683851003980506416673802923983546513293141338067559031755065047851877902726512287433397770012028432501127641272404892426172921179783968122405570423371624819397905117616827796140992875554456845337199052644564696901135800274914406921123771590616019771709501166617279781976686103904448809815266008385961270209446638531402620842472982079316986143777876355978367020812202820138384807336410284131638358655698727192294363933771230476306695693504607698621824879695127756962377796892340863002363779361085085833094808386343340799337333715857990099037297460296921672303703083873222637752626164639982664679688594687833582195435641321464171867233239622971130556107416430577734923136043462884015365544478016155304930508297042826534824526873094592140861744339372283655591656701467117034149481011279241892541672137735858375552222456581165941711869359512328606528275511947389944023871767710300943002758433475363473681762552017268598953071087244985362008285661945099816791473629783478081559926466237999796096991858470090993955027213469499235340111025693265224491217060653498901608595030865365144901701375836353002668269934351035184156476764671439134682874506937686888560332646333096430633681071993670339928473075576116058049581555938663263185069221995635729278068857464685312493760376869422692490616448455136690087033260161981808670293412849025415802685958872262572736222824934120753115152626151112504775423370070938705194911810465721225854440649071259861078666842009550928915781200008777662126164957878556174378862231493405846355115103191304917629230538149654927193032577785671377316856416596716128365999498532494269698508638421749840820442593550503360828928515661956644515065986631001101701947780372401091351299938226707283909174043903838042055341582913804287978775424044602346475544134457257116241173465868878523421136938678611905701015154808412158816747376909364942962018945048711880526440591438277408916298397001403220444087573688985748099931109896595050216471397251070826873831757234315191731415189111059400607707806631269455404372097750517952532608397220027333583688295382534018552735118784554861013848586013520055979458891936743684536019777465359175951648110425684383361168176351662669108539700953359963082378909749157790231987421124466248943421849635791531060790046829710480547125273062478657144829004604412709681984408821495377331170082935750444180095394386051522307188915938842394106359630542510296019903082472406563348967245455161713211425708988278454674724797754982693724102585375642063020225185176488011784787702861289152712302563576332959671439017048132818931374568546181365266180675207314867714884595197063172792000618456137947360062073589785633123685909920213388949494620911658610731311349033618625054163624940557000007217021462936258633721606010629509617356290661046308281731016449284516752912931819504582679126548029566254813319545171227028404114552396626697093247503031937346881850982383744179427304483847433790579541967915794392546168513569367979770687835221932499883586195513379293167385168625376944806784831973484680305244285241502300755921217951260716992604691661950257752233928280625250968377645947352212008024927989979200689162631154489485950052242537233174913762064274540087002260260975581711899420968814996954394295643171889963722628674483896168639116654834683053223975422286969771802321905629673743024011509203039990893604936843764308133666438874785941981557958426172642012951078603369137190325429453638826540605685136715077979241083299479702062700411454218251522771800277817603552447153991120447087143410397903766078508347744966524159582339553332860875406061627704358732439007872460855333659278720527608103719948551062200536816212873101155529126649877389641595739364734680936294048778029387957207961678050534904520403270192046198991996065750233124896961519948527740559698908420706818575049117824968063599136733571306614649122736409239847688425969493990839447683876304967918621311487266641979445118343109907540274119607808737522768456015700063762828601847652126088600980294124457129651726060110476798826559138873593019010240066932632428724518692586944483840735631240576809210064966498224878271045620496264208781025032448631836662712376202219401399754995101333441027574484387678217433336605149257997888562765527326809492886386636212864745282966689115766183717045112117390659545105502613468326203926613420423668634924146582545949919563819769883801918624623776276860739135902534453809336279517179283015137810201704841089236835952907372340236053449518667476435234507487039885744627629923147944713445470962459014818306041383800685346496505124364492482551859978331862251923636366325957796817366019358888547296357725531394924430731459457378198821621402343604796609328094280833489237899729039656462713199804042456191374623387963192882409666389894462332050380817668559366994540364856770808116824015983441455790441695220332956514876792258380320768787018652467304342595356882151925360754080868590177936577453115157013966463936867041804579780775021661338601329031943075932055702020522422618005463124562468945159390975879348483956674122407867282634176558351881143502870703868659729183129005532269429903823047952622810779347282270879384722997738543013982666376045494040816652286014422820492365538823483896429261330733065296396738017817119293455091047514961230927096321630172245070631220034419976983028726188517174447641615499041380498366093676587006947902082587190558127477298503362850674878579960197105036105981189265605712419949623633126535935778040885782919795861600788955996566964319496947481783874352358901110453304167428508684683181485372270371421095722009087857634146379441181137274922320167926204473443293170901142983755032571377538265033662378159069351697716885058061514634006996008149216406032087763105606565206604019279890409821304750077324709932095429178963018278366752613085907690754467758664700354779595168151121440697329240749473000950353894147535583846809373136834519425375622263183426178074180729641451835309659004621039195960193044440990817690689788901060593112012481557697175328979154923186834982868196897235843061289286631844920766897077604915782566927449892031843918645439711976333471127437638303762101508942198656674120946786903270448577067468196515416226428035673598888987003792067278950010392546222521718185789880141694040081324340131449397030507206529782264439507427358320378543135455203745973721424450651594830133401098592416241152461152739664668149146233775476222431403497251849670040780725635830059838775102226369231499944830882661606050549972621333023719592373641843022965109477708795225914516531955185964481335021670254480640609678642260608710150483634165595735401755472080108935953897833418900263780189840614841262568551698009887589869354349555968562253473194239464808483596843833826017110057376571313439494077953862769773171598979327362662002653306221798325925814270942427608390932191955468880654238776267112740719401609544559519761917297739472191030568093614146700710519308279200123942967111455351446191564758376464798261043382028407240912949895847995247385982805504292866201434538397588355836205191408657037955543537833873135563783700318857498264809262774381152340749758042522489790947419214288903320405779228215129545362508300779495592109645855072157401819391053141874531585832600733682995841767975023205379370409842215365509049481030164560304938931292728843462605378305084070726202697435289630160701139858419011501675125360795013455338679686988604641606213894945178963811577915840367133812670741325096676693491574820611987461351654688845727274946395935941343034357400760464473756659987386511964944535895196524441468992443128295663037106746257854873997114574866325803425483029596446940191205913084082279410490299273390652663699283277904057475395219107979816744370049990205878124460314378653423711513182343388283367377026669942221674104570519399963240870870404743448136352496547638207947091852088875999962559641505706837132279493554932188003444100641539367434947906410937891100750102240861538439582210372779359075251974896388640191571086148022798526575122262007358878629270138077343335762623939230753391238559681129309289926544627075077086361686112806069249467281451851142078737448221677982588442470103773256928393964928347046908877944572082523582870982564981868965527872226796038153791843632061599327258069346351084673326726696022103231437717849725175786283724835153048991873961324170923297783135155302230457080596594146970027793801990778841684546472273717631895536765071528799270108922928214111348425718203918976427582454811328829036112764891760230116653273036732646776662106146797757840227990441520834646821347908423442649904039809000126985938089474480466617213223303003938935582051886561760084025669682022583254595106852662862546008852205816232468942620515746199508595732847967544894754975776727434726566742743545167215979356061382174417975950915408415323958713404088167523080071596458871226143717773147717846152634034189421272871619442503340375544883247264936829399998286034841596794057481637802767456640766197343132068801805851384798035971083553303736187948579040239861540592478327595596377370656220153940729702585538966408659190317374600157277434070367515792468316367245618018541955634267735434515737377807900870558643157937492533027136529328218006961815303987012757095914133392162644205966792426179714923039806428965262513712655612170879678535819012544558839401798274839603351343760920151008882315919332421071779898159400752485235305231559904453363457864805746104863099034030402048740769884750354864275980446784258050689421703733203996257719294480397510254026923361930451533509894849967762219965793288485833116285830165915670857233460993995975374660035907371105662291493183957888982098615637406345233026221728787684304674365100368879988099861425704205196333221825201272068164433642641460535166285104340841397439894935775090967106189330087281162112235767484394225974588271967825372955866228394020722265233044126346141676182401615783476918729874721505637445794372165164283520562785523453753187194449122370388246531593579528546466624604255287574906958439843089457329604539799759839861789020780894853883082034286349274502217288045260596453700020147508845576065255118183730978484584830911131468077153488567463711513270843817429023702482274398626591782743842529664816609036282902077368077680377539434188544225229629871991862373771695408888885491360194431247841435005765180461168896981169247882739847859020771183767965683671613771807198573148921352906975280632033171971813730230110388821534281361573257007490586069407667783523338188026301750141422827256354473941060596584966834178115801701329969663501232425671747291954093478638729485300977231534122251285604631947540482865342555902273737860494058259829561283147503138078505512024564070420434552632666419336460232761438476851280144662749801887058739928262565490482067036583004416897970215593989379232556959881567194598508110409415601292129944396951725551604387422320340123639457414549624992989474312717248355887484858964351072190218727355280914290577343446286788447587362972155583493335791573742188769286896227211114722835569331815230774637550670880798106016643351588682565717854126264882121810898892068124012694221099613276197502205196633178348009997811947359990188613788382786167806873056129080249208567900006554319215252472539371790794964243701683640962114083375305392371168685190568550066231572771766782108034478206773113574588912228320443304272912476475062153412035979432218632045031453427278822863532958063535940121914737496350819869590608640314796382006704499938940227532281878631476631088300665326287745278338233993241341186530705878572073230753063299658216021234840702612749990342381385432258220009442194986805346641425054937244494682282056449647933525514333031357468087644607109375938187709851799418789478798283323564947953993490718951495387713704358427378525962702695546831482025923445378373007011202251768730981179968315449184572982901731544625449281092651228226765728118246463126798318474077630442072389240287838649322666507006023752850121462300558985720586712319437851000835539249765171323106273296971324586611461538677820302308195243263507140243097415032705200398519271333586421629319022334655269283463498091452262494444093672560120959704546005570473633185461889860045571004294289088557041106106622840622308566284717095482068803392985253246103834368213866757648324590821996699036286406524407407122923297640007291798420583954908899591078530354673347500801558342747906875354547065416536355668744472824197484632917968797469019649065969044847613302304513433350197097471587829303700079820727064802152329080056808171627357936597129976437671299424763160304743127872946057299199043848366958091378884835719395353319194525736802444124112182041816736959724978226717694241946872964126637337055638222411177575951063829316777050626818097057144926013313009069758922276542707535437120786760469642605823666624367400005155036142252041679001042242785635986158221262932556897506744088852690351805702981720190399316074651647585683541603522521982081195126724204898755977750263807834739178390761628785634521757544813205071480127571222018571016067075326495036744477495114133984934757622023183285815508486170586447306379987563866216343395840618750788349919328179153651213444772946643572091120581472659323791741638038103158949732759260689084041215925257276069076059461637099607142885691136389679815864096859715950586214420912398881287755985785970567657744678469434027910065494408678209107265019512395642647302448264589476177759110764590799931509230830278724146123464703250705494955066993245456940796399881881811516459806684011162524740538681744167524287637908937753461670501343459926694324122259580921979014217159242524867410713520035812847060012485659223017033497233335962286342809561492154530406944195353377362629435483897088667752873690816119289648611109605410600650479049139332748989411828392108796735148385664662147644246188220896312905400893793120719435100451436193494082574952015372153124668341861523939648325341086430010469781663617375408607044996863848720539977696673114275944283031891874063118590785400257780499822327248602118886058709880391898874230945958449154173021705680303287734246791218110900882679512562280251983954597774059196358859183956650623473538204371859336689184636513044853429693221768717929378500955311107396041693828513432614953181384349669111397398056406167957860911427640297693884923065029505487284650294808862836416389500365602882096123463476664232946288925403378291121040715690596571166758742200462675428873760493367306666721707600156945598959173606604032619310903241097017035112448489504262272798403275065801574675814029923235725130644562758675742961386537180993922088708156769696498480592122414655197921834543278974153878835826143394354154186193618686432344486195051446603023931974114243754070182582798238040728987374674412704337967628464286482849063055899630978718968605460188307097287680295668879005233525855564095970273773543301129893894216041315442462647060179333229586597930451113377471549064585793546794624868296776240344100940645538870896625901387419562937910422165027997063147878274721318973494618337881515895362615366420155495308988760700130675665275275915289279068204352075577828454567140791151868458905628592058815865000636961150473593692237343201779018788213008011728140956695786437620087086823434726947365379969922460759836162137362686602474772900010038968174790723564410006932391063377259413479281460163273594625012714504056214099107818672816171588324043311598005356214753303368822922962810527997480938426849813164768061721780860291943071383471201130791073268269390209891913872718240984690102247318767791222831838457183548182464717016986076481937930834662374833701338883265592092096111529010483106424989032195315180053610858260236058216711401411392633856945304404089993937558736908523423333637582543996046861107624808208014309900214313188835610130621974158872327744273166882185306767806245892029025514668601609756487806695916210798097816833063943130177877970309915020083583115665413436528727258875160984540158452591643196955552857576164841219665515463740980277613854639584858654917834553426097513101367449738164074776065072700630050575790632651481464757645350136430607683498505382594005855378451020292308104102612120077392300749887006286215923240750932256699442402941862516534926922470173866778463383386848015128302508537772943068885533132425880331154096760654858154287069576919934052787153685397205300895439006304285339665036646451584079168700150487917489748534821301647694507740621237042615133281910043360104058281985053978809146943773042514562358328082918189007465999733134945322688790726391787145590450062779506797315514030796622260650201175827871868868348614635793122317958343733297749481967605092131018401484517257292801991698707435485500094918788832302258538356820416734082481681859571708585016563705301885137100479686447159501321285742843675508646251399433013790398689102569941880871224311501238424500303063643789375041337177710583751424827302308192578473357670190900149852453463979094571420172713028549110464129868285079114583191261884841622860084184607540919297039106312621753821058405503765893899245284827401467991080201817445319754987395891977001934394828327060830059558007597515895739103307014011481295755688208675825853460832470354115377132424154037389693938665425149412253531863119432830016242019374774865938134734306556670341529866107390239628165631322642230967229858398876118655754457950991297026925508770631000004416094203428139222450686769913846282245091995793602206762804577348273835770648460055303583391426090495370660448200482035496815285485562394212397949863225820832062389037966850706832266285425374101400857156150309581385638916457216269970646991381975970326624123019898654208342530571826611759964222165124486323809142074444565948566466786415787819816559746682584715312415107028185935388608098295162042603592811374829034371253481538659733438047874605842514329521776285419782208485839747269069467096070212457186701481147286498466968521619738227810589172757379749366124282639181013552822659177607469339523689778682419481775984119031899405589386110953786589210925922076506808021199288268102612181774776530450474124166764383842804197152347022186098316225286103807534337504689432064301311092220280775741213399568371603758194528554529952334392559421940523300782693557044489689248588628374045009417747533414817045536747329889993012277166957388482571220724594694225547292708107015392659322685723965745875576121369130687129212542091113618346889272083349528961740442527880050602911618641268257810714073312266906025476589357716851471657053563854742892216598025689370826122248536889061708501703167474874144935423043348207136666558371742902955590593261432350824736489210179023722487522073799769672716526531170050807590817997239457321970227430445855647870301174379163768305521503191221299593514668681602787389789898944405717157034969457450444809935809054889940868395743555935480681144859545450131048490073809062928331904083806722889537017198751466717234767214188390546882906911039564336904520072036999033514535313218664774467705138487621536816268817241854903572463676816926807045485046657582726187805472020404456941924602890954411821037347700550141935832690021513101783623554505331193352031084720188228993220061640000195530522991769001807755454389645489783957613032427143192235406048580583705530324765258886153620443481872591148374084873684706087324555655534040547461020788610539911042894864929448245349489493852415029620856797035750803783313273720148623255955114418127670181658703126820557256145970427691171832989444835130513213606267713247462602110674370892642061641839801676083443349836918755699733308756550554818023628126543651585407036993354657153786905004590521519056597086891673940234764412484337654999546682635017005070247645902468929593251086382829495884318372889744251563852369710294355115551146086557052466357260300709151311828363191582561395229195945004098533703519883837545200257675365448267952132908934942750016056017211012093427023719026265236362343252318565978327554503671041618261932137601917683344259805702948628759169328561520692245732763210194769141673791009468055814353887998785502877100948638026074970834674590087179461866644868842723391854087511158312654957909421879752260494195951593968328566858722902207161192965194313034480215053914847308275989754689633085157245915766329993603316302573137039831353504661865679329531852143923420790025816544182188973354997000040507144080882391663413963777031818085930586479870513961898672384351236840216363504725201773750892995157922723685815501744798510338803056167519939439212216599187596525882567257070297691764299705136173873866349125216677029769566444912287655545379018859721717563753126275324987188823262357019596385484772749226662532780774380037966776786661482385260409475096374920096551216378831833108150639780119835580972977682823260244392534849651768122518766567810806566449255387750074787931111309637523066914229631332015447770032715032817112529403859908949519371937444576371950652839211526944052600977792180103455046168176318028653102417019588392815277944082269233432165103011256663060783005072681395975581472766940080117271593092505487935418693239434988142236514193726739615840392269952157584188223774733528767335840447760506384662778240849357754262543528734022926554731451339255436057637934431274463583960302232399835366800485537986994302973770569802213952351254396622900999722881313508373459487691698683345155796870825830558343556817186955461439830592208905638322424854842202195732269958102435535621613606782634570332550934659262859708122651978594924617353712013374662601414666761895353470179468635691460384215532127988044623759001666412103475006264447704131954982098746682365061876654547885494855878479960038003626334150177466987325828030639993990747614898489136391036007940866447724549432251167857512552363834845004983574886016955880830932918432964208837610021500412587457491054923505199244302146277620066038959351005348884460964354574507721629864451947357585303561609588501443927503932039743525334177289062251290128111785855868323293037825047054938870310887061365407156745567048979421478548909190057389548071728959084369873859738297061548569342114024085147148456365843360659679225515834500601006627248776453518487233385192451524410488450284243103332528535974841266029374631107206151971223560332748855375620274437969773181941210649777460858298305090296445936634216788347876148915310366259599243036372901114417486176427016324701694551278422618588829149591324493519231475035745882815139266378780986025683163556654768265231196556752829124591551077766485159016995668927167779601915731250538949796860671886796161002107834789778757577973843683913642134354052657691597680504979892897430103400134637771462109401620373212548520203682606650734808345684845881693714018462709660935538092595199895924023192484090835846844673364529667026598982087152793793378489515804971855451491929223433365848760404578229403572232370775983829277578108824921171407380233576200731658871121206934448891520567898844383387346118531083261317197310621598632638868419185948192905354311116356408441205357645997335769476898596304276200110221420892998153929528151701691591218992345314401805444928087011700098959820788869341112847041805622277471570494281884486299673628150372687982679391124530824153535095122275202445531944469443582826055599166611731609321347431504793483184606824713840156801337967078220655202873026015435500399049703888833596161103479077406109277912218103804680535834033149570784654658928037113051978711912686164544495445630332741466307002534410558671353132774233912160962185813250672685343581114021372573802676634451062624516145378195607666569642742999110538555662435196396099392467427958854220568028458084966307671434622587132481063044554844316919052637494347525643021505654006317396433712528248003235957245051335866370183461274423090463393602729350407650568167158466229887787454278703991993747951288145053729531196266081419965727731424042782502148051537072238807828455990642751953499420020342224687754381344586908602345398305520831955866224271671770667689355608350179038161621201524765156121186291367754000802138544853954160061552326050142510531848657047610566429049930905597956519025337396767642962321659515657642004152644971686160231281719073455353851902787098685375933172947164373261209554588443662683214934551994778390893146537067389727044830825755973866771649558860518862262782413088621276977863911297796970379655175045339610616875373586808367418384494980168331117410860455453638181131764087722519236400835917905525169534597566727473973050102415720866349879338348115025751301899555157986877559725946587295444391635407580047118227074617166488924079038266380460688992934016345479731416612155528415645938870367949894093222520552245878930259923848281671165609965223954615841365572429935117094325313171529989447204302573133256394989598110930278231791835138261223668128334521596460579272360855018568658438390869469831569100508900770130961034547693185908219934252503153845893169019135311679018031275015767046030084341842132474773864968357800039901336919837063324939945755509244254303725691774333296051536693201839647158071504775350986933462463986350984038413810328818007748448459291100253416809160633258515987569449401979512673921093178900334677044358025105829671778864323116446292952404153710061440152593018521759699395936110502739671079924333852408890145713952692371368994528225419575836524824764146748415923744944348810063521222846217948579799044504398607375333905294716270928962411138397080286362484771782087737798811310779251004300928683768709234246641506036475995363273733652515423799849452692107968938549163854684133089423661788870635631832956043129701484986702270537755123252965370362240224019530133559222973753470512896740500367811710829779634761018311391842345471665496940662741910644588836978593248097525136496124750361799708318531812472827401097339836390040615377339016845822428853469652306357584820151372273844953099571204144020523542910357064864619160033350585282694864849694797887058217432048226265010884319722910654297255668604767561854828263517965497919882208026572684973758081279812344264582566530955560346405731233787451615332185202976938688087179245657032700809142405879863681850735817443802884620074832160398704842665011312538735719848075401267566878219151448328967912107291079966756135353071551442798577779250364934068825180798252319082700253592492610908105521802706785934235640249618571988668016907076062744628649497514810684231236271055639345583668293703735278581889149863963557232309146294923049775570297403188565844038662961256502170014123928566803404321734167019648677744568068674581532704673479261283853036295890285527965979037159277734286265549924444069318647774109432507588171252519335079669816859255947746983152232471353158381310560131220349283404789174753302012862924283791610659184193667829736141123087320288664012086797642921943722033020988593100516879042438706396420823430369610691547700238008801019307437159295110835558479865448761560346641600945718839847319490495709073992704808101378430297990294428807391882783234855085979602432965459938878017785218501753019201695912602284798006208085103331139998743908460055539117142718779154806987609852968766640579577854195191078256433574026509322656420581988206550365876002557507120987235566464251632318866384028542367362928446295762838103359449839230935457316960586893752781051778227051035121351626265825896833548236864586836210127657948917158490499965491881831889078044423020076003295935225254465132100308847475108486480731192147601204413123533805440235534178035809662573117197773869408766545126560079607043627503313984299842974994556383757576366356127822080927767293876608692740118024157801133526621956384401006250896040848091031800552171522074318795054643367109381839327074775658884282900933330039670571538786571197019383795044050450222842897769341471338005629100133503001297450172271406934428851317226960726725193099189331602893165436805914442914637770280079118185227755792903611034942371363695667976188668952974667289897504880288424702666978241931234765576839249178113072393917090506805550894748215602928719095809208354720059879877645329321470563890676538911604478940618712670446721932455805456616496062121090676137207909082417057367936539863471075080133691724865743553202028551058803437226353176017193573109628909391010008225517014341672913929069126604520176894265824839702999909992904051523132368339579474450572494043479580983732748949028289012620484804367078227479418216632015596912901937258213139407127436580716132672036301425133569758198218869296265722698293105861045749604059896640613231853959685143490057752674928619613384875677018565103717904185240604655905422497121735893960749278336556173046276356519503045867093499498246056611021917767641414740376595619690999097146698240272488228255382443726908819578097587508810605563294718284510674565071987665884968133472901104168609836010050948014710688274817604515448736214180780868057403408576819793422414827200343168198056408929202905755786519549119817208755361076153988684786466163887046011629311394300413328662211558630415261928997997452969134427132716391537570398690871027900046939378258872125802059855265314505334199363231530311708038961419502138316084640706211421684789345057173688079384691262654961957021031057838747143785422747904540528800507482091153213783751484005040358612161792651938165720645516788950423153490163949821462642542338532020795885007765802754702950615686391656556490949329834266990323558219519371596415073813516656568218212485459391893573836450158406388046535315380426973376921910969470551343551639192309302068348693066730702312761118800962972399352568988978768572162111858748746516258498705765031150647055147566991343376075208950060749679116592081789359308999382809198058889438430834013054343497481617110765483705846799501928318153611534284278108533781868590805659507985289532409925696152514857868330292244767161558479999169760721025285661169638696956559078525409246743985183163170221124579052758301386542908794821070124031266579196229313449187670237807638448063104700214238440577492075002788581378600345403736579876749904210262690584370371758585499480536387589212595899894857064038027949426793774784119928554623480712736598062760624553437705818763761741438712271793125624491774039120896887771128195205587131880610910032861027939905360894958999813704941784406371281413056283465354432004832094456401072722348650406877923010698764450668678955671182732274356216615608842017078134686086490715530117475910608417925886800128289533701533378106779807409972867834849384711585945744873015038960526592311462075264378845950061089361621263128242974253419562401913742730144414166182584038095962113659089857781829039302625359106839830438215288465684962673973303657305501071908540888365976349368133117141594686534885325547298277234998513921666627411573710018356046889042541681740710759925168997495132662563389043056613060274349461736148138164780481538275277083612207735549892810706688342078944123752561321187121838553329088337455413098182739131192036294291678799280404495780111674352855216329709430759139601530809468216852743618690584418423130618992731615941185432673777579179152257540008082934665848390141633371689508925511400372131694533619625406229160704924321467709790336975843737694353073995636341449492513382948171305882079405250075521484700151982934548692288738005591636938812148691990968819728390225669146781902358026636437773151374508414856291616963533793664221024233227258237944127112958816962075145547983686185170048471033828677176849339452312615988605127292105496254799937780183227662141886689346326684643687160109778443525311328488953994742628681886816385572211983268180736443806195510187986418962556306284518882243387747322926848924910031617573809962414094962518748851344475687704926034553365138589004842555032389334839923566482081720652488000274206486564646536953261134031541426566073726548991604064171708897885218629383763237305626437446482185641489805798842472450904540520018176946257544558357208442744637687932021304544822019797482827897069367009218618666812705690450760393613545892367879839618230272434329731501393155421507962708325734146744013418175468652903658318699234053529085509388289919235456846383241364861077946380541836508270382144939161508791631959052158067873503290066911143996901353962952880570423813768860397129819076005801967333260484848754806478048216818513589232687865251626454629669477898492202144994663451413526311388494231068680501904302540155780381153943122100418360951901461948807319114841928040161739157175136559167596826114422378686974779853098162072373664987638007059853388927888489316115846917996413418587641408062847382899885256660860628102851770945435962813360513759899018174090732875131401348456746008728208075342467533917782566694390560487310418073256268949577464932408471294966070457212353419829659979704426972394327932446087265574616700455078241575093046502598080245808087856322420499014137940956133975055918559517111353204512308461664848458287472571286058724167700369354777874832562216729087378546242178243879296430963703740903706867923383791596209643887977467066465186738005933648224125785527207187322599904525727646628961545702664988566559905625970220155916031821119718166357405321803032692549069980985449240135375072342221308302440778610586419417481752174585664560059783275102587264954051058402572412182421585258820193631694518232755117805143844333967941657896069444278403562783982802729951241141924662030840704410178959079221640295797847031160974485619275560836513103567694235917736578221180269206327963248910888532172576947793492338262243311444061633907913668758224431316963104269733187344006095806325354489410308200837253055439637573843867916398008847463105392997094717345759429039751439244513821328840409404812351179554580528418811682846784654560785819309778642971178761893660578835202096897010291669701643995797050488338679533702087851919205978411203763723734270200193789793187694694143646736182871108953228559377369187318573925303066735048638160970720139644410280155186099063491981139499500006758485329055264618277687440662094022112388498259108621110251799383777964489203219017837025098814272905523259766154313357629356032170741909319309006375323464681905263033985913763603304669284315712873702990853123611094190778320005003004310467501882054485581113601294797915465319764395097803897126588622403478193298423961453639672905609612851978367937688477212928037031475168398813950663098363938657805069291691167408506138379935263712017018767425040821471729416173560934717182639909186398219359218437514062613679193080548178311160902278148474960057010311321185979754138048000368744961240020870887758833027160194242302162231233316892835134856012001717252747824502349902822800193704485280490471531802446636678798650621716742520428799986944516850076417627989731694691313652245187987087466427011886217535696519828748229413476344540832474969503045347480156386545552035513562009458031308149582107069523472400791467171014320746979589210931549280227817214786898048965097599841416746550067930633562484222708786515699432099033599163464385699243352769738787171489441142339220154412919730282319378090701683875049918580204730888893923673191719957234012013690401958041889819740010015776146342896188035516973559650894249926368726890831504843175750458245544358338115001946721883123477099235649547724383675893909216523159522037145689132257988311999159789016952189692383398826122234752370363451699284885089278867519176087881079806009291052043027151894794423037601476177115503253833645227379492439322848210782398557728778284954661327330185587192357561802658125521958364276096303746897611959121069037283574916439906561163889319383124873670292165032062232208829019787258620382756126668711323669610573674479169363350404045251168273949961442711319572135784136640183242370785254999117022089335648837810899199867674457314020462651023930608166092872227611632925144265051526157718317360559060236875022282534405078088378681246031940964329865471667564574236061362368353013670518543043879237287279503521175235157031082599245182138629874124935090663780927142828060894346322730102096661874857889074818913368264808367882776236627798484989423034722704269907305596893210997356545863645388706046671390068444693866616943016125096743101097192597715645764578225100432331740767374882412339857099624990880541210098153830956666837777916188850287180853281958557179817882708974770278284223332693858031186192450108230874776627413827091247837484224312291854831404252833822125732805880173118234692307588984788938921700163742488442331781713644392185106034233380043527684132404353220771777177344677776119042649962396198997716251690050312299724658265883174997432321461105173466275144423056547524007573669914807080950506362315621300627675157246645940859446357562511683588188135972230827579902573877308874802571307697218550200995720509573744233152453300855127933635501942380926530070508411973580681674005039647339144422505789958080907853483582486529986496297232430923261779334184477176791835229324210027852034716897339060533540190146007674405523387886341040972540396072443880104684611281634107726185862157497518795896448264780504155823852662962698772093115340447498191469925448078699151267523175055057433148524582021961014186344756166081909538580824875146568186689147119121351667068867372632466825140842318708376172985719198645151750145538243102706421715158657552788624259236892133226411667589272326737301396689726539820680896404716185253687800910953462739275693323744254775074392468332573630228258170676052600544929801053042705655299108524831478177464217610705594821746585058936013030353353960755868045100470427406288209150724708893577868013598851185761100776855407389579800968229193063444607578830067216391864947688245001701638490970717353680666940159586280229026657887812743653043704046361190533666583198004009198523672412310885716370155263173939453173343614210299282759881277278554808895585284524266602472659245601238994878254252345443882027853240719848042709281518691307891421726376906435029615047876856293448371257272476243286494655409801436276743981185093869191847038443567648432101901904910497670571293187797995461574660410412370801050636592125485597865418248949244283622829967669169347928954051776449631811435031702252544221278745277391629221095019165164683419010948593860024701130132189175886599284681213085903507047294638473859153582768713998369500707314639990727597387510739096920723652726641093423868163100939749748775135467137684458944717134996260192869572498910297759358518034179133004375107990256362854303443960279025340363308537058602506102343560468565998481688900349691743210544909010591328565705789622390460863448758272556554502033596988297137214740813393112750089413239156868254774196731798750930469764211670824291561223105116705033837260328200623488764185802298287252803899772991217845130133968527102837008917948255522963684055050951541146359623540488631717268533190928314230365578695107107055946664721741044554173239506159816295087376885811550834684345025767381282055152922764485089526421322501798642458811225830995999339463977388585734837529937266835943284232267596134612377566565302193176242254417143854215787254560398255586764646708071257699677111261729166111640617128355791204463034354987324975477343221738046736716344414731751386438811274193057170746449290250513301256848482408653775827742726112900723143019612611917568554752475477757829246708878096698284693562623840638382086637105417945034706525853685569220591779260827654568405549976192302385447799912442222646483591331000836377698110606599120916563744789817524982803904865555236175293786760601630101003739353233542985261102580374860398938025304796688686319155778010604906377186497700333260754750744734355970793543310836133724096528302297197560210194852594147973136666325774099401179542938533021859610900870381977927414101116470034997307641067286456739779941000587985795091347203638225083486454309405311359027987807304616651601969036502733212606422602167113199252572917079363238895132600870848400316343723325737098971015767185182680976874288803517329487860919567262603739109597736201918478308232133514099072301045168087412348119857956544319910764694370902632221260602226038002934932272773808940676793871744311071719512588925372631177882954637524391790893395520780910479979844110887185912941310086298295264145552041680790489406161208784304103654962458681026382527993878075952989322823284057237029325081489674445502413176414836741283092953649895961822249705173073841214946944406842547671555797238141716534917707861299442792949007021918775158401927296083385563387410187429593910931095435544801048053669833220507090210246966989094039502918786464461799417408641085757733328914869592874524906150298323450741696118856479000097042582239790302860179690157648990879862854340474753575360228794649807623034144509378297014850730070294607224911361066485890880702139601142670750482345193452379394671166318349015350418329893422407763810102731356483141562402800328623375170077502794222940236597577373369787434384362766308517343320244898721282948423713299482937929314461453917888681962777756548813862633988412835653108616663029024593892340060349613865771419025224336175375411086611788078077534484306852316392816956511039243649258796857603386950261939158857634005871804106357894205451652773600967626231058183046002282762979354446480613941763107789085772929212276676933436933341068938620359815755702097163075613128480562303681196574014945398258454255791964651405312050815085422717396989863945502339311938970082329580471850728270404465163768250653604808060451702642485592841422692507003998959742808324754190822641035617659826039334611633904415991567536583307400899283440960586644890982154425693100787688253649872229558390645682304571945914167171331202376866062163027619727350126944997273951796034851257129676860230725470223906926005225930713836108032431287945708953731012037406161015559615312320922749696728114866993583829943752284132973468907778251835036263605895027837261060766231438908412354728131233660285123655092184542185749991433468426805090406868907898361265459881713998954860555986286839004744880890559549062078249387969975150674525496296192712703323801494806541846071469445878025800938450665786891987460372508603301747384409821492038709568766007729086942054566148310497170602229913060852477117998591148023133432840610096709729669981205956669461615744864505738898157952496022831443395350071109642688609000120954707777759654430961434410518498033377593618163111446710755120230447687192578951730163702705047054290376271347303725562495641953336250973351974210317255234584633916532130645996787176201466097701442145960119087102833849688648467233311246051738678624234732171676088871936684386407114350516335242436657477139375592340298985477228459264295072175465360379638335252923940861171982958931552398693905138815168129032693523207313392478684512702856385645528907153746104150619265764223947952191972854558866364782611704921972547369230288489459946192241206837062458913077392022555758543698560116279847617079696407097859289884747570992679744733837187805749852041312507963899362405882424287503600516951024158448534271417009419620593294803363606860269792335025753015177211868885216033106829362302903992024281115585167563716166549151562209901315546069526173800758404327936986355393725328575617438203402806989702824121162984591885511572927709495627196308014274362158958830646710501715843595788315259565418059901150034575873514771930557462332735005315065860891539607079586970526324923108812423090863109865822248727106573413473851582380848589165831088168742266261708291549605620708248825113348962209583120731341061516263780837416289168463726809542325088830527226580284487421289663581509977321617182174349130613148470074879711896871872154587469181710131662155688037430907652811666639658193752122867506492904322558122540079448064951074883558989251263062841525962843514629539223697157838325006038758912921163334319825627959392700354673225437869811299571165006790851364958765063289268567074840615389786539003401635883708698258186864422076054640703962670189834998314877213324350682903951741070248415218680277132520506430819359066943166374635202287410478147020737233988997112698097718973959252396053403925639432355295701875028118484754244630955334807765005232697371425146468115502677972609916202792964459990665808678431522005036004577993426165825346364181993868021082719614659910180563907459000572332786755304908287663683963646135438972635918744050374592412153696292012334889000653489029849052876559908607935619907968907782012924076793396997169100863966643854480903996254248330468618409555231965264260813558395855340065778264877433916133721152740433797415158852655589803318860389288706535714107226393689928596466809757627024108839698992584904090768251046182290427910205757604455268143557026597364908670985052953658949688299985388671271615072274864419889201237207909024196985400243068611765153053596612397430692177513501145482809255179775658459834774088817436566734077767114247176339317313750908616981602615704317476789974580308946107708482820451566918826364024930828525228833038300302095600438553855248156724720077610802921144707960752349927468939635889521332062892842381118200596325298267431539150283558828376580957129495543874339615460780938780346750135215063495671290851276528119790053203678045426118799883057425294971695706026534973030171509631054787479604429476995453826324402897665191446589571621675139092877405305532165803354601756855462812318767363947018837617736763783152197060649360178845270039992013144654483506761967149711595034933146181976444479861617567491735957977517268814526708396618007827535692310006683988586214838924543437052480682760728356857893967987046511158470746614955478139199048833039316231618034006325488305449328961632694135624488510585044225543496598470594190120240198387417164477397802403037463427651931986039133776696637181391481262357228808169609682180846168942490537366428654599357686068717026009456931557287266284447938232679785904436430767699476888609419837595917351262285370295402573424232189079208423027569122471436985758238424100519549759416046726417698243136569552223860982210416621436770600371127321937487187071173660305633266161126313020444849014616926575886207186803465502656430302468516572674468937534207559675010844872115319767356317766234634916685905252492254551672320114824704186323180902580141158945001916639561548877579002001611391453568617352947589145799567110657530159514846722289685545993507483824924606548640770601060832364604395108983483647788073792086092397331502754949620750013731996037207591135960697526318201176024546256692699680447982513691847231131211615307240856015881162046147890822700500101581469703124452188718509172577645520771109171604592253642566237381058203729020272673759128066418125192166895063522516480253729480298448472819286679352061422757270918707662323216416656954469189432078860517650799564389166299726730522094885431065658081380674047680597219167267062188722742633567132691122082577807184543739747655766972819176182083353869282804030531150295963428217840289244371358801540144676582149190984032902912987220309765677955938733969344158767307891369832070504580887130431040748646318130004590934285649109282696996409921550340027186139636701034053319821805053445723145858016993671349294734733826948472473399016332699942047368854977968812478437314025551052538972071661874810917430300620687791886301092920570051790186806602612331745274300161429651478784362821608886659346087521562256243475565762739586223000809868348696184114580714159577998768493433139722342091108785704582846465984292516995046846286088792979442765922121871664604539889140586446130165617820860707764368482372946924953684574166021049133975746384179820750209226014892545117197866932524171457209197179858473348899196196855263445481168013061035691263767095244438157573901714048565347750892944143288476891698859290680350394401228797313159436007934451119198160989269396897176191421073983703912436754802879540283422057677713068569169842873909597757646900130121514343198173709360621330953908824517848227528356361812231114790918032037352232123756743117519274353508908693763372400139683492617224163068348433830319214513386661743067841206240251797137735697320293963844522494326720216998026547221160563787795559763382553373640859279447149300672955731210957140576512017919113843006824228767119956642393086367349158660072693204714754579258662605675433268518873886323781320329107011071315571425973714007827243427667739714356128291183886955855785414939469442985554759907915550561699867420579938287492681884194428179794032966688386259149179863983587875536600042340810630695465377902801004194443243250390514447182519065697950906145531825209142193852843349498337262643370533139844490856018967309530428069605652171291153729025118811818930165096753870067920055360904805618775408063667023446853366711519691401541985882184436370119986668283756374655426339372396292927260673191241158544267427889551966688765353999356813162036874281270857097870629261672750767541198250417308878323384665668219812023081909688445854208498310055905998038810981137220164908204699008589777674380803999880188446223632300277493734479533262119149512946877343703508948670981619735028258932720249455594955076431854777628298205699788479191782081260911995053405730410712081870650507895557648738762439596999035545841909827632522428886559613280508306860081979985119228187469532978928928644152498003925243253072549889609073319825961963593164470545263026639112829323501523727427290269396213241984585657262928832179403775951841782624118030882263067776854580028155375481842468889090243866770709055984008564007562812211237462407865568742036954677396590002338956507088468365842370959556083509898974979770022890306531044123690999424712775409907911920560946307146908943784083788347630444748316759515915381068642763926798351150841218178892951591420646581821313730462884849512031024210538759112584086498951670284061321192941164789329727268152713078832909912595498780037425381384762795086684740670378301679400325815873199090681309926190176950009019253860103191980638754863328780597679269765360894702099093745208142345204695916750921012144658412489460646392312926715696688260448837188138716314931595140183813782304264557823302437181067322529014930774991128492049657314175177470504090475969043685411612121809785392100164974336984908447974673604108100524261044264767785394300763658448259311573331891710862984170310267284241038496851853402135081482045746197388501080061869622599644047470702240890471770694162246353318952032565982754111229097368228513619136166178665416375674812654000514770018270736802332704188454410087836568372493792292580569670799805706020780600150256661173276267765250352987529757585738467971064660707378824289358138422359319073800307676464185940691064860147280461687351117964895582684192828150846594820297657140998443606849610730482159592340064641475954492103681521052756984081929687344246343249956728455605084585783469302649391478730169846092837924590376842633346485201864448776217978647217174118643307649312694703962155158898393192953889513612650102194629190377079283516388191113504300351319768173276737323299896965630540751925441949466870626845422547064447553468133953875090229861092879424393115469229580322468018876777794887462271656424989649362270291114399540908358246180930894105117933016868276949271155795490334469635094309630234747646718567149595188181901648180920972234817315598207527815508397386508257669430266161133839653821096617682334253231612078487868277398445832196678118992916628908097617375772536525670962958103438256573861393013133686504191185511593558177508181504103001389702240015472334590803510514279311504890965800946901714040565676651271287473537357553898071088890043911851462277644122601606348244932181683060961192494341819055173602647348637784987204080182135320108852398189801055359996406898708620429308062329280850113775487900543769411909089589945729401322799516802369838352726260057285406641791395618973559186880740548988640793286802497690394491813102275305068551546838601229692031203216708936027627784742592479780740813526849244915415420896133179942813202360251142187467396677232194449862305896698567601802275096734142724563999654158658013976487646517931095260759470488189208058040368151339456339877876619266207787133073318942033145701630452815809276616443061586290384152334068864106796145743888356028386059764912350583917134569540309534880110030636140132969452258112606265832292439047040003015141064324956024458249124732482777120107304744589909528546815489328750848366163229134339024631770213178030054469625362770369399134332937811336330523017575434953288073582728569983817522459390173061309194902898883801857581763885928033853684467668773951124368146018268738038241049239822949238116224864365245743308879290861117330747777174690358362650674443459023961678829445785227598481926937338829233439899397831853606603078975570525097992434782399372358278672006589426277749365187785819750731247414475882357250551288768046849632525825524317442676071705648590956411190437373877340443736606244817231045351913730021006499133620520066343527246331749397828043493287828301593063031063215862439864960625510711978476853012445603663362233416222689392722059864422535473362090408315130828686461488943974496651417484419312977307204270420255490720734055372540245924634142709587985673765302338232832015096921164419372601178220919786661413451120608149297063849646138115243965802751522200233580403598096999718481054979449299748921632194190321643501942723806756315624997746480521392144339420311612076643415652632665099955189166449711598987847007808974999802376110184528362347620941414273868338443269074819434396554819756423038572023308827982542953437175100252794342770221905458987953171581853270284097065821134507117819258168025476674003031041790266512790817613244458373781730569935045837168875081031579447647260235067341089167493874812203355753383865207602625824418633089984444208543085877863201001041617976200565930374720498887051028154683454280022163967961226757673491171092138845834499191869503809347851593936485981246946201806520629183419681869598887755000121191436838640444241241516284225787399105565821252153253918314455449560802797280230284037965731438761512049740156612272703252477427479053223852097978620015047749096858472445090047075398579261835489536665479028803436979422747686849768740212961764610341564417446955531239142571352041442527009882516317424684970318577737053318093796975065832119443701277558246038040502348208000335658069614782510759527374767253839025162881649946417871505696447726896058446264006054697567068778655980736232093184172703081102064136034869514900360779328845060044501160102453167264703629975120527447113959088060109636778472769109778640678910249491579871439351230402137045899777449183234683545958379086883829626047270835573270929698028373292350189261164762005401191883562514986824132970389855106227426521518820019929163896342203637942054457905097301259089623699787933340658727145590090736948304667464413291978705126669227958174195363978624015822034624486860157190939959088035599204011023984950976595366754729910709781109666964137420505053403666326636983959151325588281063990942706999356155875076200351766973862589638960627768990422974199982423243628779366973664234608199626384822468388795400648177809793959286195177261567895362282627924802621172449499982544288440574248440749419257598860024734133971144375780637344627352125978292720219185113962544122973447017661790408128305769679203299364796084089020306402753760173070684149271117725326064933348257718157309873253656129150289599230279219085825928915901656972122380697784948487685877095774141452729241759907141266385709739656425140576549276968512744569152632317423187734809993661804570231340182528363581694991215920288363914075603559290118326690025462038699369428057120475823766744749445326734941781327751516959676630118084991551827253464218478225289271383261003811759242530148908845961845539373943557259745200781281143842171137775240398060453828266685763755678815094117371449097471163445393055086987244168345091342388470688424682303364728924036664526290312039715634371959978517598660999443256404036465392540561584169180881437111388327960147261215332706093057736762842140975157805918231135431361505847937357051854740752314303172039887027359557203687860732199600873217656030955217960958139103218347701773299169049349928814808211219108566588725631957568324061333971561013050339248901158500068623635769712982729524587588854710389291313086913629758223298940757589422626516933235090745316965515101399650953097786178692594575636723905178185017386249768695028939605467830545275609350556465924815233692142774813516308393509441366315280218282193107105669169296817540743116100531846949967205520004584890691392207554138681332515600285045231392863905150456556663945892239512455737380972451435358596517266763781356294607680208113658916907351946929933529815286702823336878976003245927723352487901273057607265839593541918310531182994404475202809896881745081223954829012229844379474869796807042627281648330757078047333288814389367647209452757996774450071037808381500367757864205246736079597576152791163189552214337185998925107665144445369351704546076119431398972959474242087860236474100079607258221121804697106695652397076243834241206254750889295145182947534183231404185065837439063229256702173418890942104084112926072516198158404316559777308429947935478023472870608518030636627509476859710821248897503626868652910633090785743730779611533706006626931001002782586593859551157854825689426024511027596444143697078020297954030806174567401772447855057045663887068262887783926688831660405863573930046852581186742239032053124128769225285406301247281316147517644115294374420359211800240990485936342606241350790792053100070621757723666653351185234841127535138346566546856035169731877323633754271695782066164959964401058016955530818751577446025558975986730934652391225729113187566956011303498807002718064942183023311983608352182816087401337338603882420730306256710228509507402378756059753996638440507188643157746335332176158434311209580630521093854818381696002360608619932833587583017503167572912611989319747201676153218871221561909789727336056023905325391211756616917268890142546614027264715042438531579585147518055270216348930416299536284382238379055101496344007083217513113774837921051346204085590745197068091068687488716567402742230978783953958519630729170669181727173531872996234376638603377067851725670583993492520764696838507910227742437550543321613994217322850591349647210562656063237516850316816639887599173488249107706277214393503964793698301451167683919414007681430534395818929376638503178589632408362282982128119455795952541316407221423868137340217418227317719292898047880750024571753407172767253981929034862440750948464502198639394774279606268835704284296823520261774814655872365030714734390365513744463787328660781664650694145898703820382242098602239434368354918672858068470057390417354191912978227609167011160837859436806149451677937386874045993658566391319582344891142467195702659772376071113349355245517123161445974027829929964130988696542532020684541471585668266280790289107605561371881210480851173487195221353353203229223832498571329714187330224133414786650852255045794257741573863595471910389202214469575664226948808827023605335019604831576895351360266715572879198685745122398666658601223807588553342321205913201253346386208413405156339891691705048001719412398408895889761845956816381966990918490967205770686075194395926721904041485903342336025131075221094593157781100828742186934135955868925460691510128383859009230412387983353099181773126634970519172924270215221038335509893939114321583882749290676688496918112402449995873030345018801724761615120251930897525285367451494662547875447257183321286239653894213093889660489353903160102357627491952061995698426371491534531470770364402712454164005575944035134878874171794582918252768668927386904925173512888340644400144833616326900121528129073622838755830790505991018464493259277433790586282830273828119364590290156167118169771877763897914228290522051919169604704948200867112692988061609984206999761666134347147543520354084832780255284823797719025201297505064544030178791739699296503659060536537481797939878110919657639002866141565803678675874337331319937013138100467418741410421329717124095313969122411531888564111256554231930927546425653508566891461264482622073468283728059108755910320059687073146608836072252743028829412304853344416524905242396764834719969586255645615103291953162550168705343589061214264434034074080814176340440717646999275639681503842627191923240203362165479870378925395998665268586281929318380135821559879230111959047830329126201983175861705064714348803755582867589261951002758467732628346266308008643652097111470725643749923946360794008792220183494450705688541115776979596725958457694365772713557949718115716031305710934911244155536140674213417366912600141075077510406833452403062978871152680281492956922954384891709921200546301372353098067669189228358745482329871395649049792272551055946533140362804801254978378225202749435778075262182642419778831053785859157834306682434837947480186147168735814029956544374043208291163658178803312036612035902607593401900009216934272491832636395346420244401802726274448191651614410307645376309229850443704088367977797968075951800920874989471358611384190620808401867292517487571615219814455638038828446631022837254675719379845006715347913024362823950273359413440489484852158693337381186264408775149804188783662090640726692957035647362839782320791440844574240492077389466177432212936316447829365953138453602664256626006700536266499984405837115692921895198698409282724485037147176887437060946353635337886932273726242540304477940898946010655055998786415608648402059402137037721739929363123085394660343288214789061673890622013698021168507261116309231079834150245423004695825637622825557243216947612915097406795579314869932297471620719357785079258476388258261377535880581596921724612937637121806956630800467804753390733943516545027328036164568985191937810571889855730731670552647613842087235528048841057809525775048066505591544315761108188366423618749177148008392273986668075216246451377467816991738211103327792050065869355843861619737915889063635143105267203937969395150653560512205867569087340121393508308487460038475530765792955291050506759052587617964711764695502337602835559476180629957026533999876867412970619758093951050026394868435955294686913074938204673888250747506715353952603765255684901986634032277132418262215730592964140464202870110412055512500458441788562466374361873350815930829929747092316188528873961833400142446873001250931171589562274697108730382572879012322800624583293941479197662552708330098237072560431734340624755353419436198276998566027028514921749150836681371520712812178542022414646656533430871859169001684115052631124672883258833125974411668641168135630571051563544044769706559502050962517376693753800180271108820838069302095152830292506406576330297006833782094075968567949430308248853992268355920905263253077289641020765482306603839340077561133031378291030448428244253782223446792519575827361210190956441767817557126152574519913393761080747827762197516095635474503975927724708563867775298260493204940330080247121524688604420371038836540301950897815854435273063767618384107611092896393951958972258092647924944430926140984587137070064354429805076803451690995852097033656529293307659467685008112517249952782938631865690852204019336023965529316445615235242264452530691129376881425201111376624441945736176968968646453168384590091105561473296045831645924482194613042391999966532794797876859900272362731114421670712353367231392578499817785098520741826404758472515423982307253981023211913339662035548595986688754155656289190056358768265785640139415016906982814142385111821540030470626313042825441706105739826566750441595674195622799465944381035473299625188088989910233954105498709830541566116264920991484478146167175739686283544811221758790182616198093956950616829464985054072198758447699872184555174633950070133541687144991991152244189398790688871509097341021959327834020017498192442310852072759846981023023021632793781344321257329938294549136898891113109179263390906001484450123896263741275632970510057290989021459972964404719485196557202929974033574451179956024450234714555740078762358345251204982881441568509009805103132185454300390400322942082827789755744176347242452553805348375468404457515887787107346377923901985533393378593889567166683170444394813476995510599247393738304363176228339174101142461961774488105933216472551175728932415199982920721507119634831382254957056467828506945930708566682110756459053376524385112015564461377317167235331731363633718225326731010687121461962232680892840039870498792217834436613223907756582864328700744389533299905690828447641013625252398328493787155603037538400102430592448484473920153558824983462980004623127502546012051649751947959012868952639129992492322037807619372239752451337682479709681069947551041208827734150979615692925241255813561300965831123437731187347593145616979341662653436919987250802193061776562908093705002811246970714835119068301267779196592272393134819218951553491312934959242050432918029911518203387872526473531134874266313392066152570812205777448971751917236830689801254770176721221122256845143856376873424174923313465161976182793657664365125933507959742849970410349660903427236777997624806049379001030473790933309967654974529558960096198181582725064308854344479707878686035191866683695629861329931699085961910883097580051458191766020489908965501984598796323009596678148855476573822030380832602011766933702943771773290098106679655303554349687831759385702794846375974357851925305860918672715197111056889431344109429057008589640453473310108823633324698805104969536846660370088248689109369096466852239835347413590957204747334884984298939675173326451164714528933910256561777862335049428561929345350189070254183995988417774202040481426041487238371059903418787559470116768108556809034736037193079480609881615725777102406029607082127113705149329997003889234452573245536092695019300914455570321809924580857563699188783873284245322658153188933509562273353012719788092858555327235418275273492360641675177540944869266862850984022338842795038802921456741562261896870222515729902606963848751626301535906405011808593558537174779437213220656772438802979794365821991104401171684282895617789874335873435940692506577032164463603191089781412895291447984122614344379641422968658948836928609903032964968830442459154375404984821516075900918072035321602065842553702103987141858195448755777245404554434567107428678086083027814172514718223935145226068234958690450958607344338151722173289216478579774841932540567364916984023337157429738455611902436236448855318466667885999770365588413417306082130661124453788310981074889591628051270788906718647761975586467952563434818345853631461814362102834945022242885324159388874668690496331477189356399539948512164142293353793441748805962553981185951068768781968829195676782211762335119798355575352640667735065686476990248575445012413443405697698994449506291500352746756608689049983126938885166517372355185932199449029794470566736406071377113957318605090764280492828570900798357113653558996535330974279615598561532000138628037850073322614685067035534678567773821054065413505516229098518409934012175238340279666194002475710815098406445100827751985298463264690690188693436820451693348313979796423664014250824242253340437600717391958819975202640511422462622621589614205633699437303690330581145433415166912891673194922906869039051553561896333901423600447101997590469903545531041892664310558156654153523021890634275897061283754530888091723797194121498764720094532167430911167611648313107795536730300319071131929296898423246091704168239495835493736491252892362560238359585618753748152808870526223587568595061856691302493911704844260834815858884482221343877736942860547318606039368963689084713043460291164973321238131792987635596442079127143499019063617053727074991712332299204070668121909508210283789122032478191867396205929866574362719432909310952189199059241252375008027710163140726681670218425857307210941876069562571129640753975077926299878771065713011809909939591482976018689528818179953465457904910802986951332150674107173301798074683052072572317888554860027617067338162018441117626038769380353861605220059739594505408695792222481012072619210334572247649810561597771394776710512684897768108689335626310854763612055495587382666287807258029663741617841107176053425860400752671772516341546251367818696372226226398206903539455265174196585800988593644762290203873735866155660613871725182878493212829919682008044323194745783810373112491333801364689824013434937617274012853179058141086550189016300394196134121589455786668517873671155323582111650201600499741513846515166121560928449626769697313150199363344921171923119113322708928229647380758019680895643972209854649659411178827176487814378374958155089979212403381616667728587926582958754293516320950997699845577426898827257370327156575068429756721055044845055834987701821973467611145890715169586013248329773260358563820594304652521856786246224183513279958197899942789233519603066441461509316890813472289299559480536021333670414136086189558640563184272520757382236200401725737959198335564032277499058784080277391772109394412116863880461988994302180287414019863032167556944710950091795108684621795913372467033885444531786756687241739838084026233165205337770300386554585881053667964312737460901343226652695607035213119932600707322876585432014626023900786348267153985708952311718334837648986758311498130317712793141420030573961326236302281084320249677992750392299940225434504612052646891660235820981123340576815299283081187450020367127719428950233172137074402615139025239531843962194104628710030210057913178104177356722229228393304768713657469159344634867318084729477627767872879001489586944114447941346622312805086592692845913627138403388951777865700406051650100569575108226536296073622746694539275134250408848330360140608961705944352777739544506835487007701331127605838778756734175959639746606915070852208401326160482171336795320672485791766267392324941031303458603257301792701222844177866334253173055160449568227261452979748640924407683381577886059958869329402686714045563128420173399481774538793163667073369648318227185756220640509774486723792218519671605561983429118928315729758112185655648220800743364699925757474302459332104774640372326192313108841842451681202763660423781026675219681081361379983376111795599074327973859870486065039134613026285624095759572857325267368878910830996350895830370889309503960216136005738155606376678068266341009815679973745894630499909715183290260815966536858893815937378947434943573248469055410225787275774533550296055299305306403324827813833364738840269184407457998122939385199316344678397128997778440152167561524390875321396054415284528617081397382528137850530138382550110443964986321354891048995867350484223439149649367826959812259373667139599478372740318734202646312278128346080362538406837477356520262226755532350221405502032954726554839938538117732791591518590220109947951433721166334537372073269325013806480602222414094959247179733003402301669895113728457695147425982027599335437263281798878620941994816280245019639427036465351676684917638819000490137446292337006700628147816117052415494176519008833318911394825505157257782215359300320381615236726590889428477238552786976344447513504903386781350161125758521405239829169551239694907797111303640859330438046137546600514817245905008998660314773997559191323513762345515075194871392040785606953204344826745326964043598027657926356147653715633287189619903133938727972486336562128196345280783766115543423511426175266957309274218111092892786006127480391562584839174552816188736154297399791341071669314717003238420440749632171049179834850017172271297755486998186894255065366182875608962447406794476668028011870917673763474580732974057973117788408143716210402592546187667183791439638194314934504932778730952793874383154516850591312147866420383695007704942379151880037849922020196766639036903300965046537563923014714590693548969052662387556825954283712887486245739532275544297089565354418712191106547350689064224721483380894838861712847678213315681579424963785281711425096273843448764599108269246729272414085523240894002737825326183800290219406011535076075395921744882056370077641696594710227677056997348702646709356791088491139288002691668900110848154163091804991382136866852832592654732234545240806170644379538478769652694997801399310556896066792017510836399346052764711181134382522277008692656275919853310001545444808567354337847385962973165077578314552333188663644839835788489194767203297696274277503730475973798086159978181331473599329549680240978719137690689432897582699397141077009975944262091198113992114712734675016880939115474368804497900295901966818313335826981365846193062387695097691984199608143046157483193503860466529559641339200750370542500802160584243111352052280221524460126533672408645702367160049458363221698012677059370044031004600105049441368572831023729510377552833325353115522904835407788770644154976763620171404633963615708696357927569774095965213420274102717835218083130961668154529451834370788287991205300909290686837122212586332282361015770486736428358228514856598505935764804898285682670795134655709330860085718308671278315898659061741871952307877844584031071121785358883206662275706369296465261769218094831364560225080334417983198987183026389882260629179770229492510784912942008571780218763615073538796208472281891152155972211982609750939746949738706819963611385184419692420798006983299363341276154411020238176461010789456473633806036095402807423550625672245744765365875428781173657156509802698000842788365225448271451295539452587991756966362179427335820906290467427500029542243831028667949237011446945489373029275675758615658233180742837788927957873879654238076328843412637819964800908216782839378104050264242178046048325783341177820680159629824031754002640695842470756683654332909229886514213912165982673567554691507226846286808169442029868976124227827820107231921351781941319941464589421458387072234568070378742405830922835438768704827752940624924545840999177626100442897137480769113458293399360511888436294421454513989614388091714676248964136043759018296362660985730155806111036057565488387231620892746835584619345952477801752000388027835387245190259370895530636020577248825985273165631657944969004655529731999691721486544397020762049894198042164707532320435586451728801441332139344658973508193491058796932309422079494739220920654741339326758046460204516699527465420060117458393917050731192611535979822077499419449237549453085667928395586311563467642523550023629878506694845253173398225304768802375300816755304212894174673394712533689185989289269394814968973697429106978315765232700551186740926572026055641239686515767975855993158855504578756384659346487808651326972232730360967304851180823837722809570212739698714970546261935125223553331654198397462720974123295624737926874291666261808829710108831421454199987040234977324457551206542246041312995311535734717209417725416188947615525149903044087023997040577177993606358173433864864225366438647228855141952833196073847416701987533003337724012032624678134639002243474836677890833917789604919704861997049972533090919708726591130397845961032216741321397196134001844708972715795284761700846546468977876165776588996989153064038435717344868151867776665203107286016371337978739027871119825620945570931585167289496112749467323081595794413001520587320388926911773617789470715564500769538974987102433951730514640872709357944126153414677164018548353012255611815958246093799203437792261549249835875885594203460367511121291069861260133712777341294861433220443351550303812934621418254047873553538253579304569288143168400575220421513359086524008383192456903068720443785030125360243595508286182163807163414132517983635962632302186568560699574352366344132832293657404929717821165872106545233193591266066123254536111889652430561531612465545010650562664647260308645322157988755993394461446186839944864178152423528169429672433655035796384439500320402161766043096097953302054748076942893530450389934917980769366721122824276256456793988464170301663115500801422341725471334426137122214909963471333551590463831106930273014403766587456649528391063858185706747550730625097526231260671321026572309444442577073215170178186299430985364344013516402322595043938001022430416178160917093119863193515167126334004822907679965988504372536872235308395402025272759747148053347662320796035575501604268679784325664461318306030688050775091655888317045735915669956953921407857511427723820058425432068757317914567930113091230381974449442933641584706304513973845534849882638089907030952649850983455056452280619320704879486963922993924586454955660658212304304425814872609383355489076143672845056999895769881974378568972995241695784655166156326627023030566004624943409154658095139684717872672759020980053768994142599128309329203889131926550077089086265139798362815444665719136822441619683057832070849694410755735808295161266948493029036685698725771728277745116243820156032105765049659673713637805035588891760027169833171478014914894505334637592991677580964616660419529203310361716106169342918588554432148470169880390846464732567905269913387578064466945210212047759389716828061155539311577710953924987159084521953962605432152831528252497586205414479014069907405838154678033205792847600732310588500443413363689340624554557260756067602176939469811733836903573367542458984211929822484872148068388597267977131395115668337621783301885038829675494554592689735114624773643349742227735123888716637085062573650680088074471582764769975064025612400555102539107443159104905616210171419659429727430446976246198914729447076427068291202798850071392731097028883394024212888110687440896445365688424009366643537813784892820948414761440997666268897257777519990044023751094640650496120903377062950425997162644413043768887668823500485040525557255021383886673179155631325511408307538242081365246872789039972749547015127228648231370865922554889913631503332112867150561888349982269550982405002311618951668997348996612676588868308088508258383615630064880554022157972633630229978428949855480591160512400630366342450642306449179957823595019538569217464551103535009279587845918205183097095316556277568855400083633219735366867623721540565613153278066166562824183348565406122783965565384833345985375789462952848377030854928495460619500895037673472367532225276257305170971009275103699047239251940641014897369350091875966164870269061090891341733307784137322106911073338453089595959055908207741407328210247514007605965995940010344182353325572622820691587011330658887976048301034143008967333485094844345338997590523731909762982602139658362841979648003417230718287000896217904552720450574283311386208693044355640369507621026124650237948703602921496033145342589484979325530164691066952469933551965895711754042438639062406663700013067420134722415837369454763155445846280559726453216759072923730952489213487589715314833286219462463484391793317508949604203565805988157851272984030843914297664097466049247845105780561227250899359472222794763781384160531976710087809991045892848374334052174821556195306286329922209681407455337813325759199691001286207165177354310561560146609168620552051984885214138189399230891511056626623043056649739482240572216956781654139294627766579346233900902348048847031492434610543953277579945243566301380324634486530150392504147687487137254678720942613500752740146025426663228321923753549962043754925657290869303542847936313045309601186869715581769339946058692488183224183303548153114542048962177699908958333971841561637013904121042463359780004973586808114083044543811405728756631128536129291612798095980459581455536279506138302816487366738482608277261829176293895152201521935803025664794373890602742187997623915441344739977855943431092702111025226143699628235693178408184417416897060160733131394164724162558347518738822075415811222888010562072643636697120330381013650191011872481411055216580771591158156766053896719622002876711111641978006859097424471889933834648915148206564833223508942024169816345355346933812288195034724197106227012305542982846129677237168675489322843849816765311512641823913932042027625055160136924788152819957517961592135055916724556143332033612218073544280014639627641749621424481437299402901559078353887319868452863399128891210084616500659874861108497548769452944058109270813361055926684575336578980914664441430496101470604333145179179274167616850782745709407691830947513431230923780032657766364390159839668974202147954835453422859352618009533520227767090052105306021505333411442273523295464763179826924527433968939726547875507339995354843544666317866256133418194132832529220405732189211197531109405275774582076181563256742609934350267317873045186685917384029819736055855059499787099711212166671396785634276025775591656606142901258213851637220137313325199315997320373329135074855868606455020479431477275447534869373032044528945793008493140620345194396406651660197285502992572705633681174102516746351214994833148083519857449179374851929006276979595589017815073711861988896250681860034685584957227471013330422230265577965305493633021685343370073892669490333760941024709497831680832137169078381401150432845940057820763596462728724409042135200621975814328735916621507205516384612822003167458405920311157608504034203170708050466664701011854613566142646481283787403143798026585985099949424313682228120932673597004474589447062430973997651413266338189061380816801737153258302516196109058004062602139077797625656065417497470919298023182033520315285743251787289299189276935320727235295949247702373086613221058143648896027501467195449452070179599326017638188166064802502352861412498730624321699710804106627637071167531680629652361232379559209847729519684648091245358586223518462981773338365032246339956508712414503052978978541895813485369252679696307602432077858886926159027569150567275103903128966590649161798271379629879560266282632501731139237239299870582845858815654616524370574473358169518837545831814157625211726085523757682053637571941091104543653458755065287722193914120017949654647770121194330849891315114295400708197638109374541915904389220277339000709872103261050571377824772785332371676053812914026579120577127620719414435266632957752805336096261372225810533198472104891548468374755165052557328394850639198365433233398108978315880672345723393175906711172417085529835700385036815631693222706077340382052993657355008711955361059859983514084531021953256305709486973644827047457397212797279999914884266636575175654953340143571530239413200116478401623200336478910837889120177791655438369712996595330266924428698031913377212672017781635830056147652571147886994901051846427202776975477291219781830309237317270177712675616665202452208952447563327231495658705415088618008663554126401650939922720598754705915478781074375344145075363049375757691635915235380847539297275281357563920480258659909521709208789273489880236169855952596644573163674017862037106729053597193778245313216003989034081892857654016690095724684255717390733959981852381268326512167459138200956560630222656630459783987220346828216615412017839655079722407777589633955807334958641830289203542249687933978245591270768003281606572937752703575651868407828637037739679837401676933493591827194319865537477318709276733814389036671903284954414250059474931621225131315699825081377179381006507121292257458300264275591237694165091319494565129641345390390914366322429817999011807790258253946016342946906511049006780901500454348020819861607205520705232480759161418463807570980846821032504995483688320263356373189839876102509666230453489187039322182603736946714017734395016875389918740081532176090434659946837144273496222830296720041185766143136476442116551601790920097410335496017868708799047373888497211171504982003926618628028205201793989874163220365685871641256503327060094836642964992637763932168537890885008003970486509085749484619846424297803894689939176363374197658053594770632265800589913787206649280217952483473569308605833872750097341354615816811051803013854765266026907068226506593392460001932856128271735943334007353323160544939024202522667650465398232828532970868915243046537689059949979165210600280871873780700978759710096223891116309310262003635338166873258806582977965069220739408104330059776213417102001790913208034730486137884014931308001017749149385775048869947317086230438423196170091450453988496325400794831149919644815499362741339042460116958862900161155257866809132182233258081854930360864402053286680615651846673721201323904941336669794842647623007098183961532726464487571849155401627217840306411591784372604379830185516452847399372081187737060457974531221184265481791845931393178251433894324089342803072377791448101649982350519288942542933941291716941150656976408918140263261595650308355391518605698199149812355827883184613006680368277627988764036746963740154241050384377643589812640959899578284273030101276848710797115712556991281921808227855074703672108384756423960994111774982476283586831450624696498015595946679244899395644531008763589844419916797356110742680647159073996131519115718902089171884612576560519102060474182372574338882923725923329065734392922210494442357340566287566882810851968198724721862075894812731857850801727419264007537382912864285352922466256559684422392473604630549310831322304333723985142282355158600313961861566472540034343720225607604140780193110285459222658574583010536425729235521983785385214864307373304596240917030404579187163308854275926899829588409774022878684536785745359981668258419234487573714378276386583556194939846340707805899907176807365148769619853293501279349105086952064670169916570707701845577021108495921108217779995226556267077126339397449399586319881015058844616541820683068809452616208339066799102031514057743055146693595040846005959615594725260893338231751277997578251829654583945280972464659994910619750065125216513336441251962589052831226508648616435361692674944250309284606861232129241567816056162958528813429256275659210463284275380896441767232540128591494982053307590762580240782187056326972539004383434463951178827089854924743774469006012128858946776364197200572769817386952786165425779584743537480613255603384166512907286217991010989083635792929216637405602793346457024409134066609681844462971379781385118316719376994311434860046185530281451422231831177911236236041231179123411836267464778668990045283829933163697424075837385278925518128591866289298930648425266188263727070654528766840433506218966855878240738266732000173507091699021103405632475474220747169848028729508862008681690352847961674902555726712571733598571054149306595300636305136326754006825635527255978352334847748983844992011892581811391211911365329844618544762107619194774394732887286020298822176168583776753881494085712916052485159319306230569490799781098658893558839342135651031289374011061449154902358230480953166184031407328006552297007423428117048549900996895940355711700486624303569862210367927321665856257007197164985661288449567287455851365562481026718014566109525612429978218776742451611719912455034665523513896050866218829862472445960366299895964281483207541210968206888524917958696069662550300536053084130431132343741619199435234929577044518918127747401217252090515338168757717901229079254751762485002485162587040066843811031790745618931411992147142955803043588686525649793052475168164236856585054307840537751763752852438569877839957181831501107067601180344337414620458513180730159711392375229936576071956261268861882470728304618918548526894137811291765727066887231101330334657444870640188914361769147636713750690277069452331871865578610042929528549691017282725468820269547646112198287388095390001591926209598177145258418417391071315220080530847525265869789115852017207299724218554703123125907217088236232106440571815881384648585124104311496371633925811788476183521648719656657400634737054735641454747315138108123709468476354409142085456255965539362161349486333781661065809186709463010836967611014491605370547642681603601890810854725835278018138116097853674134558422164769959141233791990229089868691027124550450290398997622985694298237752199468364697376239219846563755925546178806006327869360356096224702370583741943293105074196312942572405298345546848259614590308063333394394414991262533982283335117505562455336473995205776593631475375727356290783295206850417815713184247945012548808505725114596702584794968056705554318650867919230090339257748904364738122785720074356310537866756021927480113915128981832896630310698865725723045899592494414108883907793418680203082923021929175281651035291157253271678804444216211397803479688101087792463833374928690163753195263611387589764930884805042970275398178695448132214435445932466367090260540172393678280216042095564655979410907910252300467785980387993848213182443781665684286242330643413557515695510271859753718675708169384156432158365792412957101780204765562282273876912883208777980864877353854048639042080679049928634832170635639127844049547746584321339057610900772862047698370982691110266475808225906114172400865920357741343584399086168843935434272268477668182874273323992508802774470804137265306151677248244235413195052532469082573668946725453571935886156346434367575227557234700497922469799834398639274868898988359346522183262497236284253045201224362097776377527125258446297525040107577672313623007561100896711063512339212265138542078384144104992779532368735248083974022412080148906195104161005452309314680453207874595186933054038660794661063453040907205136228073333576110381065249589516360949539133996614761433825501214939249025332829645178635564522746212378190962732221541356021060598528509014504461238499792192005027516346924792754324641683604925223866161651476108431879075743827956375452037561787319914049219082404614604464054104110692168368489960729559889288745783540738655327326102142905764369267057317699137525850651747494344326385929370016730785327044775049818411320412516080202880645191492637032689392398191204284296680897785887385776199782316391761887955309054586066582997891168272620942213532619187986249142100662235003220818138372120155529550216018274683232701045922771462044510664731114210476825044688964167131917598729896357640171956233893638657729229221667485301861513341830656983703698955717840037914005402669317595594250449132730104225841707520623523015304538281154513491146496439431072571762815464817198546882249842451545515288773755560009581982005734902017894139589327782107185973377921762031405961904950742998067138965780413735797899885594759507471922751615044633633603765705411624628723358796342631798479610094859159226564049866316123657176006656054558464610676955196532048136033566021233457221132203914795131880534535580393874329359552427359248437776246646816586802949743850350440555464335607332033664913943860056014838105792001250071059254981243122002775995492498478385448343688646086061801046964921834013464616441334484841658060762319426870516565359294162247434326618837272023719578285616234505597506518437814034613991802004605333476702150120432264011633183007634984246809132811161422368666980155868333975573999647955991818463106976571333898269957649478097724338525662812771807920304079552770292821196740346591900286333336572450351665582396764258635201939569449649443484912781327665302011762970188242997692897214894299642412913326643965414552745674614219225066484690177920699046834307538525730661064584659283670032354434726083725037621667568949772133811347822601462816231498711048215928829300739479646710807207123118380696138715050302286644156026615878313332441880506279098708171738752755429766019621944448529564435380948287524371378040930360139404391763007869480658532137458266075470849989048922728625930408293662762350802595256500261420398931836088668174428547994667631674806972605905393139305552955744532799390468589095197461895837567698649808876423445888031565260226159765277586142905035452634324586904387644517809735041673173952174551612565189838787834311462264922989135327220485855499785002613618137933627032280151528299350127553904625531389362584583720497105144351166061231631378339741380215046428030147750008873744550260359697800265125781348492162758639155057647156214203569082864408328099868045454857517250642661362828832928367478002926385704112134608663794613858927147750193395211777750952649234592390882914419582372475016559864868492444201788554879287514456744374661331779292299233895683176316994282378596053819950256507267671436309694176978238436155384170916673759175602265627455543021100668364696583238326267380639208004138669445640932009290934102215372966937196647577322258946992663722538858344837968987982773697614538093331840944833922024813008528252845034523092246041481289129448553703147862645704761687284605561278610057840328144700545156380916511927100698204912951684835032349247430082046352599481659470855173481355451711256223462509970928739604411591693325724103787326179247317188329704977227137751676638773434586305785442355327119522825287287889657994514584571821318468606217538719269049125988763381317336921033846593311099444823417862192243633506912091037179071244427525794794347378971904636633735809532904896960516803660741182987158339422103109021787268360401421069316593975891818578944687667523794599519368555045389041046588836724067806605521832104765283097169388435092133943104135569475381217584323453518559547971495206385662763316582996264751016207083769328607726216773182736885706436482295643855014873976567085063210286011093438676624066935736632061233508637277157654089953321776779244323083334818768211842919228365354023833188844931019577630520607874537926987398613014367659035792112953733337599528835939605307711153379026074822166479751004256574559903260458712120209215986155037622730642724558819414160881835882109335136759469237351047081400382904916194937771410015406170064152557671664314657685429877507957447676519328030623609735723496779719741368404617306983905490469875541400856549411635225249448287473889701698351722672736241157687799286101605425947425945115138159707146691679148881400785313513808038440388120724410676866834633818936093942180763092529026482652454167701585158357606913004602694841739635912433439878229601027777409492877239499012358814013859768909125967181471285054341867287817836000908266517370869807575117844848703353598551734219987249790408545923862389297909015815122889444478520748390474007516726484826544689888137822269537686779106753051363631620753281628452156387066811156149624839033043862696704163104610045682184616047719273559312443690471725073692631085457663366979094982305161054919798951356644222773157016992944455646763914356077719417504929913010361892757774380164398580499390888032280561884005223419561131237207553534279079186034989053751334113407958368407091250025869148542660986108208431930571347649987986263259740595098575846777667471951970931756712564953724381695959337690224179377220676652383612883628699607380424907035382952287930672260802610785484811948610412339487041717695196383335395080164330499944963251629116705369492728408784087304961379277782806475863933711148730904239481252116342541649501188539911907788295607796895326823271894225062824196546042967822162461565686460626232830155611774847631145571209148141263322809650177675780851893870821704070687027331467548778087685776136723086588887943028403279076215089255036136366385512866066201606943353953041705298839938915126418607803539540643713502715490927756220195229103921393459295017142532100312587628904906897105760180374975578576650901798327384711930657003223090397964064510368857093008357428102674443086879286870219525615610882134021964627671881665084326066411027281856050580036122040307560446023362322280114583449280478441475494432936369762508202129303950502999226440591779621122938790690119745606566594442882411865607974288756050272402598628952839843022029187458532967065518917598848163970944569643424806041016561428926198930425172186619406192823229969791803861286742818421569543405246740973226570892464958323319088625674039112155653914251360265527093137531853292484217118163152335122548838286502532659237858250308009882643783053510903164452732822799652984008672066240763452946885723599115257903704555693728347585729433391050461200760538738276208498147695143291671528341625174894745860657899133377392691562594050889103325033399085917276677488946562649234500030633213481959855861207491756884312722138531051101683584215659948062540165029207249847851934748386703572149395160970978676769291772358790812134876748074045979563775893352386071709110596263247189411838310414218917933621863759963782786930795632357398244664814046611778823284243280280928654639315038112648825087734098833000558653642109794407759961358393433095819037394655968941221171267140475332041328224908826133023057100161610025065746955222351283513128892306777473319542737282740738282863995032613433423232291592456713237381436917744260131978610902996410332177451621013493652014521121693269717437618603447753705739670166808882595072320024055412530266710387025149734804225486318393471905483586105128009535314968416095993475288559912248663298908980985915616544228130883590774034785993771882925715345700036586215565761384575190328032677704798721382405688685261918442319500890125570315747049874020662729622837320079594968342038889751927228906565839767694710132417934978911970288665172881025206341505948144787512793813531693656979048066949155686157403169974043472578638411632023287547078310199066396216470837278107243837387982045905013990385329220522644480841378565200575789173444266962518265683756118600150449375650277252330798289429509940970164481408044241329264635599521875160568809850731592615957659735292772061081162175752636644334431666902398827723186427907312868476890270299785290709880900424064248303057474843076956288240851007640217306895960892780842695190685072638041972690706194710051884697827977480131908451417285210671630874677867555984051579909425075068408441346682323222506113673265309812786613408857394266049855203524363554350416564377606899284601423705581323822751646143202647632559605302658749567463540147167786961300674195607655064055683370599356836270319739407326027617001505566173514152247709008199556885027650333642675365083162112231994439765887555930907573879889039306003054448058009111328567284697785439701724318839443088032387252056377721714355981927202265687443128075700847479423043899200739284895266366628785473075278039491264610878126539046951048940386293469331670568495266325286438089397350285265458971916902531843813903737180717540847221657497668692528453369869213406086210695483925647694346957192394163202787042446117673344894341888414883698800821304218171072454395131517460334575145230913887614405806973312485790958031468172068943247341789430995528182416169393184117287829543914291154662140089030988815856757788713546360514030308223438656015112411910524091563154731132960496645712201649127719266794229861537428876097381361935835109700671189933021951223516692167798955584170714851949180849193734522452697043795776857989566190063889516792383825013582672260863619714050185746772082024834106543150549662834985502235460604415135352051409985674019437804154407640908954491599006138258150259726281340356420941337508572328429832908262136325127722542187127272651420473434014061077745995242118396686654822840367469930692875986311468159438643004118032766875682938375673809358497339874444836166783258272033482428713506379711375979667737941877625814147491257810521974605936151386872362701476044299264341248522495125012324090980804276154402063410611750680607903476064785644044515168088096328500217086301649399790803517933563922721949440933703079018522329658603757388568261268584808038097422374075516144127595653625388733948753019646392580673573601143839864676229048480237968392139177770943295402075088251701156909692604703795500172941833470936746349079581526414596741276472989092573544513713841393637116042847411194046225688685972842686620721066054087663523849965838234680964407491794390122177199443164585007347173672811743077258760348811070355415776149826254182206702128033747625781913273491943523298806982992726854975423492219636585465100033022722014261383695159706697384267428809746064222974462863896753236810089209586142112365800582605791609772830263158973531054491410567182652533420954440720693985209775860058698955956469908723889441501055965544272174938821775883700388133844885111686032786676731636642477258415660384721578121158566708071346861835336187647574349743636983367664694835237366653252466543331846732451406591096089484675769588842881392933101144048348973319112929176239844208941587243654480598459742029711560484381319859162476930928907329809079124312987647943680647183813947611947323385023078207484225861559814748252747713472897806971798328916598148406841017189549071227912430017341024044032116140084588979984900386325049236993912206788958140027332971028058690988501187672226744832214933622878871474767109668148385886736626607761939615118026917441244797406582876225531369348529791664048329909412894670930448792534494553604068974712700600478047471695509609168433523893235801915157132711178510626020241442731037445025383064925026496880801727448773531493233546949043344103873330906473842395936644242132655229043039099809241795235560877121549244428940158400016413031913219025654747420372554836520104392764674059625680163003218653472808335720298829027137394555446988160994409481152495974589683569126873025453856023458078004660143613354901734090623969935756217951931865334420406953879497891280670259673306800810181418752101930022018604582538573036672324970213708491648034251820037079712052692735001913157847970027585780029916117982373406740351899402003691275668862459439853953765392042118318175058860790705307553772020735382672355349432853775921148334290379400097420097469280692179256823922776520503715813857674525441942643859252524441153567132842007316053643775498555639281276666255862210178301048697279965768296414473631790802312866941636879292869378940581508534896271225098919404121178579535310029574180410670608891022052494902225838739105890020590913845288702374109384350333291722228181425812191978855344763178780676084909533727890627039827889299911258270135125688823998085829205070909075652610309222134053803025387664728484546292412471841247201832402407919496854052509359808947793904594188641483374909617147629826678214619759025217337813807365407655925609738208688043487156938294242561099847225201651198320133214206052213701254276011892309894810845412425637542723907040204706519840417753014456151867371548483099211781177213502157617063585998982330894730498030669386103719186681624212166705475443977779974230781364304758153359576135452929959007982222557521711343706208332154150013811361153226259102096031491525936344875885979204589091761044340984011504768858156072921127645989063333412771121262711151159228547381258825532457392276712950824677069804193830048696665291891548865641680819328261573387334909201988984284982444599998937035493044421252265914342338937234109403253500890460501943086669819465234004625409912271291148995340846801028413076825120541724851405080079772824366571052800258019164895560040080663860973699289347627535763659250673279427598637316677083072896737910100291910016105419614249987799801816271775573021168040706201023985317120640970698510883875099530620207392928496237927377987365854709958026856034335825354704195014699665546449537181181536130651086442428022947283720966722720780539527943404772567133172314762498511428353981305809402931146663566582478632675717339714043650250160322214038677060619354153573933499515679513864298381026161908639587787242493040595016716393371540395197537611083915189523935776854205725907322243480504077471874779384963534735522094070978500579477834249560615441617199324201474321394800591369439060118589090888869932039813803151801086045217646677822453284337179571458436787837490293376603079067317390201096496349200610834438019189890871086558218211327305095041458468944436980987833836331866750133905429034747716821116390488396687128735913231729152592994233382344130438521701499027181541434249322624183566427648084886067397667685198765313223615433041348843946750637024375632294586244795440417556939985135355232757078106267443655057614347380837146807975332832489786610323470944769735307891990211995191881644787455077222515013264394568362494011239425623130956732955412716442477408541630804385433382725680565457024978972206326297938928182803243476454869210909850290650225214032459067052206557805112937718060293972713990103791198148405091762399025983277153576274593097022922376040240192894590077382520026369442018087401045938496833450372621364570994873839163363982668074616122508975178094547327471879507298708057713907696391598724307875064849788807773515593900982627268121332835450148037635514510492826211930231544625939292204897932954654199419334244139472842107677067212117655700494897595017770207044891169934636285610544591657931942407156897722980439180379328929556267469676925493661190449509314617034668958863117253739973596156495080497659287226084743430483447442189052944637335066902025432806504868335291508324763801761811818030617695152723853378402166850871917632057602698172167283328974491718901132324496935452257733930445246140317564327639224548659449765560135115968844948933967643562729289353112870407428221804758896697268605636503861707542018031300196949811095242942596802632323747773135286408284627369170643046358935519158580817696149762388756287034538514592075636209683145034943992798218073796239894707116461911788135525255655136038017930138277595127399759328351824575852096274616285921503683245617413452610688830460656643636134494760338240997272696126066359792322355930008316851138914473461602920878187350352456780234752395040328958419934786872800869512894139000675160522648478494025409071124877825976853522366450823654469466456391614426604423173124908395349940446452066910128228989533600113912023341109345254697796386249404752280860964771841280305699450057566368055065388072768963028477843359713232021062845289163279304295926216043571993441460585730052666203096605428062828030339336267006089072133386529506188058629085086740070854459870301979419344549468692061942319795896495123520790697263988582159734178792364112030185400853565909296680117994147303968299764891707133312848972712700335532907570322911413743674470311446660160743991278961078009364441395629436622210865257514018639674276873828634092355120877833236805478101675646715901044293660230016736556137855064514452503186909544990335278282396657240640740687680271020492961287608388668843498191994850774323034763527416355781255112899031916453782890923471262868437513457890820380238364191934076169724341959821651231289015958139020895927791246601128194153934112197284743276978045762108388763840999293283621783549657315307521817518147437974224821880285622255823749528005808981447330338625811241102102723953812004616150416747238082191133311838402729313309122151570652539676301351280730162851603947638528502343386156439000630621591630004378615750513714068447565940216053406525094377347139692226639526140711597312497606838103957960137982315966284798889717639279733440830954843281151241228664779373586556973338709836420749219723238108940127001679041932716156918303144780538051187026400497515124782369003955095511132254223832103331803481760191900072611659899648476684529256726682529285917033277166147453759192480843122743740128032307675220420009364337286399191592885428275303696302076661188224304086475232429556338447791181997178444561149534648595245284798830911254533686950931689338319453359521261135910828843413945966972120768078939336833677860037240302273101215725772303696163250872781556345353752020623260603041050421658089389314888796179080281966685356595002713246717425752455055486748352049888622959830110292457359562914469976378023803470228764909166545739004815790543306573806807917447171579227996510902417459364210374623152644683029104638001663459304247112049001597790309033096881392617587548607674346627807518806464543023621179309964911359954531212465640014052075230657766567502299626496975782639582948294752713530209815375424862819851724179127506991353271282642494043199291381587502200483075033163343249233501040648056725148559224998681227154143626607031297932953226808230307382717329794403193742139006553857375239204482485211618306276934027193569298823822041687799210898690847510814951819132388792009200478493729210382804764333946486751278282718168952415306357533908405751333298046667558312998973170383569655932665448254397098797255715630563735233202907650056857854930428285962894632200057709498155438937733677752192618066271471025167890751326943297203413105955923308360203242393559815279157278227725226613673512437224777713020680863959192789244802857985814017020624705889378085798331833429627346267346107255186915351706331873572594937686595796437434685298224315479384112834886233036512161130379662235025906900534063465457384878224249029739170354656312357603164193996519387430151872492234278347979098667415719691476328549832903606671811232245183803954202049268431189649209254033498259042858482222787335228315187354969372892629004941189722787242233106286529973158901577157084965637136039197520003141859942324178270980110994518955201965670934915004412822298921772053201506779849151462948800684599191363688286733861013141613421463599412053819164144951733441898839232428202277839064777775946618582477923098613984816500946359718762540867355768672204891890611550052232965662134771078588055530879251693853917659566591310612080685844758622490141273159193229008293263254362575090458227877719556472600230889481711393347328941699173082934973115476635855283118626905975109284250929592317197725838690846030922026179396429129387380489413893575546590398940222071307677593854245897296674354075185653632121802220809072828352311183249880759243183405038050845731274571356642976965032606144108905898116607547002073635176273488385005804964548361149848372458949448351705410186313833240790254142114896208823819711959589660759152357959552044996518712668531266624026093730508321228517822517275349290885888547993048195499576759040909625307706137964908123586064778263267537002444328993583996847086480971598078456983408582049383375437526161207480075310259873668140909111693694916352364322491875558745946891708057328143658203003210155216831813319374917316301896417645463265987604858858933238513703749557656030384409236711169652924599853071088515700927072585201664573910144259230764691134824029088777214911645841991650673261084672544055410823739542632197432708298014961341846460473934877390397209546728298002342450808446724135011273985432804367994464662571002795459065390629680200364764842891248832505118602806758621682609979384966448381725805291150047822625502783749065592377911396946816849352242605596023123091897059130023722306937011138035987281276849706694068561412748976533718366668482217513078417427426589518085603186213667530534087482630826157009533325467589236252202889734003929802878144041917659859519099378946848952198206641493096493110870885572408954825349682357722246520510307665064054864340731271074722253876189939046260228979388546590067153664973060091424199249124626508222168616922332160173947064340056899743747903816468100069606378364361411848605353218720780295017886118639206170614272988056711710272250558081862937363207804065300029271742009032323904339586430378809667317683776603926450617303629488953652714758118529520606524640798165660969676421453946550061946732237285317961328383699754728741460221973347035973403347227114895552316075175536146352920656201899037068612282765868357530879057985079713474921185193028661680982570349473472659212470850712297307821287472614065137262798003997144516287350722890223221180106386147151688530380088177889045511914603243011233231042056260474206931799326368413891965172303857052676403284109030454807534890192250962611764587005688201855360499831244286683292888567526556310577690731156686748639899154785419210322472617355490276738136805549531683375062086576559435900408556827656636473526784863490219265147791633780351898067786732969903699355358310685739577326670874555452726001170598516194719595236008392429136912091458511862235037436031395321895602339694962288284715793259160333705794415741307054348834565911526371577695933105967068512824672873617442550639098544622468533995574318503027116608869105515170698411527049494673661758892959930707407756740385898478434729312861868440740272036375425154751963042580384597059096455170994296529819782364508679327203768413130642699837920677741056604920052265368278766127203654398219911407037840375956366696750124772885240485581502450393069328617643870858352601013322405792842135791679242087313341776681469281156102538060017607414197390853431845432395877774913745695763555070555245082168021586330078610120699323768778827111976939675070732011943157374913501607590514972346894136013493966911070134312050935678278315234527149376135618275643139021695811766969821138115376534724190459634293692191538955606009556326599179007586091663773901836592347623053746236065707440451495133279375199360192564158375897459998567296667553959797232380144353598131424347412568217479468377626394562858616474101897134226804982534263714365177807103381351986432742158086162129212116205001201502702947589394629531696973407767659541031742529199594929108865754693391478345293051234716966454555787397247496517615223360979099899543907448755530771977307523786559744253804405388686499804705984675362132922233762991869031426418403203124289016281595227183146707171313778189831644687812522711196665238251473371438001885060395885995316043627915291550498083094814211013081265598550930879986592656580497254428889251305383285791801347784551106470238278855889633511886405508057125717123901769705725095358429721221408993136099220700559696968373184376897336439700257411817226285319605231086955032001402898320236763595186761610470921601837173699125985615151897626045248010472627222895714295586529457567369842687956417382894737277216117797068358197755417587723606540529923450448513855667628849616600448123332542025991524438899754675863559143172548221370335501288335243978608389004416000462577271025622788735453707588682931595957241337458726853314379404351231484604190912726890524646572985317141644350259346863007476299973659068839592833378428763431316943861357573894815722330384835384204397701016589939751713436529521869703256045764698076977033430655534120394511889729585057497397052500687988631892696427004693734088415617491835684609074609181677435589012188156695823977590630806430403293779268136774011499210987503658170666575976152983769699885127396315783611755504468038537193473610265043357100948005698411932917135033603737601957268391742807479546949944596379348432293619124925612297987931278869927120051183551956087663350245576600177357400664814288310777817990517854574005188837888906770103183689153478091498904605836757080468673136213826765735862434041040506462105915765958353579399531247617522758219061846079948087539360377357448970694104206087296073462454097051176572674350545905642055098698292950899375643642849951705184535764254445860621399963503218509516116035854862096717658026466808350907297958937985830337499176143852647996974579784239132425590376994457564771896660468422863332671907990564758727127879908616233905339420743662131956506602561265666992895035213186463792733396676996552330654041700486982197808297179536426466595896298892264149106866388202232442411367738127540243912108706716007784860802712365999220027669429835629014224623927743124413427032762414685673541135114477483968773721592025089489618788528667220852471031730427952050845531096965605311487436315168898791840003449618648301443496599778832410663743675916984232696246045695374129395263223754176534382174957837690220285225857047606219628221037447986038153842373005948209412091640435869344912076484274774091962679331413525231351005240737647646423293597072679022507837683456670791704244772859675991160815736187342964774755182319749778896746112974861702264393752918939146453819937452134287548417886838750803124788350960049100505807816932305755379338665106758261590033548040703383021178317892093979660872781116218844528379550679013571298798560511412515558202038951256224637375247439253809490030910691307058482007058866657434120265458580839348746650781926857889306836275995078522736522112324934837766011117623314953296006801112105395053481576405759913516740544944517261985066496207191314140341992906795453904397373185808466514636720256722900547494534684042914379129492687220333485331643382966945542900850978438450339470547890663179706853674299269207287107309580465858906195931087908816556376852192342427028384395684878664996901870498740244702610298326058403333951322418013896214840706852437177974308544252092486341839232224959705462188088077985126286136126602515126048427661215266969731225993634067544712233003729993944486382889633138532757410831491158042111941900088155528542766679251704762400828348602555238135775372262402146243742532432634654185767380967606226970391941597656332787316396080075035242969621520953002905560707297386965226331207836380825640386962552573302839658120527044550235424519974834620178474976395269864983887124664315458626402874533619540269737806558899895055120605798016222645982470554135741558962101232410766271918138794590173594602175596046777651524014279908695447477819741085880253216755410583168640344682871838855584598747613985868921726870485001682680177898535180323087725398220430611219837946130405038418806725267715743367715894028145594403472845623552861701548708620175009367341561000554220430852969015358983975215853296345151345470155318331171536483453170540289813434311671257003640828995894577621087474960284538208659522975442379888596948855137193319353549131662630745743562942042865370515969327111421402351042643848451838419999302536344380149870636694988741354586672141364377576714997107676400056354236341499345123081052484274115863253308134632085842574504558940160241579477715039564797731219900958019374453002399935143681652151798107781580954354771811336744819029857122954249868218014675613793047964748948473959846824114876163051142670998122447608477861494935966876100531746218737683469276753802421628189168058226166422179741904869107783024825016547222445474507355406183432531531197042841208357655035736567332452641707817586229025071525278746227164579153615001864505726174418051439442606803647975498507673891531185528507429362592785615105248783397244144828425205851162094007071560176195163006568991601958929830277316316645114210228296271114683989003984710275455816328680956637572545590324270929124615043007300173152465300284882583720313756986895702623707882524069104541008010385999192038722614096240530003354749663573120112736397946431198954472498400310643180958744397156202105206356352510001553616224838237241029604010458399781002769627144392904725799606246734062485480841159666188507646102682741224393107962776237364684642867871221462153049013676388764739647492952800545249197605834372648718583748849392230937136758902568693795001501672760513177802035998783350303777506936029667855383113374886854500950236785850836997196067813976996241922011256716147507086501325410354980783191027471208960248876463769248810670304252616218747904156827406991281006797358410402582896023757884272991974126773584251763964993985077454773125567752960930553753676546445922814457565503870503934086562590928909910957931383055815762823309300162933514877175089624653414618189222665441923655103335653163435129213089348688808983058104403862395176886244298633994006930372624856388558379252317703865950136906397613352457616241438923313880849276056498587717484466451549255338010346612534554568900951919350475218928494387787765588569627001124057232917945263655869159928031553292273280126834044944346728642773069106070172676487832636462147524107704715853210594964919866407307041474160917287960724844271034240323427247769178272845125473828486345030736532801777783230667945193797801041306212243279101224429403593411965432717314588221083925342534195046650606509677442511128007632965107545502840610836825435505968209698167271917094526175074020907207618558530663704713525098215501419900134611433178498504198390747462222046450851191611094404527136798977621835589312908182894517691767427703698616841337418960566719738536823292474770396771512915714590313073090971639578226299785104022403057042934160538098269007809290857362149605566382694679371787760595391302036908675249313251145249261748557745305031001046901536319794208084630390742056223175336147617165715216524891953735573690968827146587625212066638707086834274324118459280761127208748920463988471890943937488611519816601394246080254869606520414844036779361940788646737328952709508741247397691115339512190668220447909069559562712152266370987695961915049303258715474808239947625479546020212628514984801238189529668796896342101408220593893805588599119378941299943404750322193497134485262243205720978555443711062072731209972087686162689865934299375013646008266420590570810925442863135515065130709537686358147804761346253882909469008453701468209973308478176829867212075846597068100669116471331456420010291287917621907594207904499751385202753607680760017864684247624571778719172214370513559182346980272760158719938223022641259181726255585276628352525852900907696997324090847712849053300510746904449196244343484790347065050476749095690456778996563865302120289786845127374906792177240068397009249919507159554301761049670425130857977240191437170924956409811311344097884874255598746173771593411777129112153009640622382064799941659341901945449157384353491992293387578365101467526695096234341619782044790498034718610331959888107197642983914109234609978291669154188550219115308703020384802859066298601167695230854087078770247767881151609532707143065875966326609284686658158889920318694773742212682806384226705351599985690238478719834440289222018850684950733679688947325000930584794577750226297203455190341571309060740561240108045837795112394140703294680370002058930009845267825809080874752162598411231426286927622043591526221888237869533384037818344097856004266714127103075038448390375620939268232136731555490772162102438502246649465415592696182160311312465905077055798567021695531572317455024560497567331565960121749852824489138759053715365289241677112987354170826492916965721034276706656023628734652425885277527993134672118929029917101240970105645008437864979163965680237356499364787889926509586108056778223316836081772087715214179874025175512837851592616476946565265589472736777384885971369329715350176863391460957624391189305010395423252338984046669352657172486254350696883086198999943670146448810320731636347359750302185336887266644498824756175004933295481185437600711004695174971058840786985741177572790208185903973154551964302631988505937264180942128224866333585465236351387651444947641848012650234670602603365566831491235419671575112823607433451030229396590742636135736885416035252094917043618675605187591099256158573208502290528652589171618393749688541187507390165391169403227493572258104556060781971485911914201656787864390506330916599199826949068479692976144407395714071721785442966252022751688432617823024165454083808065256124114234056987423073164821720376384167462761529774767425742518791286300024063540705532007915351652031267983029428599176043863369308804568363217878380976070158907672822966239790850359797589804296561831526601412455637188009434671030376314446570796006671230860348859706673191102415015845360673524154628809561854622820905192003488749349601507823017777258196831836548561927512651682699790919912438945895019378945949588176166101793935606743229437989624960280816477941784181358213267669691037074226421872134539770478093207350448920846942037307203476754499377574251756731008593305458849124776480917263093390370563770168089390182335203386997258274530928243095776502821110847713020417567565648755636363986892889101696678108984845439886959943297533224693620989331595797734552041199056844531930532950335928287975920815587914506209001309159065981629031717442315484850083875229298285560976229000749311169783713729444031962321463355377332598038835471071020387225724475850172735312376113223139199170478351005655349810500745852922704967004936930021647827536372142043629520675084091177707359644803516877659556775063535600967497838727939664405724160202430315912406321025559104646637510344281658297726798032979024376062872808205967945443389899233103522373475293217788893316393245968918610891665175608447401852120633680782977014203311733595247545835965191582027694443220103081183061459569191908253005961806936803439288420908428522479137228445581708120924621397954360766449466531339648252345652381023470088988262410486401549867508290711585610065546513842867872700403243844373437446353317220254823031037461543939955714156039538785794468179725650374690178126807649701324521603860582178528934966703974352685468786580845701191093617556630084726413120899832249979892607470407420043472017045654052443846745390699823626219968353478279453455607042255197276314250561935402246842264252469176337696302715804410122852947623733813132758304363576490853585310913489431740263399976867877311226000460288520951985186603404359924481681495637675884143699301804471850158540247562091103317964804037684439100319769432518243268814947325120796156463708198458189359178432108743742073477532633905972777063331878934344641808673057349865451295896928723457105199046184894675024014143737228103668469664998398994763465499894638151344457515314011673479802870786756366178083838227885607294784975534241717010307238733752854788375321341698779702852032145061528407136617027631077554700687105453225141086168317800015455796333152977134669672822861606033610783794066174527301960168767275234828418077683772051799229367112438613408807333640402690217413939249210802337938362645963130061893999666136215189988917848928494668576267091108952370621013331793484491099413384712590342934603001740185927762535173592689851167292362660335667046031713282471839837780847490657021874365847040563981560774788415267407966073399978748313435119123147365955554510869758419692357177538045268969419473114796860300701176281215260517085105606022407756679819940779594105791172627632067975066164622393036004648220135455789415956964844069859362483746959142857394978344304299259774730412579505916839265462692703361493081163819607747378204732337763448569646954685650708960670220897479309380996114384449327794835981332440848909493222039170988446022560435616502024688479230538404330562193786115979093014572863659197201999598582357858386747975798651176405199580839510585557774436040638277927923021071926987359216993394635908163021472433627052812673986558463853396267276954221269572503117840111992621824190191950857185406019649577555458480669507679992478698194306533033957833309953233556335722018842711354489340772383393178858772711682763697042909442791455965595668998658906058158363954818424615727684921347357982160432488724886379629070480851195860132197774436014937580593949838428247834320962275898463691742078920262694371877694095316991915372383633732035221346760644715418821103689910419615937203558292851351395019044312282945049718800628693688639891598093884371701418823825073843581492560877857545872680914196140482691105361850012892808680709511934589219465861876062729647269325748395632991696545644423433244798541768729852238891416620576819530871077059241509036808989719732712356484644780666104277126760689544635725337474690644490871389605444922331526357887551951043298834363057294832170627895655042716845995719044375401897921144368743589978816622003321219808228680189810107852328634351998121659450459315750357175981352692750762056556203601825660827498849852643521411767804966438931573397840019726992470397231405044389091633891966940648881037783954047207814316227773686515552551919317706631306033316637504395999733481217359169870572263536818798606119257973437309585998495071238642845737785836816904677870069047836471776617046648362199699060962059106710878958564596320024166283176777731096420528625530862065276585027175702731910093373036932696425363326616849831742507504759675754047281590350060592344914219337870950844434009277578617289263366637395623399079044274146467823846343092012542328868865238631528211073483659377174309583283894133868341160880099090436838288350005483712387915054956055334077014842626898067825779296010878376847145492787145079148193104827971387041706539527828702617417419453541389806431639679802748689807277014150346489081331824967660545944769353305630291710356545470855329295215780309460529028967849451449130998223904590556211400150508019213165923572001197554492036275735688036703132978338682312266786600044363640359499403637427872906423600497029117378543919893601010288854831777884198089421944409481648219574681695942343493070529098361954716217635382454246892832835185836380839415692382647931990162932687321414540083287213178566132787897071134156467434358031622059603174079981470761133617927965509194439781230032915771799231082807235714737467841595646742293860301872684468785584841275673655691268556228319770986735033122252474152360222844289778740246747668336909937327006816181835751858779712516214185266479695997718141786769830818063723669919642789863306513911916798159231789208401932163156475339536934843178979579718911558796445664148643199628933266967697826162109438636231599335804202396923483604481376663596475590274316667512664298678325513461991206322286475269299354739832779600195594398209091503439137209308656934268794208417853129215314885951086352597783744008457654241052238815434356146434404310040876301892384634578181278224348092545446670791173199737514129225838048753967451470943734293784790289757554829729191012912611773005313553316792958013550138313284900954272136798470727549443373309209904384748663346558012043817426696253261838656231065553801451346379001465274704367286466400094370542820042558340776329930855091969529459057163668502399790827622534998692623124198385945141133123255869164605876298807344764080090691624379724270450608528240904316525120163726211507474761885919389235032490493004116556046633829946667082166120643095894202135484157338369925218283069561377113631877681955174575908740519126684730022792415140878216582481843208203340428156832307685708029553793426388771335255311569883237557535144303987447630188500221544880250347577911426693036993759845048156986743582727890526803253776976535839438211049588720359865161473635152694224062992824382451899591119081168808376622352986472747365175661224191564720133102597055513990625228349098166757804899677688296838413393177993706830886219261072856343507080203262572675532191328651300420929987252681063011385970302872722290668386388720165528172075138249755387907570108933607004075082353064305977134681975075620547120768495648572028446349637468887307484540887926383105094147405152652416142972224986728124061107320777554556196299001165067323817930874501399193384820893291999334500404481307427063749616453993548411494280680306682182083988538118555145274639570874404886020073288352285267250911928505921228274394187411322937106509353246504417929616449973133226407469888805708082154760195087318862560771932300500967426126433581867830157347946725260464332988237188946750539022585366288718470921620802914863053399730204870091842458185226994452560464623007077580491435675639523141599565525729078905367513447097571541123441671870733457932139374236163803026510673382777049717603400275083710051029384289869629579856580698183759113515660571116982174335862168944817657082128411652819379230254041139375936113947816051644871862284179017932347386351562459021417322129309975926679495834131761850124037567519379556413421362456856298651592419988210779615861662640725395881548234069199502567628898395795602231860127352247388504079822839407135339976658644845750496736090760718346558967881230409469385642097365078515951415478490812238895641971118079469328787789923535187589982813427575725060518850123016736053616092742525385615794776082052795823627099824498930518709075715443247850081757666478706507086061051232739488463807715621021793794824535476483038351462266731174488478154198408000224220392343503163368052927820492139578185595456153553895503435270835703664767439674166875006407580399026289028968715418573103364202014995560716344440341517318818643843634370063335857256602002273890909342622997439560943485123898236806337449662806185593043840048140688384468490166484362347543340142002237064529502022878388003418755890878370076256087819135663863120319113001521593613622585710473163904560042049656706071443461524206183498638305780320224079104606646721171238673613733354544779869660485947181584099429386792983942897498437323538425489017704779893359536068798167645635903787135716614613768808826990233039089763801500695427179768825798742933618153124648248254640285261444964298215270692707788613036715819748190929246656360713548178970282576970692361916575242727043180361033767873646607521604527473304855923208002389952870758470763133542323192812225631633918572436769191895845883466394781015535128400828220681711085497261208469234291393698341867368595800965722418255987580945290892853484796823149673534853550708200923399523606527210410434343656000419098316818432766823446563472952821977473339132814534601779354722938892836041586525140310879521977041248888202067570562687334437046320033953700522580459992386089171302641392185165829916374851248224574308701518426482674448675439762487950411870524652369528098160763206379681235965152169922269042108647435675926510433741310780629205300798205771235684683196093096698290037139134244724224786921556368259061600823534285952714698922606296973760517004009016806107084054570420989563013096639070039943266618892330959578342342330828343999708463101545545298161006968206146215955812369113610659253104646909288541563170159422878496857834868018780397176548831536462252199561660470177128414666374867987434301774049318475902898328200817933100820990695866646301319058056234348111297122779049017696763932361063855549371195753362716040116709829346935795821215152615092328183803756048182873376379620918177934051309942413852281516155005457242378192706797869071304720307197056890183400264998310208261047715166141970564965971133350193187674679565334762751858604754368038818526931871572879315791202390961670447612563541711135320292927335472803708088914958376603495022235413760399975228621023202375080810483885271491420520678927140458408175396102293739907701205737168943988211277349216941669277358477933238837194788010515596694270563862164038080940020007274961323939451918251878171321132817893249273227518874404109449027511858078827369164021419829219287399029325882102534315861620851801046007961986162923518305216856444410627895661736438455380317990187642375156001898403430182578480217275490484725534624424255794253940541843670309836805769041872897662608275754937629744033732121665568254725234497182169016488589711836695289313897409552018032116595415553191489166276179112130333689270667485139105128539603412652751631716164419582122418985760245170583736849863620247933413654729639776320030268743884551125612176300081828875269486984226189155367668125465831043109848200264178605789246993150934465031443110416552488830103823461635761808348555199190046718336047143985356783032207766944283839479014744346093875634284016279778720783348500130987162576852057886375679333104869688495111470303182494763765579117426720636901747084216871962180731896457671822615309760239055752258169162246058383821015854891646692144034341243554949938158001788747166012778281058659669407229116995911739831424947289539321426075847976483301778674897375079500768964085046349100947472696208640446951868452111341206882381684352812967129283850857500407449527811328303295155338165810034820382114087563411055732366446956999588912144566042733387315148893614780481410597049841045269554631829295292406693194040108412957781003115843516427907639281201015462467845870930121903161777883390520176864633562644966480641386466721983187264308694428059872314730391947276154852072026793082148968335973348628761270315940490875043183763976422382594904659526075265958600679537909771072293120459464347740477718165281088459857714120750514320321040224010228041546425026407344486720505135189958963719982909799338701602297686491991304000660360457723174408198414511301810323267148124345844966147357538625250899459309899504593297458882035706950450935502810135696124469734381356178660035003334306538967487814138200673060515679507747517568933614755838298623409690398895340002257401635770067868897396840007217946687928770556756439812902234468608207383015957962474149222889032738187148977951289688995078439248223744820638446722884303268622588166510748615828250028638199721938974683994087253342941263108071146243557258944853888820971391135455622940067147276331726348508196355299432050935845556223403747919456995537795743877125099111377322370180634928479502772202740513355079553663048627617450727500124019701582247918863564155078941803705891526803054712176053156747302545433498781323554668022556463220371663651302322721625422925774746280577850219841491571473288127527119730462415919068845731908792420162200485201311964781749615620290233705129854991922333670290215791306542330726873313107911079242913001754489606214290189247666639797042336868616335791295487791191987958768165411667228386636696665368013895148249815307938989515954925523155709120030831347597321897664417965769144685351907238665474996810373879518976048399930150534992471129212100654126501587943468600275716017317873767103162768625762994571074806400414282913730144886168283185487287666604586887408807667682700439961260831558315493760502605179403190522536053226887617588728685981145055631918219343882668216860959419731190985029105229171238893617025143462308890038603982070035632773113061377842741943852030795223906483590683762752025067004214701946070810906895986598448263551585371622555858037927993017103824977011017642747604040230141007293302937450614077691178977167903718756311766802205733792666795457616839122203927827414917020455761073198683231290902734863540347877945061198340465070898080148609894551395138182122658957185151130703881410697800440162676332949695768431111287839393267195854545652931982358473924649428375480861389046596584368350734928737745021968148009703744412040408339138855750612308715502941139232992008340484994498833196090477337547310175042184876598993044131137520376445015798334365216614091047306337328264669974360762933258333570185439345340518126635529087648244033270373096285821633599520949641429878847681850248537542301960528854920006517349641954190958763378133207163773619411770904176094192198343497973786764894040915326391275050778421725223853560126767491732883941584933429974031136444249733892797342603867666648422154510362688725708909107974948450440534203797688872215753023929550056834933065102648146914754330490993667659978437572945301044530520664519484755950724968702595795662789918138295716236346112011770988614529928374708669572208851720319854145649790976954686989190911353590792223411117114280126809605473800950392770673981009622118762896875859283685382796423722538155954114796451755315695721367094785962568993225514596944061414130989253508516346929713829500492173740929527146055559641274833044688179400207544876646627234726487777219688542143584176947888632119887171830711119794627462688600033209699056679447963811750084336340730582159099291352352531294338950263906977061526514484377330511817550834689465468290559009885702697945567709457053699197342267951362290449485808375471942212534335279521726092565841138167956278486067402465410681876367426680786174958824569212049347610201377250043509756521388156592479566048796489993070250420508903292806400886999173404912930476286175291489101185082187967111051070018848590924739516934549545764381621251620117111875763396588690472832254750155848869172605042598461568684366566768309293021778045836741369799123890793621151849496134343570267508932435110324975561978717433033856063037091320738991249869034675554520699351235268758631680627032031190330023712794532949868845695968566972474331469179760325750688151026824975340791890743057689064698625654388305059416937978642963535247100951949386663580934844737125646912480022393033122417084907562878831773508308727667227127077210946091112398349794242123319328219226846402744043133129878156201366357332718879430782802724025889336822458855548703205544983583928108461271714211784556862453051468596244375200691957705763382947613705937340941580924532381723805801787446587035664750004574341246802113250860662703184555821810270741262648589893677305619894597704224712607744148813424562278716291524089862202275905458390872433836172611848636177342766759097174257270044026209052117071500389770539460514244056319446891960257242610402258126656464720733572061268889195716239899150901971154929631072188175430566626163030032717977195043376305679862902349895412248439303307388536569178555520686967139459939974873054330002529236275313998891006070325423047858240033043882844996968798932803364092161262253707002751664959581749072653887443139529636575198102493623137763821877195288565299339037194241191205275570804025477911388895370380845807267958803081312438082556270170573472290497202818171844334818880948891238148902727481570932573539464073876569999977064634257445088151407140484629757825348481647108123183698579733589347218109602876535366020903680085099899399427354509327638200966555571576295267937731152302722294509434711174908188507096630491328815172707466420435924872929788665426059961761634306772405597755862591241492464957107749791865545403008754735407113862045785577847731689041728525040671636095431502777786574048211453144789637852858735930662705831368924316270459223206455013397819939073335467874876953175323488526158612115099967729053826304361293625523344803055753887132323738867548990612356108289065786554605551469149782168674458603680247510356561068396449333504082004411369743826827055970019910078195786412514907844865099256990412064409918154430579301590756013776867797884334488841747032947203487249278988544300945998642651572633998226310701318141701696160098979552101699788913431068088564679741946126008853447506354081764496536705705157884025566117570392652116605838573722334520138637074846952376886436968221748074289883578654718581875914956289126911533709234650707506320223670357126885188501576010824507496513202930691557694712857683392962742325875668395437558759362071262818178523828502075085253656995130897571391575934685516513791997998755336613785882893579558759255797428148411413887437489849709618541510175766472178345829058090639297497731227900778144087887887005900134326721084439333606892397204108178498711200879631937870024433849055191570722595585888826307810520417168888777139332956210761933363586867976996507470218341354050818527244049512494368731279252481860611437420740395485877299249824386031661399707961535343725084320312542184279123735935536544557693078531204897266025814406973242815227397985588792308766578377347974964219083064813662498386994873676380847807855880294905019709967236979349519616385755849953083886338643430539096947567519622672347080888280627255831177333567886149314660096350356759134764731376105877283946601356212183175571335713021851717555538974632191336905309244347505645571809168468108323913775899735077574651088866473738837969174485865236558304358209514983708632981810685099682750652167021458059303554224137550188821243724971431979427245073021794884434647091178768970445797148425519124209551179574069926740068981248052235839639423323979866488025101146116425771408812043384945232650997655430625651417000941488462466402195740603600521835050425338824979799794076479829445506850077239661332530297760774291510171763020575307866616129418080050602375082682557871944676821638000351695025357519853613735405159186097419064204428851458990520903813227077457836787174867209524466840865027033139294802011053279060783187388921052607824934080839331720395465293655106728779549854832690705582667586647350398672136713638436126056941445837660010078958900582524411611170271067780101074273390872273084872869317338394652099902384167560908705445820328889676245107971724349543248465477057878952354335707328904101986409083705476817374574455465815031549428853459634437216801663710373905348304849996992194945338198722610431102166951572185736114651150038645840124789876154473793757049538896597266896493710846285385401891853074603693315737921856695561818729005372653791120700271077688457999347366228327805041959153926147977675554795314770817536863108883432694228608668683801809134882879753121573956272517550031945573346211760187879911164870777925849168292541314984479239236525159971935085336333830461415090315760043362563368432661222070498846082634840331367823571601587632352768896910283739656622033554051478058822874875531120491684629259223985358634465778969597274460226832890350427475740748211974613484820829569945729570605244160398716768056762678429992506492093173832300762988348008651164897019500708229166245102510437895291418226964204844434921143635044702199022963640547487325639955448136912984525788108051729414751212740114490642631442542608731984544243654490628054551152245331670506720876144801034420774602865829797732836438160450249822521120178270524295492987088958683616233682601919842464299935691485474673740122354926733875074749668055536172799625493528758890044093530997221206596304466475866694363814485341425281822411078950279162738114619827092450938915429970630055597413535274600046323502971690331623231776372841160557131788359458132509782417637627926941457635567207662574977148984779315117268053962070052069059613811421135932769683008764914801831124711537232553702719515987501722495380560138063959137432151228476885796465355761760463361344409019059215576739598940069655813854871373301211392060642297105171240680586792651892691831397696554374027584237436563517529367660935201916981875234744196006702225571986393221639970356108143245901630357686547807670218424767646200805519928191725467073900742839608164024470526434440039144572574985638164461027334287835693947106417662073812690806681695520435955796839599998039644288361486783675259389635431405484253914738851577645639498742287480570444468257059660989727768206308844200767207412837923309418929880962310299431208828057030236352931910936859800194524733562447996236702902780994076223994886393724433945168091324428602649975744717267349240256175397218512145612666948521222886052561675437523800912026075909147822418213255289771795227057005275770624755536946075260247605208463358009180812686799329344853801023486133860750380554468540766789210690363261041497981886823415672050689629128995277864490134592939728587280290135195307117549264413379003581763439554254348030776268290835799389339661764679972021634686998123957982787673922122187244883051210202039297435439355491068759313826928089418786925776994551953989945637201938525879460158979987615426543648255479882927892332981867663874330929558047089897798750996658571761308634337022926919641884653881183884766223628104877579566944302515765437070542943721994287180674710653301911141635780400930144939836912789449099645358223060789797653299359661854096056296883092621048503898993125309019010598625509321997208791633785060841240911649344842910174950344869962948954713506334545273243132130354009838175246753664090842526147848488313776253076445625925559858669407423862989026828764273656411468106723861701380255825561800902098864960221206422778889522881059882597423307146287336784093088804048423918998828826252054413056182668318165989904115763458015566372141550297585183830633124214468632024115721583072457302650378801610103955532962086229033159430459046408762641813465438805076627092622762633672330421152724369723483198594948453985267572393816434737085961304508903386437527826866405409645183124865948258855159901259844674099236330016111709262289080223180759229628310357563921249333383702927021853671027223667764995129200767422154910781604133888128949258852635937080920760389857947428951161060376919278904246933587474288763150244663779318058866828119872469105286872414234655374778619277491316909462829215855815836349985617433978254076352222073217388011728638124901209274559321574835393933994957565060105667624152388842277421538729004588507599623244431185632831015826669023949954702777421192559264204227614692000577205404510138946585162550267511765965608223524421434657110449011871179129237750076442960681903930294723251450121182053662440121406158176292311018657673922281274479287022559008848638774387099020380770100293003781222649286279673783688071109942357401559354405174315553215238902141060614993114952439297195522511662062512240541892010317268477524637741963730302115373615560212520725771549314391047225066758947904712777281177217340432714156846692803613272851110168255821647149444269352169047489208189566157228655788481536332772464250062925301940697264046114352445923357090332381664776689579465460146172292758170813918757622291623601017976068297786249292120323099197027479059579655484673416477851660983617396861435717370438594798277040589579917112216727074640516437243045872753854453210670249462731100722351541940178562504830819799106898139449687050357480650950930525231466367311714764892715646723929455766907496236099291449431462499759239433906848914653294767592469424286552297715897654452278551580666027623908531468370434461681276248140756582006613060757058012294745900544915844479273350639930543786061720035901977241540836225341912065458974200243725833380041187128040645937378276349943457130080804212028190248679084325111453316178151809940828445103742607024121433557183065939550469696464794461392548900783331161371129634123682098186732188298856092102252143202269904433614360138975455181052692401047212312274519657454256876142842003954740369162510485720090956424460859513827404303063799209783429838155732005489514071035192200123355341196585831541935585031609388574367200505386727875464762852876689289226709960269798885704285887898834597135347891288987729039550329082293698717573449437213764053669205224210001305726165621079755552458021374444214236023077038995065488832706841127200066420748456994766569697214846339762317003304103923156595033965814877356817144733176593341316481557330025290798692748565265953613749131181971634964361565504904040737677394205154112811517858380662998837796494769365129728039714240682468916786206439784694533874730715136702849793392242455228132855240002372721150478499738529480229181154434362664854216078987254102213336467948616367405486157650471092196912883932035161855908614801357453224075593019545278762073171228953191962378683287368852604742527567733137782823201991951650682063672705877550560345719069163273789918090231486360580081560713621355080589661302340072401139638048982305330438503722698857259322943867681863468575207557360079318420529242971114728026673320565167180302794756223890032554068645953705355875526031524839972025131954852887721684727175726038474778415825574778596402058784866692222963510387453798261683282454272167348441771713352531001576814490202753437811222829654368043567266607748025185765422795360307565195121676018175394238363531726939512967489551289356497533153935803013384924554137704925457032724224324325768606283402875242082259686596236776821140756082380696031842847342800210497306927520329027059623660291894056970261533161108441162875616974572996659483761715903423881376087365002384803513810690479931886919493930920013030138979072091437968220647291362148696788311147018943763913022143766495564216506449268743450798936760904299040366631067831656314798386574099687750185571411724598240588762357357239540088487586437522472377033085019997765384693672201987807806766783440598748015313095475255974493010056876385816738732225984363015807483756924080554629127749090203557562752465958084556453251543247058194253775030878904988455307636331923301573642521933470836998815450783536243486724003448985649360420551334928450614434678314655689037120399497881822182028980332080651450453041144587095751542132697318565054486172894779046580646933674829764359198190221313803611839504046541004941322945287172743332742575785198205066083314804793178406636493912953791655053653535890393878104274330436292882961217864607877749680980368036180564870102312889709358801533168463380612123913905905330732459222114369193253641443754121568831952759363941288718590412072810832732992710651571129813262139171698650482849594060796094511326573534976162386273481401022361692567868444293374437008511307011410535477174905352535360141407048653461200550414248276892250690591412992000170405116967110192532460878808819221265276697599651116703927716168708672775274532877430014619699417281434903288066704286092403061368310302899088834073858392782437127694929483791061479379365965895056661670443175833918671782972169258574794710623809769988809115814902969144536996096825247816538557048378878686491226958346563240570402906535472076078537593743286730898528834213971511846551465398777670992925545244825609925572460228422576360914694397440163694691519878595862854548539104819064754261874742738724293160224357095503375080084201354681188548850750503515107119438977308893342977757150173725392902058043864131435152026886920171391934283073559387756860992474628115257021890432922787659040504533585487967239491222441725595646407987038530910372379032619198251326082569985885732403667587818766282846521853095627678250734954213870345262376748569310549477426582914815890851772748800006013975242241119123198291542460468299018103181955809371729228757276233775531414316622720587549038559292459748643660450841796704898314360716916705727730735262713794779929753245213101279510801283519419916169952564284765118864424229766249306136264502056756964426044862125379780007437170533607796150369589656267775990376996151781241778951753437609345078927128316631539903805087341563639391411939252319850332294114749517987466153330066985214211903959792484552113258395690653688800348748694952603413246893484959119824162853754035313216195481785572472919542927231189188566512383815766225288817867048527127732660128373908006755697685319263566783792417483159968969376574644823291658807233989804654423748525529191462880164960217466642877170736088765536005113829265314586993050888409592848044255749451292247886952132442057618825123870871972172835676100318723304692911115849253243978326077109984326205781406209975891276973385611980924082357893628823581382155611602448616348167714352377106424412522804030261136453412661325736508829244483889261533851455872418552056448122712078557215603882793027647947327782772348004014819779126542018911889049135878510125597465713097656852354224268366529090897412848488709920292662361686494377753562022226086894305238403751585929538752854586507393833282038503599078212176744822641622275628003643653583405615777098858109955133254438358182470837846001919644703961049609762443574225752688037903564274637696323949902457026767788668951959152068074755956278708728540835532536155048831672570599486377930866851640258553770125104742398263348229949623595362870358051486289803790100628339682876087743310643668135749675314179472857559840349482962555038876234897885521502686438605073320686286479860650755475093466910742614507529694557776369316922282157818644650511999975163125338575790864328153606735940911761473895315732152918435223302388580863388934094482062037401185771662116370130023772496933640987112175448760226646453424304295319646283985208114020225069533325467946919103719157364077866027221497947256834599769458001028559110575889761225122552049675433135711616189183730995224715164774999255491544845135170552862737609623053972500407733290993317751599634570253240781258374630914720408347522578316411094782174529582822686884859248002301673242836131263816399836388829397771755401995413696216019061651074544045618039477405028673801493000093084270322827350504804043191703008439921224959240768422797817850429266166842363543097466079802229767183529236652043746837624652436206415196308831991169576694323412984795077358177994227106350846617873753846547811175404172838241883139770779292358616508700955624927108843381155196297442655996086914469798382817429011083823906308826099525663021152573289068237845034678973564095498243939750948262467108012339717251855736866374559957437923667398478379707081651059306644944866731573367926151960305744913223346699075966713775951284082954248701978409266528472859097901951721667599794813082909762554898802944637791269788623770214294826286743579589395514336153146833902293510540224183239548378065848922423847965816515996493884723483599467895130322065415670259707363535112012512100917796869300615341441714150402226811471496106135263877474651193205463985171129618920185830734981377319247133616909644893418655144767014067454262372737049542815867965593128662177412346814568285081860541838909152359787597137875879841512597023748141291341022871861600883874253706100114692113289263730659573134345037212872864021476783154374490716678775429174073537851929766937665651952001945436836272567538915857551865726621870756024836910945870656337547526535511170187794793574096791912026874272403580637279065004653530832628379523361069613342069617179619879957843013999368519185258969841989409109590920623412703819923983428850268819016055896027683029227139133315682412202862809294207108633920375354409020663509792847774945849646871722673408899194219829023375612822695500214247012074381307908188845066010466898502743848864708977690762498851769471126829913311511642682029610037791265708892717482869970438887363887996664307484481041122564014945989328437470820520327540401180630087861900975568412560709764769989671998504777082175318358163105839617206344661189035455203184364788970479233888409199430084335170313218455842190577060307834525299845358999415879268506425495936619336495091715802972183057923174593970838697468895784295412332453610959396226290065428743661325642562203202898167268273022944360639226910003027675557890442630332983894380508240576842608285882668659202880361782192844884552393239015997532166140282103764128799034782829980718192443552070574906210143581198659186034964556823244184558749458892480946664740275480765520706113388665151088404280536346581983905051939766693384278735558997526685356462142269886579463150307562816260637842365924604152273411858009120516904991934138491825721502610474929645596965924387139613086409455939747990807922741938676343059841886440075401155836242096680386255350014420550347714585993540328394666377321689716312894768129364367048176639921434443667017835230988548411820154829049363104528943059011628297788753511217523438822018568517355663807238025555372824118450282242148690258636991580532329563180276051384811806367932578787855410360551833966953648647340584743528417968421531268499368404293296628573733975639100519357776909221606276738829975141954335519688257442636085384792816544901348803118236694275983772409965701053736919481335002956209536679330332157557960781772355229059698003547597934191973720912676678636322115062326358398674812562554870234398633822662816475156046180426449549742148427038473472415114784591641111652179858326157908272672336475016116269052824381703703236242476214104536391985626821009310580300226455333170988857823915313157569332253736212310492392828165496210170381631671785112636765977030542028787163149960382360661092114684882857075987299404649749560110191733136286980991657378731140858784056449483303914358249645670648390249741108162428048297289264839391496060988525884358277737107619353597875748617449576089417434351922058474513834151367662953299788589123552837165283180048465831934186672174735366730173823599160417371708392387919164167112246540436369548729561416510022589926612109129216809520269656064684754287767434716233506301093461829494524138837899886439089160543111662820781903206481602178801503285808339046125400733526910131253409562693373905982369694044703338900926748559991680012122323928637930632329441563051970665158335212827551846893384116776308062633883373147891985946382469602292798780043547212469356534104140731316359150392224174586594662565512388124288398891353749834471850608746573235328910251782765297284657869763680223464676050187898719756627718591185008136090628104993856331926877162471689469709028995210509041093463417747137164353390306183522776719988110301295110245696246272188890635370911511354892706305272688873617501589217889265439036458885545993921203835739522699460457821321080358523198236705247423580111443327195623921928099145956240796010082978225683482110435475798769644851289204488686125910658102317731136534408975562630604299491513980889031281325375730054487040775155340101261667574159534804489620239271578012972410002137141271071527682294974260933766686066571363863073838194198182387039825224200312217820364392394295213925340019907783332876024551839442618986771127591571342459093561775884236881895624261851995456741246425713409818761908672559279058484470610801234327629914651635185868204946811741714003165600798982595565336648445156210728598527245623868906087561170544078648485077133863519699439349604978824882530721501016957108697748662228374538414417337639029366669085774115474833468511643485932041931378330095119598911967156348561437370706130901760441503986043350656616624016525182677030526094343909254669441402501803704778861754794756640723017496378127748859818390058067008524104714170302304029688677185121297159498818201327982476909020708602447843985244524563616446035525476343959743009636751546578490097281759957397093147807244219618596935596449248911615761291301074329505962675064827763316661092585650766354188826426768847094616776793764130854583100163225553639457764094312294069120957832661116843055455534549760392742243094854437633254613246429418923410640243604060918574751998117164982278120150144417160861333628484853110676268713777562057850319866195159235367542666552488208090916048128765990031186525224370938102951065102239829417234755558699507419080203183497826330701867492725551399953673035773185458996052592058050880134839111341117738047038441677027589462177736644671691006281991108159086494119310520488893800300065082915386380932536748357874947562367461004925128060972528334610827182650607582095266086551430820810276713650125866317145900045799815532742271001632989902201944700915955640958427388707271349197122465064545997908102767038120056813424161400369313442680483171543660911718291289876532479845842158276746736675090114483748473913554460257567807398617078120736868013152659173367689650744582916029394362884427081103541394164546492119009696544515735378701925659029230695083572650913347008209842213838280212564381871324404857296596751130995822073645500982266387650001295849909454744025388773838214241560794246163526239041536205887244481039834624650829703526706605788978715500785220185505190440666697053977340664394774318658099858980814736824946717948198290370212925971749450771249907326435318990533681168632610256245141021520210716970257603425992936243036107061450935294226513208901367034263524266014084729289282381560132412920515036574102883840208860643178230754649564985439577982158686695288854287279881169133654973801755012780532451016902676761716468217541241413715898960228394668905187406716189392970524619296691367198602761380032705667674848668182613740010577615572466592341773249769606557777945481655103176375675069825364509811922616194657192488971296331535565783285838615437660305163164151150658621225866636446948425617537883568047313403199835578764911788482956982763179676575989138346899926495948876226325904850674558112031325801561844202825434202361383491870538687161574314682020156326436067755902582582944268095147614695407110057663190392771026993952612146004294309521043378366551791553032294738693008424660773073710973985393097272792860319054420159266078761824758646654072812847333642349636761958569923268731483848565524977399918999617384051361298709328989893070748031862511505392473096884431688124265076016163038921709767500893474352124662708484207384811161810959005985460406264468722612424823740985652109340784100966853976569764961047236385194136645605441008343997331990642628830489523590125475002337967900128427255247312300284550510350753447239555962289566309688715541167120912589774884664853443386517054070570925125871180401683845915634910589321752245887091127896473645772766180286995224324270251935763574128334086300673061397226006166670694067045530038288034867788247838822915834679217645880098649417489050737447243960106644409922793792305518910643295324593641770523465648944084142125713141295311732015153550297623932824911837069918338870024266920326546795287203533784130387963580251586286213056486976680447282397892109093721037504576296923195545938596398326823520427234950847624364242692439362299485662371436525983429062892887646096071994965460777190025274787044858164229450301023691316897547717932833490075134555162868435314168196869991337881674080900737080672854368434894971847862463034961729974835897337389959918363927175657382814901200470664491407614166242531557756240826657486577863173480404489680171494358359596494071039587017725267520657282102317710416962220511149994492374088879491616963113422541463029286486775380500380923110798188918528068278712958476183748629531502365107971468467646439060306427567548806702446930053599295366963722070338993130028845184503527729978986681474269469482814430437986087165598805282311419340893196570853230249319422902557724667495926590479405140515356424586829825447357260798690827780982325523101845084058373526958938861513920680129660302691609394205119362524567013414812104965471200719269673885956182310623760699256616233033367661306171313101332951881221095482333181938432714055635696137722434112778197124657164999658200086986452860078219971536748147064180419368898836134538418802816257096551661631049905438710758300280379085604479383886744929769599364630104980133023840474489934757926281938197760387045842381674656303510093424575894692855542022033739677990672199033244555869597031650451407572201368531452452852799145853183620756240386113666308153047002475658756784544510839715969798257138285315905151043868966537636203124399332738241087813150628566429012414319706626616250287541500233966961460672822339194909617247265841088908337439879120551119573450702163330438995670630832276451034990292500424137650399585200756187272933800272592267128255707858191235463638109878605998005925969603965237576706669326070634645156941881160735852759419216751847687438988166413596929914083512604466275011630004343868773387535824780283009033281874656783646492878297103606369421561155386105300774645803875066935129873331078151188158173651664519076285145157135026832995335587881574513870878270526141840943137869690791269765465868976463159350250910364937926791181819206425370554643263708996868756853214428024616928485205214573627148578588461158887261109367593485964253416153748947757799653847314618711945507742039904727331482524880801041182782485720698100810726225510046384396855201411706753520134318309833424007457236330568541917113959762840009365265056341070688141927316006066588373155535619024315626467766336561188896693478731807514558055291614768522694755933054141043770397778812414395130154768143202534827593089573781240312454918663550407605517169512662317589426041882089975325740956871436613007552741470169832017072655966788348990276704354701526150788245930436336169562504315570123106539783528752455058163583686884066739001800518882949365887839983513082497347019881131289536868254054342989756476074678297534200673359490155330797671239170125681678902587109241256855449446179296947047243837121930104054662597439541650798370722372426483950463385096179712944146628708665995499277144006078124157680909186600348777325175149037589130900071448125784395942347684879960014355790230345580468661675903888405021526731974195760553099559209290376590236139890255601605505209081001033966913534850514436112346068222109545830964291351648175505527537420878404616538564682807295930018283350692073522644972851230935154683474536437925043580232943794154221189185769265530346598248663288594683024863045544233663220196172435220411296318081489395339704420237513209291423510051704449860787013151898689111033078448296414053641250796948165800929742318196116942906696528268135082489537713173422006623621855874393380674777235917818104918445109989913015859817186749792768532752495445600759919412138498219949257041098798254865147257759835077602857252237356046497378656002089817437641775490231837338222074811131148729284789054407476634562771870295956014129843324331717693174519931418970274596757247045060142216278498672334153792357933828865859633632438586521169631591502269584970765048350162295219479912394224462707503796008624732595878929953848802516454731021725740424517089703744447851302821341574906899674356769009367509830573881831031831122079073232466657650529686632030074143646654528292073900794304040467338547922850580310963954711250802951780298510667893949233286725651866088382507503162364512632569165672690324528434634726620247735649955096326123660951000599238530708123893788766908924510542668641552563454052326474959613157252095755573396008257883131740475568399862616870799875892759682476262104296226641455477988410196465757215534063362125053231412477351585238474350274571543465656634959563468012855469250434060313090409540010191876203858085423027753891530772367259321288341882270391911960186858693730728252770030509948550007010767422970264971897921747287452499989255807413614837368984282799487287323551104314249897165678292667778223233523511450284134120495379388281498917288451868535290239742894158496480556187281662797013849092651002236737248696917565019316747363784808102188646120993163563630540169372415235052293687803321516847671191869773795593228552866629376313668416378498485570050373714981770081289457263047082705402161938342862286764774237776823442078657224425551316427035105857853018859845408336152769007623064707626665279397562817662181087438621043648833687354784372784023912226489878690426695498004262826812365470301410475844062808081644517490314622040389548861412382313990843414248839492407333693793173052420869096365411986740560157206610555401387263406632613789274761324183626253839252386632010541133136001252127071001637119955740412575100813744909505235637468825062790308082047794319081215290373635540961114448885689323038861265002506980719304309104247890716307296364665772600366856925929174606246498569732272228546349390992305218501955096781478498440541180593902191194732636327311709729525008126126778282062923388936578396061897246438591755434088303726605429371827982233029520692387516510312114511686081759572349225454793123833842292136020329591822190811339532827150917259278771008191775859449555980550398066796746526478897996219297488378518351268944500853586424586110677373090713775214670081114692707597802790523584000178428179843998254805326231869673710854818459968643465774191240184100263293785026145262089817618237321333489281078487707074242940348498429783585682642209920500087555759639573966176895029715567542349053179423441841707101313535567773539094589527738203034987665638513521320774364837348758598569130115063247182229223107884912679904451970048076604146924506096743683256774499831902575754257645196943627676835599582385523984814391726911618772285060368391201952754723790803334133701531742399616192457419749431345543185002500780573081934904736420384678693891389573036180003801255901490294095173555454854127829909283447056681445016347623579839603616004849490462168235877014929105598298860132221215818617927686794319477890195299091262265007998220006879757955160239105010193058420443340392755006695086621599117679303258733467666222083932492166252523189653420541503954166180211999605460672282706716683133998688745504159289567123198390647746940106627233400596923674504898987706621574958896640771551008630388840297086535913879020218453916097807948323489087828363234591247191834379093532449908695320299623462141505152130408560504091246385506282226093799838341256184008622714959862311004263087936286349157251439033376529790863726924540401009048991880006968079508006207361399002083935375171019634384764749778709697983705184972606166818809260968105528201940114944104082145308114737191133105568701555648590430073084617143407318168589263366462731383653892815492995391194581305316441224483587572004411897674080093093826218724003182615311074722027036719376476536146332527912639209430147478824418275631090560053577918148477579112500226294068501812509339983357940532863063070049122800029737773509418766287887930011499129187899904874218263180268680198736976292936553640333888829942183825813156934404077835355548895418311219725442912210978433326175244747995128865899603115975584592262839167182491271039597408587472849431146811853919435233905690238808157325946348201248888615391696864443387766178806871670968046725376509760376822882298160463290585736928348937562879462675688572805215478604463116112772895318796813907749689125352332455332570582445814323281354256245298202155958675216561597902279513853002716987955000117662821005530846803725659367911021074795872504867728250659138830077639715417606393942239812369288445332255257763379648450439632708487026418129523181066986608710113986665629299301678243467040660701404822226477178151141657177866564393225235380085809132315678916742461839177214518993905532737871600634701301626418173858916904183385849177653699655637600662951823359957874320532133720545432988035506883798068292097772240550486933711668628899732475335006372085493975799552975381772939564692789486050793948679368233828357482227609144988864188098449793726556514207924494040467636465354135297044747190078802212237632738866560503390591690493757894163212644214133116490441607348843309017174506569335920427542472281885049393073380481300035769790682760889652217871922697362186754111109864501260355163099461173714920983627750314068318329176503792403372664466221421744036775857523654104057147842021679052194520352226314254011139814058763562060551085561016052201843023697811744105347227413403318447112366403788345023969880008947527753259873005331132173320828130323454590518754701191662274882938538720647462139125465463101870901789622055803108181654140717901217990187738493433879167857216854132211610435570160806446081553266527787264130379985584215537163841259333802357129863327736960346475166936226430219361842000544369508565410576581802365120326064861887608616887718233608880678879106717723406992971714098496994670479321438468756115479037031307795897072787196593783329761056250640532099924678269460582585339578510983786217509684612692208919855361757695963422677476340685110535599524363926178521351226694088787705727237868014562768255044910817453586495149545415920564396452250875443037540444889068711869301565219535165001380805037943084246602989759884257478427881143402034717448201747769234347226535973634580531111318678652590584543546855696090524844956580807124928719815935413445157206299989867620008470770422506655634167653981893026544349823668802176004369226807232298485762349962488723561923691828043025111101977608295591312320548527968600933403658629380401069830961779090373567216908224451364412719625852061007599174856343806776029860199587951039018308145052655673746222148317189939716921265203454216120407424292514292348932965154469698126098285372352297386230792522758018106668229612511319977730534676098496239083688394159213215437621615486026882945275421675898835452213928757445371607301873167207125990413760512029979515910841627788189084871389946024397473715613519494055629259102106424409595460919891349960990573810690847800625702893854355457912476539626183447373403076429650191802348750063719351747231564689561169115284631257143942043413363949899150146101683645154360878235704101379389973372158354904576879337011924254318799662604082381760806138422757256488320545448666688313590597830478241630201784933842664202294514799077337692861062360377580911499529841709670114531555740712350461314644924385646964104361736554194715453700970721442064986781764138563234253091216527221174465088516336506593032982225997139935674538183073118584418590390829229420114376087882522721169414472590444774960348297034054266525791265284916696380211173487817913257629138799801323198632617223508053789049338867707939690967562496875893664583356880043760108627471904858281148905276800164315716164487441006745104113860374731460559430636758628262120371921508656167699658231929521224801730166798982168063361785138931650711799931801660584555982248027592092298099962237255056217268411303961206372846280724865659506658423215791746145305116910162201702524013739732850700244092608444150652144525848204621337883891437945516398281554953081688022589308019386739785344141627431438637553299097192035323663556742714210585667660523222975172982517023937934690389032148944884638714992901240617938554367489882889170484871610485772849701781871360053805708904511628570906241345157806833965486244859638576607803970400329472576698567193704748208912167871603455301822518437763442412476423878490739666453833900276573838657441546924810382089837423668113674477994894122700751257636956367602423846622346424308152140426374996967522829840383530126005235988659785074163123643944100482669409082843461153984960443334326950007550772805973340628578234077035046479168905181287415001864619957522261550360018598021943066747247807482542158820084202388730977432386027215922745686139452392147552919479336465988029341859152152539494099974653234997420379634765944858134803751165381961144397207336301407564062957871033211427133996473463009361683255166734338709247026949330584618177823883082740649151615280885138037765350738146977634493692644745385031503178695949710986151640381420072014880977061927966743436774207121153795055660969949350722598020734729975552822313856399844453172767122330482160907381867844096588676627248641413944869219888492642960178831468344518383059240081617107837098579734630534673397424698466733741861396805631949071099568819956073134713376616389344467236773995474798099380270105899695429846032317253281191403366897166708118012233871443912037733265318873139511500461592185658743084237605265458336735869214393044148784341664781535931940020731565157986483595680086856038164788657340473714622761418471708305524005075717013151810359352431509147891072308141963157942979944789878255877342169893728688476908995099845086633517676176805763228648936158790919113009458017689726848581279900234379455508922329896773124978993486794780588446456424702976178941281404879735138946671362046670714167145327070739149947585341125400582971076456944976472028182969663013946914762848596504634232899171319216242525227189774197799045354265138780607149017782168877546503193311622166739717298814432811685293608892021104423789323380843679935148063324650552125589139393168564417597842246332496430002898411776033338066490705975501212388931805275665620487994466746930793079302641972120502339385591490831571888574862992768667608139012258480969949753272930560631256600468779211574688794953864167151592185661093242147233698368630577392535746628468536231862291401555478438273639729120939572150124819649641546088004047631398727975673652209874301048300123110932660774162136155580953787044532623525644330026470625492748181479094397141604264074620436609709294024153031068467129961045385621353762907744062084629922311579893779917157340460052528952382019643307382008320604191048823549268287959902146497688680737231303933291567871795014977140187153294735346143588208100956086457124846541044169145022908716069606902797482118636489466670596612560606747792011928052075946762455011752334286213362470014107610135785196484361920704991695315461361443680391504040047455802229982875489902646474061804079076298774125902333411999488869117482354896877634151433038241450022005129824693127552891072660954413274528240863867364281348578938170148896875626976390126930578520823575353256326067557952963062210688113068779264433515240693070109523673975048608818060907970238957116063243537011250028295332677553822953332017957263638905442640649579475204699399215870698273899070461610543054446482070143564722278623778867015240210989322216556818339417386980599609669906994184449529069618488379310672924581314261881073799229876036576853503892968293704441109670330708642274901092400635628037191996550787577620341471129174940761066877654625295117128420889356698057917775581435596430802526033257669350459772129388757149707692790178672956490474198230739097485038799214670570231099687946069687644318930157234420167006307211265591353280844853969407615495660540717556308754412219814411794064031015165939855999360371860908555719925383362648266121649132912207687090545411343606410279189474816125947112195666877294523506919582317611351628549103220779489050792946876923691162555644297305317822980621492624006443065628151027767823480076476862565233239768902592313160315415083031833030345248787212693696736685511440861258785258025254500273910254939353813314132800547729112747335549597628613941070859127845328192687327057794797683140197230050799127735396078647376781812147806753519696411676514347145662156397641528332546229863080565144817382812331148420589233719377425904760162638627897865610651436859529776218266823367728531504926010633289894355600493327913456349681476615159666615658926731821935124442793576850117447343001862631520491287771196400859553765517266910782174406796104609006634087714678876676693814142669750340013519369558093511233906773392400379162403620607423394707015818986903998724189769519533609984674455542758573123729859689511442477898932902173335243681646724883079149655310402344520677200253052954851281212284293716092514905500947620632731495287957184265139911879194185022207767612740156766715173256750924115862719850074895428938458071150520380366532869068605505819033739029973561240716777290656544024708032222874790869606037802619516011592199843470997814354228850181389665778644913379455382616274282487749291010435659048164690788801291013249897183927961209827796693901225761995916154356529859054521312905286809682356473665821828478307150302056924651849047540070553249829996312642769988855325928368367198624287485455928743036670196661312076006838575088394995285668675934283961147431613525519421751682952903084826783475252382180712427886332127007643059835530989530293072202522177954443994854504247312922248444839522488554190925360820936521057279714794671324338916955870680276308303228121725992629011535511220450609751184087928124936134453768196557994096744510222177560654038119983903225399663495254933832935526919751395938097627355966966816083865873977730322714987946643620767778511648134528718338156509646513020203143953888695503582206386639796109595001380979670422840864258380185312077110422911191710486131685313173181081081181122621699837948566989248163691698308194326333643359199257965548270109210554394652282366610744321127702498128444831516221255399057382460115009439873872530195428911426313561217770465313152744445008011881374470799139773838661141862183587159947378361792155161302491610102965622567032670785480873394002800474740177575452657004012765198965570117081778445027407015243931812371223514597069200983181051835853137430442173534336475323422860870234941037406735472514456651661568394056571129417012544019653634007003284455911960423450937996146526818912466531773606010398963165210240040067156587036110216525714006483362336322421224974324495335306273740568879877294546164764543193892567646939876907367495446683576580586430026310698194742866223965201250413513893256994057264443931280311033535948724261450906276123756328120410474138486540277453695584029546159311302896617950597875720713610169249547755434847356026525048227485008105229749067221057110349804300069375433029767259096023422403331780151261620152546898300072059975999861362773467939325160353010797780781221041578291980076702281168085705476931819501301087800296645855794215545040499656048661626164264845948596736532657985974947301276828391432300236008195839202660130034445611544755645964460586773683676727086830810008072011440528017288076959198897601326451549108515870540889373914706102989741881722186695499960436257788238688328032843055572863328201277663097041999119669384110253253848035332492861797966941737094837276629179132694857866558229460638854887801884276816242868727409533564198313800494830612186310713068400924626541673020496793067967719859749078226539376191401122872350065092100611138875263789528361801349727807556093383882282640875695753128035625931107356675261942495852074683865311967383108718025462791779808140376792528464615339620445817165415832011509244922589102985713953457724110081708089060583522251048477717807978231755894624147501906910039761476656671421309231664557193628738143822981035746491129659435345790819283118777453188333732955946346244717058221095982211765511664969310442432428887077134993073069175139911854354400486608816717117126271246993858626411324496185196751493692401393313597453729172716948855425372646075740708817675516701444571550093997576710650254920625766534871191932911079576699894356405044251075608821879211516076101374337706914141176574471017395087098204016189027076814943156664616517034683507362669810848444383626490027363115330196102214962219918873351222206774042482911805896509039734163684134090105957159093806350430848348717764772408692823282291271859110797993827219868346217355869505125581051954790323968398185855016755866831612408830054987172968963485492384798404953307375303176672745259889643490371215860953537860271162042551702326087542509758447630541515824303890399641659183693463718729518998040915705316983202164019561970162096204568202531967909706935466051329072860975850427672136090365498241898999834211670683519169714819141490750466088211423325948884905358839058096072239496502589144973910390620393610003050279537553657066253637448636501959547904943096529206602924566341792875745071781256694468678207369498731742301636126065644995095001582561044603311996089507288465133376322798630821755399655516517899940426943213837854701756519376767911619262069617668005406325883785221097543417685662998822721429450131113518723285825164635915334618358550031234505687241831967210635665241397098242383847906999671701883353193670521161848371648641282442878801692129685198801305585694536571433390432269356611548806566174049768363272580130235527289699685954813351656965203755994516328325750087525552858083187676861648860298290849341116089320907163267207479747229458419086259794793107159475842294709438160556430683675059875039239312021973088543488098115036460642693346625174848255653490010595488101143923425893913041068735200377704749992923736467844498318062576918703348768028937530259748232593230178305536434282031182125011517887783453369141024345215899463761844053877425741867772266044037525584626162128095989352571614915050952710806064366355853177479152380639439980267059320694639893064366659481574467947987770383505746960840043331934282091210780315282078679465656214321009062026840495224189136418305847764952194748152841982194899179451540620875988866966194019767508370488211494056240796655261923921156055326714713121120870713137681985239102410890385256333310657603019714590808205653609215394357177745726938616989442090815609900191666845091948316027600255492227691848551894002960113008330199835404873290607933824389742109927729130081956936186078207807872411629780913807934270467392560573848960248184334492069080929896808941086150268309518517181725925168246525625616075291895901238614392853662139974546725261986169859895406406710895109644016819990613963423907172630641835074211333288470747050472017126667279986387432716070468789141778830460869747663415780632544760102483270862900010875978501839611839826330317798777424131194229285251176181571345598323333954791331704092069277939942688162586557174500409657365858909524596378345273100579687940919083104841108571552193579613024611671953141839519304870375836190617011811891993878086164367184407602177352449659707365510679532148385984546820657169031835896094246241388373996858124036016528734188901039296535127104946137107697845042524963943529095915727883543156119898770010484368861865252269216691823871284038377827402172262996484136981233081080542519764813976770369862848217901129131660526575398975138785992324273951589556628388612328569333826073671711496785428287485528302183672451478218043582075249323846698843229577953075635496442622384080515052402250139657768153279611596730625748543296170458058337184650587412952161647699179112731359488779325326659956971271195356822838364030918417440408159421935676623871851758311297502944270284000052450169347340221602546005800535111122780428311533445729125017992509208010372872917214667998339403582782123328596122689593209963829528020937844758192552354920499712880950501939498843476124415253621759710314888850021627982004977339416220492590632995299772412377538674391495400751457495330923893104869645318540385980997577379929491455236550561383538326499963829641969669399299334750406084832117922311597428183307246152953890955097388501574975146807768466112315367950677433477460663661127320654255377160223602974223705226795793543218300788397597158968425304793774688128905368989126089167470932006392284479798668866101490642476894471300334302963026459511076609486512149935555520870263260967972947759701663452326771799555974634678831548068138129680463145174772671181159011709825804830275681930626915866802915293151743398689185180977195033680949564229021632233480425300575189384976958714702471495864316103555341432533031403048407479036789239478292235622764286195477526320121957946237319162121163477215526753220911584020221096078119935265076144346478082687799887307443283904685556856161202731528386266502515160435515783537636314694249090639236834391161181303557241853266297845892344357807752979339058331870501877128220952307950847832911706168030441287459180978268803203898907314915606928895265020995239711744109663577934637505789820651356594651737130313081507703279238622337297266509206828526988458519360063569232787456048392705520487101241992165714625961721742943278374205626958271161146440739891835097422981260224835881234427192828020261071078971990165065180730490820769680130630537047290900696537725705896518116694863184211979677941359094174246178276074686935377077145661148912318683025312230256851336419226054602390096926924992669452330624095376725668076795667894816360112673960227321279035646228658663962093354102433502890524171636202962306098748988609239414230864205840158930733476404730646460824199125536816416763887953479639312107195994390322628839951727707510174949119346112251433049825068172219358772796333828961356062546533736669201769999001246625250251437619888404650019148201174699863570407765796661152414174371913003312121545863490542331417366033564599564201312217039339642125893647965421239502584421175601582393871314891803130741256019408700727082396391714268283078073566951724447999703694614229508973835282471846856314810004856318125599702351673709876005149259620683388439563333721683135938169139041055041946317917348585132749785908129487430277733325068560883079558288956928029291268850880391523956038845286672915481956174769747272678704219396053740318841546253713505279773891383702883800441643411659609990577079024256035592325063457620909551896173445289745072919467951817708564034149714008686762214716863302917034081196989380245845178612005237576052708430454684853015531324999303674366109669554553433741740773921999024580020895528292098692833794501883427708522445212336569782802448015215360689652245183823140023003827440565406455683502344468547640593593182150719692083373403657242132727425281457122225925587466106904735342134782830905383065328965387319201062635197027991272746833240643328233174450072484406615674068514648574851295472895759183326383868920431150977457805500193874905369600565984958507984672812879285933129372507544723904211774221022000591274613441129525380877468530661268599610453019076949438051429641575765215650590446111456581501167306154001572066642207716940517426198292100456343621853849418997939493247446586848411393821372432681505654371776354592908565426210656299776052026033815164389539605211780268406968287775735119603138231788242984508964302038472360725810183281151072243895525803762048186020154678709394128772489587769863621109706276796585093466956475511132590294687117869354410493391536212078431371609786188337503095230363749356963914095609769257772174140533442826244141794567690133061951666544740752456854824287144733384299605767228265007467757444263269920392281318392961593738731126163672802337164561320094555517584406050226053666400079058215509154913972780127430555112783456752489511018307412252629223456369992895479549622231729730992853594738174139496765551113289380210266328913368997226369952627075788341894591072425621380305739570541000230451347565025973270795555933167982492221863057439147570555883789962585998709426823449338974588696086554832547152591874049237214106872338701124775160413249065993816003661228667602468630947505398361041389382356773354364702846739189155519071420118174521817426451105702061453677564553731598593369952015321785183555113045095376340926317428278261752097429274820074445815234196885240147509905822870529051398186993178077547699544796573785126348877351735522025551005078875471339073358623441836407805595795640566983938849720517207387141608723192264536560872711746922346389938055560200766681617872955415689932346127200664798107398824645038924069198585001988902701214001130644478120839912102162099600569156943220883797026142388929195901189911597356161660783064737597368339454049092802486573848519395902660186236855246441717036222748373041790518336582802799620529750556576712672347772672809319544050608665953404893029265002611241849285421706783076571438097331227944356227594381968559292248300860003019724341712301978327734318035089886031997320279358422438696604571585883186608842606041293046887793897181048995008811448163906310919991467210796081382143973359232331171208262576936179191855748032940326071655179812274755325060439005247020558664723349353270915048095594977910406704715945551977852261080359141826232912523405001568758284905003145639292447843130948057915667756702198427542846884711690765706504168513120854309832242226519846353667324370616941770300352259466360686127985829686153151143724902322799166783916203214547729903273636564479305483103939603150898396646367247460542962514914984239497262535463610502165827914697561404345578019457758013014139983357654608223838514426030587102370962856086390760589967038534432861620939162246734795705259752353452965755526086770279091040579386556057837891809671911935566466291637322169291538701130019254885801874937101240175037462173046990894116986674670167021350657722077829230187842336737937241358490823938198755539191815704775905002255872256624737850624513394949890053087799281180040207746437437928633775640377011172710312639778684086301512769526432004465151792213321810348450369053393467609425205447022073270424480581132595912121574397265288860272161111150798217172609905830035330530059639174535289661846078610711981370076672312499834030952991932879785697095577378958369696431569108703152340683217121411655818838992279599474911607691868168008926247569298774421212324322377947457133722963944204743349453014430216983466691798333344848945484649201348889337069214879926783963427886664730019922507440356450710059914038118508430709251732292511218544563749324268782961813998482799265750475589786793130037641968884541564933879802254345088714704422996306498283144132856279050774433777263925233372234241350588899134900854723592190902627605458577235337131183153091138411116617607952649888483780024779526573470696017399165824294142174955426070570423482560053659187020996641566348895411330716592248479942870526153281419454661340432610329021623698482130425445795790924030429604324026641453995229517201578608249286224411261883281808033724863046584574597491471677779025417617964185431810397487042079020599144025832117510154898735169257949231041974784667681667828693548184568454817547019242724209569131433102504902617552469182131538829010179375613748558224341119942666663491982242756694613616280702671672203311523072711812987521689980260922375287129111719071105218453118017596880128766087787824650791433076326692872067223690598314403015280243768871542840478139544562759403486577096401386159805812111551921642332056163951789709952371207872728112737337782244088167380847688646815126551407512437565507462082264353509962627684692189238869792354292537808493143713938321346237236070619567797316970207279728127636166153218856769695782563666843714946481806471431143666985276570845047607989731430973676363116205758097589165186258352932846701462829993711000935691395491689976196739273893435633189904270081358899490306182287376638241742807040069968164399120337425962573607835975489151567375428126003586680622356365867052096002567210711953297001405740320339165025522399167754640665324967749719290934275269864944104322343469076213574322093581483493374781369897979944968505745547673577633513365159937244298823807412652602387801222099777518623161233809468088541276987992482108278845815880810070240748197220011219946478936543725856852493810880043035164505109757467199018809296463460290298509808421707421896185551366529218615524424913564089997684358884627449076180430916765545065487009045223039429126712263006328169748513368372938411292520344469636547765094304449263494505687779214998214846610426687601304791305860399471573691717087050488412167952713246190442912150732883466980017616340554479807017390740599930101704453423104478280980287919698063236753455538499316739447114345011034231699473151387761010854083130650145120521199166042924845769500469415494503411194367325298126254534222670481380507650439631967957516652254403436267161437994747689281594041405002595401179824375209250709818908393654627700212136839753675116844218091129395424658611837720874387112211427620437460409288132035621668466527325327038744516645812006711273162149632023890272136658440303331517221310270684748519331951809803511058867175762718589332186586318132398934071218987699329754938880502781312276332539305045127770086376081515616673265696908343257554104365331886332391299105026783582384998678286322215277450933087516862245796840009800094980739090569340010660507013839039395017405450478196127836093226716710183424302935537442671248312998297569422184273177839817816117892427045258013435343575541123564954430043505122499717202514318728567480687876224940209183541753486351516596306687661692758173032740496550543581932875762051305247572002824742552351494111459670243329608599014217163461353019311118876375621973153518508076144055657847576597961264986492542972386845946370379243689214389041753913651099546588692069825459714635865210506193988734292963623761058993178501109444305293213314742428056898661930333632031538912214772934191346507132758907497985012525953133601508672666407411500430172972648580968197273763993874078322786109105181212303988859459031075481807328573983010646656088349874488124829833317490070480340693147292484582629495914143802790086268932469229784018044417173231701913215234448317935312762021296149698321188064521296894862251292509204151427793970815600276352389421986037518581055700384235646645046173622735287778682939964935923773850929134384075244663086575784859474395882502119390779226526230354088952246190968665089826194046851314341870697367515583887522058043640597074610957751430347563286399535515130010472848539451858420447174630387417115451894109924519103197940416045771245873211118764397838251633720155734251594444841501816717393574457600286900953693323545624839147791770299102987642466890516543760996025959371926953809864954865659063298730137334228433287368007157536209946640178171211654827167813303021771151744324511264425450269931389897433995371334843455413015523889435575692107312235399860116633431963111760026319887606091764555567138229806831478260880884863272995400952331345073562714157574221320297558147386032426490512137295201516866197338766275763685059374693162129652439042352020763484678937912708816680656813787610794681220924055038144425988693991608610459871530607487227599962778904652698378283996925786677105437908940924262804690885569494637057736317181191907225735366106365811777972824390165525895036535776217481508316361784615992383596896725402992613407263151566649237278106698667315002332294293358457143644189723299292940102317956973787891560778689626073220722927592834350507483288911841495206688603213832150566087433852664110891659820864462273361316811493340242991011064533949032570110102218495601802805775717358972495791218461188241442508885222931434652957528981114745070467947719704981370894854747304658965300102563967365037329719427518689585948283020215367568164601428481864451763913421492926627315623467557561845292937614178092640110653262263361760000700763100955615056936006315704893823015439767588425098574510252657927510969117602942592116711472289302509539972830463456683335964925445969831242403469640348735150563686669749324060742956672930732086530744332692796094840181236908623982569493813143083628809616249317691344620108996572423242089433649349778472227679865954472902777553624900575128037740976594985431942676098521661124137521567870530748467562966209847604920635857261913209615202749733719601128324477690305819356170077893175548364690520559100791291521004933070889391100092883721823099309629603139695586217205314574736607213392013332754094410341985344257760953366073804743210358809174284741204030221916654528564736016339473062141643141156178044631220874906199230170628296639768341788093956435451358074006688610122288155287984572243946687717719937801474536854627625845778141909251553035176737745320827328853765878130213908045692629789157877313358161506671779588526582692276153659256863248271744520249259833266507649783807636272053466359120920233340770673200355596077409899780392640432917813758068247093894732727504787095539748575416010435213503255106104214688222029677328859061736195330678768013486513702961854270575457510318572166621326433521187831364325124259545444991985979651683606800551299686615316251568248349363931480983833116285830994276064641264093162372938603174065017744747269771249453444480582465451045527074266188417449423624068079248051932556089299270513299071656303153155061544509332007322927410412086972819657784406362977419977904749640498501404519326138473890490538069215476893154872277223121962089950803184660443343190189962344504715879618154200148211257026677416900369071661048365740785164359785053664203240966389360976983988097626691856951346798867510214984690687812303704070149381973652229199520894568423858739950199755321560484313590679251759226049898246072353355521414592585725955184343889864091442779238820084192739796177039017714743668922132411127969123164022644994893893886882353576834815045015536883604720952928371948973457888778528608936521145849186305798181605828759576747699163236910963151394920471579682154505288228005150865724591508337414448634926780565389825402505074084176722262256649556032683869624940224399567937929712775721288400233678156189061362036982836586549920924558114770047433080352230369365352719647929149375077580184505265054782058155262877638319819566131796470376960102948528404874296764078371523828663906680399119915135652562636410935564626878819482123487787688782619694752294715498703250566576027442770225506187336795029906017903351282958755722876869301509877977495134180142171764615878664168545910989275926266726294856246684532707099885688930022344967614297831939992287888487157426190618661418559333974059128684427064798596125139199536932433381871149223839820002131097230957500587697186273071766856964424630338841131266129057418810385874880295698258730707580517298207688800038206010691125141823098110643769009912301649252491624303940770907545064426412881158705095226109533680202504100886460758720590962683878626878129746800038512213287373401648962248437969413639236957662841945965329839277106145465210263273857567445252513386157967612449365646914647252074469136407631604016834638652981488784552906683719998305512305622937132679964128499053656871322915930751853918377114431211881172322401755104741670641189406828130032834084222795696022406126696564205492362257830650228560916466983373397838767745579728353545603819459670921236380454506680977085042544687907248032676847021304886018591062203790517406635704598628220775002330356371754630404027832810893529763592587454636492018583471386345202054792523838095592288946642322057995943444473843627012808235942370311333115822502511886544459324561322093847807107778481315269484488130488625374127704745597602036425402756864802622915579086838604834706876970491086998777653927608271152953784261650539051934640292649672513024646164819763625962358363662914896920991736473679666532109893925092579316721584794611281321382491200776360995241627642983641831917754979708381706909037354428399539202286265707915117837099746838527994404437819784227811692342879944504508117003750704007265343435700627039975825021440904113592843642217345244026538564745580862266195695553027393599668405834657125478293086313046282871698788679501477622058295420089434801978585056914240353234416326178822193107760046329453519585987386163508864064003978510066037240256263863163778049814533742331242371472015880263724439201616040261476286873552763649134824750456860866692211959231027915866287756523488424270499851927277035918436762677592799436329122860731548065353855721655942226116424303008612428162060672151038683391864474224698225338056017524308548280322182374833608606234151187885275491622824837486590122129382290775957040899403659845652052119355939142352965802906269516942157642730856006973133293781876276468190244885470419455370842090147416101935489115009036341017813276954801922553239128832374416657012778743505886366679611690574402449512784852060410794015461181734615209735399717759973143458866752147046646453706660441535512260446272109452487435556735993450442840195788748397204387238974761271017140999988332549133232946798014241170077278533354609836066086376069260381002258373981123197241327078844893293129055709064218507930913168989852741986710204814200531845337291423374759171268262282475513929376268371619584314999534651751115254536595157970307939170461514683174193036565043911118969142760516089834644783890906755146236642956298126557543468979879436699529358884574624797202899784364595593460920975548069801265473395710606861497872593419067237457433897230533050406142217833382804845642431221924040618075716971604859246081410414637052103540011341378271904155033704593278643625243000888794930608361572251873012242485237313286675043460358593366571114690398478587488272712688671079333244705352866841758790700799213127468822750944110213876148781071636627088891092636519775518768952057287031297618068724080544078156727811853116339033215175001355566751318243809884913466351501035324105210967649485616029111251241580055810450879498660428959896626836619814863501223501780761255660138315349525351873441702148757227907711957985477722072434548546744231826128450420069849752221411608616988638748722643714904434533665489102822005524786737287287693177875181353479080519077877165263788694666711501848453907841847810357149175743065338973631987786069620559917066608019560044046874326461277900486883403831949877919190805498080999848388331662548871558987201202907037042104559410671149159662620733107743321012730455152830299906107935574519491024749749933283132475335477367075163547337406180267501865997091740580185332621139523498895425107715891172523551806940262286312474918764813520001534583013126953630531646710841477399004208862666496497620289878801283855204216577306969691654833202873939642020726733199142502624438941757361444302202879650558101226801160795915709474629582245451504823421106449982998717129684566336771259607840561424776854785221154880994095644218575693995064668846514463066137339534564991957770691503793104903323212983544761522774901951468178141764531518434205315189606383531642289344475072277395245155200166274490912596649095213638048955046711173689984466237869188203777005794489207094289068597515266173885409123997770788439012071711547894493961759023091422398363920484261276145469618497827105778869940297355596428425177155103404734541580906734488777419063378764417742661982668731421004214672675685681165089849252705267437015391862009550611917819282132534734999066883863605654511137627530961067840410523883030266486468557209007080093139050460816794050701805786793441124627827491829116706630378724294186062249497677177723696538367407016162740171826016651322569746742073616422388282116176540269443730315213492244936564191386386065817091957751666009123771683555686303901957904272276758999360584349604368192756619072084903854810576144507857348983309279381746584473920475496180925919045992108210499078954235024442120853009792424239638786314070647012675091738102999350519540602583970958563164740393459703736795114406245823703083971006106663826137998643779423353998528444548614737140440513352116040216140039473000286171633901946299161761370903429371435040176372466661648249387297745386348092937679043292021662825914149118653580342876892581585389775961253493001021018719644755379567189583877025874999805691448969194289873797890022278119283416072565455826790800144173659752428546935327134741208305670615959955280518748637059580900770696903729701227576243349537590017314276442603348169072332315479876394101476387587780020590911338881339899557784034562240857213852266386577096149774492420918804060665187684684559663910829830145510581496049715561313455478619945311895255040832610118442010562888705912571922122839808007618837644509406166074578765611582122010052128513140864063019001121864510444769128803526655942852571331954036877209162722634503073950552634024593263138742476492405104500575206199698699133737856263251495401970074951821431329208626358439906174132610593784755953264399298652608312421341515561955411850271319880488780768345504410230782956378474853762258162992390063462022542464559439651784239818111688667995007825949627004053979418080820710657338191249318324106325533350062048618664443290951175292747327320405064099517778741692361640631196862036498883903426678749149051567052383022457489831578128380519474928703292416254120201731899957599447495281070238193375203322664837600877957617616387131225858538769167233863382660635434581046884988742027919842538617681167384188254736165596283071832284924727211937266841016128335575429267127887324370552696412099275720114199578677288066091750258632385539705198904410559484640272985193680540781982984866795067079412277323827255518425129078238152871137782900589728451438054069787819236884648117193271133397278725883110050520614556608183609048220419208429035819412203413789462405302760767642748209303015501631518228407396994939753400489144316168393284613060446203604812151504249603060540376037387644622788057008212582657718207572048901001484817808315110384385821865716211007312734300603823646943766373482737806123195308552432263475682595547919266082112984312557755653085859521617606713356944488471589930807617111199596864482594416005967428635113782712552071382348512465363042696186237342465769028095248431767787050458477123160724588217299010484658679063360471666263626283161117023145609589475108180871593679485153303598409499288130069155396687977299588364597160696842931665279396280998450960338491117669434916479991805532409143562441411783789085973043611573719460125601543071395620974234784118449063435340960675480715969321173965588511363548386919754161879879956165598917499662628333319259643979962058794882844643756463917617211443936468844636485707508660077575844273477936694941677327077549063276779021541416204657669431810280337608833797672761920549095488778558127123745020535897246056438097846479798274096984148153462694102580858409707252443320564216532289222153028610325292761354932589087564627879884110177314313076537304914807334420617988529132952164100605833636613151917010121201994002951346472947820865637001769418185843937410396418103753291008367854948143527020956059060441151574201767077581592207149414416293251177820423135376589940652024820871149314000217218352274900702644279733306772468111539699338002143649797625958374652081922676203446453272018974722029786097833263967351433836108369904096803932119836101313441291267231592994570915404086609845524047584622057644615797973225105349048845848547699428957734054793749325940110038480276526795261978404333867776747609539739378008174302103437990640890461837020566263091340972511597765286239262748040867441506764615906514520666283162347778798966998440445547557761523738237883950094545483959982978794525474670915960643261341532714802454625288059630618075362591312375965599864296136472139488166832752380114492965410206141965640225242659256669331964751549708089165232990526969656464974343417372470971962103569292522598077718770516080217056002384589148578178230393458243237766638469254698351421664431015782331781564397931811036166498040325691521943105677277853623207502249542802094927938523037398753033110404319665801704756701740718688014183928303856241588350357277336541174276636652730780261064719042292297917075133033242189328734649244945512824944607269557370800495949980578492875468353930154792676825195088655304670791750886065911933017226540026927534019917033839040471415436532697114958065374385742320604037984693549105185741790257344614545113174275520995799692637645499868969410148391108174324757617378587080362240680014313695471025406712700423254755010233553507352436630500559171188848326792911424995354556332791437771492236298144299204810342639236247594045440369062742047094510054656516874183696780741524812189908551469813925657624320646685078481696592978041218742041731403718367913965702517514377777955850383539867702785164848546142120805126657891964170696049875942412980937118535206252370231888719092804955649578814459717146946493154537815446095336260719632612439912380872817636684015688351446780384764116373815001172882561283459986224650602763419354924991695238793996393473722251381797302720120965085867400221926802986710084657637183100371302317642806543987708959883095710680625832446119981003709068770685654053270882636657679408174856291190486435693307637274291256633269163202015534082079467555016292869740387072307992536244103819043265903215047019115274522366842080873963400215677093199043670533265221475144415575935433968298992522346702143143315007158345268579401289118178432240331514544435285359354454029960616399466491894352728516287561596301876649206263898946839608528654143348353813776833810177242420488243154169245706000391747193405913311355459774884579209225431170925948512722874432745486401350081002102078368241569702227494941713256112092617222441915988394508365206581130202895887615473118656062645403173348253972866993674657309645270486259860606961650437183034417803087174329294440882312353872806807166123542606404115976445558926162893188861081575680938219560887550580038473443692032868760826945473147896311731744048434871123836396053181710266375529855316185277542099251228508931264966658963682601162529895286032120573612630121995209356602414772086144447076927785111339786607809684591847751039781308557365596781038832374475027627265706484754440104994099416076841684843829583493438364392996395234844058386262731599563823744355651010678646573213287326290393699628488639399936688567679739161591782716937160948846092551662660084247905065038338437077255391890835633940591890808723897483576413313152480091963793881492782560690577346922698513276837404604735253720496127530514223229019138517520707120561457995208341577186988307531751338323164838512952929937176331567419718056551648462787617161963341059533907987887292270641198969685822994117415598493824843508243225828027328394277552480488535569738438656611575600068811613131406755543894657764696526402171279046673161369074750729056054029531617013040676042413600722361696388121171274224434185803475083408615646234168509491507511398828791757484837330860826441645782575809528654994536904439222670433326874431901600061947412379999203305906218810059933538983175534609751779737502094706768425854839443751357160528647091281230977336735475191922378908800075561461518449449016812399261216197553314059214119645813666643755219100631866870290775518819733673131357226742264160418214059552443326574717889809639270211987655186063919123583199128156198053756216806640187983442561733005919933622552212926172062468949937020519624016303510545579334178411014724773970278285184398981506655784465583354296224974771868308594544923311279216926500744606360070183403149858334992865232144430646169892951775799321420238162070669369783981933008053216580565632107144063329210957683374299110486451814281503924193471983080887248510061082943878866997342346806635412913708535295719084792613273225052873198696208871202283883423878713819694987800200090128681499252502191977490904985635608239798381345261304053462496542765162521350379407858013486681561090352849597365078585021348736307230203444234931590396130722525835113230539923168209025589208356857844883201694833794098936068201577285465984033007627033678992065847373847264341805573137608104614566299511123898558263318254399747451434686887028364274969486843679550962074576463592324950790524566372025578617019503294151673696392618240094234620422768682049101918285668897556975273121621770194542837511389067022535658583800841845172652473833077299964359812473137448983079973641273138338230852478933991227424681070439098445886263223091469790491893458292602444996149707370248070619300653785649162110289193448384713809028861405537891438352268400774366818165714729409911961155405387030105482564602407066158376584014469590589611514928879873497361703813074682475485654995655340027252226664325263777967120609246214173707582905416439873888225262166530840984209719541605574912398914490192236924009407660974046057368617550425402968141276416245659969640720882695916155291821800732828322051065027365094607185917620217340037216472024051335449154720678135648671369932739341844235299275848948789302464493075610495361756797530045132347892121591854014241962741124830227809108605129402968605901981091111349156420370132499578318910534819485462230993812633476656731432277487744664705457096226785312749103797676613654798983073522625043419500525557546972057572100089446431669929731974232306531141990691587657657695465962746192567450691837630250334705174108822989183286433823196556145250752770902078989443438068847285140258800048849101449435510708767192582664850397057258847737746235202275452527225098360552478142617190835050877433703087660968948468080388041469586936990330538962790635035968795093008170608802357672769446080124728980518797305818555736290178958220298041174665149546566507246297769906026701620577643642809553792787077801427348549232709873870139699226446051511323781222003271199020381120234648975739729669274112696111373615023647454917000312596235063937454131462310389295334905904839071003521970435564104759228341888855191852406778107411259089376321799369563221379248728267865862428027496544016705354404256399932277529282398111386775420900840938945628766893542293113396048989766342418430493182588507321566339396231848817399413360363663521924174543129101498470248596913349890972607191940902184539651564738117348393234247671088794339700057887254213187880556810679215725983478634637934664351416927169938548059908467111114130884012735874998109954617656630154089804438902578253735453883830099176656672810860142519680514122985588313125629117807750356242940637230446875906371944375083024524617612021397771307587375039148485033726423626790579365520983109916976054084425994432095106323552720739170704690778133167981344657433645702631773352698024806622809760514082079315260343839928716438372576158775577997454418443455444225227121116445649917538540210740752158021303805876587204671849030721424523313748535154934400924388084209041738964491931741530025978474000107078501355368106146199072149079791133076902367807964175592133309953561480168442221765054394669827124523702386316753992437893018110429474886023903340124037932710604313921047579877785638146735111335998146743310369947679933083346731167015991010820535320714408451147453926210977556557654026112938540949143843650971358092556710539304611603129050886077555058301466503407211393084741200898323205361489092684002061045092572955520717939268211761181384443676952326795545594257266240631567886526069638411079419212257503333327293535939821904888354855072579769787743016050120478244011480298756093533569857664852031605185882884057995573825909722384854933499723387152843396777098695729156180623598866299004589382520731893369568873884664551092727638888798264228508883194484994083599621136055490254015835305666227975786908334815434119913341814804772819309926859893675513972540903419271662156212836293476751114882452292636467264870184146393295997787705028925880799837978707438656251757191444373746205225654989270974256989985882696733893245737279292820166648996567505637884689912844754430913499528154617497273065933470068143259965726046251246922078767033632860523038655728462194520453838041440602764115928414412414050271254529568064151641946292708189576285013251776444152079775818066918381886815724832149671699295140066242693703905644383748478359800257867201852856050907918614067164026713388694938999297466836108352368476202860491541828375751512584545232569524475904595036521448583015007353289581800296536556024042189406357220010292219625611530473595957168698375152049205869829596136695058610719648848005812832655459554575445164893790913646686825066747105023910761179720587471896981282993592071435151548122361741570160531257363986615541718733703123288489156788388678865114745623348835713511222796518215671108868034607519634204587405747570246601284864303741380106596459199196859329205647701165393328612132317063373177103185572585889309960912619104873235923853498404385961438333984673261547152551656687737053306210115802198647510352684469057261294116353666970742299047695424554020729287444615496494080201882646052149842685073250363355238158102282844622858264443464742448173255467587375069314799017154870844545870271686731536358383007188095412452781662919362391328287066083453761535636005373022492591366775634525159372616255219566758672346293054132942797729625813251333960634516834209051617147299160200249950228841868117491253549483488260029181298881201836937933733014219045067399888944966457882201917744544059299844419434808549586179204997169871669499920940437865488040182180688357712525421538692040113058502542442644520246715224436679934931811975006269950492553811078874622453966420132661119726812409202069289335183390275777471090281863058146254338987351474067794225929917108223132268444016524919715724657081179861494249042425942155997720816945584031695571693967866463819592530119819347423835061349968967540683843570734168261687207146700471353968048765264960841568868599830901632957972394479744575683834690500509161882526519361577146656377951007078406320951979418132188556656080356932754513974479790170907821878730777061740170598551663194847493264269063857572375530341536267426658932320773337131047167060949266218171102937127938177830877486793633043333277240895674606878514644091549170049684810522109023323034195159030289592309103469546994886815186266404720803985743484166765158191715679057129385524576005492188280838358606172386834533228052426717197453221236269054886529114109135345760982285295205494120942267890898904505843039981524254536321881158434033129559331857751524931493039849576853863565341304502239910492199384400398684611600835497079120447567240872767945280356393614554787806936810463196483920540018604417947261038950764318321047523705561632412755650354802645207473623464241161828697946403121839341633775583090810606312503464406658635138733093818543661612117949491155924089810960845796249088226314613155775384331472717408990533322797724959971583459947288802657881413102507112128075044952269296687087906600980573940846518419202780198926686731204611332725544958275165674210137451741763147524406556765588310866530012076036412897299291176572170949003522366797919368771480344443765694514253661963974078882545176842572495807667450593106264687843544230530889845901884741182027125189985442438439952642370525103280708043004030973234165763769548088508141241691908545062406157979805976495992077219280683192850764606916093654022721603837689573572803501099336132618312100609802663212358952108288702506629953398668965753650246690511707797461825450515824137369434670295702745860863461470232771717005980256399188597564662013782465179886263007854606814335230597677866831305841930890436308800989684627580960985346285381753635301966023447694626599053486610972313177016890455182297282741934667375873282433831647544727590193878320199464566885307939894069998679170552690893376240733760495300512352545111377723501802844387207700568270311472462189605500731403199383611499644048472301492302693611338975799720741800262755359039264374086161967356250465584812342396347851497789903778586620731867897752640158251160568579785123026237933513184453167380647531972920640620665497095300131264391986007919935453393683035138482368898022853170210961586591420455029193147241315388309150630407631944253722301218193838674276395347035302751378173095643465698736860342414753417285066481134128481358238524809930165485460611667835734065547343923819808485538424900796062011479832585137323265094645563392403924293079981460612656395137324137304389080055973694188354592264421629807714826178895168930530876699834592649172911447174176831408187692250997690940328639361047216493122385221679829909602970653510460240030774303390213566424445365279732220598547966320547816180247017726498733194941793438300139175865636912951845090789758159043230048165718739720754866046463735918749487687842912338803770477604745927934890781275978983653706912308684728487847338851735190334717447378187301999826353311895406169299295118825820207171205237725300021096924103757943944887690560984820663150767065599558794174860898184844980434100277045225639680085569032435560727122641371990129494030991004248253889106993316835542639792961299115593386038360469601037910687634787409685793648776605459229143440185134719716955729048597782360624715130366787600601781295481886023913614753403192264011038615310531480977442935527398984867436239231404721950748164540068353378368276673618702802183455190136064731955635019001266120129043002848782068350894018359038072206685940968995982452421237916924935919877803661080720971365465540917372418985378664032879058857434355718608260645998813244350852820717509158514410696366661661027889909553172237974769212055486151334468458539914069082064492963052878471221309295322184105814187588142050714695910534266923200567817879040321578170029853661058122462379754919082043562921483808116757977048563292393116649209437162927655905431303936636330005545410445915679718648040907534270899363682697272881646183696213985262422435768121949732734799655584426498968106529777375561967336769045783046785351845556367154175389243355846722868093535934310509678695472246651249345210201291332310482866433167221012136427145579985134545158222728339918783775338853285942618634756809127413413696548402607443088674219366294921657799481516124771446026640993720313529732651999121792077673807792135892744462788543473866756165883062777582085109926154783266091576025978882137441445481404655573469108592376861468401617966610944704124408896491327427026376434359662458865437106022301539628485636641149669402736279351397152372897933082422254779134561519032182077503296944855419111755272124974168804986795022669457164143584902137396132812785327594020722969128212990611427854983901810908874785253546896473880272170038197429319882075764062766690506570313805029328784122355610240763580800613154441915789407133856909116751443403152864029015814739348828887716714115703268743557692657956845303566913961569327390833415717130338534648427150085971515684887752771676881034927808365734840448388246982455128584313964717981375604507119814200812731970540141603565750332870671116577825256482505760662829298336302498270475525580705160998357906446815581694231707230165965799783478779093486389549558545405468497663182905097920216862044362329818683689481524705515371903123523198792532194114562076080446548171295745086731330419158562691857851862610556494509022188753837962398367874347823969724958817997856323800006768555373016246506291458759113271899309422487357881141408942940738187178447098631454391214336580759427963445462956952290505298647282539685805436498566630706902525030307585086530388193094861785322137435053320517001698135428217191197162116223986311840223831109891585692643577515493247201447620382551608349051277942505494445968948753443045473598755824554536627174538233965461680157392612484357039632672935057328680976373106358238654478496394789850888462481811142187177516075874623558286840705952976214553728191017366697681127685939335387438903774061743602018864167455355377303854754725803956888255534269743740695548414927830541973764030950012242656172192996455359113480841723320666245844814879850744881124470406314655956952417917178961961107461945257608266487331524956103281409053864926074242839592459051802293179485864311357830503887940647042994708550825763752725423897861110499581043567951157074859049522838039367360038999887037640979843432490336297511435220835115912726547351901560012086321916097572347505435957073983932588939337003258332114170319570480413130938389308575651373758816765390807551879332079577479186953245930504229253431606836973975503039941201933275307850925715289948268989796350883491177334759712578993807943988469937101320211396098742299387485017950494209095308833331894004474231125853982131835521360627110969948658274384809805756431604809798909988524850210720054123045859247474121583835926399890540189352194862035646766176584056195409000053932286191920401151680110516500442727401083655316754252010329047870384335372071954140453770143061332478640474942735359021920045494160275085663022189039657300662898393248365938822711498128030571195219343257512139268005489768172628374935246089191585696989371944655105616650217746182149624451987612185392896086416754418444606077062388411765648835024359532646905143977791721685330730416926398636618340478894005196896495092165091669602240117521313845514837112475556996958208235606218441887051670326336670997655488823328970299310301941641174154042885172200782683259786617551677656589510408352794132214767008867405870237861384080722094679583109078343310320367904478033687861592628792242322952181850088412608577964256317117987865455514489217090865909648452680386955962007570086720693193403852696159523948291982757441927978674482473912516170059609298620055472210047242680028748248417593267020355218184608759945160659304205407269523611916829414257141819629188631706804921371494048648518102490887195887306846915027692918994169754241278726787056303665670944161384554072647301946038568361760356913835474261779829869811595570212167104556822505889620275528434719146295822935223667945489300387943626915293728978769245208903111156113131932061124750783107402905038419764844294277187763180774813138760578548917153632770107665709664341982373953465734403343425068943894437199633690368979554503088242366245926711248369996464374321983143199407742566534741689207031666593395782757085729271606483948591565405116461981965839270704243505042013313555989269088872548665933978843869258108937681181251385402763850318420921838502906841554433757688261037093818239394980906043606008984784416178778017826952054770426937837282117713366841394586047243194648573883043226830449684362803228327943486697924888760286252313870665789872864392072770642630859054468627148067858879016613663825785272401511314923153254179676229499112232036344021989840213189077944854795314757296986672846955825090026443102442567469502892570357743185595332507032504861937383219451938115174985679688380415002264657085557861566096721101301876753511931704656882177072711855719782330775926759223188408597758728162110225156785090498246703504818256101478373661604489235206976893589830670434877043841054702456818734810850626976324806030531339122784982459259207224315323475351651029511571866492420390219229565760635332051880159132790204595923740142680940495707229482402256584616666512782515200117220052588428535559730968306083239764347726113119709669364007779967479485309833303156847396459032803860178617317611927862056137954089813257465043159524079257908223940622532362357017156815571821095782926934026035330521336781304393529614020225081538652943794838091241414022605970980911954229818491726003975930112544067715589723477663711718217031263012983338325247330998181935879778601205802951053409662741430316148284485759982667598098760946812930351021739654085088334528784390366256959306432254002040502151704132209270673526042740061527467753565268042613267406506124632261861997251252717214218405726786373881901456341606895134100885048953668051973742528189771311713357527431099887430450979986065667591986393865139007625482567788859597040373954463685354116319701877287693058021167785180873981760536735150523492430576432554915413467770573453526932849271165052694585005475457787386757201459496811396692076637337978794862308788071652678903821607764898939390302182530288183211514350517208918021438729499619292420351242089793138757460575942089041669659730994263517117603927434366015164724865687815419093079768889449455960619793601381688403952235718480425600849889324276914826293589379786753344322931190554905071295076052995910194049914682451124032856286115062412875641749602244983069442489271969108638914876652738665772437328860201371654653064547957498741089243843270428872931515994856778672751637437686443703507734410536674162309691230691149457275224536881704888162782668880507710138555985785782839517424968049729246755413692379661737910367112474807099140222868522801391477482935507605977952888291195171085099381080458305529706405159308234905235040365528627630126802631043559706150981811576274239190077059954628668776553750728661580087049019077082761500499823014656471595799559851831900708159284017744868360958194010149864645747584152664617053475409731306219623802618573702779893518977840681776108304078340223693948919551746215748535664724976215892299602791793839700640873196151973729769179929098071455618796281517731579672249552661390992393613616377640271103031561116277347082120409886848338192117894179625307541073380048210481021734031624069006339001958997647263152646368624364975483294857693598819112389168395240089839279894523605793675886922929530817722214076282447904122505603511410148007347735529283263949149696984790526433649287565760409918685451370422277747754893742813644400097970662404063783882404748279125893556622694366029458499653162332193647132432389286541411500783734514660547925173362766179561068061326316934191349958994144787265839065531927256361550023770695504657262634366767947002806050747401834883660351194241356327383650970013297622216446107765011785278561454212247831379093439215162569769204388602217210367309720007364448445838864497841476551592479860879396641825220978704072685155131134020647347313862849107748095907650405127656795457207949411181929439386164644751063883969157376777128872779492539538297343899865934359862835866774329766684682244944826589391202426111632150871839254562573403502026864986178173776242865252857088993501309821691501496330425905536141340469755527189506101341176904373308192922635903817560996821546821433804878453412373908564036333699065905881211569811640072533565126227686039024747461173441719389451602714844367115692553161328687221212913785360862417187223355022209353423800529448069539874476593152874956870094939540128695281941901091081881319779205265744469728099737747022181204607920076157884784670352003804018598702254829264737810287414835350172486329502880404121993954740573266333386119041490885019404543696946150736988219516766369018132719977627921550025834100550253881409264964604046260591045560061166817808736214151041451458373025380557221934986099238845082306735894303459928989108959269071337119774037769650622527342736056099619616554535608038978583677288854512410859436410060050826839848959219897727164920866267907573348918255111947621841695132545154428261297958709524755886457762290399557445591207022753535197080071883024496798620652188426169299426421677223885242217806709863485225753691279781292983875453352071688650052328300334468082586816027009452264419802148717572702372546692884814967651183032400756760553808841028363962781782689227446436133959411264409433279875102863607384812904947073751408985627780589170047948445577473064699629543793206513316134949438469049778505082097920559574525388858449440381226393700587247932229469457468844070929508324040852793354274960467143703356020988727975652418634456857779494521047340720566551769816548290762565296617981557655389387230622210509190378417645304252099975526629230442657664238278634440516703771208643960605717712750147482875440539999720300460995252782866025415875053669199556485632785619702563807802723281802552997912902003495011009389924557610068741700773517013212623307369557408150244381927600580193504829993329254564687456225257004859552255503902719630004147683088826070523740953899840673217358558710810662690901794385166298342088832059371321064048508749473551551215724704815295228737734346170507360624366910376946193456200715977291114661770775342915883821064649058218408864963747210766159091258515683935410821006161069410619052236602720172131698458600301465546076142895847969048779287981576383108987307865025184260641442133556340025988879673236585619621814583829387748690353526750618734575867353965168007399826678548828986340649684754728356161352986788746623974710055428305426735379756049789651196055105551716013047751030176920459531571478590064378822118710695128793157640931563241222487539403080204409521799859482093387469653441561479149267729313187196849316492781975439606874281838109880553063251221654882079193390537967710051400124356274117909598782912274859218431719994672077834079656673157991186247585988961683901668964204931438403803374329584840043690351180731863205135869335077166105964727447428805923131366162837567974701695803116374709158071976995304755546656651325708715570317208957797376731681196822289364614421709820618189635105518919508789743898985550672344881173256819255265511630963616981536284346362338431914323577242888910966786077288235831609508932516564720974696148246743401848994174298673941177261495773497634029487300674526539149864751284986568306521521501042279296746705971947003983381645482470736096926117553423109440867715033832908687953933569216806096768447752821789911000039226740850832825986982256529358497618194758912534501461752963995158772716256155967111805362993226976921736089590046044584048400557451150544957158244656629898151603691032147015042489898594710618086865064934870655466576065758938945461067462998170625504645678765964178298436925279173881066935107663998204130596751370597789745101744286936454979244781611206685585915363368967395396424103429470068036665274747260281362840100012482743140820946597789988109248067201542658919998985732705926918898525729386737377864244586199911773886396820972955219393301029920046938218656337375389426895915491117000339300562722039277040152496747621230196510604623443825431792841284405256518556458772884901328260033916883425786301239880368400964339302950437874499693430486876094324775644256058424053010410549269922423749737344912802555260998105016460780926566943708658344275838404540040272888614140664737261725234569626201487624032745063661513372373345862188854806787882716643692353024878312716160366566802568120000259024016218591118083499147725393514174153273448819953469115497911882239380399938800535014692689059226548778985066812496669161370015877103592208255764898644237080148047153071143042944362659074664943803875543855411468877363967958187685836410453493185331500862364572162003655824388615473979065650902968257386232936971553769873393049432498665524313108834352560606277418674656707189862033819743134678334378201547052622929334361883818332397834809362618871882545882533913063035545658947789759426176540312091003651438163704970784170266589501957062974023642429930146953035982304241962343565217628784248861723191516564989460905461805733926104657032517255103535520451684811962020804684400241020248325842642218259123961537526809455291581445751653168635779806536302738621672655195335400129470952541270402800079483173277444250527735052319830954192700369960852774289050127853001293754512048847817345779828707034474782858100484073471693532048275899075339961858943962628834768132235493745633342619644930257533254485178792581197280359105522050520424359768630062279142468620086656042037247273478121410303057900216993795598794122946356373462125279860434576658472168948839843134491810018831521296084303226277024910430611814915478886059673156167510710939602827057007683740278902275291581274337163264027597308818212413547944120248022199724795015785176700119543067950346065090800337659459438910257540127267437475876192582437713882673903220087056096771116494141635869478282939591369114700104297438849478128326121243815518552616434965217491746935356069207898772394065384407747581032210878114600416776492598123322748086177090918098150455886826128431527567444006503472400181450534272344855209924881452452950785767521482072988920326685160726901180248190590006801190819723886765334241216474571733598831423721401020274110579188790826675356108316474800800099572087830402402506136899380669045837506513389404746990538190336836822523484212340131064790036128001825656427879073448516281680637851372111214051905290403258580861399983906392192727244231945152237032671273713764639793689283950563730744219565086733694276862315469466894534779872737651785740926087117839420013167246462190342109853604645657616401245997562338825325786674888605912233255821089031719049041687566354907302181148344091927097656829094513897019934738700492855555164627766336651339937613889186072507837662732308042945216042163638318244598595145279002335642124548289018760129931602097238859128727940406919050138797756814848330572101683293119685409399270871883722885516314991223269710985086553181013844155365538820904450495389586468832428869424484636389869292375220703492880131830988796808397284640640667574396085629345459707944063731599352347616605634108989286868661135743016314154072072269066338888362173300033270634244130386235143993418852215228405665442910384993716880612318686436863513667534638565687224459918648013938381494001284692710252107619630922833717772181635491944678817765166154883204851912918440642212463214829969360668122939476011352587229574734274082191526367854794197984453911419143791328830871895627619266434162607022869722209932466674112087236481927353068967651612455621568033407615659996329407709052158246095370292564144839980369249548232267595991680924747706455422314416014589728289002659265358629529073824993445970419855273822456858992113880595159967173825407487268880087290598061594886835500626031026153563101195284553881512676488668451598675825413706053736044786377868337596054936724468685064681250023428238751071424299175805022282397921159274966834143755681266051976639423627160032457037749348738913100186914577257185085753441244520065450572311170984024402898193017670656201465386049635368803298889376654483461115802233122902872867853211454452936363143508046954651430252392324656526164970451205785739582572886960504720134372110291935189066425476297066284234842414181555377341828366432616875285017361589405898535727203064683471520312801332370905115457207576052259207794684912647383188729212432991015674251283454038028332057542005579496095719279266915207349706413484318372692505106948018728796323303101626409487192939765447229673126788402970448099609296754584673820632920289961138034240695743918309932537025619548311219917726867653317184098750092661026856247813743069129622944711396991728329949394355060256634663757564385436444482302599273693558310782284803158074712265311335575168060772088961800442984531699143585792304343614040617025818687450364487707790955436508314625110593904442818508496952347261817407544523644450547903212625214112652658326234287512836311884008929412285247517365851550869791044897606117229357745279459069546015555933598588568477433386614445628588163051898354203814233257679830349154497954798021825102947011712148165111652443366568207754872662372253420344010520542619360219733846692305020716084648490095893102198373491992441329968017166205942959216080928188397388678763977781918439678168496409304151540861966566198246785204450393139749180655196350667982711041037052048510055698886165245845954921717391409686893669010177463129853852259287954119539006959865870514115085440176328781894317380649249645493358877505383576351569997784380597912031799582402688797461747860951857166548115662627847631455909780711737234471709817997906518671202701495986803550612417969144807881568347358972190721358990645030850310387601925146666755609214122487131517078400039466143640519569019340520958693900936864978634817980830421426216759134654848553636952779734192566056531655713153036802470283797680794749277020039446209386951378897056926997689488045404926307602143331759202722203070667724897670336555337030770797736077670232106704805374175010496700629706969671604732540848516092783138510895466354786922855647921570038765050332013852026339229796585208539476714689509625690413538895062708670522313823575078266985886400442586154014778105387064597855936720264868557509416320132444653573027592173839884498741561289050348608197361912405619453300464146192192990559029993806031330718548230812458787051210383050753151300801949709021008560918570082396478056069320926201662601043319061576856977158326321682915292112886045827609258927409816393587493886634114203604883052282480914761097369209918066655294109534187289141712071440628188572115372155561512128322446300062195255896172154381046873643955109682982456127178420936908777923244619517688201469699758171098576560078236073409263465751901252197892451485362335421193711309059455834309425065285781781862151502889736845738783469878949379598002572977574517022045330645007952634873152240629807214533132888874631539667075848551218296593405344950811751649633738550910513035000088754899891522428771978938366785097479666352241714559357676257407363833529486531117675555401213700055441645866850764092311187505906894698548018758210615602201905020863230790441677221345584955425083568011774527756918862735546181818294683869908118949749413273259251557089085154614560152661748502411873966041517262833626962913820273316739868003488341975288883812317074745154541231008813225608530565945256079727981413237717817388952855667600113522483939009501703482910287505094884789892034793297636614273669892336327458214242019199718760849995621804766166952426532074837013708604472945470042743091652864924952620455044784130784744603678411268279953001408379686092502757466041007102806051272470147488742237069761858350156534680399091382166019709040007073781646420944301577747239276123824914795006737669343860176233555308223813293191480362595412502595620699351294681185387692227990386096652573958520472744735561192813710043029741617348682347077889354209420155456852155605008503870000508483114223847130415990117769081699543079866000490701807569363284913325356967172879468014189142143313494513206393610029021302657866112685816959620248754514475966942723685757083353519711085954653316891052812329542343007147073424281278713725566366283130577880631016912588155984303748951948951027876957322752325739393992837184691268282269174899277153656564409954487354711182921808067687380139205023312001590379244351727854852630865271465210484290602399191110483430582824379261770149893287618930801442659260669385433976733310737656367822085378672473822109362578578868506848776010482848542519936960181424312206631667976057861263932797759654333607375003927222278369175960543477559820841087265472407219172384007588168912565416775812762686531437060427160184421309982775354557492488151660505402257191771210670975024765026524933442250731235007854485193570924526644091286447968675940843373929344108606540482955549296483727665308207175948168819772487440807387419123808860679589416470350528967935552092562919563186296237719370506606446927511634255504336786942690640437643370254951682388993316608697657166476056079925367240302665755118578955137218438643163476492150533100019358136692295523496728246863541681345089126760869087171682253225364470326542119754641560654116429478223794440948628757143901760733906354481868339177194458875470093234226965286409787923242871298403036040814708770302438462248166330700729210011682519154558671022982913529718656389862539897423303421005884280847593748975283938466160525544537614586946689666652140950124041659817260969661663602164047392302881591275024769206378724566017999270917001523495023420484773928969003585577107758441411026139693186085574256386054032396898746560863687105464011816227121375807628513666813949092919636433709445536103516597062083624741051670694849082691467637912973410214844071840987322548350828886407087108933468620106146199370604860040939038838919674985111729720545387097838303588268916679043018881238235650550630708644046135138339990138192639516179348985485625295046671307416601309514655990479992418700417823869490913201050607580246034075778364892165123123696538944066098326181054606357607243402188489235698923124299227606723740744495435111991741787257806695609033125998244252463806312514803286295737180076903087010856885069996563988948059195363446318343010357877098767585827364239808700069075924672052099089289122645599804772454216962958098863406515796715748860337799412288439250218883784643918737041974586955833948730607114659278972286391890898400510976176004127050607649549183353201345339801948836077509645454974230664147254850190401929161862957040945334831911043066850303452211282707588211443806151438439781811135212296380615784216164589618151793037267289742348469898482441292827872706468380878268267263997619512588776038587924774481738148772247516400517161646304604969719828563709723444778845528153961689543402431625020088984539248584292143126645775204826928246284289528055878679823821842288857080973369341574802299178066113196918788918832558163139204694905861913574113729064212290779021885682992855246099289905291443824226840767486783643927229459322491139374906053232804761904493815141791988058613090013828474481439975022638172827873618046120182052553052444916451869883920090458705276949516006086136461740440481860602848986352723649781659031121441164116441452542356730629538511431030192886173953100142162256880709356728698638883294970731572827165458399543612062214469384176497413415473946081731410534379756982036427526621702972230690640949093674171486600758331851094508161635243132072198155553278276568653039212419448200607172015864315943826294356117671280760397218734211979413720490222407821825998715364081849429803692301484426203506613087073850742391009732247953826975730359332687189240649125517729672404879109577352649855996910773889991321735969708843264183009225774128475686882663083693785867487387703860577153476813633676031422314536198025584399126700323445273191944023583373134114396581206648399037846212134624144187599660649180004345564374805346175197652985433505242626271400129697054257373571061168354240275767689635042873521740862121419213163013215853145339473043703252744340601403691429966695431751285544352715886605786268643543239939063538851063842740442950470102120165937284399831695779615930355151027089975269138903017322112529855711587721239388325145556501631465393479950684147068780793804019037744513206462606708054244458273166001776518924350331564216145989723736641956623782158232284965575043718472703522089187792178456867887093688658588062821403839710625651953959516935879879228949974103916365026899074646472884214890016234892672116298229875395066703068344119901336149858593147581157235748864388416316030122550892203410415046081068091987268914838305675486191528488374366152387105116712907593422608836356172894881309242708748963453824907198148236218348176219039998660368424487635066951228914546317052188466058441296732405344608404061249435319089051801582148857815257403314123091431875524739891267724916604097833334591663912805220108463503790409364698137184011547721034180391968606611714378749326556609631607962091250916842566399713307108112238360797542196552796310741200766199571277857222872443071023087794350745055513737033657222099332758325163706867925830769379824893079026083542449237165757445979197133641999689933605886545965052549476257739530240079254445858379943500234439821569658275461319708760548672384051624713021553623184934433528666616880249273839007217417323135689539963023384073806284910094463879119028300348665051499795260587511293283714121884287770365056829192947133631780125765006511351308928014755193327570078005731437369604009722057318958247401963120791489500638503670988744381487929401896223228649110055624667338500547619793270611154966667138011829236188396177821308449587576263478704028924607580898700166544542935093177749940586809164162539975839296379709949453799135498364729873680243370661850352871697043141343182881772210012418899797461725439834649404912771027940230120932118686661665507335714851596229381682360321258154045595041994765666970974042005688652515569634577110125540928934892475141023089774596525266950367841458727928295738173923698990279424792371538648306786611133001070403459869790251441464732965074604555819542452674401161114425410763877747309708649222579166138787675887230781900550670294436386901806532558931538726503811845418260640828684978851268600992133400997041126134488189693268139866929991301610987529278531960743278924755538065479317129975016935775599417353098188900049883154263304929081279314256110768439928930125437918655263516537790203842583369472501787842753155171378164582046747704966347576265179489216307616256774643712549457810668065196475492377375555625624543604271521984169201883599443041645416048539220615820790066978093842393806115982947775187875257434466698597383515558259019080619105940074059898890796663788477591447784789647418512532582086392392280383205524742338139419154902253578246141167372739865594721012513739504748770930033077781539542934521746776362989153191678526569329652648717455918775081555437457224230727479066845989934975822800621355533080338540756602254644348422576267273691672395515529480179347295624287345617779878947211204670875697152066126099985462809553374599344893532997754901460772479210194545211758451758907405057374130147859225894105353746799630220671898113020230973867964308587810650887725741726502435575560664337582953210884331569563559699641918807823356991585901177531925862848528915670038578941683877126811287357808082924289414699790583888624915001558357827978143884964356030692875464368841719108562535294956762112755658074372995027281612061289330819501958460089680817610643110642765266020597573136820819683589880676870336343316462699569164855473044131601375459212001012133188403567190336093872536747630073529773349223922599818436367946766157992515164999074696015669686923226140308788913949854840341886052378711324849685808081055306594036914267777881035807284617170610522463610332137731285005999283344916910504744031013094656000940265145086539931652410424824664290222936229355148868199099127359241861295511822890014394663168414397447104341622244740000124587287277675081510170290759458430687024285272542212356293034132972975165469289393267922889473316946596398557435255820518217176789175837607639416629802301855078303347387472748133119816620951491916670158543967915586068296489032759635423628166307287127643161899571985632906385807252352152158884651311380898494501818550506646597679386947865112440965759885878574230181579557203304122496554268075793347132826673196409496467397903142863944284144931476099710834065149633296801736002451576867995041990951543456422352485461777848124250887370554305398900709295165393083378177382533736731718515599204465907115782428843006449866950119942284684474129619721170325689068490015243907867262703055621928662464242243917042902892506480978385106392202745110606248096497851523639062568649468743434390621295006993825564211271574324116456781937797326918113895505196796651645200395936748194774324096500585755369781546810240005281206097203807924821642703839557921167024344549651692129098092936278583546640291341055222609433956920973216913832672435033798198614576523382620279950688415596665313068333522596428028713696249885422135695611918107676941738311821694857263893637627319979326570397069910428980647606084471209953048839659128504360691089474153348333770463386321327275074663234090633444133165936761778717635669542461593395678932223584950590926130224136780500288514357032044326142869597687573183190429302825058330887239583803202193668328232311778776064123379856116437476949361456516673594208232571993203442041226906720911915984874010406823172010267839101011671898693212208799913874719819358722815481025757415414166389318724306772235141418150883356125929537071116482717340594376915686124965370642221912688990365736904353626713359800716104855643824101954500875493929690462028181971237282380079404004774787809784683491408841842145119621080875769337913426596779767054025527232551524089804902114152320715388649068912766306299718679702660569593123225156515282586747815936803853865760164036171322878774478646984848715532012845408861615313836519215024107914192764889504039452937919231095889099328603859471202452141420117052350215497539682298776692882406025150591199254063065102352716706959053708461308622294137725488212227878450323819215636264384787818459370399977949632213516670068125135844163604877692183737079402942374313726924610371180745128085741282942325294630885467703179268757458916327249327854435375770695253112952240079147023708136392643202932054044391326447061990631212995042845661209835382201962065428080772001958569721780339699928148808924408618582861413170507282672926336266768527213763452348578477794935417769604254309707650323349295078037383568216199827787520779166989825350221080726203480706680361509872456592862320987313332392949899303831960223429255794012401623542528924958592230348288682864109796891957329757346658858376070257502842643558877998160893589227849353547788725273465408889559125921508118949101377667964753338647901045950326177307114731456631951738490694620663558308602370223012675902833654597871367671906181396197191609612591274047859999527560563365415439755873973112249400516545090703025139730012080699538689923066480305708800350284382669740599915578698390670801505994966797985453822033882885633383610579586929174916535401452563610598443376919469609539233915761401302772275561746481724961983350669977960294636575583965582689623196323824172284081682233980977171962394704966077828884544399817609778212650554802080767228040776420296395748788484436302418621713382607221236707159447492143520803197444615625534222188737532216299329813233777303123825102369986499672637210970387593432459506946052910270833116663572098581027860117694989116603659469725340579403369890360453441357097398883809279661956795354291359135581895239404017530003886236613720642562959401075642940477133403246545731410995586368387334262269709938531550549642692050794296051188160223834567892721972944580341608121852270880972516765719045446864584310169414815908112966553173511309417234023196889513747203695716921055764028385967999589140607317797500370224447433746295861765664780978765581008200395187292177135887023839394996848722471506245587271343050871681246563929222752104108100178644531815088636835780252111207736891905439071453630094438062773266033037117757465231822561940935818599138843818392995213011964788248678900999411321157691815135697984016314684684317831087365803897000932749630610454714599907009032282323760548860048441690957010996630980273767208972580032892840190902918795132056348626552237181805482009954894886408372889191776602788472109946199340697364326651619705881391931142238901982314978553373703598255173723539243477091365336170445615054322154882526255508477443850881766834110050696918530409717353593862858385593317477653727302552509936658522466683001782892308383675289310283804483291838260266241813808408169997466221036115162173521179685695099903835485046684473916940599441585473483734362129032549592905297743789911417556517776592248532480162373706650752457622807327098224435508766274709054654555555663156802255834044378928850907848705904141495564558242209720853722186967035544459284947851795938628947508824337494395954858084842081290800094441160000246485955979283678641434320336782796908952926370642350021389261225075556117625754012762876032888484605263959011624656305540787933661801001282990595128700875764679927742743053623970078580025956893611680662948556798970783514834248188385516040314307802086811268417448815846728787144791556883746602205439654850216265751113172285253372441311650829278820555374542108519248719818913368107036445274749817385181013606392941636399313433265858210012809373495454831292090522497733280638936425160636911419836833316257811744259225560680686081938273961554327519288646399159886406230910610691720233186330148750254432933075232893871966687507534462612388993231901203696552430783774884327524264518077804247085438940245964418283170685365608162535298993300015848834004945109833824625033606031708142161295370721145526855648272152940074280354098302904806643239243521190489429758726296387182455268453046283937121178831829880305033295864453709858547210417482024673122490531054496965496750720879285694604096282768413892989646031370547945550966584027498229283682040907912562428021333120533218510086493604673719249842804230625468512851190875538589678929996567835444033022754672543222021469221619192642849240679171594238359203621040511615297275677220359108288924279075987009915088101595121663392951632618144518266713527628045429825660223881847254527209688556202245290379506480985698616150610374597708617018599312271312525811491938110238465448220407958976193833909486095202262173000630549110308582500651830682550104353796159268989612607652071849841770378787690757963998948533958788929620543155787035783875299135032379570053189677394716643464942889349881584035744057464014732905741612273815877463774144566657168886392600705989285188023032533428107778839959664770179278329491771718091369794686878337067544423050448272359901474838557583886293569449464461542036643538660927356667872923945296592675544592469910183730903759391087737787340530621995730084537193191469064367553963641923764770736724140418110213249636446521524437373455203193030591064314132869388753075026328642142244376820591731221708391035119309198079269069306279543467066912653908157522425364457854917592337938047435740965417294576221755488781742714825992723337260149301100330793592633417021611040572035652554760955535102040688363712896549120122230697464300349316406181763944268157572583005274755961781508519416729945292832722723819149141357938819000160039061393807991747116858855743239974218645935491475752930745040768877598439132664612597655482724575147952435594677782540716479049699680799900261236894403641266421564914786912235524576890574520656358878850259786586298967803885014606418790716381204904196652346680908477434413895521272774239687322773318817766886608249866378803070283414506085384884598367563677812880606744504577559386268108277556855068688547601294606145868164587078322437241585497083288976034919783349308509176812232938650444930788582190027760491473896015446093390692530302467565861228515626051627181247453749935031297748093487415513299857240746909363552432758159408488139069814918176156547476681428939906128508971150190508829976594040273051208357785941298177851081133428728327956798633746735326143572879392386476205329527345080240915995853550852830155244559308004358962467411819656824893542559585512632408776576389050829968499678238942138569192682277842163006614008897526043297703923247475625451733537389895706693659293308840092136078335981202057366821808445661581228153109414899877570735538940034408714232614798330023609063172443470643006346442181238417170611785073739027213898240469651456978167887394024154655681983533277466454460792907669505721180307799248382323543808602080666519299764064290810993194522729018283218722995922074823395522019345241542887980349172260353138552562167493459754377517250798191782217455603388799293373786440906153155241423713891952701324750073523396023812164978549002553317098006519475894525112928968630550528558540644247495233955052126724343351577556952266370798639571314077391667719507327307922718849550270784176945048029906708995492030613266101590382087353401159837378422864535703061942417792958077154599996855466208985227319829973924916606477866998857912210907682018609423421451303727317966092160102099791395454346352365175765845691694440929476221583578619111724426786105387864519885964940817189864773000282020736501215354447895390151027399509769196863393321973166814398899385882414836345194655509689833592048915148179332942730607857589238576382693690869092241786238683677016513480025637482259121593665823709397302562570782122516561720142648096421493044000036627396802161107782968921431095731605040048238435351940598118940479883490532266933633812453319896940360797882772817382350879335880734546252452403732366700191501828426528355818857450413619070815386986719459194122248589155453518596565696910171249988625660815060696052581130998637180608336087565130888307354671996362420422472530807163706414353402341919531333890629000471790620778671016005885763635802884769978023109069546871471135390835384858821351052426036974843835644781244167211302915942389574457403500800611035538859028460478637393551667914435818263001299647734226632754077739717746269337888296709175609589821144197792270123519308632487941417922072506422379782301159095720456311938117566683418037948427467809138957319949690592768426146536280998683830812829939589618255748656838423529626980911713516867982589159840099009935498306092966713810921448887351989596545546084674109975039049278548923779835292061511748712435481400816483169989815768634232850629975585660531290925094724754591027843235513623402132197263791628245442943122197950977359418642044620984429438264544269635522675911929945459248566766943554534505835249811071810183929657101323768919898995515752782589926768417891350873318515994986096092449486778682205698765084180410187794879644095414068012151642224130726925872733440779675780839463553355882781065885982350761771909434730785914222419061015057284772970029574994266579582476859491021592964019415809562030937697983833298625733260436161126392838918506204619330957712869074701029904482255550733054524082707070912303714528559107541397214944990361048054379367601526285129109295435627295575994159026381312157628643586382559948129547170703139252575523910990024655311372254996223519844574368519117573559219753217490692414537733304501969823942851313075121925314381588140477905199637899135594567328846238865736710691948281822463586260144923839012402938428536649772312794373413583413473850003035046614674339836531935224366597664960012138985888142880517414360875889311442518844492504758325269468938238717302169151537164840939199252418594877548088945280112430799930793473952624148586672476423076303862457743919636012472150436378094539048899548861395248344033427765181325516763070046034371909649629231551646432178595355308827175316041510672319953198004591885156076517671029567120963250448871224939098703208868776968047196148411835655682997840231242108856203895081122702585830224787211253355793469233380979124178700175215032454262954783294747260855333088792258179760418723318233845833844635488569090751450213632063368550644620237273474274307498455634154476020947688166173231445122886059195618909657480991120173708657434527093500394573046249116024804680873139314060697591599290711033110165660106036696112247636300781295687571433876588801156930970197804946234602697199898127020187580492397386477061108776247537981745434987836220438862168001594514402525651763920866933271272554036694099106822091325501025384528413360135942488055682445704980934895350146932213320514574648832591674950856261852020418803671203895611390391900520529414707949300872739971771571470156587139727684908899589301555918577539960740127219781777050100242996802715431117359151767185262656096420531843610683469023086390707667825224012338906865794258661357282158998578694755306468914511568835547857209721469402650524409241790296859927507567521421854640962361739312012293874654413913359441762185520169166726464870554888872889385208918455483492410053042820346382144164815098941642971484767713034069694148041003910109491343366578250317387550605315102013201890501800672731030157102900612220963711384232169534151648277047736222500285712062706126084880239324655950390555971553061506162902120702651550541283722841041682831282283248392994222448171703933502084817978267650601288987432324201602187409003951766583471250519736666042132571827504066133329665249055013476340838079816065862632274178013544606825864905485678558692458870273586709148677314202518662891360585701239834757959028068107123816349169765000484806926105007882921810274016496468869879841917003940070965450010622469472909912727172044595691880806599923176266050691777038537936051167077484871042718443793734326576193191702941604415750660609369406718536079763489251828417264844542125352494285963189023709295328556230264951788004418074917378385628534447175407679391965196757428938676927448763705023589375520609653581237016480646577296876991920228537479781486239806515706384407223220790841023704837896299705276398791158462685703333095987249466546025790554131311544800088205799909992833456482929032751618357870347031163507446775695535493265449868855152364180200632460512524481540258665751787207837611118555910554278347645175954504714945119014173059123544508103663315797189265095273729586571125267623565928060954714138773557380347666889448575576111651785817934384075200855850811193605817861664945577718248610981702887232199249692417858104942498742889411531730617961364223553813374275266976200518388582609979486214358381577792897206387167990328645483351058351506664920280831558928787844928931959786609381576534927524192646413970350155162105475136286766706284152820049358969179745491523723097478942744720456629776212084313242773587136099104987480356539163368923806246859465507780254655501718781564157875329475428362858842301813536697405705708616918562866011577416846407695055481514912902432476005927328396215238314051569518661603529438747079648307088739538918952589646288565432699230844451967831970572301937466369088439069185020810706531246262749463961672526937433913786681544770016432955234395886055916580513082252748667947918768915863821796756057424602214723561061407313108673925035159942543368265695864319023604873628124625475042307981489932847743225959834200858044623549319905878897651433483463048093596688332035332610275701941513392066356612103014363367719429402081599636782359719623817655374248274244395933189719443848770038738015231504123052419923891416170762593922869243039249999695406125497469424541093389152144736424315580564993887260050406970611671763134136941744025033580036801932449897872027739035171778099080217797206273698748174221597063140496106908634817244786059105855878782066182384033639792644962963640614121035645684534277621822220999851413258963426441387725551255165839869551498402315090865788069879349202010721132510972640895084041067964415231316216442054665177971635408461740943863966041609562913064021974122978341181984944610441281403544180322232005728168458173177522607587013304408202058371302535857753400404673578034674905312817371524552244407255122514294507571214772313961063613562447086050728741893576419245413206532692658385965926222842117061763891954249352984303023422086942560207163332612179217027621900425544283021818407224185313629962383313666688129684990989722223877030821757065932233997846190521748008330577074970077410433270003100465733367996973632478530065583953546118857165545718267135444938069851028772252996996612406973724378883223794805921966882780133007249065621253613329529356411135534794765921838121606151789119366707929560695604137472502130090145547665249636595306697833156349384578182918789536829956561456132888576834950052263770308684928904732759459735155769659887608685841613416579027789599165322425434449044464947073568986022419526063589548299060825804205349971752335655927288120252766076366411881657800405413212339088135799025726361598539180981144252010905596215060918953255636562950828902684715994836780386099511847073800596818743209036591151429167475631824030395815587835257951246712599028372464195963982006682740775372058059413069139938782677663847694295709443387797411816592171419658507949023032543200298791708799392246357808990519912155512797883135488149227277568355565504399276313725870715649203993293709294970746611763136480493601829475838312387182007684852267797444658783480546830264322450333098205298656408059404224271502443064290271147390210708841200451176241546339793009237954008453128808710596701207088546471290911433360241562176314483658056104709557464933480583289161869150096762265480984350898742288678148286988491598061044788708234752035790778674541082105441296110625904811095394993498314290294709386231659637323317386940167130522253569448846268477155754491678002986701226813242085453822002778347972001739321989311241658936992340784084482074233577693868021066854962409656242216525264027208394863855227811356122313025181497835726860204124813115231306380382953320041526706956462760531316797746873244554740878873212943992999263739779087357825434495538332927711721944095142002126924159094741207929288954184872861309464118989905983824686098991424886415779296379536398023798329085806004211592973609854318535371139002431589132635974277467813179574384586904559637665094214219247207753048322865113227659709362464332002306454023207126960935586361043412699237939242939565614496181023679920311015444959331940391806879813801352120751462403622173560370924475767145954747571783163010474297475594315249125532342773723471168284509658898957407617072133871068760959730028390627816099656099943836224870414991434581638893035964543882344635985777524576692734938331702752822450550889856298076355693141271366417841372531101977537451196332473236464577092124471889381332002841945670744338928297969016547411126191175623433891560299870500586578629847160411906425347933378177389064359833951930510177963682335888773876879596623170997904178768111276407745149165217919136132424090855416179106090610813988375402072792722642151717496754930359276304300500334702363313290361493875614339215554455753049279352502314587493842026512383506583209655482736110721854110046167836991128213151447947103474015071272452655321018624905271603857998844844407066602648137803177453574085623066900918892154141646523580993915857833925080025730198681884745665077394738040712128966988707041600047469210361754829887552560282587878689591211946137660337061144160906181192561352336220007948302446322337582895939643557902960532543013753029588171676056003075653399369950431900813093676614831830786366913033007326396198789201315254902106986225056698187691473063243352289127500921253968247006916678552010144633304680656970187033488924856272885172995594121296866213126599218431845501963223678083926221580940033620312080605101122854570392817296094640788997088163752999403012850004533118008973326738194827529073762869527226829030889273093045644978608940947413719375242587351877071197381979354300683276991959322072924023570327968138680913303279984367695060995572919770295691892241721163405511972012600177864959778355641848496385970290152432292362377448702435899731754057969755187720972878812767438088604718991634159709851336318361154897315727246996718623277993317922895985734852256140777184738962591246301637471002762575109433726366767618793409903102552360392680493059198772309935617620719175618959556257367373470376271983100799461975339390128936526021082731607504210184311168862463336517856460957491377595896084270661322111246481486436442262429434862119922971178482546082896124137929660755913738760753896418861732055943082512209466047050082698710782301326242443046460760757610911962609870539411882816510684771933000400503073769635434270287488628436073529723068824864824252203860398525070786472306814816437451488084043854310886874551940486640082605425313512853597231542675550862919363820999071394884567300000388479823480471924767586869811855990602592797866413007838466559902786631874424448543608020684053609041490727290191381551717940844496193044223395719815120491540898671047921543554295798570476280554423304361119500867848286783538968933450607787462768944528157534688521679345558895850818973626175266484616250086986155798792352061830254156947290572267353816130092105987332482372344789233706287427203791213080480126077002390370383703605572632664653468790308490883118271024353149885869747795440033089368748431615381746030968592972522155751834652787064693348221517681775092085197011824741740115148757680279493150999280168452442603527217788589743648545981565727055695645503670774734805480462499333033982235268614992592245944747744508002095021254143208032310168329205661380607851004338754472658865789654749460655222177647590802279299564806076656578888184618609503815245873074119119038050319951590548025516295576758501709725936372525906962488952738960738181506947164077595735249233636530065609795883104337227155162952353444084582232436747736785252249633368662533158888434100306364511450407330929188740259685653534208124284239348943539204337832855861242664652298156190539348595572897782961739022511152455009402288223271102852670372529773126828240991033452170574417836637110799379507311035842682454468332552140643055527124211290894663473416731773099626596493586249161382031654310095110508352574850355330561734675060001512580789315823939060198402053399456109487907227655073494477652548954710013523099732583637152310693434467527800254988170578824906520411498136319277248856473868803523922976926689095655080050956128333502664021186528787639922252979972121994074733832971649478016553848452845134045774067429552075730696568313984530239904070060688621333433115347789435271887643217841045632647005911906167080935799342547301139309491523983548547211059966625910894060533063020926177964694099076419468688824745190304713841340155081747635418804221231267954283342826078373352257048889218860929587198307973702404018835014267926374612795115099945037490949535071892691775419522957573525686160611597134120957486901925397976587619378749659544060136841839812807081110107013929660558353005427849827533914493278762881735842289189030566763973081682002898614992692519916509921735039273864657010571341385033567951322871236936119478787614838755476379827290423365058355718492608052080426171885762233198731094394675345068946259644984486025239862760511983339816380384952700529180472282675738303933003624645521850040733111468475569320753568963086925075369591630060122502379453058263180168983125961644994519993968808544392079956740818588047002206304972890738924516753749773923081861526041227428673091410737261477549732901973758767277430872029860585104180869639481588288318206106540987830604103077288032349629451284126509894572178868738982640160209935383368872643382123201038968934425713243392987957089441202864120561394907844460676070831447713343999576903743240671571292679777801585459366208356294995479172725475558388857130747875379842145733459861227544417002599609636286088495364410183613343701617990936029500299566520383798377653342937755352892797127801838736331609463084252172415562100150446304716668631289111382354995848761686729543931196927925891580714637255314771089951280997066689660248566286230529547958871596617733583913363205100915001649719490849894818712641637286791760542462507644812197297570036891213806189795577644538240448161245015829913901274099290187699509911456343117135938773766538426370980673783366881273059786012180303671744485595656420489760197849564818180517275093227259059404755106941704036260527124203522304326423905113981581357225452815271418940907871940686641332732092964670104257455343043914533485419256177462731864157618464348300790717004637569418813835346097574032462739893647639435236239754614618636157766544913030888662615389428881873110399756062113586755364186869324089520936286911937051455973286809248000488699417645325211071534587817860519821685464659342734356883411833444936942910030796901447243687505638640745082408526147164880756907477404532125786826664769103342043991629683278966170255936499101280325357275738239781871905253565661847045258871214588394229685674287219404410103648019331551377251974376845664405081972697959714772991821720525911585744773006668402527345179838496706561473748559695612677652453287847067803664159578351057400254856069026536707974618142999318189375182995259329878558452911460856012913679362971272649203654928049340262136434674147473045310148382232382098876139497009589887728624029354211469106816423306231217678862643590776985515225360816278924075114734728816031215050673148374916780820008803797813998920627557774968460002258074160963263470337132008054004548977842256078824217552474160820054975083653043148508241052039886708087760075991092152102765392983569576660548236024657665194814781313887238954186008137194706154851503839774587328672215562525147927492309331751379713040198740601723308209523087814733762720868473237362320177139303598488182651860191685345991847777082103985956239514425574315898678708135399870633924042493219242786514767065394167404403237921284496133939123726168710285997415326265181156969269395071538432851340136902986036132952017058154734182504072357492940383582526542038617999435218786023923810062590942123217032842817344711888971077584560352484936409939505848241811910668186547199972960120178379107262340403114070094057586774028278353045207324412013433282274911365073205154845361202021767134829191742035126054867035140370405535432636200873038404756432183212018509617565835059686321848569381632402980077197575102528430480278402362876217506594034676399342616090557080205855315109248795319365325161846887034742159512281030260696735692965232649052417325997429997883687885007759278192488963276607082743411041813858518779748147755422704710169846755365487013655509669626691847738599163986609910990018594721773604205271335827661673965890695149970658192200582984962623324243688854268069195216921766827246777030025434536751018567374534658904077289218229671679286194458261596792531854709653671891173624368797691411262655182803796223504987432710676979565656944196051362156396407245477894473436198411108933851303132189663532661200449803229802600622531287364318347517220822253543267873400548001187938202306721106067703428832997138046554216390374656863698019341341415769434569710371861218948081242158917643089333618205599137683412375195403806119513438221018653257644447300928084373411187721560602929460499418540837278605094542669132741909929475422541794172728108925981739976687646104929815749374988748778149640891778485420602879197072276301294640454419111023907477674631579514299900407938125637634911310323302009000402101056815734773819852303131328534585095663699549785954160087709257313256379439653722359374615906197511987516113421129809196595027407806483845083171093249585972241444031862079559412052665186777960185446381820993635376958948259134168115420261691072282846652968526963128066295063914471890601602970282204311856241456973476962363517615796502553901990455733654091675934882054575546289588252671400861000805027946563722747142621460346434023447455680870482281106003125315985240398998558668386094221678265929084326726131046419470783510700637581266991249164924001517348037447204686092049665592814074940679112621582301629457696564456298491406141975814642600092110932982887010525238215772690950494795776456733469705041824471088174528667488527256726907586908990315206800430269446517570561233547649802645994688504194315525272643600078179254604407879358706988296322894375856942321180300905222470935209768085221658875215068350394258594272014669246490915590799589018271257789277280788237348267434394297300371620915540353606861010469049354754703076588907128034552915046505334087388285740315835658708597840528708024956115543870955108723993784573392941452969935357627688506904965593026256200731942890461964613896904614763279822625472164114441103819022778289909689693480839979626990270607422906637487907288781383362029986106970222764607436905717053505684320147229800677898821963109945188640400331945419710513191629563100485085230360925827930602071626386362518762608214097851460504917184112587341323527373724290985583321683849370297702614323414470601168410138259425187148583091904194876712042723021468607933667630436076652122869579774494122069707892184675440326004148456326962354594717117822464235241281194660947225215520207198149525454453649427739945805993039317152766526215484733755307066634775202468747353556967709744116787921663451481092760235544659919887024731487061873637871647504380463364499281907594114023383754136888569634165255030725366962936224478764004636675763333669198950003638341291983365132882898152949710014019485635635196563574758518990081041764035041876044426108267680982809798358220977081326573391613776943502413648300762914821437885508485988070320473333607396144034505705236570452261679252117154186280004277291521175627725871505992199502332383345417573279311783729728317794549225573534777819025547748080781654533079277120958908476421778034283100908006449129526226317210990547511143386599444076461658796596647814116729432796604683782466373586616734012794679020769893864937049470326326506729517214161376697851521580226083587327992280641985232659885947185126915527828534167471022679105393334462034607960803622566354886261529429955677916528698649334664167937107635752112338319387408572498602103140204323072313613351432572755932950926908343205272172957964445741851312410893807803994635710513794072489756501533473103058861014109434725215529105887827414328976607709012047478376775690249784271212204849568702290328037449565570599121751745357198763544912558369110593045308952392825279457493450974724058746150117560460251438455119893702834843085538337522089121495667397223817446454928994845941329275480377611660234782256868957561660579743145188287757766348749086683770942061512280390853914065371738679341823768248466515662053908103160461993047621407454279138889696794843005747123000178274559925065290411162851715354584162173369020501717748234543185088916413369186874709900259438865373667906135994464398533965647902543858654326778770157387302471386539191740203669041638035617454261363402114543775973707117341032913856619596544129772379689865963002371240848835999848171940095984355885993842066817207003695525067191021550110041629135068318124141859968166498574968685991955632592387663707708271346464848857631046314005021199038620540639871228642427304559547275944032091353656203392480788406781846833869908778742757014172840409591324807517917779103872867503995485372414263796893209954388691473175863162905230936633331716072868702439832704692125399636893718030197360920728352052891138021374532503909858660644821141271161000866787449625571947276902713391160800524799232621113585299332695622725146370891948706506829680168514594143478164123333695078957310267438361446421974068972757882108273184402211244915941011626951860885604079034834283283420855875538179748050756237397837695898488651531968350277319444985563956259224708364428981989330286703537708157750304679353695566283995357974215432446397807938496945590065897499495307647986324812751200201643419618879978933341356388260755496904422420411406964064790307932070788920733945089315976752950875045211019796471104158227917416834122116351629144917548178213569675588151881966888847599514058173491176963742638262093668870520240134765067143740301702367139600142249502385995338351678686610123307484640323845106622599943148681608267520806011268019500408668514795145945720167012501966995581658454689203108654876649437635719414378833397307861859111388877975049364423405915102179933546992562256919183412783629763637414043196741221855407591246233766270118367679472057123572223249514414420838628578888591617755543307015408125860884689102244708323857047262094800058183488634585663539031615289239492570885746705708321018935317454543722379202874797376371531435296359061831787541937624437507383509551762697193275140901286939504635028892015881609305746449678110239296963295570617270866026314404496011546517648050716198978952858664548425556080799517827143584173098310491045430916141276050451354889672824883122208841036776477694074931273261025598486985872684348965144267054967902473132460656385212849980537636787435858348244204200179768668456785343969031520196867610426046526268867493224751114787061314433539323368212699039057394167360678489299393607513981692784032366246645517299376373978565452022283301842362611901930677499025375345528053539186738988621692241582439834386543722946212516938892183153275172726412459601264531789475144939215021844172331990221012707078204170415096980130881859606039144699818094410726588882997625865455818313636672329349308317580610330388954790415775837218839080941128413260706942169001805812972161421165776587477265954749684308997159939570007557774324372763483794237798518707554852430394135260263869550105691351312880708857460236937603024869346788062085269381769449147598131015789846708644869014647201348459759888986536842572590241039351526972668029119291172734099349135045823488452573613319977953264477757774288065111811974320342398073949900475312546851784549787774157149692716858960154912644116827033375924477767621541277232926648062232592519126810478014560294339052724090392470357172965832517532071570716866799803225239942866574547211889532715625651076497737382788744118281327220021565075380600938319484315255398007803670577241586899821878592394883508780607828478454194063820925427417815100176708935407493401405950286536179709769263359986746584514165305399942525725893899965241225901924605403491609502772547505071212481458081165664478756428766982876476031789751340095232076314160797585051908617843219379057530757002372709023692954572205685151505368714275970508957217492198083458205771631454028633030705252738829592088788680523855924296207341447284435831115979003135429145566207038259698101303269341963589615470639863171404988618307350988171090354895544248228282215654550904623633691740389763126803334921303971626031880858765781795783341660993281964692486147839044506219126031418772415117530120384805864318765334013893320569327314541569322677257398849883698798840145866851928313882281648992495663152190184322766604014434875719138125367747215997774187272609686997187193770650059036791590516951502700176542345990385460876781450747411505365016432771847394718740475917244383999149000805460855668269479739191237424816072915220197443176781277010599585415171930042396448956515421050638174144932902290320646735084293138352345137001695982125507819686530096171997782424914430949594929224064990470261056974579085463927455500181365817584685136376550520352098994047815614183070985309737549778600622953154573930432882778493300614948845379092790383889937683311558969340938562519306290520338898376031046754017121745072842512701413290734105604049346662683531985385067845721971416878210164189061701524940128813697676350918113314146878141244122588879616413146458230398808745891921024451349112814675805619686871654656384548558741193751773638303411302149443529298790562183364632485191551271930612617030220605327776251660611153168052395844624540898904111318297646139368129057021742207966591773239655764809739606142293119763245783553995393862406454419616923920752848891936553843074792456389798559838161553051052411231748342102730906858648967864691465772091872230085371844440396187499327141576366685018270663632550550489871974327988649683434123230096798417420242416864351990936427797432808165085701020541614378835168328613382882798140885954740845776309453021988482531705790728194842983997932872501354372652753083819195105652725926884693679765077984431947674563151746859232661257995253030709837542794321236053917786338105307927281625175398258892727361441346131756116224517063695383959268457901011879270899033783212410658405018989382788375708431903996446991384106425168463530339147087831398442125796639290387904970617730029861086111775829633261684527865759669830030538807149503104694810009811523071209581211061618505024909300935916597340482435169297928650833958166310740466357449878916547770500212279032412917116849051197432018173178554794392164001665891583230191488060868956944034795883742185523303150801602165219300845719492981540153463181294236438981848589749722570740344415613257549714282810912738251297208992767797101203547014104676083138130831363737743773634174684866203184624109830155657054152948938004236517139881559751875167650736312446128974381965641934858293653016561344195204733360478482353200850200020692109171238348601920408614008038297257869533877523908220767872324423959830674899617373324833586772270686525324674416376399763706086580705317553544179504483234788983699828853969397426155171883359631605876812570901648251920877087803961824358088862553544367402784725039289657884864078895955252952983040073354963411690271228443671990917555015255827956587368262073629443398644822520620563792840128184782558652250599552966475618074522377314738252963135392138122882885849663621401133924621932064692194760568463691425558491243974631035017713985731288316304543772876186432976545253541230957913980819285104891955873101188862625832765225404876046595535494486476897181322563096608336267102327840467738903974400342782761678160089305821544060995599204311063214260997047089903204821658848833212913955199414454026841191382203012127063816478654245464059153136972270228701610992985053179791493199270782533311002997483321336597339576541055055309143905591098747063125210301989831223230505702779704162264736663905163379493932301441285151527439837848966977591495695504274729197959742045913777430511757075203718129435597700946912559967763049510925063253126938950704392956127182277354888099782708246324855115363777328839279550656955726805858694500359652090358334653713797384252561697968370846278191645949964159736789302285958279372622919590061360207874831493804866193729453533224807409847121525992985225252055052459977520226646607056219651488997310024127601226082025797815456189091316222416803917514100111578246728347079770517147980043434811793625262946078159077670160348552529039206264572144851628558935601989204502855477055498155684884871357480663698955731251911408607952548143537103841761376924669096130398512754315185560160286181092808436463721338001545567089930387342762984134875908049656080998145331472199649464656149279316148640659382862266472617522982133970477370266510826913427086562077104562189678192305019969565537989030038206604656848735936533259783408164641480698310215605824732237336337073779803198064562608734877628728272264028092958927379447884733179539158338320833017806798591158980093496437397148526162046042616457271933518672994464709091187299531577099614372611903240766566043714481971954780923780136540105364124676335778834504516733310883153924769921409804589362058422052848675646030682210681639067346776005141621559369352106648032761477346709980189939450836148489112473443312253363897183195050366110692278246368006515760648511286297825018270674708237596948172391678978043601867155223855553916531158779525902334240739871508528889068771337366815686448784728008225028970766786761360316875189061809964026165326563472018219007143881182788108523926129162478861734364526561162159316491755687787471535613809528209025104071761031698154432989993240660971131395927823775600212794744853945395246929890388419906398540062897925444843441560481642458145474705627934687464476741709712412514670075931467684701856582136235042259994618977814376763540121182660147663097333018449131212135268593103110133758627439070945129862392001521736311008237776302860846098476119108045767072619061262675167405385645321136000951025776537213362604263525975568185037716788656608008933799891564178714663209443043423387877269441355566895111685122301938624174104789577250136616308337645104057250981226298184956425018597925405194923859429604928450678997036285253578099354973330382007514883782809791531950084173525460821817511169178214397318511230277878138791402489291214584528208386508643761180939130887029751167594736402285877013299316771154604137698995808556051889305575202696976992473346017233215607908394940345803722802527937586022347177145608306807632612976305344622318684000548917459941851192102746370629655100737189572959461072600789021259833013504465896443116900902315574083366799937780124237330054836281012700833202049454976868517836026758100551438657807289310462672129698913267972273804874723855106916993355385913784594527708396808309542386730261436405505900272624070996504443072956900245263764530461997436758583869011407792489369861606909983817342275055800703567378439950195338976484055548065854436000490567942059800592816383104182360211185773028755772210228489799288583070962665530851978590791963542098547401240841920454463073311649073970187041615172713936357272450351624276632834056132148561683506864200760585419120994953696965751886580953297034443449284030617267007880828630407106304863078367133420707645493366380702012649411086838453843466177440474645983073449719060249537567208451583745212638702387008968976087006278676239439544179172080643651054685250239974373680679605349718126821340098548710648031562237496777993876582752616015417509986825181325471160010301538318772394022658341220346118278370747108496972983316275522889676972080595714118414430520112904455228660167101999201910063467469220548731100873294741301225626737492928920622718144311112860132827611283428423708266649588586581209244355610890048839830028150008407865692477248429154339346197924332041830228111326074365998869107222174998196431937449336961820860111777813872084794423010478555514043124808489186810336324875589637449767559387376391105005001816067510158740092785142844698386371845162430981256734223502683339858977152138083777551687357161585263653233071717831967568411398162293019058415661397378874607986996513432164638857734471793320251086473398642718045130417719178012620344133130085006900162490647590562478058805795678646842971059710758087910210074065215244335049617511180747571244013376235660436640154663349268028995681262291353546304635525315043721555201643546095706886438636685034241082606292553933500092162693566440623924175476488388843661049815185517779565934107178408360653667283610526937988849785940759755602571248630307124369070790638907959173085253120535743035772309385286453354944184159037197073771017093695206254677665954101872334072193266073182961032980188195898068759502328683258832887464472797248092629960805879052905839090563903831732751585427619885360691846841366380584803087570350923505146772993682194569652479150654268476271980035703870857077529344883691345854390857353510973190343155368160668834851345041041156949100683430181854364769598597618449919974563763387432843089870993597111187550362731609954854113099117477276585332608972913984665613269427498014161706546372017945637507504397717000736303471557038100686951126296951372371496721026004169117080913071371115345525868515935212206947121919587872746109969393101159802708957297848960866560196333497993468133087656284383447164166574578507106402760783187990170357844782550331303180316860094516087666855133623775092449188288952889815385650105320669914912902409697347895756739681629974955620007031902258343468075831941183641376382959703302916998679754102737023519043072640297542765279651112458483309402531101730096828457997942606191080660088191303927697386385555503395426926668549180269049817963233615988944017800363452471670898600576906006882547076742144078889106160050353900797345355068284899878851223687511084456498187880588055416711178192679975136901351763569603999740266190813044838092559448826856017064476633108811650393875397363161573953081661019490790754147438199774590661469874220587476972017610703690862147818514032236328059020131545792578350992376221542738985810327104069718987321760461839594791762404288702667264647390889743864816191595258587852849687874431561632272230279813902770617015653397283968002425980188038546922997972534734894128325809545879145225661769505654058221904854955863358126568566591299974146695749683012010222118196394783666229952693413657618821156216215801331968513897843422246348117553442100421025992851344912889826683780018071395341296907560903564799999831296601208676310156382689045508813317654139823900514744054823024973230518773013673026494635581504710985206969512925918078694563094392322692443875548088474379469649911822989196289444389613610986854599465874493699406915828665724986481982813340079123857260407990989005933724706307469498406875847866439219879573504449020148421681182439240293256888821337413718137022350206920304936479157261570365697486094581952437069258645430427481266832711503768571671326076077240488479096486069830543166526946587958125732922705989474800170581817155478392096656229666310386671925998636249359264791579898025084776699883006432970522592658137891402418546317212231995189680423089344582348142027228330637665899183726372303633758636438105011127883362232764967437170134764001697284689530455655808264365703499500302689184390332942934430934452789256548999075914873933757113445486949485158462713162204959284259752154761397695447749982149439983084089993450500712390267807684516233446550185681870895107742898706642819127948932065892414258660412375390327048658095435774437951928705276002658052637686157711619975647103854492071370934437987785200392404838766117242972122750969147332114752166258387226281427160257110465815287000803670336046935294433212831730917617981493161639031518985437113234387322145699753172812328127534290474086453884176697143621487384905164178219252459162512797377019777996652680030649200353100432813700588848662000358083871865678407446457163229974478647150463621549118992889917403242324730557298229271128520151529947637193404644504194797453577478133753294032678911630876812621210658426271652535216557637010189080713589136587506121474925861044196595189660076781023212377246172807657687121861996329128382079057886507995580639401325741441818254551797918887557935365477140675597248501272580830979789826724418210227546257722390246899475551493171619488068940070087725625884804529976553506231369302529343436906903884512238780990289302405253062781135731103479717060904152730424595467901763403816364461232774781408396196948881571505065374221883238725879081285507690552992463200422665043922823396306740475947293521623175689115217198805548783312039568219070168421882689250859064473878440500320375847301459089542684674228160593541970091000474491330007791453821830138916746595899382365237424157739087099638926525940155773770394198176037382739642981591684111902743586680436188856018749964109746483818546878179929568450743624737229940529106860832074154074759308656264274489923759063925439295960008487748731351218674401753666670924184943798820086852164806035434838144529602558423868432781835411511103403304323536083526075050846140437398418525469982144193121934887134163413274013880895852349698082226614435096355771337617824142544112180503496681092773745378089683668578382600707605208094193034999089776908400729200958785999959174273406334506738228938440262868398838610107620963448167611099195713669376417587711818073502090328557813119051692836592783231729195253543580361759298068598198171891759468138289539309474774464814188513237135879456616119121209530138785009241091537154495561388976709248107831875910370061615871702031956111204837921870782993796765284396553895595272533752778869004131698970658426227246349131339417362253320269560710852691441428655200395024002295890666377974286837393177589141529215867367722323147595104894751933080823839028081539577770578890395387989923826331515639909328988105964754091024050676080486343661695709341330934981323726392689832404829152211452388042089622329357488114856265999211471512678643396415277137255379035224192014390918328686359348517628192772330941314962174914601969157655497862437869835207920891906841333929110804623163573918414067148505872844029056676541852110821831772360592958847984834544429266999150002624618994566871451278893995660065817625334477980155432434963111831598839621792205208965073211479004574721205858723811292044108590586922038378215255683023362230336064683748145135380775503409508826282448758942279594737175252486178934680912147440356082789801542432225518376683691439372636334426411565749219553232908911395709590290432998518675073687584564372422702156611812131303617822585815325864097471383709812514437717584253518100937590244536575806969172194308650706085523497961455270768932969858009198976051664371525753018958225400875967722125007606299226494890290474013910718771450571408522715975286201507347009681497128077199142845129146828761892338582053385259413900483055184047682650455780634105012837649152950833800269206487893034462801350793813447372381876307469039347500030993915986884213147730023792948361626075579183003326468926510303650320494652337950745295727498339532031558339186801522381454519007188918787725869661122376487910839720470876655752054444661372598449363801906318302200275684321595479355295381638504410750568239445065819810431936423401496583866186535146844697551141114480803500326671323386255625888439774748979065576257660476310036611231027392713851375201015757572881232492388731905288040455902436563691264944591278585666650590477439662785764791657652622293104961623243682245348853720766427806901797270473166090893427505847767945148023004572295881128642270936197715031378206154253691748214471696164771220648870187137643734618267530088876540662072764758636036405420774310433299105087927019910040368367646864633031289657696424684028347777600372878502656557589523705702303426342810248254522164978210413811249324159054723823620642182111905358920482732392549866619460735423095202894512455222832349116683261596470101820678218658403729256970476764712285014491389504471790864535502639009846970132141082867650001916109633945011372170663712371972010176530305500884540528665556762875573383466835589366624847205764973115288062220613175982967312780116259990286230901009271274224144342568881522326042938768669317809563355414855349761785505621847873080707340754755330627572004480891452941183160076900891830592904695254963508473500769084039587167856469244155509813473915887752035835496664760991038563207634798515950576378688103856222352662484150040503960907171516566390303395377642240721137102487776297019460417046066043783255843875076179977308897490418081996122345103325136414422695818949709282850499230748691765836461417409764621187355523100541957138677691168593186826733312289226109377077438028630013185443368797622727045976051526488559050361947881801004132426570795405177162204281132723901578975245786332606744501839455191039350838874577738499591332205033651493450114927166252020911732781906097103961144749280198014352505024579380754704207621255996456480179928962848346460565465524213049933722852276208381764179971622816455579767967972633233329193458892382304601562982930542663862556449827319910101189514679200056030157582270453592926119622310388563984142356986998601550227714922965696510606399552403683391912903877251898573969628420577567158564265622832775148808449226473586158312790380986972068481827136471456749360093370994821318518032662970332649393439325203338718940736469163972393953684157641487131080776761039248534917740924353553033760655781665215780947052270575165758577723935893474245154727882792061003518988029800496741726782108188787471580566598607807121425160396827603259884336796937745723449556925975299334090679383086789724510027010513453408087134777414901096234843450653347233009254321583834140337195937863619198547891734749587980492240585747157785933944411223105209033919587863746525609551690143444252946319687981848032780568158172264034361641645662059900636949820936865373636879383638588776760968108628461406048444350500333252966336045820838957795507210025593752589370776915306839964270121477300368052348861326994170379426222354170463566921322397095081565740087395485238061477184246460791693776967056710169143780242520155840589669706846949692252212487572074090038664591241571489183782194961709733978308744768068142934295869018145491738094305144148676640407165566072842757751076768843130415654180752621633544712426180360456826697064340027871493928420149077148093852953116217851020064445356860513994332552859173717813503900159477449694248719538373753278476139635848022701069762560155906210363211554847093123289654796313351325620350096083751247958734919487460254597901923190178306416680699262174328306161182302427196979282791109241501187189105866285838301906354763166740141334709790417862046812249072844055048617339712347903874282462149758061567258043659044556127506498261766400969176518041409418047739990325502944374795947551120842077011278565700059960985409286237201791764105282574411390645562633966218227761924675764342552549685933423443306083643336971351650730604636304698583224491859235325165303344255578461425463055279155686110243311067887513235601045266264078861445273408274524590831956608759573428245906582468669976541757534221575966782507894711490259985031856435806818160252500302154639347652998842562629645223438771471252120079110758198889890860428855065353685023038325431679453059704032070206918565460721348076695030555785621168375839669831012968275624339100449891094632031266066321717915327195370799313594684351636664507496028030769145347457915433571406173903982808888710364543683185316280839859289878738980482111351055023527721987843687172129742649328682918945473592831968433821936667364668313444895303667151446816092785039065419323653448301430296725258704113535119586749761697445152384711411554167607915919983266708952460108693594963338430820543495324857751957253629652142551436564352136189797502235607428211512792777151251510107399839673494299659596533907470918857542231052160557212755222256781651827388077518251869055714217025721330358646755038081090781417979387887477325579464515986015194106794197634750220087452854279500497013609733763094969146578051190516659197794919108635480442084811585725968147145198571033505548188720406013214808148506388059493879607541672939952978829554115828092783509679942376353890186393138565387386218878593554601691087274855135224502623845536406815922773129296169990550740119574034531109033548260522521340419996674210638696667856872902876254937295038843764134635864383621288462850134991219478645588429035713947987543347917706281435108448584200326440736420973267356102869584007119078889717729385689526352150602427970495554580769317966950599979437729023153174742599177847929067857928036328603099497880704081559883224965436427640156950486393738632107751891214255213598236871565060494843280195369185009699600924239825305513667364984719186495281521732180704545946675355226853143475016323224166132521022711729369664126365864261901919318592297230717073051576069589427158180012387067044721333862765118638544000958651793588028044158333796841508513379214654947649134608639625832182150625278701762048084835590740488555532348744057379696470269745035471018921503816355662229227424906583614265393457436755600874898075271756971084199348494781606312398143499120308214456990243715782724625342147577878572366309296847651061253528361959627430295420383463542007841613752088646402264445158336257063943890122654905566163908061127164654267542182635762508611307063318458266832335148539668391650782364182296112542217259029140399697497023476239106142761601284630159728141391918565512846533510248141843398969353128035233852173765719459314461086618165712380419000732145002253029565304745779546903554081009583278488591181304455043685803847322755102275258805922377498167589315474438334202922181430515642343580584129554817489940063913286605915420928832765756656677748731649108954381294382443249885259259881341842702563448026389938684539430543967578502626179694566238349265147861479059262548653049083013509458143073731689009772990281239317011975580665674615704173658838769059816411619887821309929797222981641305086661939149463898807927798400634596172685991677956876767965772787663371291134466377904281703858699147444775044951297032012439700805224347348712348664195876254223685486543135533281860959545995032437719337715237032353564527542053375381889147249030447483045758862036268118792097912368444990518525054366904561050417343679951585661197368795900509478802817183529420310983152229590841964557975478635308688338287801143981844446000071384562307582241821306836028533082497875611584308527911665283893839525730552830800502668480049540855817705987280169990057204809991565652626205481586973451703729821816080336671856374435433128266257755361629287459513422061929137196803523973891918329133052893133912351309917413612141508823086419681106619461392911229819886921638529218208177149910958482602345055694160337106985237176810164571514704530782981048278748887153820686213344264541240475704293118202986546021983852648528501368179411896493601703845083526638173294589486495263579955581275064313704727106012126904863298957158971685670304935065866256394819542484308632260435139633986098403371189171056685345738904823593742602339020609398858456155627170345705465849463654027165260072285139124367546185690809502319580562262595498461109890667025173425934558001045122592058493254582429061815383177260299365149453175865510317938810871553076309746419079511927823779283590083677474383254390375927407295170991249995077801092607421267214831978448242226734573097686451695020722749887747068350363342527236322812955780579614762615195619579629443566848369909019943244161718124819619076478144651551309831943790840087070872251702631312321326430192368557304745281777962840549607002206771355647696278541372464644289177779131478617935204590764480952536981609121169423994651973890721497869615650443886425199624287723522920383165299721330862844854522487294688445259179418762551076056038294908489013843141809049038598319169716255886985369466161509335727025829314871164875863394765734316310352155711325973450760516082150075354808200741694851570824704393498731218438390391224927890824647143791263656581427087110468511205942271123460087759701436156168242119265591107869117931523159535895810689295605848026174956496175345519506241144292059735798105554595432104545393316692548077098368914159794632926512896819176140757188455651086838731804455801999180187131580077334816250856914975793974589122679464350447935341105739527002922755609779960972610988509854804345504762288960408058089361599885226781362841699822958926334756188377640532347236507861753153562006949471901245007764527638497318312241422515987807532633340740058698277916667963246101728693335585133932093425955504932875679666069033412976023928434617963882507267429010536274436224189793048037342263738254819517308995462092715789931398223408416352073988224572761463610100150456626992503633826061769027730398446187753245955895526357135885346403770522192740948573440023428693319909517212730281053723276390478883143495966049955492820817581608568723643981119885200331436016890659297170095901123607359866196103046131948856916531600949194036965152956016795477267949704350856175820907504288644885575385596045839316923255391121628575471564078567152514507061832607548060338985315976305590563848591177302307123997544965301940063075417080215563351249502257116758745374007765142284836790338711405165798057095663946718410662872449063630995601727840174308524621126641622884968923699886245177810845871720707068184633615017063896085818691744714772066422325382512563290308533236626532943868233835905636535971359856163149383384103769812991819679745127275588420134228745489456042941300031605062721838824771961173707935390210103012421613067286489760956528702081144993487955559002250609351673073652554191369188769879030901949177945849293041295915667471484009088036921213114613601329175404420941485136190674379972359120467274745091049649219426536206093009419902068295132208950177724136905757739740419774837156992684711195354075967218848064620331251106367939812042838594048070394425493716459479060049785471339094971613882642952534163818672058355890239974601048260812038794306995992152331188554559220215588836118842673501429492940650602667658864910289268155380610082672900476776902343646441643272998543452318173784104110395036751547078554817159120295243355169601908264803536041316190098570435174768654964850325507602112311612844197991424106800037246529031874045921227379995155541060577247302937418564201793332448664326690737373951544162304593683581975633661590753213495402642470150253824520272788927658531945218910928383124944884588917780611407680674328227779591307750122828295596964341365928451608066448931942718860714868434848349615492429394408375280512800627872666281592005550747017516516212405812699254454513794871105798141388669334073061427451561422214746261515867623775281762963425750312480079076445730021489519594134283121293803392631651717266133276523578701844815300279068657557810006237278384911709104423307567361562196251610769760495307247587440138462704947000980324275367693754860266322158421623570967990699592362256947445653508681933235994251832898134408576065884286498397802598970152076530420675759673510030142131615818793496361516491493727626323135490883313217939779892473189291285184059644182689021608741980123797173861901894933685824815525051354220595916915348126986588670506735602552207268944365254360489510417455010278374521968001055527672079468409167110340403098791450312257260519918992230965042113649908956452696169066234474824734166512334596310917490627005694629189892483813950070513251708203878968985587045131248424556897932833952098824985179204407313808904893683433162251319209245485650006749409474962556960549655567188429494104177284772374551218657223668283687449783712174095572419577175864761120787500278606368854113964198145005836745056869080461008219184038939331076440963669119836023281217547940627592685345575172247795954339291142098674164861234658782034175343622946439242055957049677753650856719239217865878366709668698946861758928849727378313408317035378900383700134333901111112942019712838124077904732638673815156462517544052544784108361211465146785102958423864241456703346632393213165341187480018810429164308855260430977769865654444623604439385925574375648667370360134232797317029884201727122423457431255115500452887355894262691925444193831027284075894189395778642446611556041706384881980618108149274502450996618003305113943491743311164647905616360532829514842602052796400639346339565371731276443675710606325281212174895703748365252622134307545660484559150076312039502374089077263060451528489826372452605648481310371637873977798718369580250235902521243825144004992442199014506367082995525719514088226135936027216126124733751463852741790616882664413309735232460744794582154340867679748131153570457587075805224402444716232106176609122382469197147191272210760914843615695554146883452240815814472067169644366754316471552737758006546300396132190538343270436206698910860821146555293544561217310866969627931419406179073017380289197334777147851318001551947182654088103364166450581999540490263316702986194158510087343268946174474273959162281803081951055066220940572917878415107096789500746559202072922898354298488858686534933373948363080707373829804684523342989677204160416019198272073887591859654039077217632153755748341022851359278639802609125413426270504058660420979291340117899255642327204086011582437995503154849996987826050748957400565164962169444614788099838229182913485673108940488621292533704707143711262344427398625001798348646788860718725662818289423470418719528604783984284641115920876636539543231061737125242759522078106785154900926052727631128078207892557509284688970721841061264587628176041947136310436581066568750431389736117861624133013266862378048674753794622848659968523792964984163900326571991675231274483799217112551038823920515110832560629289564209681333910625209319004383540423409049981061527243099695314698659128718097369847143319389118803527410411572476600698347526170560192440028265662246172664184936778828173486837332326177981024183579969918965687366374250715523318065639855164864718227179284549306702131099946773087399722285184202680344178705106328675098463155499304372052199055845539747156775109170699746920537225783904679130595190459364792741292273723032468919445388841407894525412899587969259872149836884277287727146913810038030640627512156194510389935659097777640853119866667106457245900693088598205550617887179139477184209022115210115534336909333562814990733030633495780989171739617976732548774407523155606640696058446545724570869999467751350156415911024881033212309465217168027512704645181054067470662096930921447498395785053243173410551314270898940690346936021882663901704390616776677783477982492462664957931133819069998800764645793543005055977536047797711793368978388822116807299465024440972427194121335149364953581378322198136254433134650899389753997503814836078614357442904062131164668052974559929834711201210981371642476286182143952272329976915183900389975325391881578566921177080613989597290936343976137538087841924847307371453589956406938144417809553654512010727116837090928796751912829088887742496607953967225903936039644909143625620520611859532333794265064776118376831547205391051593991136482553349507959606002380433020319164606428092702293514689446751047049020024317768180165176136101749365080449513219859478722037577821858320691005003819429888428056941783052566408432196204329068349726867481643782468643847593803575744302950924098290771006307125479138540655540045597878777876583476805855738408263757448027387138334495022024172475487600045488569286581768282515443478316799693634003918215654137237998263531175370606326307983718280853677956758122885327013822075143991380702040039299210018450031774598139827204371976455178148302249964931756724233607312990516118956881168354991244300972621544489807382357151689573928214487598529578080119432316262233939849189452561217971339510832054129448126820144823421027743192875007580707044357436333635073600115088324207039151844103352837307110631124486249569228139627301950771929945622365000441545908604161555168713125812088592163671182446122376706685680835017097937595705279300275595636286488159614632641745976788671855278234025049778928812957408009401699114869556223920701208507444292893833151591175196561032152496708172970448402316410117057952224544070141893407775127240512446578301702962432090932872117323231208126752024456540840150423209141591818540118911293422441130293774781812163748758749071135374077526745332738036877975250089283416931034124188754870738711981975771513871576996276508938597177064786891084222926043597196846943149671745679971361657610729223628833340226349988278022177158671937270093007387781834180365482056947641533716581651966682387447300423197775304130548549153506088107918323384396466930514978990792114141360041733597864387111205349937028239616519455645393067218345743791191838310627576661476073686015661592470785452962766262956906685897518388805609238936487985509714556043936315181077089913276518060190167792116551025882715127354186281076274031723045528558594248355057505914045323741789023334133306082941748382025775911733359513324607947439562934775227020650738647260058226926673194841712023712234251553575483621429033823107835237527622580056745600455941084661308741080993866578904109682064821614650612050101547243725061005717843752304266463983962995450522084992791502042345857918408641627948975309917819017610396460452686041544460758227954057387898001169806721737123790849150553212673077825321704372970421926629209179090949741018885488794418198524037503992901467384332593533845845647039084684379364267624385326201438705633738048386117043251509524695229512387314812677561006966734614136867925934532608461119771105622996244292593772382303801235674384324406435517107418919826199043608287966037325597188366556956086127133824524731316773924825567135140575492197130770148449500363811876222635035600457457918393408096271346053424292569803081700624145741630771306310928581740502001193963602048488384083747426492757545610460288484515842888857898831154893821512826184994193462928868249714372089475821336568286068061944462403797489195339094075587327483067266674976168618387934204944672466885356410154938352293444104130146097551912489728398303141566720586308072605893570566802257709442256204328454477312788998918462473027782483794073194298304977288238238704238273499034785969022137461813228498875148199528067766914248662105272454047793402072599437361124328041771604385066698443054060427201527704046962574247887398817263083071881114664197433892536505409982808234910573944633320934538256387970777868875418725009806136659962247259920011391874956632037909389711073713995041329978030430704627785563871339580312591926019827234800954858722951034455439257330560993112933510022503019324037967501039046974800284795194987988375125513520959868185662061568988541766523529010631350488831451188542816349945604227278809062458058778355896051829266132225848528938884420664292596209356964021239165565402605733315707781450976929420859478897531805238207995270678581407452775192848747109675853535329653921773767162660508319193194933514564615333113664800679310714414068020813265886974837414045658392686339544198238437461904119811192924091412388770990624226598631556954867549831940785742104138987897896258695636366255035674959091582214495438526265756826247817436510796760933716164562009967385113973481437334316965645725621672189113143893348828882776677880651651501525863794364155306796956156462844105707490240832465412804331632512550802552808929308745004174938006471762982164893907605012221520297856821446095309094227539014253383974654358227804397806601427225494761869673905387645081725617279608282885854584172134469407433921780336977310551207889732897603932604926497745887352221275089813223988301835746241491776639623006356840594771221991559203587163755681863388434454280487449773573115407553308759465859894973430185584454108183581329561770192421931128701869610768457589717359694688392606307880905639854113849567808465757496187491442346031965098915491642116899062905875635594370552878183862764685586943494977126016385874032692506238309180366589223497501775459296168097486307623912700758615863439487967870651215899375010682126107941969449298382387381199087493719769777519052931942912043529394520575408805298348269992015958064076701756994241978950967122200808419861035523531446168256089209957562784289552270654350588712549343469743620762908112373965127122237415715270969238586103215155789919386680868325612252688892677252300909869420945988859185152928956791181544891822054781748357351584685509861193903218215843032953035140300854485854092114241230810518880656730489950739310220411102058802361298976733444905904119830099294175952830262238604281805754981251465381262729608844903361498619339570444309120244951284072951253106675060026167957278002449993062196976842216560135286372630398477695136530447009317546471591298468183751291785413869936724221361759055709046100715218232110954070648629070521513529058971235846030231853723211616378996560582207406724043721910679598025947884863592589525505148529126498518771649202349013272016001355973551702146620305264704359804169257454310037619656381950930910776652199888431563673179072211289096262550176683628845283708753414742200269699318263583712728785711691610921059295226636145409837199279733207159149492710721058230498235778274099885872283202978189428126028231272981941763984055361069612486765970246890072978839983825351055513267519628941272775030390413395068043095499678819979630475094251909691032830166792457457835990718649665792139892948643374121548787652747083311289677287395129016559312876700643947828633289383196167253594317628186811482929896675130520544995347883984192619918867737632426000937313509515166485511602547736115327448229454071506648569001758702087945248307776075398568983775759307202615806103442814764638386911579695460161925905761603563914567189230726794843600020580128137057412128045070123725028234570064807368609998437921840942882544444968554201383236974659910914870238953183716489214328825460213826312648918917672215246152780660496345232485995600251515546034200246720849628167022598698602587154415999747479443795448886555165396727704417633786248252407318168390934100624246654502906341089238249980645021203509490071717347807516936213104949308826246924679105635115399958971135720652035392707007603499361556250455854975086037168468050117231947236105377129859651454956427892056258403539741227818904038209088027882382494993420814018654702396806152202837949937626604204192274210504794217988382926931499763192187635952306685156537507957195328688652358375588822816797768770183816736120271449847903117343377494753425958844782729433263012684684241326886889591569198441393720331259259514489227220563792182608759135767800638150492786288892053853518466041767305542778296436111058900523850962886508151673187968543259024257399545669018810320575124654882133634852821694994926833045105476836998412267236385579296153015453877850587958865500499916142117751826123175957823402116587670246618885521244002468754562424462153517933308594378296200152709999112474573316266604251994369284949849103886952893769789726299555876147633651518727759749806547749911823762161336372894191358993914706515462469847154977848341740589977892539375648505728342046313638607404985172085699332021199911388720675096459095100408527419902508206868673117021250409590710624757526834107595884932855550025771648576960077563628023098300462040052786317718193679825358301966766704463042105422664566397243959465136425536796789462592384572269344523929477788562533783302500971391809881178259709751884566289969074713326607678672587080286860166786557487883324031723292056024188527916691179363430523409815615736612956737083917366974731752554483498276275721437536352769061496653042895007215809458715122059806337651051304743313744901586959558550638542872176957476227405221579190533614512742430722090926843619052481531051479283281450188838751486925299461086428871944194327259200879142077198417410397394880540726694845982672669814285114802268314092480761178070933076972966896963379474894978160754732573181489627298927227983423004177769475828912390339329058351011761543205739579037338775389904744092286247866712696682061505045531914352997871246338945745909318055319787236739815825032139169576230688298460756009354661064718551283126250354145115864340220546167408160855983458063699699333173089995944988213526934176420987241262718115210245995768293790349879463668127023406649839160974994468276606568150693445105489521532586711081310541327014827904132247754980620925736838454894468724492172322512796881774564691337419992007364321465489909911406507711722346530280273394559067767871880968537607319504986802170781353414269898988700555697221705383074704427757086531883857665389561786787857854314391460693392758701162755228403602965046634449243173582207417555966063232574376707601483093020582828565542618902150000122058106863173318562730060513142692233117388160126102580458746295786639578820925813012269599168413817534019759121313821615143313511386022865161587429372291599278976511308510317247365142554076583935554445461866133022165244667503525962711676771514804441257210716852284686410282484316563232388969376215451513156530044818137355403458531926409780852660920987224250203580676798946404309529350534377951924768682926332940445844783476152467617694694109923134875076913484687868082437334545197563227297459913312471262874816901062225965554165912708239680621632387451552072353684457864394252490896389101309632524914582331060261708633494813812640134810450715104499801020911439695250414173922516136531746528170573942600988259957755076641237020700055903106528443515629921329558544989267800552827152830864966361332555034749763853395611131248374451017504196700439742254885786258354821554326389849479140167504248789679762369554946163554550253525736976192858517691107569018184449718385210545518627420127077467909120683070359181249292752721186504832174342581298482326933170865447749203144227912400311315502817749270835310957799905297805547576143041200575280642820366150844291654059739832975954810057011951656347363615602380339403149294904491840819921125439617683308301390193176142276024928527141267148852609493623885552965193475983132864542004875293911735856302634277630047726760390714606548573354343444811896002586158405415799809301256691265987485179154289248544637155613533658730465385444456270483253423839271371803018165899466089007922394239927984009451926738224143837636325396782515576603169865527446262771866332325085361945157436097045966814943141029066459908774069965146767085066513049750623026421834101917364567943614480034808714094623138394485457961308249567795356112410389465534417132436213987140822695492563566675375859239370871697668121593640783569867776269788208001194610613213881543270526751135018360497906206106989373097647024762425173208757083676038908545154714670459891664376942561991418676888867649394321488562224582267484267591369959605347817826343587816937414315461348405572467566498974357148648853480253437701143436460016115267106296407181144486007228238005076813897450996025438440248899349032417191720874411310879689795023135422054414917066151042076470792070466773889243514967632289909184013965259446062099901912852117700095992659100357382299900998490476693322263307431789346353638576839719379947143523145693449956421266873884400875674238999802835522471705887015895802921998045340990556534376245343923252272284053080126309991858088717199334500384664048450245794989550428253583127328608010527810449762403526045154396781294144406711354119455732598203354327777261422815315621384622790384045407324768500872023053274696309580873626812626215053147292466145313006939842314231108665334900249198515595807487982551492956828782695113102732272528348090254373136942236948559847432682484060333351472358334046445561760874060638581271826636174681244818990014998328741412889144652211231415326115326400280870194581388376574614049526808283504418913491669470935697890644980962329251152147497238310698150397104777281172895012577181079086177941176836152590182278049517252819282752636388259788681083203278694386084341567650304131139880666015423387794656743453149396575888831732587126532395643926560347687727725692737133259118353448080553819056381802349315850633986139148471216835905719061470961242206582339603623729869037809479816176651207824812510553536621276042094328289684092416235406174028381543471814344050357320635824044170729431832773690780862452961438766078410042455452959393507264943113915616585112723558700184409609459319279751737092485184231471406204034762605417603304066690978589526616358188181978873726422029326174726027200852738590357599008196711435610743033602681794984444789177879179221397085110161311953870611406290260568210094998409891515206123836252779441422448727980214785061776460113418237562220076795320163817613538595579498240800351064691190615936776631432153126517162869023864824988991666645238671424725614024440270319803455854180689388424159105420491299945391476376685572149156287145563886531349292453626894787631364739084724372512581175928833216584424994401738616215060265506837290417224301515803658242744114499000486129510732658213105659543833824203112664423341967708025088117456401385592198796373725742033295452966265207300127025210828396332163811017121627804768203586987542829987944626419730313942786684621198590826995843574736162757260559093542138702044127569818882648289230016002205496607461513259097729440376565098283741382798349326119860759829856264992041402513410234700758877337931419660403678043708639777468739466076990887084631316118989255493523020333462560802615907532539726923015692635677770759273595913954248392994450096561501572766181298928938524750013670285464976093438373985923019557437804166194967165129381039214342589874332290062720779773016269505909015940451841446558399568048707065650119573896601239718592107645573781531588186004456013823919221032865194970928877648946756866063505436274068211079562940098845681628111829114298555141297310911820554604664559894167105154798173991101460697440145502010187486063575962153496913400350766822200165184083661033682161477934741301460568204828843308802943768109153325152427016066217575259522002772742059769950242307572035220830921216081945304042556917798293753523417431015703382518909987352971506878018040668825622453376457361216859161308044164346637224805370835162178090410765413662532874486461248572353251948458424096732034618274072456121605488499368713947680483560470951283255929514910022594767502436803814281048889735973276809175392589415433359922177162039116794047666267806567857241909028418017127131225954992779589128211846802754328709383656596978849536077712503910303120305602495228559426623548178690585040405513333430939913028300274412637384414011492288920589097564252583973873462131947779243012517925148073537134056410320488734686093001833444796085438769185976044278162205613089754429814077104267940640401463733026741295172114076609630919644779632599742806744509570197248554833447587629120196873539191952415768254649267706233980143751155947353816578558132174099808818675871211657951357494732491556147432597273192779218339418494766761363811869531689803899895951622261352860449089450402814275093201672749062425336880858839187323553326934735310150769994572969817463872441091935021874982688085926184851506672540078912140075652849930161451743934092837111129222024106609639433496580486777720024580041097705978427927911239384763639344415588439550427417928750328018749675978597741318470501122548927713410413838647484080641947169278287233744323031987017217256142902646927783021991667234913482903666956718254841756103678549109630106075898077961578925025121250132544578017132092287975612801642662355909017863419148704258586448470084078962224756351121663889312141107522675318022718008115055381298579516066804413206749882499239481805107279996408985114745832688327293109754395471618941769376065550761287203148999875942155352249588763673324440486449550268288077153988837582255306356991845677272043819458041198529295034183987757374340569287850211568962416166500449975117426494837516362327117287623137210564623526628757075751212521322560487518282757313643696598047023607043564088681210009083745190416090712645588174419991022782209768306263719996103156785583940365432497202100082323346513379553754352117504277748860967349674295269128309319931394041614649817662885962479674666008664414691248529178884241417447121321721610176402302825202172959254999478617925886646055294064016695337989983971586042500714442848593428120789037818088349683878410084306864233702258663670250649048445689040998166943086491037192778185654587485154778120351855824505421353506445788273606117132050429951003431510746505881788531732783120900063571394684251655857291873991789218198678400624051501302055485905666344357902011988866778416546082356614877544479690398684908903297842235731994562741185530236691759480737681849250269941948446331470655427526602608633604211001026228205637224588918939784014464584011688141799609629849862014286462822431755365393489693838648840387770089623303945667430753703868358402904255422692547456916085948263758940388133779655095836692340789285911493769037530833717055330045514251880348177527352766955000428551101746204283432808816185758858477561490662963379283316289364516915255856260667883075325937322254352912820713099934343908945987990742122969466929137272130278774993488332525808151590107796827020569508366319555578135981746549095082916947934542086527325288120166637764522043095136559068851471505623616488015971607707668534426100019549262321845207163513974156196839962527817805081611986092431884566114231198030856332303736764457371310650988521437758421612474879820318633604962040320897614396695757646653456367837322996332870661999439867268775925279938367999079292706703855327488221180313813581676211968738988660847204085892592346096161944345681180110088624888819339989584506761432764862044595244105922072642766183194746881909442913874524064431478591094093234183387883444915551920034060464742023922662547288181211750826089557328105659390726399050279962697385543445760618366933258304413622598765847480731444569136212655085895630519077609871135221331572944747808015433098133554755631962354722064339026147810760332729337089124798629448671409813023904504789812879487795122829091775736069001854277986142186062582768779261109870820001682812726624115153818074170550121021438873252729568685259311671283811445026809774959586850569019471334910686279741372936530436852235968463194816003856439671914188663334694089616807343904941231643115079237774843023150988393096048465714727937527384789725263659280955137618049453303073833594693409881214688017770205816225296130426426158811856946911122821374090258086807776676386523988185708366793609661573675186372504342565068278961478977312060757284355864584759571323048707204534568183898921443985064619088252632626132918372586748812902775214780472511011548463922688666940090303981061646884331142741121416564628115716676036901947257480882187517223310420955960515100484907954677152293517205932669580538051702874943281408345882391259138267063375633310031612726208420519687317920444078156437555117248435639345145224272071975549843220653817536347685275107850338267163315399072360151728051762321785477269991525107201926875808561087715053535296971218582405865704446663018662649439836570298233006021138213288963041843943218532113632878083040188826988465894245595904824720565228419853894157607359956837155638528398372037370318802934040122129018767532758460509918841720467132733222364211257504676414981313956821699598659957194464388278239053779449484897091974489910224194172769888680125942779276209974245236369851889901767720263013654221574510377670398946620016526198555210263360370039779283917169445546318534156289098288306230740400377925039972855723476211942713064484319258332957688862729832121971402479361686775471391679060912388993850161338898280138069466259120254538406866058720322875594098942971820501869832632573478448313450253920320562940302767194680910038336678930609013720743375297354348129031607232569739523374208880496684300631369118546692097672649481796226907998007240880629419480576492494080760548741632295665641073279415695279690981299658409373869550508736765725130596284323083403641236240288615628287277814871432357631519106558803732132905456919212895837009144414960942063356845047011594645161466243090585784225970678777346374115567732710842166388795301015990703008689497747744112161082591498694150740793273473733211264091079803054857297848426692214455450024460214044191146709452368333566396469379175780542134034556637396864097489235320232112068779705717615220287734216281148331902204904117644265393745387723862229826469712621969703240427733712350311410634236962750146887633422712990691107743436519703823950654143737763980450162798878863912935938982448626280639279723217957717022482286037701136368651810830803257681193860672931031766922796273062288173571722974859377887850980741898230381587913226792045429384204766835850196805453246855122346818405437873326862652231656378694315382288358805771562859686900628098050692299888461000280101888403170791468669767544587844495093947512930440065087673325134503232154738538168080226052054240045613893142397692810469481686081122091056056690994529783368752359986396356398344622751379102202268020206861027107947169807451099296070536965364715462972377381604858298679821534568124679870707759281338410451786920996858443354964889466255211391073509454265491311999363642324437486980794232008854495557346582067192260153992940119461711656714561985758441384361580665273070629843025233825629369455332290600974040902073608043993519007318574782820515539918902258327796310572296312023984121903874921557461775887572746110467187561672633988379683584127945959025307851718405820885695121800587571887757073378195690022841776861567163280465986352804718501186291484240184439692449368281020900321127819707567045648728402708334242771762204098547607653778770163693460832112186500221208548930925725731855006781453573382214063841606105872598069274747366644023326755074136976066842989754308795779266624157649887707163530288444535300395002481922790059332503687428659920148289523394556465214302519163120260418601758105378554988473507839034391869282385228072481925852213235321523402143787419370803710890220572362207599034551492392773651339745317850345535181601208793479105662692284366042859377458823990458658792849055348717514627689542397887665624634895875929995125100008112303183223070679485815828906523932191055934002008635683295506006391229648798199573131885752610956778684505726230323581312773315149240713902955450510197482617982398286748245693087889376795718740376318435717407454405932020554917420283702888618356950338509694605686576241417513418960816929362472367144402702268644485033408970613510229350460719697278100517519479684993182468834610796467416041066191435288276270939745939197943484905143611808535903730524273961352410565309021882819918747871085300929953664690154094391349492735497229346760862956858946671801662585053899801291295519901093589041565349124457321146261331590956501459307391736931134909830501391815587731831717556182463336685225069107618018414780341634725877730410024034758861429650168141814478514229452225967028060230504214635477683411186756569731076747344662497044109154205250740979854137329218487819049293484999218239961229174227981365934502075170265584328503298644172966440768701191429513667533871574028290289022696215628515073033035543397599464871864644051676745771708867518486354053743117342931896343015143919358225230293418077543818645195101282682468204183520601215721833333892477793839157741693361407201941368666714585743576165337508353670869230234381013910275735957589852795782399025870860993578680170571366502148716428107337563654497282118222132974198373324377686778017775271209199056179849162123448979975851958389497700688568912207467961340990969828106279196514173655414165084796361624276183976015568367586701627198878641296374332115405325785623301141573711270637015537596826253490178431204760651066348471243463654449798789809971037422669516847482142592523869553330203359231808137204035247910997061394245184168940242458821624217531822558448895612986613092381965299187983849198269451805263814432613185235316793515340252823316984102867683095202910799841640449225531160240722152549793409189097911385187609402397052869303609503293457238731936451216856920395965342603074914410919298731419853484377414217753466300515958957681920208327967385360767926230099170119342449844779192470781802583646186540808963047298207946236193106602518845303292833183921887004583435037416970433421285545415866623675280185485203985854643325849940695671436093708363880744502265458184205852860249109846654051119601542198599573743815695791594253003892082753088475404300184872340053334285549188550400862258609082767232925476138171230194044251081307489741006147608984531087442900761731804540069643705914906451260581920661096987718291604296712847848964575468853571850801913978682980723258335607971262364521399054731996909141154422462615028612561437041900735218052755810741234663352582999405241163563555846076312284374042634706712248396560356635800626092837723049539790233928382439590385878124794024034259573005831132152297292793830348385434408044851536834367991821170380248650640257202537033370540220512752206288341915236789597967261888994214268041177861114129818435450582999857945701031226533291412127166041423704618753080306839482522275964086678341208390381170634359149521919445183817914042961591947706712862247337006226115895169439697616009221690054982284746154141889642018323481039883538107979301143566144836964076891105524932827091519331128446438257975239170194013330301094303008266557966517209963040074512874806449299324042256116342135208206393570051463692691445331849737777873442135516298373027765923317723289999898319499857081208701530925854658173482978133499420112333219038702223445215014158099675296438585735859113877434521002852956852194417819837474599284464183206239130453351629970705767750983600397761938136583612507055152431395864824433843325723046443035104652749818190571322599811033823540320172513588809773214602424812872801525523187589340183392215998752853310917348146144090512274412863052574635941321464016046996462770624518551914825119572038499398607594654910469375513279333744489869242186873657418761174105549191899386141488565392261987137673008998883199662883326718528717701130144814783889445108083466897532119821067053697574461843662599510297361937572760825856924643754864037099773695187932262366331272576222054323846075818757719727660176622221770732777175424237102701375809501931977743117628501150450129099637397574527155441044528123736961685387497488298141482925831874831587647889542825173002236974472956613614958955549567857230117862960061891830406234711767285913107747067142843755102506793260612867036692946906273507906354111569654288143568103789824479060984235858266573645652668072199928376818841493794910294172652586320874880607843024173217397071175290736643765613805231622804527497381122973674787665940307667152496648347168484577184681170133443468662815004663278510974919921278022292747057409099636327369078922870595920483478559455149517554407482119520768295395289068668186539981000975813431742876664223232085660152191987071263970165581238904602062329462758132069556380381791067516476063200951131321665647286720405246295853300004553927167216700946528525092445806796375308847360526012088969672673728893400194521975835119641079962115876851083927171316095313859200131917290703085671558041926266742685637060161299123618760329695857608358357203377436231075748123774283641598887523306715088377775198162036588703100717027869226894025704919950950093823157252514114619173289470373996795157055849582185982697125754542655706603325772465430053377356333975685749826708054985603387755859939402014994843187608293209362115641212585430502303318967366946522155938198208594338108784523341360902701487414237392524656421993610628393738162832112791599936023846988378201557534413213395164541102031630775341085947873867013551859659281094442284748577765199282739277114363049647370638726116236989767708238315102111884315414753070280339953145239419260210627886602864998012987268197936693038895045537833554460402819365202684493031732877141187875552181750077225455162167649246845425360042424099064045082400546559404181372058213131811535712364152489762491285019458274002463558954491957409581245900825037919308226906970143704413744551811191693907905052951509362815307311339166871266090569945333304801133651727418534730898680241412350524061794397157757583177351436129733042903018759951380414036011036542932410756447787480143982039173383085079874766968099379383247786126295648281121587119301786628783093366238742555147127583168572763444373717261138846867980390947550933124126710903170099115329589963376528047702463505016971253609051179848543357560675764354545549007597877840396802658467369676389768732322245714745212936548177464967945752156705590178376122703227210535446511037253394699102811449550441980441964590489191807494929225555970072888082193596417228198189622085048939885067143582414526187835526738034277417264058343605819270008652469748230878834212348295296123885635636902208678272475489895636993093174989017906100442195005548447522266161285135610360011079288201069508471347839483755503940184127960516453972049103045084451518555263866076376654426265160124600704264415735878970039523585804045055741489913998024361719445365258563566431329888082401055037310876838882820805095036566668284465826773806082976350014246355819080883146732430895743765770888716098577799196136870999995897676028416480483899671481965831859082774222192385104391808109159804161861666390933850249467916942981510430502802464646310422041929861299653018595172332647577178120127317021509869340180526473439346957609656027592532590502967264019822965319623642499034828362592041635641332958866653649828546376459167258459529315127845287944042390317082485493899020100694953712008790224341804384431593644056321461282770693258870914446367174488774288514620660350254670247530163620555968799343403008491589351351190654585884010553605094463725900417412275972943536295086847057722306903082351311420282060786366974868980916359074501715013781418333716561090992209322689350437401523613892406360533050280275620747800995706008964464429796967507116235000827890478291695426209434500809328394647514742443901683348974778549758944180198826509541179108202131418932378006903272782790690780188332632180855146361410817668769150653961632378140971261594096651788260497705706667217950879497448553463206321104840658477766197619029113707966663302935755190060247693451147882996626103550752725773625847666629173110150994386861722400197993971326575771407951771424102779607331637496167499276182488668530850695150189715368225570967487251280313354442874135154552931505304560079590960131193004377112269433006278276637497998773950566367776784229471928169300658995636574091260730011667093858825240566088176287377872244957935681094410421350580012642854385029139398113661641029520767209337746261394778701721664246059255089147358465456693010766226267845206317966557560378160177468349620055183466668469177348338807324253139797711712012733969802459717422281821140716366576649378996945689167004835879365874656306185131269894516171430074855928502219064039991128623692419737964850786867592208417147076310035673591999119269142550066852430887656448911014794221066179002380258662459017383701681766053857430718212988634067365466106117238788871905364328763958709610258640050373718168444797574580765854602171335178579733212808728201864552561882035380316210289350638200633570865590888929217172705114060405641926351837157237343172844650089416602417885556214616630502048614459582654173877633234268362203084423337256630750933257380572884365329312229903729446427081011475344167395933497087889917351674744418575526256180920911475957894938189029594177225788603137522118794861934858341215134843935380397866901036577543028637311051074176916552570434187574173580663768749737440172004863475096708991544754968804424000065269229013914033514910597818100214510839698163837095899625819132792913617624294128596814720034520026058324163131555087274422421357640220370409627153328200450617594351212369932364484702557154271319327234884742889701778757422077484735844940319097641434358207016620062908324436798038929413101243659926452393252505219086450966476828159078687394012358048614979007510467285369717336538605622022026258140074734728520144730184975016495733496841932517803375198167707828177332914423802558306418113462877797608529869269492129077347988618879415769349404059500298493588552342277703996893213134008366809794699697006169618499019581325819535329989145137687115758065315269618019243800157625034407723136228934005781893915570215409616381203131591647146798301924448332438384401214396413095401344471023278711303131688109082667320731781540386471858750386605061871963813431739324486432948358273789989830399611153393260401446372640906669254284903410296325100576172250849416115682039647774148744091725139563065292150949909616813311676367977337757586818332258583540708373448069212229674706931760089248866527345081832435153444233362494922622583872423830291671202745790976744579193255296586167038573118032070907362604401136254250250373732432045041784657185108979555542172333167284175544847268029197407012391495489393421215920975682139778017786288535784109007438951207484254028764850457464111894183961050853737665974563456348555156687798409293317947127594616743291778166784532282572408458902481562664474373472707085980153094777497571512682948159500318015936195266363398945660549518467385787546244145430962818422810529550904466814823869859116686365759598511947683581712822612504420356232211482027054707799869882585548316831165048305949232355257687948536847251441928142391862049890064414994251539442750829817504809461536588988497166308527073043374014469577339943330192564065261721922839519406740739311994467911469769590661187599211640240062946643200084309049906740733415117213623819867012451138033298527596006370605019850911258870603107922365283986960423105581243126002155639477756310720516640195142896314152925637920426515095205957030548215254118807528481052611534019659625954755491903244290061363641308991622816636620201924284627081317026110010855347984176162778826941233161285796844289356486983088619684873967265885272260094879848661225427252063371942565492913644696578257194170169335371809865287948344064118368539876193058635724145052740466947184732321636056661112571290368519330900001780348538168523767415864465614742814820583269960387272284734701237138300495278949430425377806768964242040499362694267204399164377262538984302054647101334269402609057113705971099740259573769915929768318444599616446983574297482864262992189796522271267706384501587381905189878081135938845170438870729807426432798656411678083578858085891521583333196864799765052895263548399730705975084066087399647801222579129107736644055881387441721045825531708391370270509378628143474337104733565115992697155292054260556582178426547209075151083313356757721946471410587774027990120088217935499388430434006293736217866087629318278887939855534254558606088356492883025909778751172493346846380506030579139223457538001351196363870672209556325737866194102793960447276036737830832624951652026125336348954562123005590912905592211631047965910766036457297745589717292195572833740494450439730487715320225129157913078237477241649250130678526837056845737170527044003304456905857030294783858825216920611739052948434110275887633240528497442612805662634518365252047954587216855331226704866858812087867506111512190357629641587090704652834475681782084616122153726732473919308984631882788012523081668411811418701292876571294902624217215015576176878877893322702643039041700188308484859965674091961151732778612389618524125189124639847337626839897706489057103660340588533188688449462500964653177682978659241443276053092254913385828536079013372309804260194787416247405918460940933739996683588928455183845550314915701384623793609528035861465086074545713836435494667898664773763747759529251823810914680447075373509658620226049623733276781710768613094712122931005445502129488417368486923362235390506454753268411296088908550222705439726899083054454753066575179756554539580297590256908339716601159978112552280371393248473498505778306267817863082245145040315478304767479270368175293932328244401043043693573109910770646908657977173377552051365367779918418564258118031798559404230456140110046879344442736476523368499707114487294884623622990401462519070984153018029699317679773356675276104661254036033492221441915948494392944937249018208422712888906419256965970953172740286807226711096288264144557874604379181263559614984357376450158648201015120538096415650437450838646299351724495039308629938454162635333187345599362456635033623584818493643420819603158019316319914863351741870198936408702341624463409256181402982834169238561616346378657555327444426466600295732019651401178205114069581708743049885867350190162619343517063370340591715179999302879946450092098852003907935759212493592500374805321435140385307352086582971933164383858669758475269329293041994784510609788518060235230077529157181258389512740892552238134374406448732887120538401162376763152000774437096191131863601709480658308645491382806920883291936617175923111199108658505587511791171621393107350280995742754280934853905329955070242308667579326480163011237855396471338951641881251016638526885490002932269824400954769614260739298597539797347978901724209447688092126690338021970282943232250870238231494988041316671222862614735648441509368491572988665323735253344251373235394936088296343791293420912064701448539328236987927904511516563852325694688824473705421543074418485406653632929473010143060438524385748439084546868889470393223464964450973392345498442797480824905435952608788201560122834608926214523266010515038365262328045653103086195245257354182517620874303208630847391632942395802940676988413675983454533456640576854206503957359831751703290665284011605024650529864984297108277806344916620687727656081089467618936856014193636830336618712079032228376866243226142035219554735745198283229096108575456175763021278756354070210333568428872274825372463727605463695553453224008866934136596620254268693741100144864528458733439952461064790941282226633485911267943040556842035666929773988780315231169277632063375599700822759400630367901486500347937134238133420473226202544281519475114057062583229362813200779675731852458579533850371982521337214485826764092542436350952571986997594121325759602681535824360212552239659041689777120502554862507591613845900427811210119909807250092711605169414243260206805505242902822381812791166572467351870871054587530281436790461533224393157418231781459158180327427412315775347849133685274286726800721403076171182212640480132727639913921564951362590602539199966912740883800065712036140664267500147794232211438546842403945827419148635372504477061314673376988610766457407464008714177670962638255893690009556190516649816262560629493147259967480392159752114746062906246647218651270805304781424132680283396809847472521092522724463546705064579648595426042607864571967821810597391868793633563537986407217715155500452328510408920232947583649733254921265641021407599229127704850152576552106940250252975186182118126099594270707366504492806250814041385666574733642087349908546083428469281039901179580387639844116706862249961306746776494899516934506887622525990044177834117002584964173518144720039520818836430100829456779956633832797120066397968820063563446339283286624248540324705709927314872236102138154090320960256919203016350038354014972902380757387568275160553991486200969089234964753640136364176742571463558854586035246376696591166212258337524760939484048062538520780028822884570634246794854307366139189163685285567090691528726468300609221060499776956303480304173746824966584579412645929658744104404112369108227772784528415303491584842597853007437411476093256528116142775317780188907539561563022005810301610591720409133875020441038660652558937845557643064348879243674330667166889694427143464526700850192650586237346853588372678214385519914158082211264664882911009446198490552823143061889698493025731378526288285892717217683514260335253912031858093737906523416222355044416701582428111582121609937940793281917256423820991261392302369245666720620665848401989856896352889465395366371724887982548262449948679317751877393529853777492477640942184003973803996581060631207332717750917063699219008792791497458010184595621066619659186275363313748762587222121068402191650347052206738212161386065184776317424795903200160732746803034144109852207856976653081113947383851011686232157598874424931904590415685648544739702159779945288568986803077492656359109455162153449957154188973203480994012799003484957826549150504503974191012794382594492583530955325673771380076093917059070269820235304315573788933448209189063620611098249232260685743771467605651524033986211589284821833745726221723060130062783811992383128020250898552549899722052957503590246599726749749890813062645050862484906131862886703424265629671319425120913613219086057563112821284495442155832069077278601287174065779877344649933596810873844456317903751422073450445909088802397988627007260000445691027451203584436359095606509096794199682447334514869097201406499356662910502267685024687521553069101050149368169180691288345647010976266716462334684446072650759426467250797554876206430250486293062648454427932035217916347993074031356256533663186801819009833518400466340396003590496629636657134681127798819727913553781214404849660414106100223992933765453739106740917035639068662185594066835798716981561767358838139909569362131028179525390258925235179737468753381175762704771954633506522652336624075593009264062809785197334915761161086101169686268104433258528663538515884520778841405415774190648916403704981973602890378057635982809424724283982724676936904265521237872398238513182688849340506802361596196370490809021815176975931167612086655364775011586003250048218944261744111500670081290201499768053180465776755624537244231549522801161452594007428734101232376287313642726874040798407964552728362685931995960420067765896450875621433241887990261710816658844341679820413849587334758580961314012144326989513507835411819715515046040526554439475057559899506731241292141493451235410171711507873265659591569712350191766270242827081908351367314541531259443966473437092249553247694660714573990088577657214534245345671960636118948743736917790618288700416483806521427703775887472922083221613175741082545543115913570644051932284874946429247648345408711104990569429432724451154927022860334894063954269034091697768094389127207087533713870798813083641878818543468066641932922728323162624152910141542207618295431191037326831835429270074082928488353898807700202095110103853823754696477547132004326075612537317681808003512909048810903483155389417020095657189198621482757005805797557096652595436475131729820615926380527160518229478955000083325487166391885254095754450494158921270382903812461471702840626453601475504093301349199513964291353456281475100387205627377476487332261867841492230981839688580257133286327405752132226324548325618240710560738933578551367111930080162523499535891460077828779260000540210130499911387439995094337607644171680713357964094808096357030347333837648518114544375152829258424996956737522998221533366051805430118394537538782074275727802146006606168929308040821448272823342257989863915703351478762366383139683290326244967089178270278320200090783974269169851895189002894612356295065942561313905178246411707922564384850466444645103006318920074813388215814028819319115909376386285081581827404991823376709361915890422037409667860395259683772458059336561627162827872092747785660683304233526974226627565512368317803279537951781402759127146853488712667145986271545588592068176349097183530593926845299886556679250110559241152392773275138108840126214297479586740204280328379939916015739137979177887253751667765348838183772132685441606704833513870536134943516943698067338052607857491043151106092381483496822611934848614523482136450447582967037839921275610462265755317177044098568771178009793311111709414927130935740962921050391308342397865449016254623782003776552680759608230855702710234549803369496941570607007606276943028532766565592028709979132025086548633760932573465250189333180567180313852978637570112178359192646651168751605456896973034286414711409720742132284456420720049299404574131905936912143194621653111970029199098992854036646562732091982068065327722001552568276850009340365105762504345884945349429132727070289212982873671416657827951767313614374423104890715757360003666681002312023250050362193569554463374355335865940935281734098146813525115955710241386339919834114076366947465040683056814257576180246543257704348036470042301878023622923696073627148327712982258431654844074088205258598530490532040195597020615443181445127754333786331728659233924909045738267026496366072011057263704321432545742194613462946937764107871593936035400458023554967734584381839548117682029514066192815288793106700371732523156427423080450938382056957820159256929143517608127392315026682825881571813283502634422566872709078237510759979415135791251775364068725575114568562042251899820082945956813684928001529542536328640404398733833643842165768466691226668113259482565493259701856711822585688391527162080799300720249999548144172488358784160832783668016715453409161196932518338381636253235349961803195315785176552001506928228441637029658461115131707642077255509067117576079934086078133938807557541948912231530482841808810312340276468952155223217021473906433990378448719244710172508038973554337379169821829488992212495451217054885427576879429950320509329075236556575795877558311034640555995395515966781961853704627848481264184601625952470431888658713786912417192689536833203510097726367549908400943814218793289405114447671791809284813498476126019689584981943894729760810137283038272174219314770430710128130954235226333057323701332973950376312866390764381936538608111072932575591596563781141140860831687051110851112768919968022314385359154749508538467541558294130692897815594838712692410214930293950151786910815778380746037530275377191517160446878275791731871856017244320854227642715376975417571220370630705084193296533106032547214201472252247399541286609437228734799495918559605500591960154408575289674563097506373156499053569352780184859442671083936560334069955664406962131248706829901754719854906874791549314155307814363431000462292185433976164298099352619477683174968742122443347028055423720301945847496125406926575483559984861849295085941242015190130707190996422829758277989110595050216636384730838387751833545652696413722694853383730664016461972310699288680864477414211025492424171904902318321881658335819557639247334109107768514102621422246132377145698769444439665574340840694062926907562356099617693573976339918941612986446596788767245571253926413045711900038027407234499827998882117940731038497414110104793632503901669361403686622412490799427367464922348445398419226192036979103990292672448123953320360173943863560125492553013564278067544291108259131388905898633025870633462673226970198794634795727244384581957123211237124282387563428258187269584442394173501448669069798783726809955733763517274230095855203863802414660321237125301330569535156337899123229846494061497786382285056910373688447098047470286794201085450768732912727956038092764476861169116512514676401620520760211206386154428365969277994659923258829158296635798970754544407402864147784015460415375444003212469336309623871700127499140259830768237908373856410163076395083758916204448785018329182217349593551745016239579639143000405825828845733819441240046717129259346288974010885029688935301014005039938939479181989496973635906959719250270942890270220713155957227111755993770097910223279620981871068561995320279045926929048062401014488175720545246640676987555620838310230992060526460880901823663125103249289159342335086933460804851880100074316439173528446296975516182391497902882416999514327825264926743624724926947716717257466000858337715405107809384500197628830021737749472947210745136313581984600007752259398029253525425163510227081540499451470888476367829070300119522807368603731642630340322463089795591563365492756977466419798794785284517642762959011182304714733791715551074995762777584892521070952878523538879998892827456667655322528285987437160493925182778718075349499879442751418476944152437029246974394637907607167223304956380666544968516358607566971492298688398740345755392007932720336981144476890116717423788906684842376289625126599852715497887550700982363872461160602445527262456678833881871426779213352872061154389406929388861961492722142972343869821178965046839346235913606899887973320700427235986951829327314044410754926073589669973044010158141283119081154192346866438807597052136112627162452186296405848134750727728369308651530461399579170783013110025872896742672536476792612208382956061207592043074710612973954169202443005169508230130156385420776768858494140837940625540772264003448706234896894679059437605814590414615871964051163224457261860261189884758121250543862450428606191566962341427694445508279187457839355874587652391872750678146441635645616431813591982469080603355231174093632164505389839740941061767381673126782717294144727047821661906994982065750012586684690606879832209628374278710982070128587781455492261734513671668691629717391151054971385298998625886760036524586784292770635242574188963089935675063698358818265427061155748112957545283648326011971187522044570697210567479814707370728503235690245624896953109366230083469135179181120782070906084105646953877909117030206191202749457858423821424985183977728053433797173932483146690946616864943284893805283646087667037062499343337024201000390966949748911089904067118096201231778352462517353845643368767795210784858954097426505580233363313455165794877704190968699231188065140812551561235153953369795410152066325677014273655188785278269135319255120839894708812714841017173912813114013145840716412989055538686677653107158681169205509361865571533148950808773336067051226242825759262552260616159787337512748673481554323755007164911600764201961930596161152325471325375043208077527485949490969184850459966473111586526970715195683449666532557651321558346529211565479342929073684035531855663093501717054753745825033299548666135766418713848221091085106819259625353295036002565284440058799534850662567048202028227532033929519593231474497452902490874702547018896775906392273207005287717561075621113264129873027328265569136685528140312426326550795741700009939621951478772782523184988134891287978477961637579246682349914513510004843565816384862428302408369061689817455422071090099991833798662332803588093903838186144675038306730482787431568456023431425501895007406043056087898690550337305728798738591154194473508356495383618677842710556051994371990512372022654171693802968050441905049605221333774657897642576464765395880739691693863180672931076323423035197751709288199326172329775576107977366634546831898805815131633118953438137216274189545167204988454031608872187906170336093425974931310967582779079083881642337893034827746745772109174349052845843560885465794822698887498032376204477564993790986060941723421305175776000284263523744906734330341627506053061421600243605181407316490713084568696205193477407067167165120669781968259703211189911268040803598180512110012882658847165124222027587010512370933818590149423204134316618383643332027838685659331331520936556414184118030634120552435910047674427745492647657742895584372494798337179173025787201762116696932594139702286648045184189075162301227982834469218150486902007916629040170038981266123097290159811927730341291905850810779492824300297148635418151368297131307836478768188775709869325605968134567195916492470801092334575443991213137285876574084583982550476513007715159805128081688445290550075126159379506840403801369937329331084762196119983976315114004846936337411727724799549862479311448450049442522999004323586644281765986286014562830546776473592378559033212900517262620776487405758258828826127656657046720704776828575240228166785604810978910548065430647904855185962443648394139597623571399234093071074928261499503955212841665631660302025755753143233497531981242594829047619369969329787505332733987766345227609803085887099154339482047516927889661355156838976418580198109488527683858818861600993685963296679813269843436799343381727254883945813872272297516207128655238907963780214959788740839068209194079120419556936855814428828195386560485471529320943078832258310008179654474155362786279176894064152359863709805310196652783130822228423747637710169625174637501652840352649911920084650974253376590208997380096333548528246001314267307904521098776705534303276234694361371582389243952899410584006801719765744668350330205016410750166805941055968502841465234667978097763174453974847033997187980291594353161094972838239385985530106985071230970237546259158240498603563747928590851079730710574707889718815415901161218482328862037641737167662025207508345405417252387161768664469623225528888925509679145699489745270065677052543699840763768758330212023170051900812050869852750850009161819463936397138536770421240661662022123401582282646403301109150624961404158958993856954070292064480906252567033364495412573318483094075150111754540999109812251243261643276458098669675194977578457163327109596402922413061094035517868689308695464385448592305833292966968171038052589739506880537050222313269236094344187566364879228022092002194544682044639765373612647011370690876179325404794376242288769903718730584447657459852098823756935380375069902993354782944494593377603742085068001403886654307866709297445536355922621950014564549683861747006974987870763171214790925964753976387993977914701422936228508018316156806169051130513273280298477198925827329095998992930326276068924632669379796969021435245767425088388352682550966217471916485827672834270530597111603135276223154749825434394996578380724536573716201269718320032682751904656779852818832489600757434069526318345382585202147293386208755655822262647410071705853313301717349238538932671775705757132999914804604276341155015994606006250358311451076217708996039814419233915745351849279307557198580150679478635105843309473785178778512805155437243087767601891766032199371177453320374844579604886483443504497125860334306626940920980498007827108766065944796290195641556501235142414657277913978014416410045163150718603340099597125616551782850029436681873391152771293803031512908280552790743211007932360249695493032757591021329905935620762727170327723690248080324020124353629623844761972277664497602629920297145436465465461770929738939900988641068777060237625066262745093489577984394544989854863988807391589572584416379057698331198157238217063203198349812514095834573985869684799857762424615405699316156311148077378076628704497968407763666779496331533964674559811066592525182821047018698089867536929760048138602193664487046645526380609577245321930315828368834527143469685264328272532507778364303586370337207551990299233241723368577214098703077713526404568724489949015825795405488693820609827114790455529639132239153202110322089901716249202706843878623089956954961149645163857505069214944335437119826827884173909560176646649834001423043364511548293929763137910168943554397037238221156429759009819854619306010824803633590434436342504196647463203750950867305031939083194811156416681053224844595800273672068004469400882040634636649798607768390084957355517822681069805575800530047604585791775759353445789054703100687091600314162524427817362566359634134243841950661801981592533983088876798933240956997411781444380935126849066631174597400812269284192407733104284644556646382099371230538724282996690039294508683217941776777818950822042338378325646423697130133262676550568371042688336887588900172178017664578626269578977059995121182920064266782849192562652923228017038005646268639502887990329228302477426137665684682602266615950586496730222487724295743611282141828313237247024154822891952849398564614385963535199171035761679518858950653199727480612179007038050837313273732956448489581389627257578518223731360466599685488530088685787444180193278997052686030633797541383362893233013495766618819336165562013734389750114619083384660549768352564426180736952680194324229423286116839303260865525329980216037573532576174532713322417950114495944809254001728132338601799781359982852104608163045133506288193291644229324171131765060321633452777055055596243759462473601135274319908281807369202614650617293510728672568132530551590485748493080059408978826086428499241450145184461577602744866207470396635439251169681614916866780382278730495155661714353909209491099541013290442178862306288609893437142795604280042854761043384067875856801097264227467563774738800880798566374302185090833179206308789171641779219324700843669714353210163824914996375261753307522227042124315951803784864838365888753729303558998344818492308385177369047714926383622293885117271771940736154515333584924693417594281763978358891533687046655136054635518498183024356495121091903946775804721864481304737793623396211147377411678722995129223847269102160206698303577671693718967770538409487488113569655800695094851031429478832966155379763467119919088735015646809037684331601526147453371919169482913251900822739391109470104474805449846139533909818609167409369055741263350480728040417609462461767742610608846909109203608100630180924565404511144135090905581136180522314224859287431693257891668467449042924114990441730260093931815784080089212339001105736187470215974757761136066780051320845611637195638396973521408748974544144729087280163534506377545459851781158926945923003171949729177900832683270201907096076681514176610455406719078513618960894220158257122441634815108082752466781890511233901038035148906925573976730307484200857063122476415628946015106622333791016974442366887144871189015963720135332386837312958506972468811896911665371545524554257086692632518859498168192195335941336235764418876670456392377790945255011532612033750188949495357633432554958542366779298448389010845930847132363663230364259209149419908318104071258142946652489133908961227018353318825744554400334872125675220582649946943520969414561741802803388518693251426382570487323216797027832564036757951677437710082290560967188186160724642757518407247826903271198836299113296482722101232536234161810883133791629628799767832645830933490567039489901315923241906780518348730990930144170964114644431034718708900835215864337940520598324281242863223508109975307919627679148365759414945976842234819811697905142487189815906938692853973683315753679328553395603593011804313907374702187908446243992182838097841748420077345283708077599162530066136419856414911378284436882092967929831328178111007827046615803580944202303668010321720109374395765522372417811585519126164248747635264118944588227136190521512371980065171098271255606725027423411252020430215209470169843358327492657589725842604276129687226989511995979649095170947001804873303107226064033336701871463628152064730999017463686883738043172275279138118319874233731843016224791409426040125021908481925098097781189701160318237484031053487491990567412995688048051357384045110965446236585736851125635652335906252418011550410567012295398364674195363278476697750504261252633666929437043822317071614880728312646463068175032527746861562571187004781366507889458835894660655672069783566466014017749750556039380171663593027162012810100781054298551990261636281228677761948279080427938449585611930410329169374861812559527341840473607624639502911750313042630703096604541965035802689011322193019090061628740660960135050593758485514146167776877349914163960953802871418883448411939064135447034161046211473443310266338385770953361217224558392670528311156171980689252290116239111524561168073456360959498678123714884754905356093954788548487606060266198944758767290997895983269899261133624652134223994058279627782709231493366121693115673710954867544136288914198099548982816069198832001242536625136640857324610307862604046031018709781040253227343073333169171417868565204162569534287548506535269323182850618402903732471369840271169022045434592264577388018840208120456284383697913394707652035019078663739656973051779250951264854512100652699034954440061992961157373970800742991615351769914157421092033358626271967282323754522163088336613402774424799915157003935431429484894866216498190284210108675101416940599532162518056224847731954505616589081756144382314852688370569699234056251711714238123033910189073219889859852072742125098045124628314899521939512153309072707495749383718620326250400326780089887608352273548505346940044088928397209053086927811573177715727022287719455090520385345840719586306908399517441703757908056672079924687773427982748188956610247442526431547751224713873817536520468672083212111047118032502652684985653952130143321543702887085608069999602104163025641284179720588417822666238235618133756034262621751080392402935748929908164109935749970740308059979237837868959755053027284753999108160497571722770320223575764340549577295151311726635869370391454160603644364465820831276239766414350244155522405141656743323770420706044285429358389152071974104904926410148993218013862993600748026566933202325796890667262817873988729971087357801129166823774441707593890318211750920336808708372384410099517027848666799756474935117458317804560073037476945636373231890872327661222421199569231073399446184372108554812436442454628904629608207441641594134945027529001625547937208972556401438871680580053275662049058775283287016992789810895466424628816574823873153946860258020022054186699185531542449750849422031434662001620339068506180592970683661617544556318036177962678234503234797795607877204396187736194430687633818239907046985353120394769611891064516050653501404435525768813034827609392902628849950902393414657720815721235206933191550450535675704564713285823573196923622548533400145776689377698061088620232063120680268023709581482803124244321712791693993302343318539034493962207149644723079653612373054078093322079165135858667664801810333225896111631115162935009121413911077094930047074944429265831104365731357089980893111961647715285945631106974563232947101146577583107719426739667264613319264633894399716441145207746906123794789253841488093106680114956414968811548501464892061785980440769165832138877594138127348384958305837293197937184701791341522619727371176451900642376644778529377265598474775824661868786930439506514604301782234996669328479494712017396496396688300044023423033086392458360062602654676326232058971975497375906313416602768094278039765648747013824069563458283313724336949301253088147170092278923351393866224601578187631020108133762280972201828302794772859646042900157180448238155516185255613105689821471657328743262336127065925220724328657969026890959560355668159292626336667344409053578249958055401696002144312040444051046634414113305137972081498270291674661213115885963892945013279835446126438971918527081618654306174798950972694758965098647429086853197209015541901212568673193444436165836462029392210863424136422980721582582514749110281046888942825570874833361541600734104484090758130213556070355368917883598235373139333513095975943487283431402041651319736758706605781100260262323573677969721779245654432640624278810720591547592540879973792803447410594309295680356970722256547281059175080236258972014616322480227811264643312329460239118231272056467822009471497341912695662630994612132261337317543092369622774366616136662740374112917443857500883756705621658835774146888488209911922547979447701858753189119505277482605418963878534105276074810317125196240851976013504842054886185745146388891941154015209946985804210895337744556814684546525892668283476491880331772988123979537000582985853284864106969891770867649906961360066132227689707908102056621083217749870736996081053622504113806794976088801862929210531665225395733605885924612935224770866884839900028768005620158247246818198303430801851939121168076713153392483123264024007003477800966791278525095135332933942483142729009703798154523520352728661502443865370894331194145156944326219650501498086242836025030527369546573758094927295741570137339067186717263791760164581882361775247165207898062661452498711999234694883001275465238773038666535841011646164113543392997038965885772491562506876193572862183644810040853025825756264691913707793446691430859893410657548853735921371091648551096799828954772086613663001443641118843071615745286714150956253730129900449358777163544139032253493407084205622754477910259584298664422203560019159374337498814869176715323390997461694662192055052093549791331522307781885585733864725295554173738266750823406052323122964288445750265774645077878650325398389864006680809425042066879156720829132040159523263500579143581382900260379405508122889862756008360557327354702967382730520848978680181931915182594524462871186332247800251841066786999111590502300257041416968003520887606522235743140967728938371407537200345360784569282732400125860240391163930578071769898880064708506914659966182485010093414879605558408314024780229772732009989967508199259875973258459772342654784542026030907404602159464082962053044880538778573022936341324159954612432288747704227106626812084082950152012108850501323819064702892473155620456212088976199506123400673181538288818587475968636690396425251925100235888640533797469221396913911458690151835140953228800818407115587321114597498463947948820610017357787417376567711127971364893812440729859677873651205388378128390402253401294541964364699189520232191471938261183047736322325508684118654731774755799438744440991636917409425260763470853960997355491697227198042006829726984240346304339142045955909540822490707353499832626594323190263939752672264455557606459185774538373544974720635004110899002579097833755127212867854116737290550131266797411106392146526022061440776948386497071245276810407689786883694686816979066842438819824865780863970375438072520282566126349029744785366265255548865277234999995028421881809070937631875207562743874290547885938442597105035231211227270082949306869428356700563381379967357069601551723553497927596458003975931057008019061284875558359371632294522426178718423524410459090964158285088305003221990515318039669389194031702894140847040146152575681905434179738561387976166504453674563240075751874511251796978723729611241464446278148074118377265450714846024744031860839412945063032979233568741581878189968805007516873214939721597880946025319704005558315511806923959014164460260855723582748509074322579706208167908108786484283728380391070296559329761511786825354146781686717800913418193452475881440425998284969715442438783156288080070509216625194017424073250040521029545192917639231873195885092710197153896719001393919033225345487278770615907813034894420929202175554871452154912947197416027804605492966827517163741662825028436583900429479400166647994750159464869017766402567933347299076168045265890217080196001807926945606271994210094961147106589454573329654556056364082735361329774431602373468865282653563623100635405462187094406263111459092711055873419387957661228652408838267339150921368503523757250388431873196801890255787210639867916131206250763205394358085031048524614516895507472240688197810967027598093147521711498347664178244079892308976456663266607279534025316297193815409000788754686907242733505472446857221599905207003452800872434077275344467569957054070462519004270297681341606257502507499699665750866796749674447675203040191069106213811341598112638323946181608539392235561823784488040762766063879569769247012155607229275142301500309511674273346826744568246008866005111667738321450418651984051886508770864390627746938223643453775982758977464858376036451081157645010015649232117605306151264683688641176459143448963517342615578609315193082593259817588288429436214886693580650803982394313849122989151907125842836072953656459679578391296193504574990555808575892091615795308853115669830836265980833306155855220442045183974898875560084476372118465829222606085978576798927080583546408442408671194937935074083906251277751332472403911291499591036832776818437577796388392891232618743538197559105806924690670265719732977431237763416008116032353747348891300603501864580490224265648763855606390355843382709854471069872332587120568093915267203413033801160745498796160017314106956780722048639346953385459084059595015584866884089003131114587687710935653613639863422353124661232776452328366440809557672873621308362955390360460047595478868239544720762668837856108874243421156870850959106188268361311163273057348760070762391417390203021924908257551065007979562390246041125846039921197142721328786216688929453659023888978017818775005367251215415193955413646587146115358642450162681150170548112958084337641594703011127011023255262598814374397039353313672324954576503700662554904973286927720305751597485327933406529859452123421227026055416731420559646686555410145876899201625060227202549716972249624294060335151764862101051474438864435726587812286094170518856503577787029691592214803057098171879283015693204670471733111644611143346234854133370951236379044258399690723807113587769509990885850755742250372595662870260615661587079244972773516665620708723192377949384085633610765690463472472860470537348719100179387993577793518314643580100110506954144070414912764887087876573454696194888102605930277715567256717126834425794978162229508158600358956596651693495943670274287025736806049502356286230136215088530868519073602661025637215240375775334251887955672617667864548275978690553384458378953078123246863759482117556560014954954139578853231576985538833387828360214209254132582009840844785598011717455283817167071007927807662704124128124980642807740046760399549477601142316206766325432830867796689985810214206544261161018256527331916286425596942304195247765482565536366259172246057247688462914965786918037549078655301682955428324817505247573165170329821855772702801352600330292965604772144077787290736175203517074050329997097424546809259830384510762533776142612269910780452141629574676463630380920258926802371319605307475652229619934003376387904066544153696924216651152362595316986524957379502934061871499066607496998783265758692134054364126376377041092937562187531021091875744624644415962296166077197287301385486782934181462467274352072444588149371749358554000275197491416283884313851325306576970995198730238078002353470845545503722834098450046103125738396569628356042414890647999185019066527922405905782349454477762867559188798701599476532688653987886833328772705809905648217232605501247608597237214937830899383315130498626671928006956383706834388855755622262445230700311905655302116299496470759028200477173160045044950161687764897427663479590710525192917855321527802407099665883468183324075846473315890197955676675324570903132063597522476202643867983200383035773932725201736389969265896376265086158665008708103784364577861214768169700407887698029518192532689489550931613125969922006995860289665263557869869139006933164996733559513618848527465278390924418874496334784834334599941527117972536239192439838983418762696563998510385207438320771283951021444441291573774661811442906865993778172742734722239947101861229351939287827226774421612827244913019276574876181230109543629010741239524575911284210769961918148420207465264303094982858480385651011125107798352413782709716228297441893873218357282780567582529724010998268908745921589820093033862313118994353359078617358862432472294234587240664945709786533141139743554975216025364311071453791851958860867046029955875290058734171818022280704432653247017045806397379556367246651824360723044884684109665417283213766318047172271134173918375992120387245371238779006092230353124104688227120509012382695798347946129943338130219278545783346873785901716879613998034085815105759382540781193745070536081426671961507109272822597704429824245296806575898296351492055895000036978882281608028541048233613150889555641527313056930819777487028997525631756813998163657622081546098999007664150781195155131790560118301945544017110319577972365248374062306191037293462357513411594535421981178056812622700105296817305912096485550281213352515870909414355279384108960783064950901695939124463801273552081722707974167224016541773890028219454521993197024778477182539960069117978301827170816383262475253607264909274841368278231743135434604446104682659335624918977979302640100713419705342232786773346463861769978006654801590633975534048168981656236771601821515636902935150012241851237091222871940127147481310647174765416277705481759023818590035438452192379768101395225443217283648349848213035338599369010797615595946078056184747702042015244738726428258395289016158456207558919695808611553052764656126433749551088322362767733341350049362020427369184018399929002854462591141384636778790100880756142610278077219207881588198180384214283383659658807989614090934390852316435278543870628236897546467165463830774595679470521116181734862821732376663545727664250205361352288266340669113860301112475460294174188874693597566855677644586305256841367005105922191974995575078109386971696436849743709834723028650119377523542732209679742776844957684042750453284011424328360959863276770962178308950972482606486920017412701437907923558724429366527156265138380057240893255881279599508029972351031288824280202269568869697561363756000583048913864745233667550831978789357173237789586856369115916710629896089244193593637800739460117451705503755684555475576074073337944634699295313099426548943424771036668531277134784163749841052606728279194511294402282464811019629121191514895114160274255477107034492069659324150039936283451037618707519832458309140049910216519089782866034797323885457698343600917113520884619921125378979185912814764061102275026174494082334474793429258676578465065539527304154094612919703352840121046071867278727851051820421538551477626006375692991272121258526083025403046596442350326448408657826149180753414625249966963312126056939508413881766994209145397448965981691525072619117280032251345614894109734427937303618858756161746902875323489429928168392126484407791819199370159002554675424864153813207955469827646308931120704365468156486161641164532501863966698468671691829805816727849811275923670641675043387082632385103642641089201392660590143406701711034791143020351806736394377095131717520738593770529815603796341022374095640098233210132767781958946436578439038159565914625780919697294418933740338105625008716789660518893678334814805332734502414023802647930676256423627585566182972551825217838674802569222765105484469172976028724961369726517376508109673865719690369367444258458924950864167260458038684458611262870229072893357674374417457852196994188469341677970202962893461762436576314989477751880211089742737417470868572559193099451548778038647083364922836626281830029741940622906777447939365068859080079173007362784730412233902947087384973654831592848447071451901196169978106316451829752728733521616395745209051936755332742318211127598465101877301330870824985643991611743445094982193451074105472556430155127632502070126006498266250428918478034916084527270357345304847782293783907350741842152333784013712612928452211161529615030181608618141757382135772075234913169947205442713360527232857885731227828825492521620800537780248335936403738582001545384016264216893454857753405709944186485568926617132976598941796392994650464292091725920371418059396990445695690103230763339016467638090879307234717067539279781657879681629539600619964565297626836308788681965056665320119532890299563730559805812349358885194153833776546350309808519229509068884405210294832814526642399870181248558832846564170851688299577283040314466199809910469279882947099741715741891651166340077582259214621519554042227951640811336080482741638410955472957932658971846246214644378040741090859448701910856755109372274603468458543290372511472817605666714408495828242051675750998578048305579183354714991079388066249915049524764035424857173957095389691769029145089645926227335544454588297276316891683292587996877020165014053427157373372650422811193768251693172836468400405191826797313962501277185239395994073896409198483574748440360382602513807234662902650748848862997176484496645561548962914614827022836960619238328257946609432681513293382128003111329189318860420568343656432296014668552212401698596849397540207282992003371910224496898957432585621331287034160459181621166521819545987570720118804698842844758357901092096391657483751264400471129185418983834735610500009025195272561911464649975896142488573363701222924755857259652208365861083241444606972558127127300397744088028520983757294492217121329633672084311321979101593397154733533660956107997541635906927204562729497533513457910478885626477096814815760077148543126281901909086047448590914753835010834995495222011193239062936404181405690126517846202920481042090847973910490027849937072046201578498862320927381927528606153055316738137983607202400786588993280069039775382763182562057505167459245586746864107001227871433051633490019178520710712187887371080504222935452801430285921480303970166991890195033072264212981895666270173466025904379450784523224469597089278187947994797462949607680266953107314503556418532186496859889217478806710706170521860932926531544645084902193142602237056615905029368331545954350561581322731955557880970849808467925396519722213948336488817497710719760787381507417065216998643226190151781241732445193601793548489790149132047832363078220820903569156795515536084172417085173233189474474732628998356399180960929871150596596563058619922656313304080874809542835653687680435525381500320106033715231020482311197633367988405532851159277418348801540645729543578912073138507161116519641669472827275610019614205540976594339585298226383443786060974674727394994090140122967242543853573438646513969526918338453537705671702533515878576644415500707913203815453791643826944952200160606523094095870916460790665047263096863972298445405169799934329190730070931155745743666892601091072909883818489291343275707438716917051363300456235420687272963313915429999970267886002538000795315513303063664395066471587402986431368260895829373500530443284687829399954623003093179107836072965068278843759999566457475107670066319672110340502798295957725759294626233670094700944401241755467130563190414043983134190017461727614603812227613401227552422512727351311271360579823460924942102036046937702721398392955212003561693581957978966900643045071570923264489308056253978204652775201325610181378223644557270703076371684835045626586508259125065782098143428157279008821912596640820847426121797125875476521004564523829290223454369944238757577246679796604490193472857009256880057252757984082885978953839588206604551339454771683287713642461931404267341453280797335565570623149994608612216042372032091427326205751477811202785560170406936798103480461574906504233046252141383415083460037388566919818081421908857498692346864206282639734645134033328458831035864835846199287953631425650968353273422428351759391441904514134827653805393216049064770684825905113438766740115885361530545337249945120895833761199226555053867667704511665133003834352928256718650472233553342928612959098026929973549992228560697290636806798940783437013293243748516023624848232307029779624121067610950071326104926524333230092757677474368603253281365183814169965318458635378126019163249919638888141226861036629158341025370017870097437318943021099560938503282344669128287639941043017621818294667814056110442004302477999385433325594500020340807156635977498516873708454814169425957848817614127383190705256972133676957530289076459248573783321163994318038341445516151697214827487297631840540605406321131508888803962257230990188635621571116257588543245493958057069655566565380071684585956260332528387355068638016430894963246372936512099857924778544241272189727327743241106009998926582045108894766786635111186018910599267601286274328882726504664021300023220342152519159129234934956368753313036117578051495055649088616588976940361793951049954372672717711842051722649983498285200551298856519653906951856560513630588608521901557267156059268148640365839056340037580293847985247794707395809291289858843877238413865016772329474763361761566412413051977333519810274769249193180307705037196475980887253119438804902047409483840717502808576059888669165600290129812792574089897250884055556091978087537145845625122979853190617102152034768083325883374269294825554245827737112020404152272882233870809569442470678884163566279520185952828888678911156599117642603524906567066757986988795833504338466209840537643480452507285393617440271532135055737553033512701886092415982401056669650052740009209545044010770567250231632429462196529428073208794410021297618510014830261050519920366015965901178145626148505863479887014918022580503796083758609100394070605983632668548103833928739392108571363269315274788688111791759757375226561614523620082701256249497327469521682659166836574911489920208222793239489962088533593267585533833645736462259519998309655092965733487100877294975160909061487592762699959793791982373030801149956772111214313942266090723177712555666972159313862351825779559965897283488350191929734784597253254860794416912235899434350982207702642985392214174556421643251042704766187198034404443282952144607528454041412468445709975128814437557634479073399921234056743821193264173064743967782590360857409910854608789686421505690134879631598084921928729488301114661543045540122549479711664970389996666091085064305885782158885429654477650833830940389247102614231160486353548656463320160344402949157022765852455764426891047428385389137470836945519619523840432166923167409350088284848677443175068724326764831090104473785475248521091286165185013756514488883195769519134304985669271691248559715822724010429136214688705444939839311124800491211933053758955661521219054354630031149165855150795190173448352334555148725638129053433647758429207495744783458326549225770688067467189340221491940043941821491412498288003609222722946998686997251984361278083261509889189439588944581221711438460533046398282868330410577410143765214831186791297383941311580773791031561119044273718231721425081716254422792809120505473184330502995144911416533796841110697898665365381463494044784866407973975607251575817802070571776993164652201694249579070249986419706276328508316134722548998090505507518917355157788199231705306926714930993078793544522266493124466767170719804405981633753178316185022353752882158088968811880444699458317113579219591833020917306128434415773477960712548469568446926304352916985071927735840886277338029704869987374794027892096959837582973995611400493586793033236992354009667323306564599349971795621874680236967547303577828952293672797746159009258015852659890681128902205157837431494800530764201275228499218851307085395777793244786060487850724249521778721342482283757001149051255718511813462396797140089443785468123793130010682290907365280382564712724752837466238378191180994434704935684621440487912342327091090755337045779641024870007741316254866403189248430759988175444426760672619458517569619918006792919110325130668845758218771708071963684231093951056003108946558394880889547980609208816757499508591634520661050044740337342079053504764376085669289002107344394067442872706515622766080352224795767099346432202564903252733820936825529218144687101709437581501424298674504901629059104584618391657206297118584812772542920910742333714323432101609564573652700160866991696977814705006728881107568180083012497890407195552457626009988696695718237812296594215581153325858478989901625457470155910550146470139990338305231356372941184126312682177186607375672727702767833888421608539685692205257117968957607157609856826976472005094539826024735198180464083639536805208677485527664197173408490578134453029173025901531160647662423527262740624437279097399524960127180394285635830437313267208881947080431009057207810123316292843373171943596839927557607114597412557289847704810546205236995953605435982323424258528978947498927686838763503982635422710898848966766785499763809049004443474486582280754378990335493374983675365920540541305083283774177102285835067336235084347163393240551560067350088738370404392935710724131292952226936283545445719090431078360185784329907359891194631292957763941872575512355813404954361471634000653667380644050257791238549185065257503388340904093701376342471824323893215849141151008204785658616754303910331547036890082709390126209214696394678772403990204919235720873481566437106007405379040539709629324280905757527573179666212511801637155152014254922584602240462080994233500517563546183011617394875351472139309776624241140439561744689577837852064907686034585990103618020629856013111424362600152581026831984832563600349097987333853586654411227509820629421492710276376930215292448973375581068687479945397092772431387593105797572236294229628716846865549532046316964157233321806501349039845030504960580062331264903495582977362801231622674328439999222488949246345039724823866014928031244254050905182879303261123265926757419997544557600679075513187227095341323710598782441662043338717642599167296004895711700369026594635001162423762957760506007157902818376081713023639991658733398047262248403082059140832943479191867839300335964488681908948553292174905812223519646329733390238408607152543274478372180546891947995647906306125003993734731650808216581801659598520536073221300070205976888856293643437620730162137473497330525332169930211067928710650805412514845980030484102286634455850108097631352593752072369428766636618279907559558362261769689072905994018695920398440253637959391190389986857840540470931653784928441267428765294981949267718631346564992038171347597626501772766682135671400914495858723880454090335794941685351012542382791789073462733812552460646365688875717277085395788338126045387324647114845150419874467937136636514668715238512502426358926269675190574611946023181268832197582292731751036059043950511167878129084772233780647031882245008120307905329060792621152683684753818341712043895646150147991945422398636205792422770373156166142662469794249569522498133546169831047697030550357659516440856826896459024743402954435900193107165620165934586822941399209833104501752534729361396586565671142541212613380919701772527885071361224430026160028734532345114633752221850262555724938984190506283331117559729775721906505685594155175440129158284137144864825014086956793220303646680932399817605236021831143089035017312263479143591929533032115612907951226005532950600110035217815136520157724290645315018216082409127502093201736552389153363264461359075340019435015169587999004765106345045511778323047772157928146463376523218376922688302453785232500619376947128800328040004032585385892705935161960896033563149059643517335611594616414942131434395214310934002956059039146592417748809133331606014800871954938858436178455805291688602399787336648068714125244434538104982751927207671335830897435019881283453362641688906329512397096963644987433623378363090083421310819967117368181425121039239277669988379889416376775432928248702671569186125841101157526622847975096704714723166508256296473202068508381979183942336094642996750003251862457003348678854859171672236086440565395202751327779999767703637722757888138206144847467006113775035214695888847720808355662811078697197358193299131380285753639708124961517165222650565286431802785817695279536945334254970951718069240725378932745111168451846773900186018034252745522011691542770854354623000692716475573700620588223807527758361796646859367411482421241116136829347242667724444514104450313183763357427257009640522385604145953343776417551682895377410039439391972880309671467456350513450517666749670411322785171298176057833102553448856891583161086544624842027914257012456677856870455189061400709610836076964421746228396141643938092526788971015803347060822144857647340476045392668132340070766445376105247155454265575610708842867576780372042623546649887791995409512439387616024668749713664008660846661250621467041334190771836911310501048273352442173312200958383334097027998366655175499284934986242904434949428690687020911661218881560151179967508250046079059627444643644366471702801183007680009158939023217680657510304355454857396381424561860673415629733393898104635482156166833974929466539512432627330680354544687701835573228649004813852516494731873531435321212799565329958612404718826075623973911865620931005964272235684110571019573446018594169807694820389807610051096518155474604937906036047649140788244883239330356365373548066820368657800764358649899596583972464415631806254139270431176684714506631874903998163556821226661264714954979863722725828435722760384661823533647853187203611037327065156473915295680519671397614364382583565457591962240567253503887773914742181458657197988294037170889013169695004211231428190910183074559758159121756855886500105622362767551606502504864918165252148354547970353411145958708406341848941066825403402110147866625480818524743890430531198217331854426584296040977990119075235664222458323770388929825846607468456427798757687130664728551762458959502328147753687095376772219079163541590803251477447157997104037579075373415318910855347828222246362462310993478721682355045613403871917268189682477552008599721742555676224945013962801084534237494779427462669642919060694773297220231536036813831456808388631564541917429088553429498310897625479316735775197843330581172708134909191099829065922662634688475068323949766305654115590640726561833190446574081495685720639360316726269744380257319941409975182949033621996870184207076774912911683723466983562502760288006032626241145673526076565785025242910845332977314287091553476743439615671229952793854164514649452557340535245830947425607816081784963682120015524648258221745020144573623396429109352695055189994324131047337424368691688583683509985726478607536032610130938207018067994414308284629068496407065024380931759582711605666061327322730433722214128666047740055980852239645139555560462344436587558824697278389488816336999504065290467638432950256780448373407103008972145421687270479634622945345957273929260546953477716636829391062927553667402750172788179258686654935081196239400995116303184771385748598505055805521429307828314382387953177664567595294378597447240301131737821777574474132725653101350950139060572666184704905398830874003453895136880141652681157437278113007099001136484588799662962656526300943309177930471746513221039785168652646108749794669802217405899932672786520371444088941045764953704801066818626528681176871561706064155693365192797038844529692791221997452387141083055753260058917959234866976554617165734598804673148499388843763000841341907402068950197988738797164939533472741059698916893461795588522460520887867176238917112829912842574980471319432492341508955352300123496947006854153267228077101774587641571291645968467972574989042690795311951057439606117782359779991375487822857898783003775902508724045846248328676424450263265473812180175582254480176126141317937926696502119652370725504366508898303340767425727730427849120970484930786134027312504875909240993733647385891751225480732653151812695823126136637734112386012376385385053750613497173522545993284343549222872209316901641987699952794149688016800802652734891612758651990809026047328459512431263142196053077445274420792876254758458172734669051935098324341852131871935749185780189827688955879586440254053511755293408780809226206305882587319524618920908134515837397069759983565949561394942830484807320080032904622988677566208493365590527679489067342701607288358853678969500507555284662953160099678066837456926742731438339447116900380445002413958116560711451822497590795934375002310922368962885046067956786904962980751740701580235685979608525084781923383042764367160028178309170832432192891123069997625927101738737497655836334506323552361149630974729135545740959505833724005674047970699361684458282011785354900095612888132815513094485440838984853450254333988258764984828741225084613397721053769617266194387167592297118627234830270533249084469796367624866609301703179313726471620486303734049668818205267254307490867217412155243866947260411545962737200878909417024166549002437317858099446295956624052301431253991514376756005325077741492932201055236773157037992448011498619927019557928819023302935884590170707747707425069652401668487359011698394515684480601463624478542096357183578360743056842957205700883729985585139644811913069041202896039496842448295068467466806426498454706513685974988053540831008797913928196037593459100043785601006898286173238691275520331893734075167491632891527363224109700649945336911259610214285562299219702376389630197562480672123819066203944259407578864962452752942879580881621738503326521566679233141047143907194370473184437617552931240666987121688713283458712052396212972937355987723706413795187332272489727838168621073710837016196240154918081154068566497994117526896013718274484812509896398317617449725580113681079837398712325964671331797124488029006715814574622531314137300084890635455394791975999346701316180575079691588276140837692152358360255376795123155044456773212902716454727571303997125459639310258776434185994962909363711940415385838346782633942106308627284847670893532396878853873419645245982769755738629262421562618968981243615374927719144239765298600796591974852797738102013150593146044212500599342478662572993372995578834191360618763845925336169135253236835885410631755400419778537415646529680116462059082163620357090218546663215715180958223004623145064754138925347892107740458116801812630636131047073464686875939297030228130890635646285942774360110472459654124905759324781688251453405392105363182024010587347267725215624871447115468334048392565289435731622283687659464226912182519215308329351427133712563689903045384138910425132135920162000412491092927012186343085400055354046723341436992925602115264278987544059870421972134632066124429706357492278355300615258444648423506753948021802127610633389469202056269634706296123961956674416841081968054473371111302862433813817129853747687575010557692923278688014762592369008861720876591330884472649931672571749601406455217600636210312875539293977688251404841461154876928687815042126291408049524903784420528832575494040696389720020490681327303234919460862734097345441089289491462056370207889409119914146383696224550424156356058896961935336602839041699469372108745130887523764158176146356092488891779893534950159728390293891059791872607578795809888897131850132373003944482664104886649938454564343103508140302182419084549878942629091628849904775916223069183088978318523519562085330440564399078251651471737068511295511264486893362872488682352461269533895653500125137396250232093484806843981741586072622498231654697081097762397678858586984186814364386113267800640938885385432068552377042755557938256487417962725630324283725506592091640809569052199539372268730495813104002315023659412200084662392698806011468559208674788387339322518648517350583621272107693984857762577805346385047129896736370729555748049285653562472156029078874335199450950173671367598085258208830801719654394181795168877927998053949641482738796146306912138054333733436540969181312657708273240353220044022069570676701804337371322595012296896690623225561530937367425044060925386748384623120693295200500666931232903108077158617349755388946854693321284291658957399167066860887397821579841623391586511305384828808296957095289065255320456371319137310368910953730911977550076432247817932428984466698723616688059007754818670216910074664170231258230965858136244779689441779148305567748733035958050915713914805772100729942718321899895350437236465244089260974020133372161751684062259639441255416816343389565235995286949636520368401567520526492321351835498750938842091997216405847712693224962272881389137288407629835145039136475320267156412147343131990601115199748221714491627892252759357517489721338352733465713138612107599819071102022292771154928745178393040963205823951722883804736020499697163229461067199813883496445631919027928550039013034883544912634081253150144238611023778338233956851420117593133804715154210525882719261817829305950760179566680157208444600567180157463753511101541826796309536302016827472549136587523484326552435290912711742282233571435914086133612170611644245165990295167150582305662399602075003731629691892413102794767705513879360056728898128341154030656800464421568506637080691329662216642447486214066997615911935974736408134950024984922230426832153855975011130996277529900944969036999727668160577102095974949597359148384658482625895362945240047960010591693375092170149395155182692443310268165922266647999109077543159239909014629336497173777712571052603006450494554376133185882047006970214354145725604293739107230426620217352695456005829981428221953490381060124360251234362233091701671161628886646792140270628218284033431973656588203027742372273301068649961848090567395102380880447896215012164735797131389783445539139471859528754987558774981391900094434985510896461009159391935624801449581882113724851918293318137977092748968086898445010505659809072911532284826423720826229161569714302640532277605215782581251979076519850827510288197810506118731911461882715309887795640574393736418865687976383264329543248081972111382845443997528657239262385802641248378372300150823360212740067542153888393113615045288652340478355711042946776829217860826340701327887248269476317811752999027085529051690289399792353589745995415248834491869864186243398585219513637180525611729037700760463838070317200163064188457788563845998555593706823430499968670719175450507694602470609718778975020425980816716495149103868019409430462702659479097062535427692710510668259387220846384149674667259598116737302946351074144440792684032963827208491508485198656512311691439631510476833749685916675067260584336724699624725332662291557156423598592716011447259828456156777217338858278771287360040036993500800985227308198592499291531191096683422015390795438542468823591484549013929110497630783227470530042884065611522497630937575461423561212529108561267036247873226602970325018210074423909370877739809652359289849942277760628185662595286318324917393112790381749897798762286330966948250107185652811318369154699237533338726478798838881054782485810396303346481161308575266917982293211654030833536384962490573468965800884350139390572287651314762116292858430147471054668517709817592174351194395860399828728366725462511804171748196845912248442264851004385315781644981329737932163549536477590659732362272858544255040056693091430203796632848130744397277928983274304226155255884415677446002215853307068538591470990094840744152795688132955316497293127639518014544305129653813470960509216289076624218050619742277872340788694790758638166050169791168411753152197784645393694808830694396900757445501226984670543213141690907201363844324182403122533782159776767753592126164105421067089989352468921351419079016423206351519826033176718605586299464323518782493579199614058597280593003450799045199790839349839841921876224795113428280162079968543314918175921179788265009738823207914341246484816892422908550136896352033407303125944859607608835397381921129256343682788503880532190434640761261556410662112210879796241933842939129722697823723726698946685914156532544129584108383132165534899693609707636954423097240142296252409933749342340847721058857997049442630776494739885010777458088759868566770889366128962660078262383964724357450378752699466777245698660900377757473270195696600057249523815492202488469363921816234175899140868071655568969431072251236527510009008910168345721875789528940446396276522884398977076645625874688560281230800025611339760199144900451785522594421588202495457471629212360749887757915788720303766782733962450636116346655858003293327940087244827914758997950940899590551206754483257336196482313342922927292553391063492066864454450514050948580110349848342045512585800832523109296534459545177528790838700972578022131943897867320481243259167820336704798024863476913762359018076697277910727970104143086588485811689785461821746893419055127193830971625264363895014614663049012058921566917829588126767118796866979852574302521078237528731954474100183052046684300535424255698898319975621131220629422293800796679653677778441358411966482070571557448148707367421228609603984862121866798566092672345000095049652254595529653731702160048355379782902886584539007023661097001731226451796347148313311222186861057122537073562530807216052798452630171978020935624007096160173137269461059527947482082782938881595599804494887017607767609451498226324251843248947620911140277487482730175426964259076773204705428517021293224312572139805851536184897128830508689549236034370292815065373857167447699347148691371790766278001674258312333889632874349287263129615792240279058172248109211553990242304428711246847334541206709043459692022770126550987486217393310903545730074400388736262341343941013986565382821530669205894233189420050060106275931020011059811615251121552642308557082110120694602945369019347567835999384012175193941304903029904971609511447209060831552386532943912400791289850460875867225496106288619108159086063115387922912178218265407639709190787510236115300436060662662051363004549762330977580630013185182781341104141437076543395068893971102097021768866714035995521899761645001022878204063286215402121329230546140486179499776034452294758704683143849159309814531731893694450031978275475479577750854119470653155942154906848286222376574446400766837194411215865984005426224433270080131557611440565901223837602832999016142366779075661444891764753506996486684789827089674114867277685502532371845135785427432725115720786765182927947003377374889676695090170800676196516142320680412384398013215635376316310798705559624238486154989353157508740226660450485185489517837876351897594735440383287892763300988031836176209557579743566957171155764932956977274033812070459700755984443863604898348639160575934882120264479460438462589480351871792117658267951972728891234657877777227878434917008458703588601970515356633294679935348670303019644979350175976198684996707382881970042041496697614842044497342729247518272337891898411005742136993818374480254187624943208567144761124097704140846198134574244329062232237149548377274670252447812263190815694652641231892116721239563776552741354516525214053875294593775069587305457529137389944054226591485091411429751019081568394083917669891095557218775314632703475251011285872850821204081257232842801240463993231219515359056286532468539014709780313490774435417862821275649366146804763524257228180349127621508390526707484499717543705222990357879726265624870150477704904033147753387413359588495594150338229829815732650996902756259165863197217531176076800853310814947266186182270484295584876852367993868069261377056569339771470971311560329728617687633689888374291164674540225935277809632236437082421880974720616093291790802486871375727983210590083821270372904001461881222099057757428592157808432673342573752660105262515657422469339289124822261842630922671923105593859071687036345206993421598198536312805555543494907717038344182375717255367111728027479842704737692737140632284973804049795589468179521267847673123025753049718044120585612627549287302729377598621965226744615248067554588937408438098354751247283493393721077675971194784035357815428316110436250593400499556570400655652576794517288573217333355277357435044298572459039660219863231241576684477846731939297748623823066489592559889731995790270280456516905052523330965494381982556884983924847665005668444645392743776788218739415356555973178835996613148671849353308747188308887622966129978254887571847888117693635994212859274078595295141518738088450247611985377968286385985740185953866363778433793536538013412610091923044344113896921803907246417143391292748221779420655959084417247702371214396061585404758038865466759287711746411189425546239331227107247660754563264337964397696187226672889612464332211853578656185881176067532767889307267055560792310089882458129479759668424371848050965300415367849358420006664734676351920836738226404749460154244090547710064041705327716793041676539820312650687941501687911232261175724112032071466817062968302310189443405193915330508894820658747152320367911834744991859268924118790858181552894199790427961779636692987277421753354367118329268673995800646399003520862856702775396626242278842770496981522661971815356817524725799969035747744143557625959000796686478646351711795204996903890639012562958473126633041764962765610965035347043113960884599060942745976404429424077329716358607665009296189231444003377529493165530430600623214296309778223570493657747626308177110338507220417778777216149959566607665529574077957473261831157168756380062306775699536351224272355769087710917236431486164032167338573993104126674446538304916699050671942496304311276410248760363654065798115359306024396685407408398757266642106539847009699643456039595769807718812896706159461252824962751343107753237605648752401866429638285518078994417474996419030059674935638683140470294032566623626364969600124346268378507235880348904325269986317054295441358196304805795232551745509233156669600438044554034984843986760047470539273165788513766810271860700944490570262052653387943247047491415727870725790920605427570307599048509147349061958883718887229369680317126172254657809566182479411311323080375316169779479471589269002051855441517611229565922468901786252726084667219532663295031482449870132835983000732493293656972083661039062872735099278725003374150785042916008660494527269290315518263253581301764375227257548763538441723069343305448368441762119362147081342378782076026494815926951494375242816566248696430046481291892017937961042959399237957884283214463861647725250451671136484502270164216049976824402534195120576025305407462472114959999898886334860216555924719297357573901551040904105143232494650199312901743144476387711381886724531383589561672742344564147995565800880062648716679866210087219661117892711173890522384603600495075516169094168410167717149026474981456636188133661769143653599914060945111123738649765405761815869365270112160204837621960071288447241792093937973400401379264596464348390173977747898645339870098523140425842666916440282508710373162655443523765179692978279842027760029151189414464349397988254629482176837030871692234963244171781692117236475466385270782949360617896364162904876834755662045770659684668135711403266674877122207886705633200141317016653713012684746702391138817296880291805055714418009959804166387439487679269870018023253109751036629017368982835545768761142538236303666410049289006386113414737528141979235317115669831016321122102528223493452987906664821283482492009911578536184028619293695767788295892187538330114195997648422843400791040335590423798979777349931155449427016379466185697297985664935920664545521842151447229189553947689085016049899207883689099833744872763892889031427794670056594384404629186656086362328167618570938330710611166357997139055662872766372390472111446990492716588332363089964775866011372764477160685635754717420016663481561433419696224364460298035925012950960839171150125468459735917339459160499577513017428241730356072061443516931196897897238364072340463383149307467067760842316071385313879321306986133504802072768540898189430006503187146988182949468846438275561909698131216687648491159652668676786523110076657868833415510352138828726786261284717861450675510216971554281982681581183358786724360935345094458523229034617783627546185143212611457817446155776538374645596680460872037596470898622723757497450463766291963343744509087990676556082937916117019040442530766440083294882574408564901340455504918482124681904645379283757230071685736987217773408366909490876036209649008891480605519239950575992954294077499783452309315617677399965065981995853927166756022025949580420742135281248924797362295423721919376994746783507739090569702163677830136967394648306870035666268598657423843149362186824621642233060030719049854367193967217121714444001716209057284403997087949392206893075509105666216449798638245371954254354157412413689225147340686211069767866652569208006533377806251219742281859539705915394062382861475993733096974328092090623429933933183281702902666855640819589914424162378266112488941662331222624289100843092862230706664242568061797645398612151277980950530072900018483248168818381279466655087664727460751076922362154032956245891948565466819530055422563094822053883401062373956621408515287994808785168996388021835627687664696904392531047741665339537314458219542699249500774794592494146454334244164458096390398001392949077015292059125348664829652426713331094612509629141855180733462015942157415532533256573287411864190620952739902726807067631878486570326568445062605085138827535844200365864005972566503058895320859159344144843599397528708454376824890021854493832535349825421826817777959376770472072807773904070490050524045373245832068846722377670551075702044574399580126188877775007934569319468226762084079320257665582705577685516948502090690637194222081872900203962679005421460117286963506511066631987119822576264658834540940070593973467898698765830299319365521452093211429994298314458394435155169847757732305027388107566896052287163779104025272877646979310420006471995563790901743551210428673730366554087731098096107566886592591396776288478514187974004573078164345057589967296932347413347626685569853050107907355383012076633638935291935691496899896207787316308699718536868965182679334346456322572557170086820738837841109593689073395840738021264326313291222958641503604828442586630015421489260177747453906200430571634387857585780851717997892633472398333010604944685393942341137869133749604507735715329772195110439449533792262969991863881588673444838477949884461017845809275532436851942489216460599709301606499723799219188644898840700130067766092539731034553525938737457346516655966113112948586176086649680593601602827856971594900844715082180421155996288359128218308414486866198805189383125382137055038618946637484492107175191669203732160352704205415350524657885545244482381557924177618441420108928887381956494070805240334360084092424462908175198985093171996576856836750042362249928616061897887599681334262644818587451844682160282264180395253618086539277615907777959843927463975758852696505042793075149856250946008411945543435463864138493000391699805013232457155773717110461129805725006480521972934978705897041994629699635290506916597926219046375501983395423794958295353434045252309962328936033990138151582312821915215269957811178308484444638234255358102708842797748914979937243804436175638727211214603331458830889128070890737523032323838985071412729198897709039442958881207740362195244667696295317926052433053723850045609125295988053778745741134705301797943102153590562302200619649168252859927714966919357676309211679064507717979223415621359144500305029327889923913166955738300346706624084992320664540629688132687084276198620709273154060522480151810540963520717672397329031777163788157066874540107651697182891221421976130843455268585691132466726377452495835656233910116405962489957414757148022930755118403741142795264990491997367015223993913165391650572857479890507550336095401078387303957158391124592740421474573329729552771742895665418939486906153716699493777795515739810921116996746074995069150342938311900630282546711940769785619446012098083155855476046163210451549066096671781852747572293412739039193352193919414438458645864182206796176110020512157139573953584302761868444162936219353659606360272319576873426950973523303313105872378709914971295168616494604267459386268333519763757256528606667359529817314689696083781304884282706445168293507564873183397817834118327245995104416104230496583689351905114933073803089005569279900852357127817815120731856281996438199450874415527549826097877952659943584063550247591248568185884296779544665154151635545539965370411501315497231623475257021629258458572304183433711349669438559926485599792566811865303722799746715248300767697170156742181346344973864424291158062959984776843739490436029845969206490016898832033411165632766452045032205031402366513051936249635079894323996313091818672891803426105193234054360182350120040487533401732359542454883869591390315997015078615191524107194924250584889764877814150919009461283529210514480318876895898670522886676172140807218341577061297245111261511494066760968357317374148643409712244532773254714191689882203409100971223341385978736429529990584963074376381252721754049048788061287727946585374943858251618137519595060955839307085047143099081631868855285961955420500345046323998668704687553691990853361846801869774696094505145682768793323583794678916282078422488838174976887735536115192741694633935753838930931391798028707640716956250215580566555417780937462837031111053272019011206907212597089465983184262833099294265953380558355371634308117020313507147529983579837678861441359124614337117010220008436467303031146322424407850608064675328256643006940125494892898821407161788761661811997828951168510501804271394050267958819203967017782054514726592480512339349929913450468592097285556993688079503973881956143801126044206583285131296690820253069858202240420606128461895818479407857493730117639934280171312323369824634312534478799325225378508097077098458354900132156448367109452676468749124485848816394014910188191567544725166718577056513128588840650043687690698564765566265542436415366826323780746887392066026185965715039392005070568694579509822280816415687487148440764253463421865293426493457895491834046479971287923489206113809577349834883838989040984214104990809123427834908515262601957137969012293689965607436615332884111590204107492014857451112593604447427388971452456495155792997401417167942578438490044870116397959989146563823443181425376699475301549318132845660567052515649480081992052440223220245986420085863942983343961513968459070951225184294902012612093513488955899535964428918854295592519279848870672025317378255335136569422799753126530603970399208025032530925490155087002914588719163218677933560277674050669263361882189445289672856739578573672973029349787385122845411259351119692208214902777129217833777391724145126336506311292383441573203296617072136508847075653894182505128647772094857703580441186569080083160228688374098648101263466334618155004277317027439117228337304655549501633283075566694796150056906561941295831749788695326571398176276147043397469816460161944860062785754983468934874659162235641105460099018441311461394976198138899376009171637665363538256438683224165554585527249024413235173949414794226396071223337474780378555603901644782401231735122030671613418263167860556974213006953090547145682554262338005776809867657981166321534358448064116191946455279189996770158523873304615400309967086311304059882562087189217424555076127368195428999491069169803142587004336930807075474746010259030112814133534310606436646458444290992547966094383311158728301152424929495714661997674350723661282347506688767542636500826857732480254706735932160122020376608418650804548735985175152112420264700934699666451581046062479562573097816920051681835184525248079950958490743000124517165586868253535340248735211799844871710842038713092118935060011184607745227870893321408878494993953981536648820477582108718690412252264134538445637607501776163477386061669199967594906547404369390549881153317175524208348380361802926894453113411479491803567174504728274001088392572665896461059393529671303880210760658907938112210910920762650492401428666649128142746165446676262989919551447967008317352820589702897289345779193847550890785071754698764068957927428484881103987869742865181795213682507579447712748836511509930825405207325472599016281510650176918634637036502822402980320619328545794913889294389761061302883140591104545990354849155107504113653104077358764589771523581574762525105828984489767623200593925001420526775214237958751640463614017024121372686170939162696148312320944902325661925703500929951122370212140953349794736983700734596107416614020019476072361193967239817934717384289969741017382518608779492278386962880636112092063303684202227840158782280170560087381735551630913279098972683856090822423820096418653330932926919812564111040426744864747404699969311313196790064830285648701575743894688635595695201936797457044578419437043135872612641112288911071470507698592506030635528142186527905830532377453566413986415492309400419430690249248669939748852552013240996333439586906723102242700584406105205870034596084927825159145641323580152203577277697527443281097943924305509075298679073918913070242345308227348744513384701930912664644672516426213367930508524357640679618016762004436752472241975856974143283024685958249295457268646299883631494978287848278018995185164063218500896702361967192747128290089817348402892136572366173505698093398116808574831789881562419165880631237224320986667341644205521156878340711317522281602213410038829197361258380938113967861586500843587956249668056299995268373871370079950744761200572409350902236392856724276517003417070300226263477522616643317860403695149983037915523560965536521823057660629981560146158740913662578565320894751935773265660414423394292934381985246264063366530983528786906554914866975208063976611575408565414490377331744378797843964782284126518065364343196460984897750932973835260540348675983915446679434256982840460990547890732115693823306544703096542166495554898966926671674242628323327210629550929802414821007462677633820530271355889439830767116739979128510340895302394266447306136908239490508939022551948224251371177287551470657898824944621342887540655308927877571783100086217137432296784508936113711663927120834648845726419046236648758881807519216093963337629273438124343580230119664145353893869235426461186515587184199163137513815897977779939024043755260030481502966004197222640449822005259998134965959732965587291670676646126196445962789391519428192652329993961755261814812134978122708682220643360980068287445121471027386098093381500139264638262475039677673586869059452274143650383401555529835090444469158927016217637039613450676926675423169362407777762534451551766359965067512225943663940611111961894571067817230936271308086832015270572222056127836454439501058404833612984299795934424206141216438187133033677437126790357981707530155556913791308259888587098678653379974043413327660263609578139045725523194182019782656024905347770335378981842073954324696883177142728662694696777789170353131683135026823708132046160826566732615809872197340359622520997246134336385202263052003796158790290887767874807419133607981165789266562312156984022522226155458640170578208858386673297529557095517203452775047961866172087375654441714738372063831831028736227112974072893573039205257062816545265232735294775042927839657448864515355384246328150973663344772885502167944569731530282923513179293857680885274589749739928484965108095273631152504404240243740767716354682846858434266346425629089390751269583223832735725867993340019555738206000069949119845230640413388055857233602974707241189200119001602107317578842174548708675816199818695314455028565308901350026795873181495208763021915716790749138934101285662425075739230021986433816777376895518628361102657555551485919076587345056975770896055333490983442418916116132193029591331957270801748606590599923665998793814252387118369294867302847235159473246233305926535380053039542528611523977359503487426700689780565258617496765242410687730294629275165471878034992055130920689695404660616066906207420990346446170586275838278512519183971242309962554345280743517486499206406309682212261848669839031275296483163100366777616211001118599408358116536477740925549897713468622142380675467734066285658888293393572952521730992868875976226789987491601132507408881866802453745132959256451635343125359709959856120703068471847393276851711565263349031573341450301357515139188157403800955940461558673417532740212812451199142047775240108366857329743410608978305847409182738833569818042751380387472311088662780821053650400992753980096814268303905090643677144475661144275149127821061100903097419955581034611736948929921674527543952153542461846638317521065107159814316026049855602288807387003822109016888538642345018863281801097759621545649357450755900174610122003986200776603257223708414464354498385605160952809914559442910945399357482136789082924717508418992348357621067304699249504564847342317996652473879479761373575150282218301104806137685467475164839443118858939540195607359681792486267630591356598228148841664905364972327133509565994791826176656819422534288730499194248756242831847175283781665604115439736693934508040281446233746537368239165166405741172349042337751669858684686836956737999275442474295204547318651287323008521134618141521398169906173490669496216058950456734166187410998135671571958130933306762161211546283492880484297505710222992066798949220020333754929770881868614280896234724802319478354627800664950541488396279147506621704960683009326648120273847100237964094106602852244960043376988099930897946122249212808167302222044920815201123092683796194600077780453368669311057347928810660584306077752103410729721072890744662724937066419399542223995921641046297072395765568548900780872922981410985636176195106769510838132808086162018158825765698380947405606502376967742936984854004842781244896780933463549736779838103912344988659178635064860823433920971770426274691701101933279462325953934476125831326119872051400225581636280078551541710540326319792214870249745586347416855839562955869019042617022862483216648383328985710564871401972514826325652535206621822426046120403825275034162793269477118256493850435153163738221502067636031363330577473160680574977805005827335022102758164440056353823097445280563108706185945108258032269903947010841732795425678782912085084209394448887110667275040308064041207201721966062807218596853805961817762402053637687655644777921055412957868988382386092389971313434783500873091462489605548472563685874623188777226338661173209858727306959019925692761210507196693888005657258430192232840883506621660971298309916998652500337682712901794408662001945848896073609828920390639017846867367058205479037650208416648284113508718849766025105836578877302681295830355757892866879879258581421009964772423240020311199838271198654559103237538670142943303124746741189649794441600224679643054241126758741308923820722783258560001495339585788373967143719655795784167660589490229069493386926008606184769378057956084358943461487725716955262751416343771881435344914851681023130512138577391188670679093305785028768166473561673898149205530729558420082397057355023866014465590986598741572352666134964697177969410880587308949077884116432908710640282339243860076455671340693723120787022825003378704800364812404887886139746729570142789092860042052593250200280057988426079809182913514299234237337679439845337462941019726957270918051560266540395649461980727409804374158390489513429551928253124946887524792348159303186816717268001648778078819787306993443176992726370775334217149068063140439257834926474294509177653934313177486817904712241913442842793057950655145450278781897032121869344630003537938925168793900124223665260934621666794368497407186901868039915851903842238550565035340694905234676057385521502079636749438596937158210586513298847710840804093780453748170681693279027268018249035651184387394728743227210865333283654408575585499487625731250874994894894148006925537881122452200597979671329842861644625680617790746118234852430797251604442994406638118679542156659321260029840446134935882842544350259367375144468663936878895275949968974851849851163712494941768281425043670414572926828232230058110699856036399929467150193622745872556077365158938391375253615916314796165174781076938820312490684339642750584999493799386070848054851303356050989655712881366497585304206501833626478619847243620863486944212828220083964005462629895555323222017294189985994607218217423177208482167702744566742048134766748792947837831633040737080873716833164546575305183149221032480204586160858306120237959205111438141372484859732103564826344277921810584527285169202253262637770112835215556689180956253241927599091558880091969820965742045221963743375384929824194056951891807179419496423407464449646952390376621864849075748530135993061463244864570385098825858770308303723127951379483589433097376931980580530905818506565831908607446844938066348173073875298126522455747661320483226689113135350813046115176444619948168759789242165569941336734166573571253746582435530357112933699863418585360422360942967461324164057835798198887677635140326755836487528866752485267615973985170234288947140164530795863499940639854543308913948007772682616994992685261302441229144688517508374077038187733243881795138862205275210312056027176070373775279105013683058498298833571792112845243108288000331055045975682080786732585866070047460766679674344175753573885937474103544096765585717740697896307439661316635031089558643284260260120737181450776689252419642808759904003625710968869401141540374140673609237962529403595538798301873140795756386115377342336555460340977343361434507353553286044786250239443874689401269327320757811590777903932785458885369866173638324387970497876354257593318527876342168427689478403171047974538313473650249445513162759265019948320112993158898196396319038254225378870411123057054712423345992815163758597446142112025559087406593440784532246169569217969027843917970612705435689841562126376998734086157643463926499701959891167071142987839287081614140896515185572163808355043894510333702515563681020597152462140307661269088279778148797493284814131259236879701081687230290324808210051091094252943134686724455606929832853771288272503559621647544746996971798174034132991722124015680560209984652941303405938329499155988875297673338381547410091997577205982179150371706112102068671592046612977127632140214774079743165939273986311209253581785650392167477389120638049534363059000135080459129289925427560819744385106561630441657939560624289448328537528277986335463235227853336544418424759960617011484547321023069018764549702591127485541798649524714363570768606009708949441307278471377081185053454425932214605847039112678038171314462648139817194287675833251052850446469201246291689015026648459906712558019953788150475365008036012962477475456054346125791876193111502783072261914988505410312983986583438819706720279312852185534590718562614287221987776790340235854613942579251255311208784428788206700882479060907432185013265537150291464834219436360875451802915862533348214807676998187752934007396291535705358990941893004038762832822383402496024595331233676848270009960753698325303431749548280673927705466288338776625833605391512270028143390676025247816327619755774052537488660498649471786549896556689415372430075545084263892866596151072665976549997963809225845822668843874867554326968174379443018996964641150661601139185884552148924870156408702039249530059655920930193764234700541731761244758130374860226054840910158676379278575606934250270753065185204372542699449210255436413377368547209938765095169955445821127859347468086405544030469319374795992899928594033124102661483648721815831531346413985012140677013889095481505349208848416762633782952269017905855892607698007184171653562029735438335616130204521995509415303327684763010776025862137219498243158434117055730729063835837599305896588467139581368710958002434394989648700079656704283794578483294522501344445160941167735285673270794390046432306690594490031762992889702068176034759069058612494559759136510285283631009173795002411824343092466187865085144187474442453049646293763909994091609829316839406295550321272648726735961095925013615619256244709600512395041765418284475728831365527479730091608647559535909951539611467167984635516367025791406064786846416967270211877659976824141637273548011286029969175100039979844843186466980812075663058481426607701036516405933584994561373867425947975783764210952210419509486233426931705763715681228258089920741832101150631097314339145587970375057615889560804757897090286359139183187044608518456030786074895585646005320921899459257453490018385407445627496251874431881913207729017831320265160929848191513634811623072464185609214077211112507148267440683063768965367310044291336168688124326508460453082445996013035891901285286099506616617426441427795694032826883897801038926686940462189526788318306656054844954543242384261896131664201555081527836472471239336834660543359833531627466956216944544252896312019099872527869425929409831421630173858366482905444814362790478682567764549258064156664131837212010754298261833071731982671798993791866376796424461482004273444603954975385910752210535615602144514152165900334415086708125642299811731883826674374985799756337640086556897950627219319288531053124774784766310422144030894041900075387988782000678605011509067370085404129692066993121298481961394918411910550621752624899169380549945367292564946773405446411760957881402561719111948425803917445899155637887046141203529880150646755283923015328173073899769931030167699240163769389617216904791275885336847560992802524494683437082771190532764283332674222036496173754085185722627853903982213007593067887192612652166047837863058894548552015862256388655255969404302002953150617746683224290157895365390308522533551162152187365309532949933025364533956558928177075384101614702029765096165283861558557979662996016950187319739645910907471610828824532125784912654976057661400091468227128187775004876268777698536464314917003081700593102163005088007673236417010118824007174458255006565487381023560690653186291149094520856809639165742296931685206291202805437621292386228729327148620866847586459444990933718008778977955750763469529161972978768835582203116212485922987004907325685798654257898800038296157750710517955081078493611542705478518676294976864685966025883516498621912657350311238559060214780821488389547738842537832859657981553556713740528709885192557178566897780351529856060907076019147171990755361372912811639640974960303837798248424722883414898483645235852834012730827796026585160550339945800490199089410356185598690932894011148025177033104332184152306311375131277031313954671320508468291735592171894632126547258777280136744810293386468830021949266171377307143641755350876427305817039267874764351479720427463343605582996776141026308310736830136605342088923215898098126645891672164581831069110167951681466305011250599795756031292359041132222300209949782327857360548424528657105056837357865777225225526896131681518145600272034648925997923728818423946303546232155531328560067581891471435537136735599890312090946860425810262368694047540924015326765319639132805928408509252096353925313876798528787282789923332825416121890801436080747214184469985371356291608127755776963843374441705646004185578950509110719588018163180398889778988284686870881744902348568399431466169377178631539773921120530287467680102499405649168551407871825437869581303313480295877981136853934414575613315642612834102000716597139203637822604427632907250673909288976159937906613605795163831287764879397427333550268867842568985932954560899358422728843199626097897472887215645806900458444517583760108124565552694860538531487909537573225467563324936021331059585043190103759665536425756182772083768963947844108044625272207762773408618731853982410025377792729555344388622111074801355248263187974779845363430930754832094540889549827700359857846720518041178040316213942066651520872062551579451869740163839646551196259317460065820588520431952856166522581634288362567602726844174067596204565188929031935548784664005702776679601221220675086878770368574532029756971008655500941059625609094351322878408813357945335370383231327086847890036200556151889716394681515327948900113184408365117273198936140048239440731396218399016821906965674743092162373045199452213922213794054801184942453332981127110510708697212037137858407467397884205687206677399684995706539007140286373043077743725083997251536622759470001727326623958542223391097132073079824225505248258904606138130289712320168255225784274164203382314286637435641004943541136776033972872909550315327577066727639393331593676401673612682042718292938043240944544770079743518809219304878368882450366943825161548072224675866990811338380817300168665710388251953824177711332672490396683467792781547351045247782018172834788838257661593821582813952214104372864743619546537548627695922766964395297085015139168305114759829724602139262587799734515889002123900260108565182578482929182574829182060214590378540593885842210688006562932633829104978916479670980825095978169584656818523151731060240784457844665843098269823640250411703883750999190852385540670525451995918335016156104924617224565643683241431766362629830240087689571333402234238370841345194988370387150071199956076372488596668160256652702514845879914193850268510667444793398553020342542407881088214774731278770248258251321112412247927200574724497404815991797681579574942424063036615951584023033188113026474785604634113664970839478604244185764312277509306105636818711494607478795884852971421233919589220568897650532688030569888043879577689659873675609036323598857621090813732639000873260622907261233438319991287024638562204623078515585872619180335183544707865530349151261779910980728816047231741501196611917753211053386458532278469438174655793148366844908910051547760757183500994627503888465246490841580688376276316319568238412602314069231532954906742999263896038389777340633835731671060665213075342412104152104844538999063635535480888759182161607262962413273123034275580189028008339719075870804514147658061250319503508003052368076079129353051485311385464296231040553851831019473628968677227387341950240844780131090472650206218478201895737533554142450683420578911667033669792986853660439872478899399925161656687071329810240517766431336356943952491345363071374920489534876152516749141892935354778309299416426202275149972995170270914364319565560680786355823712909478271876069333221888867252289291735209311684488708763751999927179268558757162909247481425767429066459729409758620290899045718178001668520886853176472751332086814508396021421061144635632512265986488850366542327162493168332073767888556384965060541250363401596118640227634368090215548247449845498842729938865694153586443067678415471439894825415067963098871375276429633314006506326697062899263304448634056855260693496090478038820818464732395440367211806560029296993461558134356936599632899098774324201592385082757128707778088358282816085079151784601814540258606669082836617540350884923239506121055298811155774864572620542849451872817437581740138936203210789102773806943846600279655635692572348833719616660336959568178550378836039113702414096181653234797715312365979639163234210958242214750426404970640469569660378426510167945980296646118822215559981833876517585084045648945696234260577549216413163347785977894555837408524845840060818994412709497985216104001150975487621737173656168972514824804095354688415541887191067504194173711378157854155276432937668787522829218658555720024835798488421358818940342193635607588820955927922612530771970041267847497268355419811763765126490811310562982969110355487338916683389789729007828538236898885844134377362949688018851189413662097635868252748546964749731502662765942779020744211485457990159726404408348015656936686508480003419298522199995708978296590309488857071184675800281556375110883494602450490558126584542899233671064093273899940447999872565077913497890392983526533862755286993758289423973556463150404658959846142099763436666129009815121073480983895198275413501737615466252921143202282523802029395533710488887031519603418494425811047694208462794924265296645657210372556937862115685456825449467555072745617539819888321922393107356421506214257068728426715274888681621010484224652875229469573520012237440003016691616477134545935977967376706395503503637028581265424740224710299652920842395079863353289713389626283937504929525797525234385265046971285453967753582387742777789436621211264392240744711640248084092154186216068992433095105879764069413375115391662822248446291414029753533984932208889550947660966196475120584237792171014126186436559525980723673452577669504885143766996800854046119550148928784904892685865535478271511088924089765701091166360246074174182025185834871601676524013319680640482337652118427352883866011408764515258511957250285982225711132521126817106842381609779600822852223239602087590313259079335309023249816125828048733872272688436028054447945179872965128269947989979268582107763814082997488104452996720261497510564331895567850184186117074868378828881339130093505868714340535809237422662572993461197607712637991814527815969273599532908362743873664835985142106188516614545544636385598044177001566993908198971144887033422670021951349740889635365785903402002429123856118460222816140747490681887151749188051771375430236676581712070917166984142992538139406441085695261252391912620523672954890072931543525373967040332392750237022683146348708481244888658058707802069740974019092708918320682318790611558513439993055851308671031983642762221872730274267717013608781062381156374038550738874034584897039842395844710643358292612624717761806882472315994878686974140944948076374014519847517262447356891725882328781171441687557154879617967812992652392484159501776637845130185961813787904762590858378337415333617361238919869523432763571435686076798492715938230714686607243452349633708624546059613731968456566329046401652493774453567007982167816175878611361306620436320618139653395764466147444337793663491683007578991622424921251877368802066973262299662646429163695535835501667679741509660103700309266706158458948455662690090896445220641306715676143092197226132066859697566606210264393096841205828955453495018356185758018987330550925139426412631153598146857119968541249880227657468636851819427780487318851858220102039857654628877142669578992698061625450894068574912477120540174695438681539182219162305182796286733882178601685632056240438090412127531876237210683677520859452563049779181975506140616510359197250899155847111985754515077960570095294814517590467546045385373879213840998851866956214892316945395659067831596168035888327985363607463063877677126994169802034318175132578057477515410031471550919192400723157947050299929611188353919327739053017805695713155266659101321140087919197381016828669610107730065512767454930351511570754039016110268610772120319427924117499142527309109313358567202519800341157403527993643875956623718380543047022291728072077850959398821276595445451212342505473619457448294526606708037400790556784145999831805645453346810657561140843454180874111448260724676114816055282383643352922042043521547350456516870032948433043986433919609334330806866416345579996872459253597967948983215426186840088049858323832456693290676618065650101499859737722071684397835963673249092054079184909867745762478228850886362781019677010332533586561937687939810081718850531954121894908468089410954044191384724743114879703425529813267953450206037554602405926585422024195796006872755674841942600220569325704127045616870797693173630903543352610899825376763636005225603892989445957478219111906633299799250107565837883150063405855734299289146166385000477222545371676448728137694177132585770022427816160183142110246880719698629059273497846576581908670388397532022064247953750348372675697335229443048095296623011206368312596314229905741327836635119733272485048494363392700661117867833406455059370964255471531037960756706621539926747292153814697989470002584919928769535816525638257858771341571120982668704919530331527033857232861821007595913722985841163100173063400288349546643140694271126760709016054897519879852753088412520610258854540031948764686614585989856029760004766541143746886515425195661977856367215004308004258054717376501707228140143868061820969263479459399019658850714485213217312231307585212819389046543593433512509314141275009964473305919265244353703086332034305992897775315787735789507194426796713367447570027208351258825513232956346401865041955314281433503805298639853561901716956243200933323511876344575893129543195040592578422536464094153704906887851840951531844745963482906584840888199996647921864810795754991142751578063058680499873687251562559582428040200174107905655986356541032162002719775192775639592063955950187670170006044602270246453997564553371005875933820575769160598452308872791338464918582828876654405770542946921038749248309271639164371869918063588979449093151854873339399553033812665777813662578832423047558256356363199281686320278358523647019839716345873320271280706105587351798960961856458700897321218585967054257646822559474825787358968679697407959617809629178777632071856648465332290544961201344157332766158886802024605808261157723864781944888749487214800894144741270472035930969216119113152784887233291539792441077210588320911991721826529680150725517645467615121996562749962468524420221233824341088796108511007526289146628021141309275891306616682944290548348902011768633173695882382661555639306875688865652285369933310472536164019386685055049428440246702815814856757294276676540091605198296866529503959647782159245651814903359633334001702805793310912190488187978494617367441164192480384816776225227572210323903505012154745462237209412630043204101480570495613597739593438590154582057715352634816178949174180950009714727813022609040023425307762691586847167246065933184142016047813537109117933568012033625273639477990860561800151442522546029193154118592185171111297437718315542475711995270343309115377549022000028968570892339537438151852568340840230899147909565755076082428755629481832100295085552202797098822788094281297857060706219763984149397550018957765804830208464228410631930890694708148126250571741438438927964821621375428639805024800044255584971261869978529386303064930351590589629301548098398593459124108191578518805005589314875381018627344064321948097778820093729547785777154013709983967670205503776036954196027172495349244573856403036140159965293074260449499939959195645725673790849693476565389691961518936673115829566757097208034227943577961722707388236698431282463705199344787438989034136280122854740368748092268591495662187017677094710332700410488105501128914965961284958491694065829591856349276151821101831154698174838826709791132876108270935757441861131631564145753250014593577347851004036619444141388163044997784638227803218095232511352932809228414385535686343053398185281925792630781506965882976589384457292146980924666830728878635666411763918644189137683981049275932313279812951761912110413004556375052751278123270105008070068871250408803265310595775596653291522051235753269234341866215079281802415469316696240076402215720083739851099749022057907281222295909267669537686833842809467153060769042578723667760363100174704663057838983423615108193866212946757415509237646094389164753486423292081413076157808196677864701601153910742601927157845617481759741788611827951380291916772540441870392240984757192319770098785607833767765470377878758350770310370484503355531082346310369852330234277681234595221305870201325752305764105575919676670909827893283537701030835354434044844826670234147804979731464390307045079188772020715577390070236907635033324246458236586142530377877426141660948055144639957739140423995292278462098771350276851652873428672628842844029782025164725636866321125369696951017044394302079726607227014609941175161162567841808727603949804203528733415075991818466715807503307346793818319692194854236360266543428382283712397413056552565489280831685157594178034430540567548383111875099141703569690745524493223737097849654913283737737019669291757771640761037601904516501030936909567501085868998623422979198726762078235217818171707820580039004339970715219914477306296228482832905765967055833906640927975743628798832365407405002526205166770086654999143620225864770176348189535634053131254833132789891754488786907124820848839209121398719222641434090918227604469337291875592724457212745368678582871805513101120324464730474117697927549698650457303919655361145084117636711040487006205700786313877426145705934547406085234697675045445183568101095967190099638155373240298646649029218088366966384117007257429707458535423688582864849663399658477131796164690439988000235322737049881349432595228293981383549553143744048875533003212213030977833119760762565967288582798311882304760610922913046022629788441713870143540256018112007989062980011975758095202877817625957703821942631743064669278374201484574317722525355638774618147126867390132255085705522528275430973982901544510169646994069262476138862757233102764835358380742090506867234907619614207746607725296788939613354817668495914819306734354830183959978714874566813677435641673338519134684121902844876337668277347432521473790345855577307770737683632510496953461541160859179423234919106944881071096142843054719066075882264319952194544411840383381864914406918662499953658816869890809123302915715211651231924905539418992931936475728643762173952811421095591975412657576750745523835930192853039584823767448762549827018926353311775614111988090413582219985765507891589918613371735124799138904598498984769149462380880032195798847241281203369911302461809571218552094146372350160090567207040809306496983624737788611405781584145805409554712336698080254043330618739480206168798868291239056413485210442244847820809745239000280367321315578880903078369823826336437171190504603284226738060068922310392436634842089269233824324154394807708737260407360053860615392497560914408159804377233650291152255777324118495969921959365881991714449155728256743576277243217321479762058470250885119806488157484829792844726997803603816466540765910756378184971132235788451602720745069448534370127148518074151348921543119858212232966467003591425944646682411115295594296380675459381552559073318077650884730467082541849905160929931883625227836208393957380113781447594352001560022738464994592173144127779266774073653378939523453067260762648122706396042165029485778416206462234418420429738275585373562691404938058010848714820414012672858940326441476397321491114659017821637114171539487762762193809456231901599912355047701723891223943423206728963831660021666130406257496246763683981228981279081440204008768153199254980100297190362128271779373699602419897327489892389906607195996582029780470500266552362554104829155490639432904085920843225342307863772900961556645704934606161592911686331784557453822169603164136529731379561719250898145073424487036723982796836014713295244506605022531146737698386773667768868114856317078489360402720939053616690957555660938138910650048089676851435689340268699381526846818422578019068531708940563193281973624847819955908533963712831633800638807942239075758498374356813179785356386475180949482723917514972564717998285367307360453630405072329479871885674330163198939026271907683874931328832519599370074102150802037859927085084716840423362703773138337489539270617036950085421475158687412169045150794202827771787599157463009807161578660399969388675014625995489213454366131221773287138070779336162317901887725324323673757384902318672408546041698164946168682630489222893725649344945135676293745532159957169804471496555821317863759446382155808530314612601726731079054966741849434660315167052906230291235460364200748968921991362609870010118640252822056075918886589597589453959403001920151541346637248892029890679682036227254854483830586052508459345449113193993087512908948587291162966946588821182631413958740489669440247418124777127951716166129135070534507167262546994676111731847855897409779467567736733753191092396035264308059413737242870816512196566996773373924863273328789337298922506390765496194737141919418692158492787251496086381220319565731958574430783772814352035451837008789446318199647749040936392622499366102587045845490750414919236195037978838561892457558763514485857350154838946945067060550820883880882907018613879254559937645734526062708095482360090650971689725823513021499119926200577952940946559005462489113623335187642588212356174919810803805942299324435796733977968815724719529241110923546240692037494804133745868416311584873409496850915693005606749325152536933280470943185635969726919565743315700663995965072244717899913376016480488375407317459953265785306681528408730961200581535455197367889203617222559334013111679953829643787337962950594684671090335024084146843792712567451705878813272680619679597352678048031502275779306948044902568486373179593320759741716055647964681599044701170356274560189650312341582666711468637672899320370987369606433325265873553670188708226303388287963181820293888362415205714444729389817611204912918435675019451084674045872817482032624655974536576196916634043983096347280447863075148657656935103347178248289593171854080951234542205759716269709436759733608402570452421408679914440135956666526672931522220773766540449525062252179881201337033041878086527725392108736355883999392043293420893064356698079865239509736207718490259549516388336949903778618547576681709300858398301711538096579474961767864986628838753315627209450598420392587237082783898737273059709000506530076749509873250803399759055777618032630881550094984886153230492199471171440976754289709075896695336000865655296937505376128737940834557523374825532443807008544051534023026610169458759548846570674195914382576961501697619061872852167939502528911732775384291147068228379537527327187161568105532565667416734638845688882245918586217297518129889966731661622678455243601517803021785278039842808379126103749408049685725695293147089254426132444272516308878929836902545054491747428619962633412299321155769103834306753461319236291103909408449678489145097472938479550266055212746842756318977827129224315694796469559982292970340382436123765329378361483331477711682600317475145564921314954594950507622581848223271456113203328997660093041992362403576231661545720729880171498317891119510722057501374143294152973839029613937870853849852119268122821442245175771792816032256270037251658395094185304398967875698281389912450175069907674303205612590684791399444263192240000644325346979519928645910689927187867191823462018860020492112778719637832821818918732886108281303033426570689867799678044105622272592073566858349180600256046107936378699129488407658395271658555872893147058182103335359294592518362406626243825373658073946561480865514198699127617453087353628029976095866949796930364230940020700796297695406787380614692688566740343500732987776423536527164158295775944884995093561073122179053365448281486595505728441066552069963399847934003211445601916820942969443154292592272666003339958842055792816624429112886725779908783779471950771185137117979919823089021533998137981528724734695475632880466140016418895710025217942175611158764751183362707766557379442985767531018147343300712075230481827502733934844984693030175030640143705262046106361605435884196763989494549626237491424813804114138867597444278370495549126973904569469425434879559011527121076425547750355128118701012545885613721756954991751801302132197572355970060351300609223436824006449409916876773548614865201803982279264277694554583675310715976239515293723578776424174856425484642810562715768486170487715836442607767498666889967204206745496152288324697703724202792040892008558636650074828259244114206161624940438650126929135103721144694608620522029725189265600217555910223920979489743532094436850468658146196456980202807236531695786664954098682678200591176906121617201751808835103234302808288742911380202405505468940502684584954006349074799219862989763955938461792656140068988166975487791743973756578943739209492553745042045586986708957862616064286291660893534193194536028665665228280833424276166618533961070841164089187512758000266731507305861338551849450578629103791858382101610342604537339038129035535690497108098763822600783924287603316072859306340071765291990254942699040861077148649179910615638435932426732042782941270146886573205669194056136455543244626537818985343253699522817408934441261827669234780505895070138152874457072267325451139697415632572210717278944659803621623920935484439056624422225872923661896712624385072189392796347881058356540117708587295495159617676075666332041108028099699723707349274590369252777475441996409248186189701407394240497625202553722109735431286058415619922400435599276892641229448964981429768960632754938472401955768206470183530993021405354644795494635700207187292586636450677582014128681192214755583554183209818621384364832313850365383919481097418505123982644357287882255270286669665804218563993433722999633398529232086202165842896367213907066965095088390337094688362589988276887976439016899094688803303523812972064608278250511584836170968955034709566387761338325512714432323345624974640519642130016481267085183853026674276137352756418960586452033678005875165735682928961633796631644051778123634912520584532621410964645836356219127218964081624341894439486676131268236918920934279687962122217898393873571435780532441557200736919965363616971181075337278256984978368718391405424419362924088809879829953958958257192832477608849361740471957091958954005100506523571533046914710561335398714586210731550123056913209627229288128798417835429673794612557368115295094671172297209324912462288301520924632487100595139842955753930499821112747412826553091885990392577388477387877113973365240680847540961275831740968014010791088050335285639490858893833988128034476484629870337392806013104317633904613449071671306096287545189732113987361433201499022623081221876185226255106846618252551425425301801754897468483178780253578952945029176490256726039049878101531678211060214307315679932041262954902470763070645202455374676908109128862889812003714628185576915687697738549532745719511995586737977505429105903916317808971068919513759000315801798424457450566542373610404066088897912513782217208614660658305426852117414083627457190243043334990009956186600799048924963439975325304084973445813359782667655525166590382323842144196171272168122234186930202221032995269725168414218947506204543363241937544857807099676423809912496482155568282170934218455484152472170532895208687058773087621062239609085991858994332573252041547693071668402074221012266674496970069672978729434975900111197856106960635053262310803748380501521388624375249628672197650736490635997250982886566747262858543173372562298824134977736146861139871612811705499182138768517872364165038463353549123339540041132024076528113647207875348048927629869169703481106344435509696752190905535344588026625880470213003886822635432068099324281343551446588646620418207882856083527373052591589915348767455590459639993356661863270566153445990961293214068310734639716539029430992650486312955730345608504090310020114241027602089247169740243701718022410297163817222720114602548462437866778472488531525962186723621251344750473511224064342236995678972490107163731952523185575870875848322651099207486088163770194564329980097334534128890404883580342645096191816368790111636648871975917354609938877392177953973055364199830109247479371124986895191752391221663151965057951508045975802092031557046127553980449015430789556352523562855515688794358495110833929137600932656942179506221334170374260946459534752858470517655342152043644082506107080572540560106899947659569014370465352863834152397507336533908462100921637608454501524615282515067076661583699406081260485165067530279334698503807090887067495081427128003362713467117778704077265582715809596279154501334914858225966696246770695729152128722341600433416359561907059603982099400696835430225740988888160649091565046254999981365113768871915483675889229261686599023632191768574074115990533444011948146103228460624552249733881201274137633102630251075305114936577051093117614698733882167883623821453619929636467551732068168371618152034288502450366351114255223619299620506467207102406584111107116402050816065507276502072247708695363922217821110260809138181911330060532170211882430453141102737700786189981394680574397512446407653795821389749873266821683425428495241010926733413200774739604713925256508166170749971464055135682322249617097658106211189515599564386745704009513685854832307778355598444647458476560976752167547114729279718659476480820888561161796871988554248069453374324401608441710168898705677680474730854198122826008523817269774108214205482860893191793339174042367982151592318892684840797259339145455063173399059483954449762959506714359669901456165567098546184696733853920454383092809732111279010755795877041826261615448177346854371559972549211077582176768240098563194180668351480152292508677352701390553776915709384528927268892692761246234506908886905594480011856758560912084439154172538084323185805784923692942342178680652512730364778057422877542980141173133147074219023424329102141128993888717276274747941809810737226809069200221634805707727649878003906231340040841649616738145513644341301290583298397207507005544703055013065355878977052071857628965065482378115154476358944938705862157580286941476510484402737249615191464070653527411213174930978998020180831510799528185775945650373631138152036525615675496421909920606497828107383444754013120323135019781756357327846534442898186401088909158263224007357068331821963546562038513567474192323431094077247140084354852806652751935652555440772734356806864153374331296420553799273575764570080716581984307220623312285033827484111152925729031416458541184346232814872435595568994181495856379935668936433959496440538392905717546823988541250406109828154513744075534448516984210883384919430056202000474873976934763714075584451076255434275366390162575686805618894225712772474954391497348915882332991052860738959952566534118833562711439457603158326579853411738494967042211521528312928221605563310374037070540433102182082020524565885117850743379596731162564204384234465021322474424434629780405989342579977874057765976044304647928236398076566513873419206509975314349074549836763939415218749753775408440006689972056547513807658932704590462022114035301052124647619056796094084885577291268976370756740495343880568667718471558633785222872285707230396059513136015847156976316268169989345257106898147972816006118892431270404630058427162418879312381714360681038811644055884319617293504586634957390568971420586964861412973898902643814333595776849740974611628019516368855443149079480208429828820559893782007411166807126522613406045471987329127924289673887153972957929537958573978142028595895266112760422955593966336220265785309343811890632852626837903945421064560217980027102963530469604062164234669929098808302141165919337920437759577180658660421436080290212653326385055510130779590225629149415752501528469278500597509354305708458554715726456356736521883459414704863382993227738012123614673611092665924726489306171087197420971333106766469319773171716930200998319510910990121202605962925183039149908887802685165126297694930509969562888005666456575320319274232869030826974541454696442191970497468176882222311859324091451909762481534807043867540530711481815455676047939006606721937753856982745076877517445776750128160851787022631079863545795209324351156678603755345175542498099983814401941075620354322022415192254231810799199154901432409907267730898081193470756743362549627727174240683478439321032206513972796700655490485690055935666253608300335402037616021400431774495685995375653635405881640354304593155034403017876402462889751257710207727594304981728379936691332455701970451077024502042420974109424225322435355896758997127919163712317067768198608175340598870758144110904090286781059331714792550936540578348310342014676091800899960548403389973789792027898661744464508942015384257789844614000694976495930793155273124655369331816992841671438433437584128975034024500840589725319016142630843726102594942355495671588315158877397286881810617308765701666565293720770005280073508025960982262135577280206210547855915895139216160827801965850524514987901270351710057518475980622670369314762573489084035150420457054142137865487294019124507449246242013966323691343218004407164959834393383804539188564545273502728810981111958242465945294901440027723069141825320192646796530222456857218771515145522557735574660756733236390192242296186883746833590798720429746578671194476256785988452293258392062114926922037685894572039417526180135641418416866349096523965006341029712096788732419992991745335622316941885464237234582761658063738500621782818520917226759139711110857902906806701144887038024084121401307894695072089802336107950782184724718949093200124720089248083550552726137491607305196734354336930407508069674279441217464720461668035262011830798676877755270974318489648720019967321240363721151793553234726827938651487621950724978623953328642778421493959576956591211092365367954222870666099633294159756081522690928904931401208019669856343297338713970994492661914207012825344932848113226010105026815480578518331116649634356750145478432246795653963430827999408977431903087315219333560374632099569534585619148096181233123211004156823956526820347006985687145361055822766845595989845820886267676289955864454037954295573902695253727712629162231920313691233550858958080748464593257816702960649228228236330948405943347646386680591047551498599371113909528267452245238957549980315665870998849449331971774583862838608221287270933264788618644400218577896897066801276314308402142379755539463228429580703881559296185480153077034508598209472300131161591670451660863091687560712032955672101650128486522448592452922346577011657197606939328215861644832585761175017829424645166078287258497672954434868500015370975543051051892724175204355795264111036632335270404192636672989914422372804193725898954980229059205282816796020810005764261968232619213552662444350386539553053812345526772638585083603877729076997419202739117138799596695035592709583768404607048427750216268016061381932611177206114807225291308170275552554327663568734717490280928332901163717192553574866955432888410665032570292238056811129778416001255180556258289201023352665955946180223274708562425174818090878351220375438929277361027888843046360817473147625716549952726889468377162065257952699922634877690704937431985407957449857197954360289830027977545204827698836376001381157838197292975828772979020782086426299699122939762798331870853193989321969741508534943530652913296929689420610644661965558827683377841499222644416902473405585007412020318675494266102237182752711979969620793226396526702660585322445271343241558908629455514408342493622143798807880945310735598749526031031365795014337985353503946260840790952239349694135601621255914430376259044140430661711583678184544861059997468488259379922239146962527049871122464017027757285296360015164959775833987051630380278172557462696653628244726151970152634623802796201199110028105996818669263466358356613498510483192838745688682420464970049149279083617433422909410594438897953038142872091481952378509634081113624899366214423927298335243343776595078150348366942664567084312220166905259757597544808202428096870134383614722433843904033898868769422763442218217192139841191184795914747876454696495164005343354935628283290871903925589969194206423177466179788200470954179645623889257105234894536254813228959321122807217530711460095502562087743618293338301847923546624297103777363405090553742317318060897282638812454900122770256965995490286703278833593425969677639899582646825663902979890895478804154951674749665889006673733306110923912397509739028355655714165670251858297191610126712039326851418481735722180584808486698369202941462367254554291974943601979020274266147560958345263273932114415447801249036894332969433530327787846613829770919740100761938111257686685691162162310891657199335450141515148649554402005883748731159547097242876161389864246700225380832731472335138735689574940599636613493156983202862599611897240662205179770344434230284681746976294811447264013756603276591015883487165582134070902086000252299353779713745578332086354554489364041219022481405619910520881057205777953238655732437275293249138164020303382595945192586857840732673068875467316289065814554060543716579651067735288293747863468937800564757475729692657235511949120414611789880308905062315255455210236679238014470533688303021904576769348528029713895006178967568259796844019430113829633264015947173807965006245297601818694809126438431497385209020955471789648195800383828910195862490397178496677618203569701040049292626733028628342689286672609546658618705426867419019042162300193958056131118897230436585907072075141806065700838881747755346520215874015078983227258842955512742365823076641841243291500119614984415590346666165800242891789527451210167546982062506971378949319601437890058208366194226411555971910983429513011888219183310245791822913900574548290076654676173443801543688697888548991961507824400030979719022744452045509561620297743759714544100920416494051312250958804319503180027664390194655045544371683983060782088209222709184565467058540870937349212022660167717793354615309038427648080241211017293723976158091369586651664175567641744225737561312999240879479781942490573717801190019741279777108126866954402661705022945587547450238893896597416054557769332757081651485560038488785569552766455236313099873594324577438629652538598943106406831543452327145104322337897866283226049429774028964071281449416651825941947198829825339712632934426238543537040621341016795656892349378804771604672210885811505944509301414360551258205161762566221682410517112673492528067945507437247786458808292550713794524589760864331607250626310797594513399512008843458543950872664673426489759766059151137391681375138230762784270954892690567404746126008577709047312492092051986102906018184593575833586385733331648062419075565556070892811239535641093272307247718077409620137941104498228948663789764096110894169634403744673986664701241635681556602941374483110547256758302643326043688878336484859204041676512974422177130601913682101908936886335050935742648241443462376312794844108527359689908606421540814912964744442290616032099047669199861088592757647660783367025858931158408848186047181478368528890386333843112436420866909318785868279029747106104323492012392374829199839919418998916184703796764666849374841330772501641936965478398367142441789679591276456803324911731466531964281796711389709465705861472050716798022367545384676186041408782254318835088659367026863456733387645292697562640474963398414147144746004559697468687676840616171847848594589118566968592217650793852426840645050950873728810518999796351819137771775943426545654775085200023712536549717335467430232903847495708317287465407710983740121749594869594909873681997603810295391778700316491898448558979901342238687390805647668109951237202498955115253503873831955266321409886626340615038610916926076217016045226217356749014974879969797375274493556401769227300211918038269151488265974233569473377591464271255946588474812534151046800852351974817190808873597058654554699834825465307843868440695935505487644168233228470911914418818056615537791682751636624445028070945864374587751653177003352666112719830601299287728248414588889483041702525127409108781495572994924139935960848616247868103525415114705736299924882335342972690425962593159619080509689925412887627782018589045860112229793457513674498115236846104071575436196734019379099151571227757864306846489079637076331985312152288107514256311864572904629671300004188089285205639498884840369562770662422600307305709940983333824695220825840685942996044379196509625141099222953104307328205960679122560876843707309015171523489751469803182694886996942032866587660386118779721968622392631456457930333117366981802344791799258828691933991214773859866326848275205895330661337983610563062804249946801395442150455274782516372590335839220785997083599616432162730283971303261534684526201979321044916253498912840455841107631068080118089971962360324545666160207989164070436252723906895177011128481147512628014693099164237881259389302545567588629870522039840962746752918291257619275748076524080281634526518893708644209493404625354312642472683651393817687137601931255057491453145493469156587751119042630468481233631330647949216581778550747258750915376517104006064100155283393752338185024258341525775104843575453071383272776278658310842523578917722669855554901598574111644376590224172427666133284578353933565881853451912377487916121938189934051153152783462204416787368524588075478677293690277878944537457622793999169729555437505538511945250743185600191550769682739282321836486349547688449320140074485573225348394866708009577338003052772624055330793660184344413169915130016950143927101120398490197971755025933651233281781501421686978995715032722462981032851870740481384287393300415927781361822955619331679582150728647876778371499526687551345800446794909260354187579397983719479251356419601069968153390738488250647217743610775217372008386198213695865669112701576851497288720276623068116040133114048490838348943257987847992777928013949350229992371517395658356297332592195388252952742091645275217365785635574692406491721042195984903488929415779925350317393177879488468518231169523728761352754481389285340265682477971732534044840649187311422401492762134683837728829643195134799619855761472383913465988504807573620742777724923696516151345622555718510745258685235634042024702993707789839718871769413162923525027936237815236201773469331132618675579249585774226360112081816358323395474839451077273264612833021152077743731776495966860195904368000383387474676213535122133578547330324723232055114118784000515295154372820943481483121953923010296514222726893757299897514479034687014743722672139648748133191757937029421997505184329627970056979492531840849858635182452720636419269387839436328380501991775670880534932292163330436549530204306253935802242436971195494588507222539208370258433101638186571326814267758902600550542269970797491302510206917879029459192485591289179577758374873633783583855635864281690303250971993234773197992539356732739819361834507017922003662087611239347460428251387980973725608340888693320863357268800114954033786801884463018012401789675153228235777083142687464594791410754543014247370672091906301223564430165970069719192373640536290201980686638399024077000254842742317700426425599848251436532822369800287189764408804056692313368074042439097835900026953683234306165194942766352273173363420991241554503997512574375596238119099995923812233117573609521736854615453466693040121116760748197652031900933932007597409368270699765025983685882253098878263671294273389853488669793611123959196995697407722171831097985810415198311483722131349261748321554794785097896655800393219212244187762676405509429904450224107326193672147067550487045697146279502203569723168192640958364365161354563092152304690195749259126976577502796121188059276820752103873990523764294159036821693095675658493147177846125131279079667882626964164173659928212018885734374262397711113852599547683256840350395554157560681970519578673244904693481243869704685265155802100095128079855616576396524529360186988571844378270884307102851533944922821412211951169987105250584732801785568898217589892463727647197621837885469190391209292661426906803757255317326077038457221466308190890887632275742567928364767513164455651056575655404364162668435466064964562427762493031925467159066575970922569208093953134751303339952143339624145360731465791320703298024150469008112196353810232272463382056896150068802400929801782972587517279994646655221040952881799134473316291280969225578768672397964039119132502282701629925979880660960378624524329173431464118017946528019813304910679338312842560515934636163307433331416697649881379914182735316611961190859308271554389376380374226914622834648667745204650701861128362261902890420838190479378947238121793417723940056894809166511217409272597307284349173710167790586349401074838083808833931142761061512271189388693384159271756086998162577587399072964066303696363684038554306609658946268116825178615970551902770810702344575038111710900035092064360547367152350106741864656828622501793588629343641564885268418522659067798285501427380889889810266852853681937225553534781816511704391835846742534039345749741011330690720403990275874387413898468943599027026538873286462893618756598494157569631223611462317315387189759427179756659426027207781181910756244756609763589050303692445722730201622636059432721128971766331540855372343975995221372319699838821845811073161938661773662139842982487342666462215070195944168773099499848242110179458250732423471379004309676023411827289094027693891678947650844855624313105058546153089834509669116855097415482364615540885398569604464478345861237633625635159298002412410191040898861543014940763052579311645700392856418200328996910323897825029979353418123823366052249795371346235014276506502215274652795530869237610027355312821622359783661973428949945237165084456685629865808420458942205816924076343511553985829525296681913278912957727591997942531772540800478997447404188960804852481745897677101806144007232871221855558912347812671281423684139564802239358414897184843977115728771972623179662490368398432497711798690460945009269489404251395530039468097560609562308012358956821069126373576164142465072794369493155181157594199880324110134078594894088385612985602503902967234354968231943634770582164660062818982471427114563523832785260197415476096866390749432796070027745448899136744308917246852290237388007630764475516687978470473374077294563801351668050706551479697938834401384017314208190537281271955268128880178893864170321820521343807671284343114096815529285678330369357347844346354569278569177814998406642861231910490579118629792250224516133420501720231976697686368413742697620772922760682548500836981220286910859365382058489119036688037465474603876946315633927640992537741512084973565856035948520295882993808079963251986980566068545476873425192138118289025440667479745907151412708349744687092282964392656186991238583779938416699660985551138096923154650788646085586334705109545775904033228292791705031936771630832214071624449422358362970710733511317465220738428433587685071854413603071651551871761279288225908221453071005253176168540952810710288963799462437045882116637558536595066856356454757881956656682841914497598282565415436947122713817855517152387076700731217126150098500367865394575445263738642803603729858138936015130814344673562315823843456884954992521162872385729204280018027359106842437363135509418264189779270321479243826104350560046795030027113340613616354212907486809944975713124307916058088460602512026241263640867545026174499257100058061111111435554896120650588840026736056620451060149155335739955404397219675062177155653564804571145104535193661905880218549034779088804759961425064933583215095956947217938800033311980513676007763303383908552437303118579019631751544567758123477524748115920382647834946910694527157322824959321079221292281657606010640470015579469930837160493079348544777759861575885533964144148428604009655007627392626980710831772460790970528493529297042371688121715343549625432198569501077505520965873840636703110283506205529627388748291869567076190057574087725386197244946148154328176030035852647358330596656718334187873509564307273788385326875617346203205502973358852545995309009737995724628649040231755964244189601929852385782386892881192297191296184742415997846030678004639109624902595272981119441845708248355474689111122703509870281960842897424895939566907661003346599113486491507073850272062843828878079845134393131119224201791206349103019984792626755141649645699882643967755645452607010932207883014476433066917586948120298116733796237714013109330052026930929582674561978386893741753545434496530734992211933279749051481892809682555562826862555300587812168689877062976612561094859292064382933503897070649183949798565988825453343641614206050022909160604908851424341439399130097755640335705750147141814259742419589417975203754388612731787635594207380712837188736506808842698220022600208588991763884904529140083818954099788995923167094672882879148051333210125049205416520892978819511175190061206057197614064274778813357013490895564410645448084570071808239765971875617136122467049963155810566520929318439311373891329673892118920621182488923741791495782929701874454097874318479357281684048595162627289768601449859692810984183912421081754671892553721165314880681835956599999690623090676923071770633969920420162739623319067715336452514821941825074829943531877594645591780948294487883700738505200311188958067757913473701780457362889067292562891887072103383494200203054739369245416932971532713030014336167624366589449809168922748459315537448658463677343030208342936545741451553192796317513072773869902242464972355944630041904644430202784460277259209597421614037684049544318840021053854587187740923596527185117899362848830229296770095272972198525407416295281772708908044201055411710110138680737832254517665586316675049538108155813912603022105681519058008297578120302080143150146854292241929935182005799255019164613470873972886746603186325377885574734699845623062089461442445071177830187791665707805803499817875542786575865516912959911144497291006369599030686996103986455689257396572593023970245957163198180637244876787877550452866129547264403873715510066460423384416018061438026297682758502350273528254097131637840712744984303581745036113589317838470006663786432150946041677479654568702952637364570675822373100985486776589864044705902147961663107668053198020821984500838636053169301357336953819534749450383710541117316351956568710894537292484559668529099850664201152009283060013792610777512022782685512196251992929109592124860423175408066519932155474470462543690297653767041356788812573215965120778071264691782488063360038999712376153397655797640475039718793390917617878976342241225891969993429102362809746205679006408934321309415349942402803835358053900381585386883384639645395618404801421953416404347884450475433011433631055307773530641895901812432105947950601414473120283050895621678815464147270868541813010420671959754140364373003114821094374383896114360579871182182315186867380238320409339527547749051143461844522777994149991809777499690356239607139509132879329499612117407121796624729401417649575497200956666790706066757319726417170675549575016807707627017221851297199589828423283856985670272997308820497058121445117302207458553105893551301827370491915299179858110976939178445278804963296083866675045402126988732346754995270874509719123325530123733449506908523949149408533018606896742000421244746544466649151909549619652240555122110553424204431494574245047140069389063383880559633274193539477749546744213053847979610455605588000555472785339393397550839305080864482463485704703137338652613357155083921397611789413631294265032143605049501888350916348470686025553860163271657306705519225482952091205977240004933091317870816877483016407170432148471869240716799726597167742753881350509733304295469719766326502622220188839049150290941181203026175452741084943505772384555364802096439908575625790340776619740518126297932663317260295540075706633276584503819883713735805498543766174618039806468900312633292934023359692573530349674081421149969574528889655324992528433929343421158602310970364698594830498200582347786758952150179559026467557029638287657089955025491234609938634196402667280895477486771343910113209897284623642006825984756897347716905852718671869665793215002538529028164326905656531703785903435922342280187662883561389667026719487570686471727373583367190974010953311278458066047714500884442879830415331211030155515988073781817106470182624272984786632400651416672025987821478574445627234980113349377196759427720473748740825639516354636959763865403777641895121013078178102784624240966698736626345522632267998527607068398351618388036778535475420831603948916357190173843695214562013389333274120754780268627995093460400640855383988745645357125748575800980471691285096619042039405255808702120710486481533206278509501915929277164104850163418228115375500564401106263358368632279314824411799604768658149445234550350996847722340925569843507599789521216163620622879676928803926053535329637602555861179899790421580079405374675318180478277961733530438460357823527750451813096157393799696983144332591233919371095471565224562674270812096514211891233721393067743560217500863468121691136848874833341333703336885907822045927999690273324698224117387965205182731545577097897554700041206858339623020775473346287844023585099193155592696630097915369221468408376163805863292497240679572676760357220590526019752002493565185624990723421194562998713191369451541957648879172078541181715810113192136605599169027047225859981335041713985887380766135410828082194825281198337012637270619265153034607003923100018678178373648102643193081838001958265280178556539378877060964376788431358370571256424082047945550026979873014577888318757341633868559806083297415764208624576914411490951385291264538913608008921162586705331497286206734676404322277031914700673969717537100295744578377916096227751903725571897746194079753480673966838304954752044317573592454792728025437542896628414824750773328089580302210429997126958601627504237386901187656680017681211896804267057165107842406724857971786978260824075824450460571937802420651339203891540748360881381740976747870403836939468811155658160082613754139644707468903839197463231359909132229950077246131477808023255737872859965409200522467825810408442320186092533895053694585910944161948888104006794326202773195817176885175953678762495475345468583164657605387845797455450448512151870764141709301567939735473912688257720009504962893066547955988826055843490105718032347764306693514968608147544333586485181574909723184784498798430220230128455951190331984468847899066235551422499317310822399012083779777973911340719771219184669971606775082586951992033646431195279503479481422443875358806542412004986974518721089125781182734158630642983709784282658721862174225423882168793021948931703006395760475866273875007908465270351264525981946697925590054791131514520530056633145534132272884058192065534036386890634134124609514947215444294419840260345151816389579281663680610465096845773457502968474729901780118502376183534234755495189974324954362988061877326605215700552389088237049596038991743829061641152526243658532593448292481451883343409446677961018035747343050881328200432853288808249449827452132140371456927605834903792170255194704795448186870961532154180411211523507710169277738483390208735970605606828099812964551979660438314279621643821707358927220215977411194629888961754550784628739478817843801380167041437374688070378307253313706051077331546296764113682596949042969676448686064172304250187813846804137344156721019279864539263701555124465330850113833201733738215698498658233756084266437419139136509975198862710807263633020989933696309737606790372855848090174552627244936442716750176864806440010171881219296418243554280965174945997581965920110708303888162578251703317287452537098219074254267823010241495044950013888025898282096288196599980832313756815714880672373779904332919507715444227290219469714092226802409409158022196389099828620998726966573403130446545158875601583917697083645318588455331464453387713961773750102745770056637127306025175126341721475953738979859644242977623117487694368206657567813627872207123370732354738108618676049941700755129622223725392152611426282150510640304827008971827689414294495704654267433222121843054202184824163000082971041534869144520463056145060940982149312343663517504480155147866209168657734412841352017348540876193744803408269435942794640479950167742034260662171471231748532342895293401872610976080526543507354996853967321645837404560752889074813640455408333092500915078294177209596072982867463850047687472589544716996277713255951583050921328535128709435604473469939302406938087810557890898169427785902812026341508707041997936746572471644747396303359562513098943194036959204416455236617844758708202780470418949272958255467119279738315429150854332518574456569221780551220202863882006216407162986955012735454907066126612834263581369958792663745818825661533873710085865404334303425029166186064228584544825330095185008472451528267155752456835433443691688581040074384716484572950382875725085159113811760987409890098032196907520985151809123730557129260208829011259779156644479960011153327381623572956032325755464940558574406309776097829052169755217760197535405526589548731127787853545189104717107706695994240410041445933886827494098678935682445156379276393447034596951106743195573439782653766264184067626935060413908412128105036915581403190803718441910944000311217547646194365972919013090542069562709488293524678293607806745174526748872525779045841270299178054058630576961168478319137672602129213533180403740380225778551672105242388242651408719738674933891144253770965999947587931845510336293301855125995900070335198666364021108715318753044012516769759637126750220806859699228835250058997246947248267194012662819023106754461435856287826601822753267968186925637610601258626150439332482008242184216373466053561361371078734972182354889590885744814823466964212567854370152189076866188365968561112836500022090080701500617723558635992354364322959742038557035674371433464838838668847805235550255923562743424893789245388728321867024489750867772536835902948388972625694391504542009604000245206059290343868683617229684184307041539449911619685151780906114640545876077179480195063759495217653319082711999343584660188519379201930258243593055127509351695652951058986184428505042005991243295518544765651945834681935388621483755442418864054856876981332326496723770842267493578791529588391380934959860407802812947336678262325170451618862329361923115217145043408236679521602497727381924975474833095430773054545598515505399840537084317368493918220026388391215557466215599443387628083289669617247024319054757708964514333713332790087737267911808432727078838898161163959655164212532664616399723119517376039172876780011622417534681251106452695009032431118121987468701471152316923655758108589756254294249271922703898505854072250478003774313887770672145758962873313896568139272907672608820569538846047369125080586793360207336442247836203782998217627015610718981942427114942832493636804495253204621275096223074912102144109720549751539302786413362540059399626880376096100429654920604177012668214887121886005878200480514629136519599534776452406143096595203313064910515554604501423034313790452040773075625739225984781261962773740923383894676073026189968769315112109724563447779204572365492695651072925969009090089152637645288965663554585173322648012505049796917329251369219825140409518802157743583576002300759753815401191145152885688127745640479450144108534683981049058011713054540161458482381381627989949691882846327898954852668528479813647878172656472938256228615999722490287728819225810781459037028771792920073070513945766892339698143266977870084123251555552850130563306010012043592330490129335591960275581486592839483633960811648874303082687905906898008992147693131579139418097778464850054066218547094651102521665163874347812596690172830468734668782180096364486412708217160083329648783662451698023427867065614081421430238892545964001205089998374583396951473296259928478096875446214669818078447986922806045463496314964876926023542445501236934055185358566464472038983055718259496330469877097298055684524269073838165006698571483020269310363508623015703158634826247570263271389562038738293563422327434237364146229612748845510706020619392630054621927216593973347784037924316807264111110265854997319897631976504704352226120491216136124162908029270751281206398665975762146386550505317066380452883424060531891139996403365496910208508388623719263333766438086726795721471973965597101285258995744563787368312033996561883119852666932564451374668011349379288074736933516398616039703320542617758450688021486782123833290588730166079717119974113777411360385505955399925023055498229928593219754105878100075758805087373367796655222214202969338099010582124585916399441759465083290100810823268717710507479277773040088181447972388147161988280981999294146515752583693657924282637587164948902891233679533686925907263143099834545532585487760423028800876153834677828673290613081496165379538326278998670343525580746426917022253659894722270019395753176246191380521882526444055760567800899233488888570987457908878172885084761269393116333385587785225386286039790137139366705329701479782898282679693093806532133806789753564748820607598616390458163006732995986636097329272617739300598675427159427333060037140469581195026753567383010808998035295987136670469877544322694274332197561952730887048337835453475739044021971161050457656421305514809418806095997221025253476958909120444863632732673635835018121144651486208283215319476847935010578459953479686654812013580757776533811278527015832228331264163226743222054670224219788853036067337960903766765078802713686145138281048133606370483836200649008518748660636008242855662151108311391486094680425393383725420515437463600199594051950952201832215273136509894944776990565566796247718416904465751349998559950599605555743334561751857078846741595694574662357969841324975855455319336176217872446327834904619602357359293541280705629454871451024135992867239080917129867313449196236763361824060066112969888388752705683199896848269583316415562566156510817244626082824453725843127408825006998927472837314877745001990173924505364239177884893493558498590512882235535394657229628662221573365290011932896815616411974688816624977880427723219157790400110688062976984842170520654579473566514555453431266685714340352564085496353018301331101273050310094950532229918651712886948030930272543937166480138561927689242822568564651055601781391760462753919924670652986191274491157971557153272855028731823088411289296831874587841748900296813608980883060127915262688443674113424083913813205471420716263587605198008356811771110365781167191556077675891610752537956494339043025732901407817722095572167366101758659988581739186918913399895915482128687866225183633149946390487154280365805461123155378269395965868445317683965958915218133558346935190138499499853090778585699921631145341466726763970659650700790100492083934107786549036097053255048894427262266610314670464049609056109381214141034352318430489069396772309292362555999421644927037713168745001173357876650184482548509840726642108705330154714493659310930429348894349203639578796075173758557193912568863150109766546584270473058959807186048729096569066152870068297877825816812661465177709687669208462746525227958951954148329580187515382593536861150777088898415901269247541245868266753520857749988028203552637759886869416670732845073016545117137851172886159989616386605548186282004009891475047228722926469091140482383480378019776075960051803112348472492074199428166960625840549810025873892751304428654228914308379464297859424389197126573464831455807329117024160827249910705833052768052094169990737625998794514621333594538161385321965201553962061757688562144129555086682119400195813813333143548181490466839143103583962602183778438163903879484714976026346897292054903474828972287808030526024629523438715675097087084857500767392199660894133762207571698524828402194108444887938749795675866994585629896516554141621697745931533117235497059741637775386190288852290612467057166173340584433896624366746391607856901136505468180279015201324848606081236189621683207273354349309525330823003473626232264025487204581179521583581493841733841906725426069158064823101121728931575112390573461848867043437181973434977156259915392423667536165691043094403955838402802856802960494814203990474103288176612659847404678131496632370686266426999908371603349776301334983006827507456691538717970608206026739530087529380960515737067626473328355069207507768744627228861850968533149252989371060731856698833578678308231343853179592039570842271711787284638711690857698136817120451027606490669840331558907441876283176417316638445417868114770175006827976230697129149237798652679582746319173320022868941491982792610566829338564264893341796289969713738315133469044799007517226597729320583238531824005397917062606152844452271987227991734158513251533836831453262859536295145651590871816305289950188608979274956868274410148962512713438629378973857659767030894467754757591865365374810036498964048176944144546289295994136429551649282019232094927812992715455783487681031861694603592558819080306157647395549699388995374100499031354190261772439267350329482996718332725697211612237826421473072626337121819958702106862612999144490952167619888655584642435140710225550848245826516714603681492828391909435567111995716674752348784913495450627103508522198413141419455283819988600375275335869136961844975440345601993109008122645118997617497799968590480361326888664336986313476111281743115665597929189844267101073536384642544645758653666795600925424253490268770565549175494585793371696148825973960824227785660229742062557667632484322328476947276416745875082819372071747846896600417417013581211891782394907305931258273090050247986247773964486411970615759163705193205195417788736161237013572671986306876853280521969720266518204814813696949945865277579239120791062522353861409480218471555642373635386120645287007526903101415873280489418820327762156762696706630663462321051263517319514149097398043229820758317265387255318805553009271522504005614282853560889948187979725414633782680577630050630161442883188610413843216304438408886275840205134821042190111785274148134173285824342560708217891246329481731737835822238209729450025545082491176940336198999256945896790626604704737086963660698879230858090898777758417388241202377640096616504625060162791457861686871571598269197800386305731252945881285412802994881793148699163830527026839029911972616438130577064774339848295082033852377132862924308996242874309056957140416395191183842758089953784665038676075755942122114325845003857385982349148297798548853630145545461048704097327398097795418106677197339224246691895267149844921381983546824342049322602734172632545610386675173924701208306116380378943238445563253668817206649203044962533207466583375825945805164830027478813757789417068224078290883657617778375230544195695531251947265234352800080871018872359473067269566386817800924790562163933261600073762666667189687697471394202696216183488086714777271476523690768906777399578887395663920628534163279998320638292475402762604039603075828657511045430173361155315590434539421895232179629354052392004975620503720589337246131289402377280686955445990393985628965109420541109974268232847504513830444475803615381509027397946446418819033937552255458332376793446615658466559319022227393207321308513100212541611404709816893593190246243172531237250908494889648091741187778961963242171084049705154585729659825160437153290500896256066463559281858307516521050993816325181861027627491983093309193274080234306655012669094163754088126539009618978842644205264057882247596902474756049072561199372746579643098110374179092363871306613620302029176994249327716990112367421517958107783002208462999786249238418125051737457067422347348044880560943434268898780369642875013503745518999033096121154798572618426444077957934240861884938480877621064787156934915203802611836978122116340385890920592741489824512657760452766375234511520385989919240776550674189760482503943854223521882093277621976948999695575828819825310678200141892899684232855144481240501322021485045628170049137744436361698252925415263857431638732247530634330733830940994292387821928285907239128391699908366490229002304986569457787990127047940278138712851518471783105898306106622331979768292441477090829285518239404917099408986831152270299686846172362226527195752502673353150380920503009365791812281980022935058510228547304225889221617582587461467383929155148404874008290313325819269455020751608776450061984452731016487610515890062340757543518453588374399929685329303317193861486013705749724811645081364335025875928136132604393045446088152423180720044117594216357000942122761499771695929928879440734513113118053766480920753585688345227149210290354640002369030562705222236475325246598914756133847824022558456657902222975578365003233566042692777068502713678423820916699314771075005227593300634814143940112965560320049319856182368663771380843749818920183931990118347844677403530082813796682160270842304324831390156844294667757778744294458122837362064473414383957062338436674761549530386830286991671247217890221469292369589346569387402994202922580171517617828537012464988199618355577883513486891123511192133701020148035989247972023737646401178859993064803486900804584936707325010875237498364807897126335335809527356296505118775099798274971653644292782129130665730792475472558923993127186803336923573419072709061191543428608925058791736324784088357180013794241385889607588746505184537902911398991079158828131530347572892631034078327766463971020644829234681400700184004018002899079397784903313215489260223039456605355942255009111285662224846610422072832127010206015505990353897789236320060855473406784391573522351625814514070148077541690628952680232244282202135808254335684214008871880081327068105171001132828363445502395440972048354510804915281079207242325422434173558650718453097546394562593269560279281943590767776761483962863323403876777426094147283197056445628942087921617312105879607944793948798352938007827108900025266469621000316051870242008457561897878834443430548719562991531399357615156761272371673526520687023212068953217072071157835985408924459949856738854572601625991528831853535965899677919793235334392980991701844930672719171179346334157267459791222961380270076773852967786653256339181583215643105103547743175860577293573483927703012239200692110406074348118574354276525245896497262747890204561281196529079440237301115519354928818503149110432842745487014101504037050583126977228535516966388498788137946213694069226697586329919737731613103112493027920824878603720605024279985567515103209725268038980544783334093074434033822095211890523051358902294817638431565852682575580818246653478970863230289664068681887377641785261691587971965580404264130389319803071736069515145961360153167328986381387221116541810906289088725846100906353738481045665988021381836226241357136583580383372189010243928980734235992638312874025765209944956862789264563351286934784516875157066005429034542108835347751798140970317389672499300651398539340066584875210934580736202531366939946078383427795716970985293652751280399614389772009164382788598501794439510919232002198803527795849841118625107581117954837277900307436744192057942332741016460441882389530403292917434845565858766356447223836530747687123087697960813328213627628753366284331021470609115347261801703652586590437754275895005757785019477634340882549041538731819475208369245220919252513450561305082282182660314077681407291117874279989845941733805032455849246836295269840418294201939831650134171985005461408109294993680421305706650415952765037310336191086236004189314743379350590337027976470008462897861648153212798043230665857270369732686628873911870642173483030771065384113322451542970174321013702971654023502513272376567501539301248453697982622521866917089912253016822798001071066509771510407216593320091546830979809689792395135733930059272695754354398342260556942481569171885200837328414245207545852954222825356261172102650973923546595907701276003471480487014362283776610894681350844352299972734474032947711146607168130426998811227130998722882689739438070829560123372995101260096949150751849367669042176458146046833997100892305134441278694502452215460157914530783233116145430029056831768836253809885453851303184383348932308898701797329760362143041161127373970974656064976776735332291693760835488729038390883479734237138609186937900488921952275789051458010685843608122318021877557007709170711317117819563176852740977081315459333889891557910419408643883001105793520123217329337441861561177488408639904009554990778369955695931922850342536740342540192622142916032461061830240755630473887523279288191458910346729550152088840587673709647174302037102105442205435456173836167848267770476229636467708908357215825894959244456905623478772744338440577973498657646923484603658320780829696163335113209307150454168757908335482108172609620820089493096343711376558089601191118736618837913895576734463217893047751865379892073484805377631574242238524328387795988248843176522541463469671798752757727848606154400597634939318764413649029286101405176333040497141202158736760382652922891099996890721607979277585234072990997775008990612819790743199770708401345086024272965481894098526986983831589625981931156926369906477254431983275582871433906602470816489351432904442285539830360987031007259389709867763214900221387563649971153737147790465472050071659072014868487083980272553066705702537287295278276681353402698703277588257139415184478982067919813784491320576262932611450978063537581467215394517370895646077441478779912758006968412949827946514354111705627196186382631053908583532128853133178544219047517150637481929417881213730769127184231073337224040861795633923304018470611837307191592043169809426487401948137574785476891501799471971201445348154880893399085887534212034976240533307241679390000039705478752082777395213987037980193500014047209826512552952370625606614226232137015606781839560208845160271261193444070766439860065636980774327034613183268185939935178614630374336465840470740371775886310783123742064079777266393898993287610346209624554177172499887752866647807241187900766575288780564840677300685118697782809158367591909091661094617825834399437214355784023618169524917834045698570627992468544974757666703432180844741303450565474668081444616003945096001245557779647409497381737815254347910067640972083940751960273141465577761672838997992530041560512564483038904562224292558910795786639896277490348006265480011479252310319665210271500361301048160484956653664197124561270449926800078686296281483546076209489503197440584807423974245091798093123778255161810771956551341282928195384463997213913071532067761158332996342440319814507280915179113289941026895399052084688864568158730877502828183539285103936817326412949059443690798199714816101953389101342938205626933082504911959267412596984921537235192784892892221802582380872234075981347380718419315152332457827739329461707630190115930534797120418470434400130088759708134879415216175151493573380740314782072664794460568371024725892588805298660483269581232261912145724721758812147699784388692878769384665620167336620370180134130138415647904590767592089895144195975300425759208515986176049112648900919575071922675799463057718422911307700873637158249848002778360828772419794570122754767860331917234743808364742261204584239452167541068023052933027169606651257193317020228097339007727420219715255361029239425217961538224851784232174955612782417780254419211495225517320340203931745961043629914943784749187576563519274109351461058359298935306528040784242124081841067982385015846153621576546974989537347413804463060970654120700710606057308377167232693052073364756377337567785652324011181712371937909174324953920170044064632789967298593837806747901313388095297029895005537269148724446335810871504038217435376330126811515418038537562283654711316076057028436635989092608127989528244692872850995476735909788837779194497894325825783667872322459283277447372895765956233168948520577783138063930034514719339624626280112921118730746599904124449492364545690525778385895563141290376419356294415375633091862724652091111516537970721315177711347892900972535993047777759797540773234492370139961742109700992672680959961855783702028753876056644933111910368315597382465361373270125477821560670107715276418978697710781579020426529975370140507657336620662616277321625850286698325511867491252442667368713377489154669609993700191336234546605263795549347584664277554458778706138248238899589636949657586837514906197074605990621945048592046045919741206215903885390581044251601822554581855560427029006754998435702492167647623861371630422870964842726909562100583245927695319452381829423128531250299449623163496622118655174810372148332347669531086745976626104969296545145965455595145897719964293625687120917782173706109547612038742843636633510502369626753938858759932216879484823201121876695464374803453124152093649465068018685070011753114473261918756793582868285448169486736516821473932138458628628848733895766569448560127136457809566625961084761178973290066958049459246625560657618072539310357633564394085249250178887291119985133658678647310829673050720116271087499599476622782762421928849599294407929159310067934304768133153842942143700535519265277198174983229480917201354644046095694148672717002100422293992824838656171920774740006428089178164152616336583272763188581826355758611833305127594895490823135981323466519889277163365886147778994757562350221872138347943317141868248651966272355871886579730107041080116255719347936047150044817671953816127729724370159798072029139310734695514563374436859027650017116934085991815751458593485325832807582095637193778787673090551161421046535048982337625317793513637357785778848992476869664876645095210965986113521348651757230890129362371853915672160718560353494121924649284965194581676438402094120930508439427569397175074593371452070860317521626372981192576685053127838547612067868813124798106427006925809801875295975703098171946491641434935863881569404049332558440580974217516791269717584577839615942482195003630651813017536099782049521063807150047733100256773896456678112015820754847181782284077207084279924289841737268347046926203669149145251379076634826397352284205408162238441927535024227295341762947541170527408489769948538849602423365082457101037169500001642464364183724155823492667379990558380882052769941583785979732348566263611018395452267234548651428351359231201968678854552841763606726640175464495030922575294644457559990501701071260287282574609929460491844161370583320294748108433968346940628730344997671459753405016533482834955999220901480450382419379834674980530796810159434887044355690636973355488091619612563956896020284955132297203757734726156363245359683398730101349204709778397001550936392380459900428150111004914486822290977765637013231681985813763346945398772571236283366735900907861575450912306491939358938702156330138912739138160255096319998497286160616327605217801664169944063967981329060822499267057286282217812920882345403946778108919771675924082433531920353376871199317600731338773176023526385254894605542392964752569649060865411297679132984288027480426749230025342791541409791706208335863557407495316107059331981733770026821075015040902388038420428686659460348401763675676347870817629739328423114467158002205574978316429794426314775431159527964592560750115898338633623237934061665967266272082496658533995684558646204181020915572578550906575372237473469159568110660212892489518291758995650797003171199827735947727152019617821132388524657149594314907117261015042171466630852024914792500401223352128293751123523461984673931218791203123625056250983613986475562218079035341155687574788587019654980889291918106923723710085938697443589753281571037172270869097410780410383500781099248873062137256112352409518886330364905770445909103162050762628555814936877496853656724890381079232113701228011244790893638029975483579013271557345591485195185916306286549037590972813915832156474902370168980280603629145943696889717847866476154207376118204527211247225148611541896439498993066904931774453019249271524870236758528155446854532992735522472841942287740759496492605171558599738704947858829350167922985731577923447720475296575711293628313205135087425260573680448321845013490361338707634185819926542763390793835382299692582359399445200307912631876504020817853945475506150724981265392647238130931710031273685515817270746554960507854178393989063073904230429542247918907828091471227400442943920538918986042937423213424191329362992387754954910259734925105917007932463553530370165242013724220099282666867085611249654845050523672716284098540852013967258041146360173881497330627270282346363027621439145935242825520055217967327721846993675677641636768842389861284444821136203912289312789891160864936319232354729544012158425954475899881176483500200523233266136772422775191318198987778106062293289368683495890840974440106183316651223873808969316845781393709647198283939369730675446612997404470474338855624415460248177133211395135551774566872837403661822535325292730950885491751593521784270095428790416763793030769745018907495614203413066242450604350078762981517312612734984564352360589959367000662543740077233752981122440933465351200043796291132632880333162708580166161297865285779636854548828978633301262291576239868406740015948887154992790674802285594556369839033479977551807087250091523065734642723390151382437655603158633900042661254379175898286746685865235221189882751469980796224667611261831380147014729523625428307587025959674702577969462577237861056446195946563573624095042879456538461642598273881016050668401404661021506353137025395073133106011696315067117115801658912442004159582624036494831451565656725729785396217474598929846733697142900133629749506816897158462451917925414327220456017089942931030982848793716011188703280040165905917935154365818883881236642591643867377384926822028744665640887432511058127322976533260940748931680505420451746347885846876376905503154315568892677170247539594108711678824958942948830521696610728570954091961580237899663100057063993840460303006476927118776802873501343982296002426185117504216177694046413413456121631194219919821637558934982220671223163417382933719188546336187823909028081481182892940824777697040952961533312826440118918731548968969217812979939601530823243308468497754162527437598190098484276875791662836115246781582818288256135656661596125319763077943799977469560444528083349312412765421960148581401262881353713253129345422625532591459458141975849080751276063560508090537167099087714744285682518254518900650058732799920021685806577062642879682963009057334731194916101860800387543074596945977296276709900896417140022010436309942465581754147446049928529785942960092016354792492065393855175616938293334943381559264552352770328326678425620027259853636844668170396365522472321796330332136799572568270892336882483761388170776012807493238080816136984634852143610157574143417581056934189214555868666651048962016478885679540027923610564711254952939493267350283533158010260681417213922902913261225625693825821515264883152094864901468157819417763251187436193428358763999887350518171050888511902733750678818349929454261917272631437125985164561452896987168774368469282124379182432887744311003361062724724376456151127979289679077327926816992899262505750280410181475102295206209427554327718426109487644746237351084726920301898836263774949012159616964720751717551854693633021288305353498345806461413921821980588824850427486197070391988519195499962354157479150486842463702414603424496853166263285210850817906177940242619248699529538375104592238512165089026122561332451033242838729175783343514130891771034837162531370666043225929900282237183123744430134099768430957558995907765088863447988828857021779609381361274859262741384459519446483992878246262499996326896558543663397038857795422176433391357239258194095004572237362155078919857534864102852096892935136299403876517688448671958237681601032773808850960582665805796812272227260395843570853756493491356765436054109139925948106230633286917827195680395753094860408268460954806378523098078376116718396098921746084381548853919270659032398199548405274658241855972245754718142296978682398038789379548391521184153095119365466126326649810632345538369549553554862411173523160397278857163006957671800498862931091727317771221692160125530542486618855194437867524858646318230924300550092150137466021573867724762515633382198825100478069526290980756744506623729363784509576537029526223658565015561472074238240108980046264043580687766465710150510465133498534058324248463880008545966938690329701317931734380090484971784909917268870221740502128538411911035517486049141687400740881212832320965151207585958831664561067416253919233537063168801869660116480521389428650371303401627895777433984479231497620007997037048562307910686109471149904470588020158683091599871346459836089359452604088085819177935457414241694331543254160448853414760432380075151279970698997651712741648028825743341293617131291116091896310146824453887558466399340096073145585504847455852271461710876148255689080583458264632067211418424877345785290282057142339263052782367126301666534596837614655145793188509482189207372061252490586346157353706192940636975031408549024054973699404949916984310984601422813659617909915047039489235869937680707484815403821337507848547159506649274122977188894087523923515425163105058149119419103118403972452923133199973137677990399531228214597852265093275835163403684053299384191608397630750163895614522320839622737012682117239628477525528562943107967099328497917436251728007829447054273866510616424838152093900814196191458949095901126686519376976770265134660705273638325304701282968675322500721300355436023521296629687824433088837823382616283330239499462363712345008392094492551702925799197046235744233213140235725832920527578480909186973438673476632040245795777783441612999361701021528803624794342424118234183272720590509019346746075288096052548639641069423148299651695624091247949053778126564484235204772446680393019288213075055071388212328150405225829902801670738834561080345409955937529893139080916010094113462083110297175543409932748437339942939615864341499146661337208093647644641877157852831768644651235111837431751923051689287301480540008120186532329029122451390346862413636569710006756695854881597966409700701661392898086522148972794362925834164131404675691622615970029903551781932797638788885953884919222360510330828367296025218769182373133642929832874252507403720258726980775254734678400018795458396023520724870815799990155907277713303255947375412849755258987723959235648989008271750679879687793600638866790790677833531347549938108607023854969993065376444797238786879339364897323139011367231793635585648319487293898193063494935477136435800529505327861901474617547745359625146783446064326065588213465035581712691999857166870612513316116174598429997269441347637461386710694773801717268671318497548969474951805736924587360605921171147352725174096485475458210923351166819899479737458890972015077184427262000371954288282387366640675505677373517578330455141735074008338331087929504089655844421811464684659740025209140712924861559283938548939214619110148846015667071876297301101611033017365034847892561410052767898702437690463845948706755128657749007453644234840442992896746545283444418105331204251406777829767315301035704834876731747974570235132519814579629719846411736992591213509016821810413958114096332089426744138656730087821029114295617137378646291460514259469541143259832286462138617858983441541218743855474777599948149407068313994133620702948813019348861282904923628532770335844753709511922416625475468963224364313660938360665544527111567617025770196513950230785687733509583723227836720553221098258656521267108260132670895015678613737730306039666637701635392087084685972279416641379658047757486810699003274436142703494864727370782856269844823248879595353830925169791483581364710493841653767796154727403917698281396501791916234471992694315923433469440408866577130009118825091544233568669796249381777078756927233868822204591756411968018094073426442573927556670177145045342150649970961971021574371411910943913720442830424685799887704055703566715800939490111874237786901170911821487400628815808183467933503586167759214138828691698915652638090989286550266213535136531812835857677892394054605701543002979569520456278969986161905520126927253689821751716230812650137329015280850543776017076887708168640930236416042933504533919459486742805226842276559401040651798378662619445458306768618224100038317327198757894182114212374287407401695581575991296611434131575128083788747073491437923626973660117620653019937301792038694021475445067820049863806255453998266775963249851706200467107166474311368516639094284406655067307157152564482030351611118643975694285729427433301970283584287733669456663579068912384308956015878432946793235296909317670113516284785994085150257655939190690515378334038548278504504837980500869100880871122859216306901324245011938885138912978488766880350198311678799216643201566046224957266615014396911694360056244415378643743393511610000183347481982490217641558523196137004448133353067114134798414274178450958785603653911582480649351460827714945778761429628812533820325741782654293388916579131629993933420708795510945804028194159780544886000140008670874125557414442339580890749915599568715506303840797139844484867201183009790190538169001644092778462168319397726691398826206642880365490394103291582885442885526243553854466100278565794385844332779146318645819901777762342596252495174619565085952007904966438023413276544590810848228945108351574485973793567962347172919618862320215540866668083428772344026907735415203540572607860025296655266824603165993744232067841695540451369544887660232859991029633145554529172477095467790120483868847567824945755665430094022936966691199666737565922106131875791534874720167321990832759989997746622316461873112359874882061844930243072392122168551265021345621912553762304071269063531387382858392415544354965356570797734485346486534434947422255509228946923972613318174663641476506870939993511987916942417031538416823470492678276886817247486587367029663433124886430130889891462924184515655312993039721119565906336541136789579972327540554607454676071412239826355196572240051567841736070716527780865673352665075388805046086070207598080923156815415126578742244363691328115679387456546946013301968076916778507321969122863567701355382541384354031295290057719565204713835690926607061114825523222592839487971640995050555616609524308561936440282498716813962407582195561738753364163579470187035933685925492637906661464874909155864741236370384885967454103393297062126635660666963012848943855321647837732039351322482757106949892024353398325203234229549765561010885203717089276230034802109434904143272319037195062971247979597762548827795623145279754863867005432783001907338840691333655534381969267410176437447803960476962092380466785513620098689689942965678125688223775759388401866147750142286398689157716328017025692617214324000612001421281380303302370265823961159992043362727501242806421482428689808137688981137456393773951155623143923516174067263839963962020599505747574220663487403546573914109060203498604019698132775064521488490065008966693415132589293317836473042272840291389914101069979568362797010175767050028794257628798787820898495570029599149903057431219137687577600540892372500033913247296355333438144790585038720116052969069741729528569838382931849850530075083149540126604811027749481363241521011650139137179329115854897525999630901476659518697954122362400625452771173627216012701668856123267356797144800535897877205372797391838311066259306300116871635617911571354330195624016348942768825206124076597836665569885562698061650081924562991471312722585759592048072613175164288491904259572242835278714531465433587159563256358336947921777670250410159950075517262404422228957662441426322494810769653255607738246947776550811196999941360090223522283089910484165751338832181178631062656234707818552201457895780464032826937457463754220506793764907350360081339155136402771990889148621222199202689993399005162560910053642998968469228266198820659498730139071024404320698758627165683429686868927382874594396561964821509313391064610811282632468038651526509494704619089740239656439664323131110169970324535412296469582277567352205315980169736531590224911794582481712943231450095923987921119168976159590541688271159322137773794610522508021760767955144953944285539235738883365092100946168862308317265071898690383357945346458507507091507973991170141895510794233418148437677530574929698689197727091170069939197455257264661229567402159314642661251391912444704271087894991051492120222170004696467956492687426651659813961174520627966282531847409696608158054805306936784178659649000282343272817055001124964327236990834509590812981130726821643144665376867687782195510913968662954116333914020328770341191374603073727412606755066375087551401779061978037772171568280494862163753952978481194134021220903478527946833533743165557355286146914114498150317093834305690733719054878596959435244274894573976589069857393457625593485594369232845650416480884532400518898495747707103743453655247055572357150764363006946078530574386798040650270454205330521939689724491737958059252077561678884193911298398435382841636715188164625989212020240283605004818876058030836468074981597222029017991195213339536503555359132041745850744499110405718117512061285291883920021725515390343803765819194606249592753508712309599942590060634490902345716784417517142007651340921916349682551035323411345709832196654824778850292153026667498666086290873636444205843204998679514557369517553735029238286677612114919369424261014148847126436228604939647645871038167272432055637948440810449925915176177841521670191215799751972260604783501016190353374019147546826257923868771480114067942023410756369963049545345885938675499929105093067735455228660438594473983949351140369149115098772507372625369971974915521697314780529054348069311715202252197018141985855747747221793688655381776458653227612393659768304296785535088929014819129054306285924024215668256000073915012962621806514097494029668704335016308971429181603390895236793350513449515635827681983424614443023718064501725407861821417686731325057124099007127972258985157162836753750582338236008729877627615848320827427787493758162702066051876431972069590235140124416374943421168469712358558646659441258218448070078674050765238635031971435338702396416265077538879611126816259435759485932523544915687447060565120126365045496403119198565117204447218171794348897944343516834189391108151434538631427403938830509341377248781811562074217161012521892998643523383667061078510685538737805289820105896415261736207113051776049202552256874833357023801964726756174973871137396119885110798810545250927093871801494180870476880075047460634179714558181298608988795218070768336305859890468908158676481662834592017937996785377395477005650270024269635615000307168769313442888396170394600784701589955756056088668789031532362225262110662360632745650520929743997989120892314727971246555213950664249283018713401034075762448347969618978819314530294145132376644183877735549475431379588865112477257638085204942374608138081198454178523908420548525167437389007081184957357465964091931237381010063159917177281069885418352645890482628617567938184376883974166841898491396551667250957234030962735320915863665155950992602963967952613530490136534357443152302554859672243406667214525619162365118196815546091334561370422326826622746067447332898808446522754976575058782400991056135433022600877691300808811952647240857882259127617324546913741198072382058027620410243945021114457821322861542114504430489045845287230180247064525074808583273894458462562712090747970763207427427858503519784044635564797187015972709150517150431829617895831297131150353691587812423790483074607826526519173468845793649593299244433817034618593723547322333199323961872842114745282144309417928640796444432651308180090402183428711761027849341817908137989818740741503336703140413445287707427034871227036349762517619155081599251421058387219484919488575676252344417852377334249706325907527350318437544593606224585773241979842828219932733534100472137629773922287224916230380310389006071180513215152878508767818588697338997222457272860797318460882462477857019569078775400239148672840123540495170415970338792610404517339796880769130494837168406795665810795274074205006770373339517869936742524833023552535095488610804242850606411347928314936583480756408632149701752357066974593338217152804546617647249389220400959670536683304055651981706439868978971060171056595416358672411988093248620090706763909331752274358045472004967713429816982258014768461906126059791064369773933734709223213501054266666848996687859453328657605210117789543402778249632714017289568307021110826196911568561423212220437730527426821684746257979247406603786224610665186204490173067108802905076677360379557340741001498534926297305866736080942837883520290041774525824945582775484069815027589563276341505970005909803814555684652273985509450448048044119420712753833768968175197636059325197457529109336636385585936442123831725583062934428839022782737340920835142623104046263715528264923481261281370001723867852256774709183420817084035876713939531980747917889513248538903724664091757991405089073257861665976018206416516070623997773909079145685020108389973359404691018089952592948620734653565821386881498787066354889482870378669492059365990795658284234306077344660488144471080856155877449468680631419125193484854978293492424002815324509761349998872297237375027842761419678203143392210506047384188400469598731071789743606229373014696169314263328137153960438050647496842043359791245000699453594453647357489420308808823653967701196774045237571441163775101953573872400272871650697817243666916047629777370735493359842812585951524942985478726738682016799071986535491367298266314612548897350904449004133357758893892008713335186789286215943709175388158080105200073266219849286478510010166112211692099075284634137136419309087353763173549496630629125823016600963968246916163271211025827564729596833550612492220450054254478776095265417548810917637701105631302807540122283230209191026133442081078160569054175292386382102504234285213508317586321864946089577841421315691369620477490979395346703316522233550322765257291344380807132841272359565948019062159909122000080016026919135873581591117388413458758591432005597043661386029615654989885749806891383888574341504278127735678781572840483230073973512121465882569952956628738243357912579269431086655830343384268680313718383017337499779123685602739189791169374041984250194552354852270679217479198428185642114494803647189839446451667381711250977791089721483787669477326284960301437047510316093708302934507340302568255580635332577594229728823697019219079954103125468090217381599190946088673768339934675093852173734011809562183547148106809334081222766687202511876701529315106535872850176301070785047893589554095982085556053200470681443103329034183230576511492453737693740474572914109629323665657096363210842205791287863739533676672561909943615875140702127981967077779252096512185221442150182176136003937165199400911977017051098970465348909193315857460932809669846513106614169503515048689606965651835626479240577212957508626258470539852394829598960879318858120217696050942037652112379759163925197628092565921614923319344288712288021607515971751942190258943550589040263056284302909460208842812816641771493395639049982444779664143236447912077185241668556556816339817014528959320305771882824691436519917126090999464513230068733277347427967667393453275242550673166290027888526276483314232087037474569858234397617324992714889298835949929546377546655720940613188339664533095437182677441251937851801473252656055867918387300289151202118781212024987609447002802465166850236703123948861342758761469412355603648087377343558632428052994972164453295491234173144451350271716179934415994639598710476894469288539712039573159252830134596939626943313524874117574394498919428262362486613076188354111030206573709804022615138364924902241328278655995053687089913999592835144683977613933280923482190757512084927925417526871150906668208585986522319900883779840267713438879913955734390784369628052594208591566448789914338807700149292584728932269651241777009455949207692320742373851966538927410000833080983173867963939119470195421452942777268661139602988200197133446819700653404912312305345667328752490897406463486105463062155177336799932056481025162034772243291137162929780693737396348253180182377189512589367901322816485890047377952545280368981602656949702167239072652673646896146000580048938639798452357704715479334091058624296270405617478484089476907193190211850221118346273176820019858784601744976625569214922813156542045092637849326169036340750005959009292456496187031478336280053668689955660771886198524458320960779982711202862341038016129506542664156819621002567203707427685898332035696477211910469344721544869161381210066063049472124657628002565193352886919969621298071101681105225036144403256495031491463242722413526447301145970013712337122205812063654919261940713542284060215228294269816863888257751450615646372492202836528123036300140220672296891865865316335715532148473585947279609830721720185005114066278004081129058593304547941857040839102850936791267211230617652898192882252288565579774649110733364751227970145416775982296292251911179321054518022742530401171763301153720767331877238522974262504383304953724255503564827926499691855427747497706091947264791803970641907921637027357450418592639103958673879488139205046238262502141847668068626143062347089644010473381688697205011943210015592712049527439513225490527965471711051493499365343801519191136115687328406805861736374631046617505503840463266420727505051865934170082262611004055793780561716085170662038062901832088370110058719508096258577453918949403288954728656025797193671037990652546317832500101754365187537701943673762222896459812819362812630489846953954310774144901959036452079344483544612180348656398488126838808912795698273134444392027670787712470753973432830135551861482263110907791793401839601526191950901730430305508615023865507401603692812403030480947472370161812762462218903473226455329986559479671839020662246422425742942726386094733781639189763397434896152310430902594346070965589753917255364181402352356755188268041906788187784381464851958795588110906531062452025206682168225611041016242784892554643756968743999686749208295854554895537191982237672207593987222892216775230580572386483904888522059786634880190264672692841216887330588954168296225323182500291194351643657048229496501630274023205033343561355696331421642373793023890681943146136556959911196331825726842998406426558130886109788719343497767116386658851264549566857162237484772990747937871128404410653496168131924435783858773486305804391043601410112217206433751589331551709641114704629371388881887205395809764548495600149604639474137186973338794637414243333018967491860572861974969555373060892427435347049047332138637654191091744937291060871283032729115375644401621927445948229883332573541739805057051827555938694974171873799323053829256004958081774418129382543852069040824541703681697511199928209401029252783671586442545758468063931476462363039513037603938386896193553416926471848686456770480485830161698509097551326476448426994740673293710288206693483684109139242047822287741359925476999062969234046499442688309183318790835923572209160970163116249588537755638623810310766342015382925601748041211577858637439709600380622434853834507177085879438820463956507388970329916703645511087741549612569098656681760547295496802367763745323381164797078058003801741119573030236830407310957917257918782448036725346641356528610339433195632612333717238366475657946579533141728448161514922652644856155933303982381785343997689558988293755613801169931860889267015813451171856175991173204506641096392287088164746432749473433896120530138640784995844970384828270642565820134353889357792899843079607639743707405873491633399613899630069609559411940592695003374158830390527917897583727947873319177463842013213344211360142310546766937287903523013074659207609552099533026845938217451760375528512023966477061646458112947930302058811380035089416143719009845293275872696736890345312934911746000938738349999129957799767492811810840102503266257185884153612009555999823554701558847003890079225608086103039285099065290975739643889495921074105539972188283167130600752397462875872364860727376675751242036325846102819857155021033356182489001049309080729633525819720236155121423321173836389707617366610081155697894468453817051561476704619344696186147954190395924340332854702090095357423245917735839692135651246237215607315573048326136097377461016073932086278177834303150677037625132848237606764824443844695809148667074912251905567549585693990436616061594376229863418979457672273602984876927791577726831138363510770263170378642985330126882749839841792112206080149480282078285876426605334288816187988248104969460037858209540009357826718105095457629172454562891430612441069708203574309204787734270472531478054371102138122891300149291606974846887548073367611550955661521938269100915465493126387758451856925828262550516786558094786115014241188675264508892669887281282766008260737963581565263406505594629250119774206652120143588007215797098221837680932924823280778814527030707434435859549725959113492895205027687927857903879293934755390489362047271087602807304727561328683370367203504850384988010370872064522407137036688764934361564026456024645086219707725821541081374989778205390442596879741656794326099337896885642036300221739466654468046304202954588373963642653615109385870031076745682757260753620767768684640160613437655757266348917894462385664966018088332597529362315365352993503253457475591588289486566606765626431464747909307628849692830143730984485816312886111610839398274146995710114757188026120320838384064863531857830474315981708790149871946870650740470698495614620068436478125740512547554657974080823876460875222352085143318671828038366535885892549011559197125647377395439852103202871473635523219571513837407283742770512296608077736585656296318262140968690542776929828850594348090969912481583570170082002003181467266719298680621251994221454075406511720559719877821604693503952606821664749092391232404798609607087906456651606870074498522216401676732493802825161945510911486180439062519624092753803211576181437533729191018217620124475333367986997942927311029347789642525243274084706971945433491941604787418948204634276189869833192017448699438356074996998455416072038961527861660844035693543231038762474689764072964872122899818118039297118077372922054841457948268496577100957295412765699307223859225109385801788496039804971009757482884867797651022306737770069380866145465921267251690545027008038832141207078597255890197189708945032145112978508707903014906194460209724810392950187073012247917430273058018816324257060417665825465155206295724521837239184298013645355547956881867040280206158571990404331165404640980410568419099159477313276249857253395774743762241108821388372806409940749504393112392229004497214399547624390338618762857753399039528322808872534983521301021885823362639316935492840942379500317195676190099138878165378117303069866015100538762310504253938752269237368156766817948186872040938339752693019573446976767947546438232515217809101256994350407713942655951109002903126619464918860072293430099580743519768997042675980771412493367984297915685974940834402055719854740184188907326148144460170281429819539785674350666016739008854134237973249461545264503945516389224497891126931840457289823902180485345340374673448936609121019358543264597896653801786631754665896996999090435566966619592941409776362204035864172694706940738450920435876762300245531827188132960179872144127705445344057135898344766885311688394858723743977105237361051460689984865524751042725973592218375880446418480355368070913883991980497088173036766216104275836215552875460131846634982924196586893597652260353985610249688326002091873745370353365921161251131579002536251507573986739255417678569857741985884223902389822543771888010806368458578409069369556487694120446240906429389491439631858838610353997765102078153023778074389634053857709916905489324610168022368073968846288127911960023101139526314639402818722391480589654741462674910475868531075113980105164744206804110131896926927649405054254274926221888554390600090328565410119408314323697999570245177315351006953929334738291352417151194577634643919532962399904138482618311901166308199119959433363420252448139200333513066407319468870668697642403531725380308771945986227379227586850439715712260411577045471087882703428344786598977563546103698905838248954885401193570563865033543651680432815613615154485901550517233156829743667678687747913732915727697006417703352511305942638129146575077339748915298206003025548229730243957713722796835200267652067321779793395667449972207639669514958043542752468374269936145458507724971911415932598092463279384964175206284769494834471543235030445758796677998200807158029337611243653950569035346886503966536298362210903024558889194812957997383622536499921673076941163513678870383510080525290448296920994991230091887312362382851813504270051440215605502055240057786493245343672820979045773829376203919544065082854761230357205643710116958406938925618308196395231804085185773371995944624402700079974875949442597590698253910123819505727196291015655716220382718177557693560204357622602381920891586219495912052023131046776821692509978027395365059379861903633025237975219508009726917201672944166660614016762007705955262787119454196244512006329166645305529883941328376522468713193045273536542547840461913405683338229561718304003810051273894329151985578800833632792498382116698469088243104011019219808354295296255854474793000142118457186322476169575080784670903002741398902835803707637708200730400884209182461007624797397991443858653150882033135850768338866493777163600264268878220090033837905177123393863622165780210783245376551527084047677317900574295086668306181441930438973657519087227596467960187543290032644883267593177663571223002170841388094274714373504653887995052412315788558193286016951945836384179441362163289546962081513245995681236828143372877651641912658256254114347209956693495369198899505444843928561721248251059819343681574326172778982043619160577007356626850612831083745693919543647281702812455384283178129982749654081138445271343143759289485437046619622632780941767433125112644309480576637894953334204362034375683090000090643188092491667627406314404539342329737506108895594677875533293844288325746178141606575896306557987737095782226633598911373138533857100179478683003767050856908369419351277296337743463525832772459258471659721870356165151635544539063076065600764887259951156977359386862710393605148115020358753198954034240613104813292942780659272994487980502886888120399925884006551760013130960703892584197877255985774173819030170406795094611572243036416341059211164111324409409687493952541649190166130303103247306020907829470413717620405985470117334632967587580420343953511185439822488023810911730028077857668677514246700510798366999763782835068024600846044521944283666208361776037687562166327974590482181657594691483872004174282167447512996862873542140419393190116151919014950017306638286697005440095031833058796322559863420628676447152613951129403028816921907609175044039899632448054828277354291785856183269415052425838958679399410738326618212847144775555889045687448399422396517883089889478737988581172120703266781257049654579425092525604850629590912043955910444092418233690594787401832397172883676865245192688676274353659219897169731800420871726850997293760777634868774183214791463397362223619151013247759530417432842460087134250421575443483987949786182994708533579386751461506866063217415536639894285576094975918885018364249366331652014803374630263231351690075523952938565421395120497844806767269603628092437382073324716292720802243241963713016305285213266465464493123428897240284098993052558380426165911580744381113699013762611564657708178683810738863797053335003882091066068719779305253177793549853400331125837497827781920073792960040463825743683786074157441112349805959124428788215700455473917184376650864337331252719640014608033627840635375682776740737306908971343121416198055753885040030992143341122350334600550855507499271672714213964063493695487223834620490058527934278513200503875573853192455847391849226625197194834326756120056248956389744736347743354199464656050558027938012592651624893272020609685637068436555317825041350720940611082572496066512083249749075111263179865232051616707852237366132694403560250913854798443376936000849238050558410693675463024546005003110380788098856385556477122248360780229219167606370293424100138959843737767468850608490465466083386143508791135609328577998382410217969562236498538655469524371971687712475486080202082234059633456366858727402520167604242930980132989176594863340372715488972892929385481602138901799861879189169607390938952851787066923979648904712224129395147069045388624678688076167652631425695029801476233824472333117304608159462330892018636602780614054949675096349425110417192426494411887726573186159360700738884803556816881361479638067273044106144567127241713155759024241086496553972214175516569342533707211809140213464800461908404058312734524857687148633892022020393424621966754580679005259874130189868510500875189541779847449460385135328384484616836940298423604227486112068001783139864667547992094254688775467161301420663606528901718257756168538274517111386941648637373943105022058285517223989924876737167821726663336305418169772165609961585296814946298032782147674044219080049726945541579521220353603306502723072041629205268238260086960588528074308854545760646405943705686372094881837976516358704425920160374068079646599353311540596802556559625392733016771148908259108987997079257408471470390466431396238968343560201621233014839587149895119856050011517052031490074516339633363579122570972440305936177660846921006518879318410585510325098787237692511201814344872027540513630799666113057203038410095352416713836545198892726767672790131850766137087128520404948894283482789942620167684104790979248329635714309648412094028923458151756465146295171997177927894410521535617355521949161674425464092101770797139476794077246362474743079590114972028371290355087896525476384926926354698897540152106258351256585595382437195567313327094501543363019105363381344168471720270935346732063584837194983637640643501176576687289645918326833064045246074257018513045420396692387406509567875918109066365595536924425979098657508885196989585329799637007231213167318236026322837731238243303833733818630949711776729278906046509321899934298342696242636919849575339984833489224346783640111382035853260966525043807499289105144334711032371026813833358177497804322663771683045752521274378764595750213416693341169782259298687743038596745309766128452130692382692297454753061171136288537456826864003319402987052554227613175109226995314857865138347952373245463080534865082829703033441403287257999526543369980793515750147152985934129309645983413963183720894238701945590673661687555448203234077651677836707971628775888440307964359568016779277748853978231820307116590655365121726736392284165375929275428494333474646943681985987428192552613446284777412489825697175025536355641593971585878986539756209660202966527585902728110025700728736478119746622869945658294465832982039917482626280411867772560320038660549436206421802700692807944435333071794609700683931848043807851880985477393735489655679384103279135682998563886043011791107659151350705961697013557544552054006404682996479270248992455764972592381739397345393198945744697045295714640725471197609858191278567122292474471810731968398173806412151163622857447294724825942748024170499276247071885153551144154402319674094375071722479017691292361653226477462166310914536822939806923145713447691117597977760398721664857457673143566037209310994469652597790627880639454161816646146702011997145870398706272994617777175470513799086971547028945075960067065533280349558089028750824966353843580625760013496476996962668646239501062196996018473357931736535754286893042450185892833832995470683744681206822088557958889002594429063275786032321321534714693004463165974866982130861067675059273721927880489624189500708491162573487566032887190861748342048673753069565297300227555499692969779791284923042418432337075360994781868251908312442275588018159231326155927533649615916063789180067819149824116688671120862742787033452478104770849017868860177114758936165949404228136843801472430440188749386768635542607490919156915596426722806841982603931024700814127366789510328143086928180144534999565312748198705355788758380601104909894836711136035543604706222310781935042147201387189433181069795236512475769202180561672661861520263008807228032610930924928283112968795830733501085699713992278078034821986987658481706993011028912377266092309272827024195676752645178955891043086847389565546702049408447360544703334157518213052498875316688830474390313021258649188233134393931459817660438425526499005581470999595151862352494280078158138773456457685571006194000358876680081949340847337873640962363947241392118750259950764368794961802645173528858616523648048135292383322444282890882547807468986059269281891863662733115584902695852892910699122034562802224185474564272486921365350873065335959471913324021946498859802564867166585148891918861236986883271014676914209067800522596803646021631518768223517771985925922365301909199604011161423252629409198917585361513955911370753517688119151960238811448903285882821524988538221828632269819436256591551616141984110835597576538518466275105715358171845283603227127232901742619643190586742055359895970515786051717019549933825779206574390752222087300964858219994972078218396117207520948919275619516878172882720469322209173016348415794201542505605143307292687462183217080436391600115941284648252187402136196486746059642936265665275555887678687692243255028462390640008561176582834738842973403347356089478534937197268642945167873329130471829753409135282540758373131742055389178253281887885041660406863029864752767080137073629245581086852008983253601381566162523990619119792256802670097167351654796222569461894794661315445445297151189254295904385346626671283604268605134222569789927499484519832337492669520429795703993843791153437142319054775659247172272370261874356573622335607959808301458514595064743349335328561891763637258687741516766700774973249430399368964129174233711675875275365508373695055539412515150199355005306213916681585321785633590409488998904530899392245622315246082451992958877262600040407770545349415707186579370939973324455486149611631748887498267634466006984187435267303103897630920660915686219819490779829092327283587482026734604527075487085360736814264932489523595059983868799847327235560970536393509161657176939465242062619186255915517620151173261330539342110345174797228075055500630767334961844798151730870891929783152569031445670392680285587173105041527440993435358501867956552112032772515981501335006089319991303312074301583071607945455950942872534927429081488872806598837206892246251398464593080385302742348293312380820577566320064225599880668243088049839076228817336091095205878510953479508042069097904223783219977386355145930290308565461945574224199050204086209758017207268305394504735361471700942455330854880103165720899515657674433751577074648931108820009419184856007590875832409173984234113291188987533053556206309995251453341865139895604723740699434627906559000694169909430986643769892655638841773958793786617719841051208333643788896007438952208730665705813916707250639760547032413085867938113751813207944495279583166676837232682855973915834008278811687935300850470971458484241374396935031638951768398389357391671756963288171646443371027254763587465442664113336519386241277682941187706948467843569413123001662382006026480372352346646176488372920339378131573424408480049168385591124137719676739062895553435689748061413599371249293014779221911502287512825584739257922979817368109235630648401174622101544199467558623844779038432890045385730215581089456031619659786349103663637381055090346654299221737159524685040888584900044281281925002552121266356819837425727859029387791901273098999808194767454798317393572492969797689434543397266104966634370313148177138860720053393285570573057433128897056020458656115900861341133598564547310098278734458464701493259439172238968761290924840516471784605232499798498079610784899476902063649770512961293917068288353690446080208871495403054648046275799497109394606831539527559530481278959402511650246121649767441431152717233770536494324419975631950101021920887503224035898386218708614410350052370664409853645977614507687299326759325868707040598021851498144755674264654119456791154719433086764301439740657783046469446489586317135721106429276491649663001643259627854012386714775214706367163814903520394468772376728004480274229644048024481034906679553045131457852142401287291560244824403933139258171586411339245471734678033055944132943041502487892262166892846522205118397733649043566016926126753275876772597786611291016784433055258639122349056822614418548275167615516935656451505038016138637386038076941695560747731873536880676272234182105326728367833320170287324057410763144556760980152158314474552538560139868642506936934150557058940492539144309153623741420855763671211686030485718581227306851402815034735977651926043933691252404324654531758163560177849983552705353065625816861943775540024549289212897415566625245220477513940206643296170235695200216363533529144613250562414975765250611748103003760005927867154181038198382981557639808729740106065211808085993649363168023011330969789541238082420163634287522375200204632635468351221283772653450184341829359114289415193992684617577701464378449628242378478730535488337275509420761075213371034111711400848115341728598936132110792398989442524838519696801327796544793587577113638846783344944734474065454907746292089186515981496017129876714504049785555500759552494925534278440849208469740772878846463419458197420349263349013070015479468902526723581776459854606070926069754757506562371717840301834265698672917836341012293762084295298246661087607850679092457442786468281247096272942290143570763389218999386908967421113138905058292427699134770810707219262027914091971321018401044749600154733646336544491389070936222372901878379561757696763078343391535442279991297735124160990607307788247583193528415740827901262007529635102528841127972516474998280343270228856358760265085597320090967992186625203091388034480813919079981227243439003078893560358704998562365902635104781445322045139237090916261703751069950337111779753999334338475663352904834814164353615280241182360151176386597374108135245081070506397237210379116745387076486471957027227562162912264150628160449265817160985212994716036571133244332422410779525708171465684354207045446785012326175188083568525648277785151188936695240234814178500812562430893008774824016989127704756485589018785705679528754182042843663738884618866518352592661229695504014329621964633645903464516432528813481156326339680980239838666347024940272660487645035012674442219383490216273368072264001782191669975452717719164205246199772459992148332340183976376433022701592084761550292639651795025106850643782058340055386586849265532097329636851412062874872300809818396125477279936112978384667529316767199838369741021790236952269475499866173273863774734333635975374684414902846641189181812370998033614748237005004117261833038776671148180703502639216016145551394216670793824793863000345361292138274974321143152712821576555326521182157515106214767771135401172215220762326370826841613318371133076548277834229272121448821893455613647025214741054108956026295904156625880324122697120057261643631505567201467052287942798867173093263828037189227447774793694569821259398708371372863095662099289955545297250871112545765795036208629958995083948929981983045653117243431167291878649953582781825537734460739905710419507176561529735210683830639730914799020744227693851749937599449758471108723738950015663624286440701142387266201792957821887867837739327125205220403625445502902192568676599810615330399470101611683428928963932033546216263695474976008731446060769416620596132550817748840090817959055542617377941721231415063355482365883301004512407696366151769092297723737521626245975527136584710371497911748694958272280437172363054421914133091282698569895866695090865592995888891674962306246778642281833700894636338524544805480574847165440837847743314361214879755609370180836658731346444442417112006150186706568967802550449203820327462102485542654586456599272980582684823345529160338494832648000383501074926500428757212032382241276546019831350871463868154999347468469773439407599831396871841305041689234971218982614324386373688730953359362189927921964474008569491422319486625441372694066010179264888879418277157870673097668296496739109759373532303239310488028627456632068437254925189300087342729820548807265859196140479153204543097989633413424697412771737866682029485245559650381335668176385388901461304109404312130747839747935602842541364851255903722558833362639059031099693012227578249472243837088342502176207083790731019746520898724897665815132876345369275240013453276498440097431028894824728108381496259104403239388861008718511364442681342278693713007734794291547451420512874653021307598196309407606707813324360647479630595667190567840030923167458778770008491982409980719256411071347934379424503560777915801565757092552029047293865234574722262114387386469789449576369228418635983547855800112457667910211039991258914832662489129141645500352257669682156246055311512054997184813118467964828142465586286184298621128487624451342641773166110317797337381746632127631528599450472774321780793648009093084462941043495886387260404685219655711964033946988353342912746080041986693104507717587609993191517837603671657731331075155853888785401993778353365909691280266652687353707585355376612732985798139959748594702178538364600394294812865357758535224165928313309588008785311540783375958302689442560040438417579659193685249033998948780474777549850262537486122961973617811940737192741602337198168875829365918383389935444755304461027743720952620813464045868544859052471220313725289402746975959397989087674613223549330136192977053860007518628085029366214866214152349076783345240034894297807129342585076932305532253590597490059723572751797942573297945734062889595960371540040950610924240090338235548177380927238915966471482424643229238616963444740458051172204687266387950778495887164098887923170217127749759406873079890536967035066593579107642319598906351744454028515445610101758156184073197072057161836838857894126203360068514927746574088035282732616983601688723814710376522467313541212425174078948423353893493334169110605583582863324561851366246775595345620259977070619655376890317979682804582365109869547322214251042160819158742304759078365024009639700481347030282927630250176340299222662615186302251225104004299653321808794942955035929558745318690181436543906649100758506765438655132560360234232677743989675823532812256390137531133294891574961073479719540270499894918650577024264830859042189175212445335615458974847209308234383177942079207307034360832634290484546411531788574610318456636530938783612793659314373640860583048207264455360647079162219010276362862606485576531368006991809009230349719891404782240207026636647038153776796624927212135313556503173323993432046685424305438623325475752070564180141512094127513371327314125989228724581854493617549986335726000579918543336170278949535737581316408548947524501824603126386429816614499533164303237495114778976814123898258563483564531932398040402221835575016327929075384036034167134367749077111925528308523275060107270747844300731165034089684921062190837375155320548578016349754064814726155039635718125326204930177330440548490676085589263673316234551904271556117656884025684179184897970343559557503929166071718527956912154063880726332956027931324284915105633660604625972287459576368640325552375232977857673681497923271576096855534685713803029781614210731225046897915511884258111013365240398651135278890632888305012020904712807577017769193290731372647089919087503439573513617655204506083200086665652991001550635648586263927006962430367260068409151314665865782230470715702809482369154528762512443718784770165145825626252512530870797136024330304092069395807349680007382328274917085126444887939620577705347809666602230292785847750989136389536785109462106430211044651652051809157391340600633362402514806410185387742673871705494326763352068983593959560240266627908823223925877233465989724272595704008874968708928272418254604787298113446409857175820632802279944638626353768819344812874541540256458843725791235908417167016322639103814843982672713329541315163806239524105227597579731010569852431733913370477644002801233821822125464819731817574319925746907864769696834109438064204583938704819076213710066519835039882689321647481819583008692681549100894439334384426395369006797124376612348641918735635581213960395113689253506578483080613085296400661252753401307891578016444639557242006439443425871062535272803457556611954659932632265122302811809934358090188188627818933494070903037612719948174976784631155327013006763290047538725734436353856210962973294464714369192142898131281907430447008873760345062710248477663049269734558359420751368826965713098623182010913387377365031153744420465020928645225761163765180465857062910836149644871360803709196799753178711194690534642976668655253017480470212205336292040152304246053134593219538000270112158451786468415078929152275145023021024333642256371102890186127430589451112043129289440609322513423299174840748706244447319320727150028771843895339350816378123892445685308449042077103904032547183684167388575394278524363909750974599294392174511793204977779421113148710605391240377547682655094762795195052530848235137570191411254524538835457451224214677697333611206581583396899689535212153661275241554223259790397505433088362571304666334386338732295449370975439431847902197672305133634472332123895631798668988406829998945761915957770088625035445182842851386524400861053611295433683564838084076603756522158874106463638934737710758265422658463446857433851492217114539145862442246248696416148422721571216829600281461378667075728901670370992750819644479356656021101732969090864943953272873776390979496986033577560759925753011889253578200866890677986240027522910427412735278191001394600888629909998185106035336598611746765091138909950910058720153759845301296540444832112551383569527347777047549922373060919221814995758111987198144559701631093245058428575247005190041942086627958025591656796199627764180346822482876050749840846810699453269547384320404773962030312971371334660454741405832414330417800265859584381030312793505697444634767363935010669471019437535761761980628976932827860509792058783312049813571727876367274667676318347869383844426211968961330006258208441230875681281513832336170409562565369750770037784115683848227008335080545116102398654442870845432260977021126112961685760241004068473507210144198842592717567018441595079997296922557478302048446230547062263066147184641173531778343454027946659791307280884161919711939282096051657829912766355236294715419095010184935745104098791935720448796612571357914498448054591689497342787412706467077227668007759975971935371306552839992865801734444772136643003006202090374591538590494545676438578235732634032870419928393417472516541754413915846431421541458399995746747488124091649619963971308020167731053322637380921665301470041688589873626474246274333344765528465098702342126519217221304801743644339422196784231102667338249935927204695430703498508182242715926307582487877158643827284607901048138015424504514132833590587368459036413349578058886711343478515548860117530794556388226464408148714098645196324369282512619297146910382705624706687791214643486057845909202074116121132069142211094466369497222525379960537369545173806307204072080096735649920170617330697727184091167774433017388059999163601913310953200082913954829323594487325708531998932904880941458883114822090772454122560846778157218261087837875997683197098901159891688756494851886379814638434469646880572195633705383720259160756544136603574906905716375543076521068517184921745568954890383428440678681964235973966312243161661990039027951100958511047272375436027749683748841931848248449564489557460405883987124261159553952957455576996185775019591998784862873887089913709093542018536438882278658977396965275942097717942733504542162315905366639098367606972710680626148889860277700752066655972334554646804270117674152417291664500191326533249091238332372023765938803536003708748603875395800619041996665128162316093755610424836556938273854371393573015753432510840044775616182320988904885932850341626583904295798516097586199950442584126558400127611762125287230957854253798540843570576582294091946372066760942021568261924773000567551259461503151074184318808250373198359136361193875053026295169605807998666952631797116985665010811471509668373028089056939600204472893816290876204162278950375482735137042683449102015152696198877589625385966130225789829126835801746755877759442221220188694687558570180060048079182511481290381569136515743764123044049881019293594889226214446063729694052214006204586203919486965174670174812126374577336039926453225532805371019796054717890668890384790551104842762041006986421707255561635073459743652901034941480792546460427666768171847399871088731541021422175910544216870305302593865431117959112680374009819980331775987160741670791945105293231172994429047267514370592921594431640554269628931616533616972071149961439493463489235828930019466587531712137661484632982123641114892854391021199121452018009504299728147417513751155730880818892213856114086414718447793290488752626182541323920111244419171447695818505023942118700618431762247628116172637082558985795676019543815772811485705007699558626385640351389609202502638549270024687185430396504228793795468258891793477518398832981205742018922726736154542605296531017139238292567429173409411726807492602854036379137520531198749748834335063237874451639235289656430484086877616307932221852714219945604390164856793919977708963247023312444823362918826282344923186806703739937837533628107524860156807216683015426534290666616414446965629049097117796644773696393414306898097857539291922079149294995537516483833386307778253290907220440485782786215227390524135162461890539218050989340465901515910357801556198939021074564006789289033295848623359928440737377583667373285112630920131261268563155495893953207458589837915569450916968027677281718893628072273360516517365454741533667305629284159690654405083836268515675582878046733277393738793937120857838389680685986045272185733143596139552925929522863734457044931790352681228840783695925929217268998676551111345207121264535035279254652380755674338051445324128570533985981820214028970437722690179956136076510103228567666406481695660287788685021750308863783044635014624021517728479797281381544748352960744721665238021811123437490041508055524781356815945001979545290911163764557259250081231403766244358189438452459355000301241013075820949997907400979066568855698353134360474462658501356566736648804280015541698171976878137016524980858932563813520941629103240426029022758838740693153350533386627680234632196887343223312222133976639002427655140197201951535576168811745041102915937131033120300276076279677097223463521554327677484295569064452771066431211300146093184222103829609538012559959139384618366403081219811513139640203533585292492877588418552301864099700929318896767230360685660044290768477185004629271976239175384730162336312560580758349626344966147635979118440540676318352984327762378754998726400798755695281014662680191075888708530268417328431484547921652614185732242901832628065186239823978853081387397010028809217895548292935782163614167120178582733440817481859650681836641044477259038963921440127372580520600224031708006274697239637476935418385749164915396658811270588654521203159267246885205211223463232532854037390781131000039827327766399942533610659742763710423791571294967471784369275933805291366820701295376581190633313281153237026228193138343521035129327045185642958162606820993889815789272500007874472162140875685899768131942630699138455917578884245415884479607028533528257409829834912460869728787156732970151390831559063411699981906385189128783107674205402916428306812236179225531476575285758628144638202038405025132466608131669106050781482503338031291425650452282201037468371145228507971538073283253093398398697975914639579500090471108842021531915864229859180886406889310034542610840228479941801359205322529792144547040213951535499864576228148729458025677775282731133130611479970389678867446464886072365491341403847275314485308670785181196153942904005010755419183341679203220630113777181828915703146578137780676198108973556965371511650448307455784597447955404878124117869366826459694887420091894117429634815739982331730293412287372730714119388984028381749222765433119796593958553596525354754946959637031842541337622402300544599146956008079581886862310270351694181797254496572897243359358268047836636160922931279869957092786547900994943266640716009869727211152927864368605947778027279139125772380232476251140790514374846800587413855688241749004027508289841223628097762566110959291926320186154631415562790331744275193887894216047466430061375973979102478651815244576965727597525837302807425801772197647748398051294002644942780276540487190790097346185854715707998795208393816407591522947622258830425590157827566570824934945462697896356816047775900764677987675820784239049395223971005502269848413419749652604600547523015685240605171154788465464065223834692981534848108175117424468699162021623589624083816427295770368524326487324654928548789876292274559017773242875372050465962730524715063398899141531623686418575827712340615173502609448932567315299465699629229498518055146010289280340874104992553514221804792400844019723272221455731419625886098881711683533675513273705898188367194234248038872297420802784601691808147187473528854092674273614107879714709472063190214300167122623844721795324344351558403127293507798132509668991581782507764252778566763202288434844378716535053668343409441757000788523076782141807331788363711189799220896281786666136674369100332627787871455490110564998524738925555532664392517292938721765677995662652721070726048768717224532887776011842092115067642835788909608338424469122869138271060664473370252006473157670941107801265873970576135000113008827634189903234571159495254728769300140111443353117177751372171164560705938032724760118663203833417454800207420793684536996201927279633920055651102973595521854646101313997364005523937760933210097877584367323129007574423565364894763609078696696434716655898623637469280562991528920788016902806778850388240067729817821697939597388995965267799067107851269063771774329895050101824995872717903241119370357898881411728251367747118488747423073916214977836721120766195346188201078086396391794978121222359913147824570192415493210190275880813108035294263102694923107070202227098409840893706804566024670513124747350699520838088082270785192524368867816056192009602411567532837727059953222599251953145217515019584455715936474016477611799968409521161643331002683863561132599850725630014385485223153185077039345001888896529125590613026779101217907416673504056199985180982012352224591177896309378472666383782400178012969671617257901857672708396510781858867397326883534382101695967372719555647845677849797507093816395134913940441568026521211612506411113513076998451283678865199922966857220745101567797075940772659009452206293104580210155203498315004162896602491449298371436082945950055104036020720947190171346554833109614664477793968124306932515102936701125926249766237152060712570968497436706366729996020600202496257817280661174358326625101588732387745326288039213862829767500792065294176299961290557386203720877128685816024221424929205856924024127399025779389817321984534631950007471174174818186160080635465021747407971687439151032200605257685388930976761629738701170298452109859341190359577354901223148707717861667022126245751350905944134955431341030939757998708242394667307956056836274524029559750793020477317917755232465444307110140652579862841453392262290860315349654407105935552580609134887674733694604040327890823688820970914464786679191436352675469507376640430556985063766042476289154173848498616796794466885538696899107010428747974961391080536358052511132455093055542740827742831476811206641043621199775106474186877039706001300677400488944679237624350881114990921720514019404952658738528948920670078346803587846077860067327184909155384353826865674761936840814701498729545238460952315078981512264142111813687922578873373283821489052478699706290594967323508430866950831741934841018104786643468594043122249457246741356301971853226743580410594823738383037476575158406411480300704668752905543053393685357890858877755681215088861101717770481278915271442302317414829831425657038962872070241440009752725863351985781013984636627111200107900496578828955939241147068118605044565939379702886051859203928733759573562887269666045277032722424448772199248421467235505161987613016995632926799431043488700516848695700076030465869658511328990492111877769052379024436346540621773538770746282357402424776697876797653439916106033031061088079373140257245172818697522023863237002637643689619486963593186093426368481719544594803608468691956580590193815349506101825491041934772640120497828657188394196137683353425967276784931926955791846024666014921188922468046307274368866573265302032690098756991453559450786303564546545299874105148671767635525878036315045631647720696095726143656166077933062284117091634524655752606759793637476967079491466193737150928145376658391234171155652412184443280018811203223177261098550454834423464742838564447540301136334704965071790007893602230536867143843084384151546282024295836928716532185906254842497382937518860138008222871876015836243335091483274959707888838618781791739386756576035453477355507874810769846557958744570758502311447790267113542373068454155558887470232330994521663494601759405965602618571871815242261691724463294540755097157436692359566720531293165638409508610873931886562595378160781401352517093601414533690872664583461471570904058318806723419952968530252561931238978932820370365161482768899336743353302581753700289508600914959504670982853345625389871448508194298436925152350706779574079585319847403349327195561004637213412970819895095321652824461651454291250512675487573973412453503903552097160327903101777419496528405777425471673499048855889293744150706739947615652808033665352800690282267734128681039668354304041879331973532289681940551736615364425482126308759177203600891321802829828323800434167452089681548481980842544752994730624675476549095712819635732909816366803276853057667667325749856111329269736518991576237695783629457432016171593479379097646073428892123644463199661527582818489329800105803937588409070433442234269659900977511179377761830116639161827333577364967446416639898760518267939645445568864007237671165304761968861623685806398225652404065623752053916589783931928397986951537589395622419651629838257801171627912956935618263381084224890108509538001758769821419849687266053739957010023703048383694344888398140459350513096705061402447134914332775155791334754651824868099808382853489417497653748164871111849002703097567714973251714397525177694883910690251788813391629339532041445442203793033910787067610524548682445470633176885986925898559974785255756294505779924362487040323466689674839215667745636655176784269213494319680240109084057332128640947140831400350337281581860126902847642716245907312762041138912478048276123980604895714699134513115334574690760655460168846708982945971985668649729036471669861170855332240259162596353068751694207920389505318665955937555230375205389139108076678657567051965800053064165787837704616693212666306091264085291056233876648388081344684656748709929779964560323509688695607619831181531928577835151481723779436489034258462421570482583795298597190306138719754605887340679078712283627131353441592375737743019765293899164534551440993318083385543796038801816065576640833926267968320300624907640325760918875433098934083308296783461783647348058221545585347926133540372363018523436231887576068845123890402238391061394778652244648824575388881032892170831431112202104641778508657845863998707348262830434534580895141683152750936970077748076430090604342042331166902408437830458551045018416117221638405397055647022063008668294739542477835828544436399969354549541116027934070320665438781113148717001082897540345617045570944248027729449157040731218737990520505066760905838592432549868681128660097946511318495373277520028757249593128458975304465853144420095356187799207608273353742491934768601706659639359043823361273764566571061776926791602914225289127705618246447003994880006012109135043804406847212246073142461855421216835530128630866715714653050695988854423319061939270020781947390222516153092442681014164965011200041812728508694111581642309727794896696490306783646870251288167592240565392022713103640442677861448344012999362317630044666416546959090649833145784433812204391705026806714063595161220435310921212424892297924898867938023606976278522892263169917742139073920757552193733075870109435152789882572096849876958964250174181642754828689195594188790538698636200126137604193159026739417909967991142960942604436450293743812764552508485332866062389143240350024975019647137720004607440793786214982652247715884559350920337353960178333789847671677465714644351879093432141557029195530314224341705566437190915205860416282824470688894993892384236369758371857647532844365619073413536886727127265658718534808095810567347145079925632312601328868463626583893350630979967351157950462822765168052322470144103919351122093614599877306125121330603759217520712624299173471671737541467171270573154216957565349458400494141416665234510392887619899925693985815658933401559944076553265661509322111474765004986056504837459047477404240650647984479323711021456286552681612357895589877744711533714044857579169615866101674327459624661529450930658096871066712080580782211383156063574446683647339501287326632288009852923529684535145929980302261709754270380025298737056938680142220427467768430141124249820292385996519808228368175259377169764338429661587128963314291859448708480567217724489273729174304421304517236127357523430489237663881229140121634793805615402935707176950598058869854147859561232974482289569226038744581810223785796957493146785885906174231026255999903590353118016510675370144731490871195948521293733187472526438930271968927466457480349768115367253278657521452102711457966655515914355584390060395567109766000167917175710627166091923949642858821441187775698664053964676648466501127701829180993312819381436434965451945198667864256950869725159891019094362657977053638301114147752993058296435033719149352665529789072220856098378334425882324113440276508276040621786832207452079177348266705201914887019622683068192800509084497355385764770262689374564074921948910347022235938800421969673789587528282148048051103771739270335554704613616044324922888493613624490502785313319506192428638113362166162151818066784450584505335812482468824059251358609508441228594996766845228210547916851846965068599910315434057706326406051927098737671555243864081012390005302708859125697900557078748599584843959374730631761695409204577424281141026034353152448323399100081740777938425323791957599043334430647481413469614335373280302806773101816039297028829089982420740873010889432443372084663181389556851462568859839983827729524539946732714996075335150261975593275342142472861659323069241302653514056483535919999060251320367369260160979007791429551788490716751400202476452806167695022774076038622893320155851292412595610991329688266710927499820557879481504591637496247619956914371025684819543828646807513238636221729679130808167519186079376774879569261261450092343364902516652667678318788843555009722014917916119255123388851529620903939384363597273975967414729560934887217297375525456024884992701636513018767155349768558726955234386770353561370944083430234623747117399487187429611667495959664914512738532795059036311504997624401637980780637646328679310158737737827315706635716038880257912812607614612529568848672959166950742604820726659425837722957334767351783009222428814042539665578412959200997912698877509819397706075724770765782590119326907796481310069158550956399569701411235668899676414586358654660254380358818204614954108410171086456726282594341023784028333505710670292556367572544693216229325418437644794205963592386304796668993950543751472959664269741428744502617460291909810063672901691486660465848083852933532282964001288801356457028275395194481667252560225800230189847768098726289971958728122319551506147307399214913797125387967178454126107670442585647911005035237940675191012829493634109249664832097566258072427602801354724273270495851045359943467024477134587733631460925064441311571862647832772116344964634756385534780268278913708864435232255918907928605166418707373545504658336038486266624493818965940513124662400295227003411999416209206309253000586758065246124059366814530524965977745448885388153191039636917669400511474861847122798076077017124063487877503458314426482213466756146030012968291717155827918445510955704051892377729407339481556961745778171373941423441775930639961667527693265233613739684313096148450447547835236713642285207422828553621808498518499309321320321734403287108347319255004135849861018053803205111811141549579971443888861946316050560887150451542804647682727105722655860615464017463300482623686289130414387540303683686870201603458865354671580138617178509326876239699509102431073799084008310189426461116966155116408516726946541550705799146638320682688156247496459849598703749460990692528875278527476390005880490409849172817234651099173449262723671855160460474645647978795201623097321616247466542790743765174078644334775911201016563731734925965583791971687396050983763284863230249668785551076880244212159741827698800187572329335380296283499807119539128606044234460770068573955361357419829861016335360892067911338717374178621718121872389996042525133299985018359351811279078476634311538701846722745831260987964775756650519192714331140374901578065697154908006532682634539057565085373330121958801461453474155594219595943555378731934425607828378834652981382551325646241884095955433700713840044935803488370984635584858184193998983051711445074474655190982759935670849115482496673327154617698970611860868347335255684101676118805896605233750164135437217449506079410381770913161204954681784564911735559795608728633798826014179547418332147073978337213414627247819716396838874540596544527342700246819095936429603302676847326195050900611444741101208797263956987620389940616464183878261403895582712354048017254315752816829675257130419862942763192036743173428392321478763004666513658392489727291343419106624096825381120285920602419824464981924569432570865015486556679988775835621138673658848821413833142168164158614299783642686120883836025086205384465391219241734957903949336447072307734547714130411542043018467707077656315814773923104164941292446547756584190970932340401094027444508612313962902206966151882705803858574438756445107960269262866371438413720598403093189533826076297466769001247471273699350858370206067489897358391123526480252629012845534757508511922129168284705759587405535562427190345866771720642747669095866756647969072658622874315139098753989136575142315083794149251529414590925481504738630112492680925790937707281086857615626741692947759022168125128495486488938534867447233603387170217770879584492244650192576867970867463761543619680854930102634820767722198913922794024415508001021524501734477887978034392737939263589106346980830661460398309067183400855917960203403170412014069020542572494212417121231367206333584312098715766819990830611925790989096500473950650308210701278412661175458438321480072750862666664646359214770670411438804870925930515308051526895000724575568278270206147665576576154392302362981196087350809363087909193755208096789426195440317633154306363721930646182350065863429814302514137423103738161704222016871676455673908499379514533871650560735941215586096747847134130898397086657185937085106732129370984562775100621472404545278628876869607399391280436620978492732282520268901024944042342966319375360304517029257498608674889207029816645245495754414904231651287348062402668814044289278817415262567276763175961659655143760044678924196137864621859067863186053591880677755481115107700200096852785291995095697528695200566876757656905647323150298998137794017926348565504062716634826593434236499015693755334952728265622618813330401212816405778171817611516889600679875535925456866594700022367853384169888790038004807467995954078849877792954711166893088826102267183095090051521456671176418351866926617262161450286928954882746471496644894370236581614906470817640995692688873464771941744310572770249266384232728262260859491968100731877554445511068275702247108541889775274676544114669939175831168475268085451264878007355814836422423629956335509727162841888034934502007041898417235752378710386964977990561720114489046881271861834112109838889925910001397999983004472605179787955689033493208387842418066093893430784462564368475758877755091652280195245255687176845067705755130250512470732598638908946307325533858007366138037955546620500148374948262079400223907061612142591167580134473108931432124093418168642270285335687345830629391248322662690932346085053785453346067247100277057766177808651593375026993938167689496500568909405485640014639154898578231354515861960798170402845641621955638199994729922326067174575324434775672333533951519820280068018779846531114745447656259709280018422200264063271529903637103949024376907837721854739675441078276423139856701786989290547581173002778461195728851866593162810875903935753143180302001035709583240080035144476503891767883092201771757269893819102577055572270723908436416632780478806910762941837482902189727269811955678230935067313594137430402398019015325940611653676304317075445796547459148632840604310870661313014945955198355568065407203869044584082968396997767298536458836514082372440176258327142815854650448888248505110030776932981475711753296983904069485490906660764139810507182997542390286250570147154982437758178668670663301075696009966133340695927695158079781957126288299345248413775200556668472252547758457129364146805938146388724758016149110221569765230063845409295855491403912184776427575602461642081809669692752711348554563938295356409751227773217978098546369982130663850265482158958114327319119731678252801301557563773062293014397079374554345800772728138833032943457159193917185041643978596110242562603171984840922938978186075465733556240236274478082789914527134365351567560340667640695455071174184699773505370789990539442067092675333174518912549158581499802147536341347649443786879110482830352227932192865497415261655353139314789830437804220162453928257483644712557209843675682180943331234538091854186394685228592750234020981703979524776507352580154348619389566527530523928380863958715250549056350179707803941938300092924373940065229249406046023069080375899983029668050894970919146193861197540178540795944590614329304830232899567822162441834642681363432470127200915168281812712616063731567252240968803661131050168131458532488086613045577178903375320080636663850934309831985602838788603851967226044778791081021813144669339532759658004970006493673106233654126924266705357893709896171657438089833911128516030024605140505035735194479652695099386710705502827160137593651712361302555901916422680239109420417725668338802740673344622031068832959886380746601508305955777710522743701819868491140669104035988418437851563109297039103314334089253521943676622558086622202888953392814346990451523935627827492798827870299480657516142602033427949889068335408522247499858955716313515462748529227781590390382163986463464315367926033625333465291838160763038295669758686816319648029088437650061763910920887637803145085562753795514590757877671663399342980052929776411797430751874005585619398842879289091269571892923156880712332034684482765920327962727263143683493093154827097385157786947123488900653978705818675818134065642215524876568506969635317919484807215470939418893961881099155009183555351724326065914140986867063386631817239441459774425360173649838921549521423363939415303274516945259964049981094821825113637022266611747322897039006260019309510004946207967801785100529636041159156053078665519164799382272543256490879968422026146925648154606026588255047166733247279842014177179726712418476549841485050823285003641240661964867457376957789949108050284215334006634497578652096857408345130056800634945690657369430470238241215953645509905458128917186944590534245210972259188882999236281623157454071476726910900981514022122215446754990082830241016911739239119969002803451910784434868666660999438750364321111063312739807964143154864829316320973204694304815978422997211954432911244545858216711372431201881415859080682560150134555444152686201397071263120124934682226703688837212072536919092380259149850958128548619590282785143988812683731200868116769342125347664026168750578826541495853688682993479023344136083732755381937464094526566371702297565697419105809684374639806727413670685037327241694462388294132671337107572033142843971525607053450835559695495117909727988284158220644083729811736944911660956006423922098645439050778564295876750878466734833768487570014835938879942521526287553898364984623507204003997921999839189841097410613793447560446149566795833624299271016608000356191723122538685781857571376255530223235974333177289202875662882891678359670050483251392377643569624510361275985445689589747170855160058967106238531191256940308203358010416700912675506756758645262546070488701884887342518741359007383631298806884241758564064244741325231429523201606437114208489251909435476580828425121457047488338341681442460259357490614275978492309779468654808387815582882893146929217769332861764002873065211693290296998891914053174389915509447489914129795822458702673694993617287683052768808608988743021269317342481599246190079884901398587327439412372136521448277291463297358065655027721759240265116391641807237004244881978504812219193412243518094674823997596690089423150073766348250647345436992888917203233673650880243711992066443967971562718934141108752231855137475768056919527253548231700135234016680358506494598192321988993663042868928761299604506267900096561583875094158092534246598245293590444517405763791336146790660404550593398722981668625221820843958730820514785918076822371430267540627331213131265959577692610375941931006936935451868331663748404965078780085156394492503174209727809939380342155333135908035945396232762214094195276981969981017088671382843160208632569243882176608709463285471891772193063017841918647083980278228516527674604088744525318932810869394376673329378190393872503520549016528769724133435261195746243484697334747316440478096218452665164110710588327500544207765388600004020800489333511533972380042138432868652986820969157565584328915377629227784888829136173128610173804185533817655667952236791921422738068865387804812453147665840294073584879909949561382555572360195003530796677990273991979067869016026017836570231569683173560238441837587843195229945763371547424385871103510569645623163729858528794227227212830959204663037078214095208552171906270328674954413272162053098883985908638698433234432180151511880487847394737381472446329994082255616934529962565310100819918444018797649218917425044509116986462764880306618494703516326748810058215654540527981869855945550259373093854260913781563254457520134980154619292302069018131124224883618687019459478702106760644142912781186883308301556764840980846030560370722723923319436038728138672662655988636512022966350576784503251767663179928227501674428829783240060412996731724116011283703044710220234947682303159436236363714448694335417747706445394430317476046234613561865335251220122570826725157090774649031564547072000028680922425851494482989632883569301170886516194374358421257522005337723913567353650480480026473067124306223201620414603592231291766190446058955861257274069468520148835535671166523859258476766287854214851681311418734731574129231899905041219103582684571239414119647086173638359149424714269465007981993269280217706233093820162032351722820999898268755463457356988814736967588439864696605018611592190717430815894817594154066652651308655258000680052670895878421851083293237128842327928765410560489273815356764614698653546305685246595976848516813566309312420917265378056632481210248776427242268468250498418227559854299625606242180215103038392944362957187435767165583371579414104393719860117485940942460573676085131656542476144912287436874186176484681111088006016471590659525998930162105196797743669784099794744237229661873643253439867800164322618261257312856750190069006436012390205466126452173439511162272377898824804352673863054622908066519794418130310958342919303957586313155080961037456233858906227298539606384263189699626856755548429943620364556743970277599704157184449779102098166034501054065672237522012160976960948191218082294116095979594934800024255092831843026864014724943862773999812372554239852684913231758470590687114802716126042203505989745473678379053389046239776653161002649032654138406799371787550998157482124440289775585365574179905021405540362864811971717871396678538551204404820206852324606053307488456670867182849554191094126532387024796657217125638106970835492633894746968574308468505757847250436799948130916896882900144795028815275555113568717566953915873961115043780228266688170583023165626434197977494113632632497885562068323591216513078564952962991178840179763742009457331268811997627917511017944225982994406767276793493447439864850533569314431818700518942724343952047923796311834621096336133741504149824504663408329620628413136091992211474311872924333420896725747542739427754081131435946808601146114659717062402013369161292904510820466456750251538561696201910359527505443414992192651921766989194441733330359353375446791423555325859089021325792613512133885097915045343619072994093557960220754277014343493524186370728124595507497760179450257720156683434624862994242806057819211743804294882141430889678522061736281942789857086746996371655569635684884575933135544128293176656610194041840457111868713320513869115931782074004645927490851191682725952007978533729808767334020978670207918545665310501533739847857296031930273037133172995461623201807945357093297173985313259948249347713326407417658889511577972147998455459730400848086626537991176124001054536163218974491683772022054037932847228298177763253144825491999628445912291251217211333271319964283184159305644239630386402822354944097119159021499236782851199897656850376959836761278040997629489931201132460739523143863284838366039706396732164841947562575058198575387949768408918611080373170543780657749150648009283752864260826412214718298243367947261425372696088916094293111560260697641825932249409254524186031020664090935292258064724018752317766059777576311986283952295693597108761738916494454348236410195530466412592076938810324062681160012154549788489324398040577178547076777982200159390766333674546089614098008538329915496948249999821752339925483179215497467320151378878951258738376796866150397332037889011083631667934945163916251140257826197814333091004506900565714252779293988978729262731182636683999473784060887857345984675235927145208054315693278458425698656406920199738504602062725070643358813249954772494644011624504646592165820786773227333063410076728586679613036818607830665426153347243536420477075633322551914556311837559477842455115309449951242072296016111361872874099370781820847941127820829294113843450340595157468019709385550895709596531676382586228440524347836268862699986606037276663290746168564174863863459494534160306843297460393713547833123273679314100865229409812699053265419172026673209654845700537929005044383132562748306627983568248252466857571068257241716915938587071952969049710625925912928566130786013247362698293154450618083422364094161285623713487489958831616102852302828348319094064887078388649257918016671342022383368592348172469741613634804035519541666502582284670848342937899578212656007898233317677934091235501195860428355588512045129963723325376938437752294315041016961387901366445868916492267908809121544187406406340136768807096743913974727648840787713347380341692154336329220540436318937194317765431634070213706676243909096364669613621510511743685356459124656189471300477100268870793749623606131718044085193306651074010093785954817813962931312415558022138699447864113514238694973515648343406119583154734631426591765504758388664244092589222216600563514078198606532081541342661431727759828304484362396752544247498990084649782907241316909157108212561183402355076448314298500324844611675896362199147905329248850367189282157547398191561003725883355043010636237011457047296020292907623400951159339871899242949353623415197330935648749612011713627532734890240670422036994431724968554522483600530804592914494753621583449331921968850427394667670795686517280762209760344704127137065611597839466657431160705555736049556641937596450834365008726256802807384305095073214240276098916394943195666922728832506534243868155807782745604231404127518695586213359301054702808362269687889678997029198940914084961564002283502925081404767440283775573194537526373864059944873550901337325009915939439696738224278128560707287177711621416944435960682101857024080237695456156979724927594430129675823608835685982313274941442855044782838748814088413897406402940163927966137735781716795618043760961352904595321545132081443517724126157021284836539705350754202409314274995167174442564414116299024277298979009659986249597288121285289975215017073117001687459712095992694774379610387438647460268597604804978033208469554446720639797765497524376328526356019482998606501252295157616437970257753104176103710340614006357791318247588004002224331788413615781185103484842316911272561514069855218268127251640473216528451980779635066428207591532509961916081897746196385419028186610074921805243352040276169438325640022796105518168433053310123449451832484190552145632438046414688725605422227555032481931315314778585890213070090446073302821965421560701711074375088039348766619178386492451911174289605963948470658307135149167400291019727776878422533934286630372831372141309800166284838743527424866465935192352513428463096066629228036029458430845352057956243768298168516233776824900337464238560097228005077512576329108563412572739599394209843814251602097489475955658032676563554208926029536018080409229331980347397830390323193840820083272737569925410080805069231610005295922848671225002582930695916078177882309662613667326609751779107349009503798327659866696084917566365098882239347616427706081184993038275771460415098517616301558134895532970419881766740160516802348716450724679849820598238156571957483515323356577091217004825224828836754582083461307557306635838320305203783766985294286171262556511635887658224631878921680103957065587082259231899626308177486561725911600001129984758911456185383279214449553908771307026352253062584541668537815916402351030076261079865603505860704788276712032388538378137682473091384136992757410804205973981727898514487387567608252986349561709650606049184240033660316068853058760998306106424311486688023792028395185382470125708274582834454222348145792832779239533921224004719034082250905229553607362754479569205361386930997269416968695330319829995910849865890471623230747447264181512367652438512722999718330832219406284529584742422061136933034352988022800499502029100635764746312429368715302869055023949659557051149465666154270603751716190915860059919115002131439613359326601911031622351621399836377468304075865587595865262513440236501253694671561078906002535525044420237581385747440673359794808991770927440179119631690895208569448056485033442027798541186665025021786254928269570678302412271905672882756777468565823359024421427782887528987400679637048468818384107354315341098468357006813607834064520639553180321050698687319615836246222105077569720410869901372200445763247848376937666952238974501259554321625001682901083113762181734989329727456659457393288282813856627491963016124484550481082534756698991216813836191076676261085514808103116729600467434055437184991077219107891365966918414651715716504046344694594814539945576045828672603185053295247156284686534461406629261906127237581751654488245314232168620596069217443862445579519188926510634952441697254563659431118264122434219667012516243927336665833257749765361932201297444377698221275259661475756575194861694270544938261518881679510724913598978716056156415031177372913447523912007641905951023317678904883080164794260979742569334520492231729945939431304598866227463689745213429483139073629988719711134285182330950020063565212407718120632568693653904675592506008547118013131335070059424223262809706402088998743763317779433169791881306507180702722694619985802607810433132076611018770878731103733590580363031432220627978631525848996072710411554526762396480438381332865090490912562733577576348567008268213404753279883708927050126433427640262852712102193114867660811917423934583260417870713200420169180955460669272886947061335633152020191288211282219893580726924097389322397708439404285907955732186805519828273749247955113728048214769952423184344054883795546965408701581038442850304657186016606853162975489225144327257884339480848899027084171882861854677412176846901494185011168532055110739368324982444440228773745872474250860883967164170426308564709376121439767865850966612741589152056407195211529226670604566988103829365585336856907469498100334465916710627820025284791044359877985806788998386990101381548683535730218852569091997362515300495652028369147881547333320780373563571379521068553349800733966140350048334320537882915882199181734119069729760478889145475646839327691637002367758284056343198558204536293324173222221621549764767311650633065169261387038792862602384956619135154660128576496930056137929293483505744454124566363579309768214291273707719648836172289111200437694673223658517164899728404269291558254297911664908179959639866552841873133925411791835519016572073920827045712621497921799224447229620926836913179568260445369221259575975066091488956048480923802312226088075104412743801361887326491339704471518719352038666934542000045592804013844825536838279668331782031767706973916777197934673540256059536547567493229292657069658415219959588887584945230781199476750970329336727374243472222319793837005544602677585307524776153435304195748876579047818264966743917286693855996782345233548937393621228878438913015880085525902449523169801057967759530446078471829131731382123021578224418059412867331667642399352779026172679724029177105455682896755193287495219928408029918846323498584504585103616878705646474367393643651451261166585978636913580472168965243433494167284319654766965152238242593830332445267339606220323259067849581135541473357613510704307852501600271925763891661854796875358490511397762186044506708516411250950429512874690181689473002031169730583236785166078471818963828779707687186327176983514864404241691192415527811452049952945780260228274323471665405823152950887546383419100341363223562730797410916340076219971855947438080948214305373896388251481014935249330455882253356894109001910426470294817326180476902646402641172783234001205042252135755794238616509492517752183080970634922890385610412751024007861628980516461381767731784692351783046988546498972391055238403958156743698524386275617165533970557978221581001949373246496466085519417334131497326265038387407304377493410208495384054274922653983931311483614999545794150936634907309417387979951234072291958979625606557170112488525213576823119058850792993331129360975146373145822943440762138294998150227154432682884779801114773575686249950413874623439185393049748482307655702927064882078695803017092101840616850652145456176046769536241829779001733548239296776712030694825566767536125900521044001431659021865381265116506906070948483171909242952154074972852480331259810465368374171019711002996745422973570374229613544078028159441392046576982018497565886445662746706692435458846001501666905127589180686064851757957865449390536205120944937047862026884213944969134406930719878037238671957537199111075956710839361413781461119670751827873538551475585342450210950105292537595330190210760526644162017197845498539293492790008024860802352321133449218395361755208913075523133046792573838926280680759448046966042200047922045811462463554204722870889986024802568132186271106265799507403486014851986477731470923427819987053713799387715994024845299380928320012332660878360119492048167005557259651300662220250651493211129694209463613968117605089381701646578053841518120720749813254776821484133759751710047816891357327799866317475896934300734020739533076559958689571868661671198953387557648215645431940819636927667403579507645478711811543702267483616747193416960717389864690135410741353735422146592587172134423046263016094832285343445825000124273848258058042651308157829534944687016264777059252113261112010642014098791190001927643399314599966966213010685335263525392901087074942551951603739830118156610006366121504594289729272094640185551950970253265546492327932320782850454488063657690926507620735821939279224746737770050767791843926682554240499015095538401164526644613530140610735646477409569379995550093370422113549903146746953620926440629700962158164346042706163861217587095770650242706931304073893642765953394377278272536700078792976015869263724018901711323356749629631871231028210848160838286129451888942327708529090174479140130043763495993450675676819707185453965707280723906080111965062203316372379541085535486993755690390889948323767862523023992099605567367412119699715628704246193311870297662671836215970013724093183427302845889007891825118983829551173045648072289205659389679893370426528441752533893199930970691408420043174525930022753312292131735371225172393535446062282857797167830041965124885764654874926522469805349905540691585563141237245842101834982820313024887142690875665297229732344269168457874111145666817858273291143360067404994552817210106126088193222911961089899518302588045144221831874077606734350123046597075893121411479823953943737245671051234990559409562092740683302380165896520463987555634571064234786819854168085445658332496218259858846250484065135206844666495397592613563495777597618778985171990939572151510480244106477741505846015943085217572727010739660162571475426534427844503115998911278255159574833063909374984333180504214756670416307899798781058278785396881656822277061751657928655970641697809361820219405721081974320501870223332996527623104240372072509147965487537327561731277168816029131968882943802512319812869164851475269517843366234097550180295309958931763312976466714717130663458328620410893157857792787783870705426813229872275727681695417361866217863587391638429079267072114906526876399168594391504838424031071656290173762004405650951690581984601234131926371740992814407541503467944827986058105208358198483430492073034276961676770796838209446348038620687519690353835495923289285213853250209216177475608023610592626901419818012523693563516216991007550539215433131271712986132817574952031180282231633195648860812425537552650829624789146696497746286340122714868548148282187632782776778683897456042537628246546776754107254915590671943071141999745371872115519186851974646544141386821347301233002677162824538314592975215853441941147390678620449140670690299567594027951754963187930051485725915920068519177144580011423740465392265986020342817693645872919539761871448813070321402332239558157938998997736458765581562722162691415171080944466813492800113572889806957320809010702542010487121724308613750163724493834507535788150853394724276485785667686168536941285171568662177555309657321955544963652395025968494916430222919843165044572144731622221079844871924312688311821829663064370816114738229757447264162168408559514253387120281998938975000914687480869567687747972560022818112315916504141800402237394211114994509255660483934297020074157071726786671523513472613154663692118238691145678532808530847816452612810239449594735153767255677953466196086613423873905831152740921584961117181753628695618885390804316635772760798383347532116028765090978311279092364027592703355510102540640702267614355039880804698342438895269656724777822542025504217093987964566189944561102017065850980202890682087172281284960431541269970290610918869586749367828753028722743217902133786049797207256885619051453010624411519137950667175893068641222235644772715653326331841906900795927933343838937017918468381631618384792796200957735419076492105282405440486703081576509423598331767242649375643713793488774596810766382457699574223073397244261048475948741934325757877955398626054584175076171127507625188640437385329600400205833159317494139219410730359179203957336040684724159183132821993449373313990334745727080585508873746108691917661437302432217008572691247821219056492428948270748767107882709772841809433658921892294637489065459757555106489712165534214592875431968441306385123054201077102559904477009873516887248755612990459428226673953685450428732907287668245726086342680700233847611244850644356492050296171375185569839506053141958245345229756494828960729403197696741360436519562522896224038390270249068905870146486837467164864864381676727970603687859627545884695188631294047351246480731007054050671652655131909775074595461366159366527415964470010467943756618351529803301779592598171726941923156040468163912829813942272112260807511344407694473361537624519225252131283870682013131631476748751977127350059334943908070971076304059420979361060522763752228175961357330935838607335743674832163894206785749646864468877557713851782141643723260859927943756865931722200913885178248691747333848761236354349736890522602156368276855305728054781077139083974086258294987777383726531236125507529036904787525789293188221089931901088283761377477679678421526917243601769945809784252787310031915573349413788313184345822591763749098121775615603929803598567493251484076991254649850829645666032495707672373204719129609436687602283453229610662211498029733336892242178032465222429702281597537504947987995974473672634124704257459549171354007720167044016066627526364387889904561765008882141350514725035834778352916170340636787221488940247168177857899377203708485029758674696351597402879505607191848663027292032653370411773361666843307862583531301814822570653355770535602185525055041216960547658776792302601295392829707799648626124218413780460930373157443123931506641828632081612981313393088810961501556701464656143008803607696496931532552440890574953961744680727080124710375395719113872028955481859583779903895339455051161808091946267187928514763295591164081747649896613546505106667854093309591379071986642243855680032960404359679103270142032511264144267928831416396527259921511390164351642065158354631724569169520614467990535774240745303574449171344853017755785073185357357908806480446408097499067215681609871850132819180098494984866504216336770808466139247479828827180523672634136795318798046366889197377828689391246079559949725462245544622332467723011886565688299982881895359201771826348268434280465142996889792231261718348828276079454861376668709374885875455284131713766381715753612401702797469087009036840444623631894782094027369454975026169173516507432156334189803280695202982526801247367807384964122934081071862724630050333454608008155772066244790098604960640655218904008378193767871688210469665825045813638591749911765955800102559053079745136729181084358201761644504597779882350049499203108209739509388700316343924108079138150175300286614917041874360804425412142248513652408193195734836143273300760156793330580267253783944446162051338435277336592611092645241658558384132996495624673246441792682067625192427977748327438191564354175132644696515553530525010472474688294990732595326410350649162679178495984227245044028088306231985071685411880227194405582627583857127148565196000933705007934837548090471613602796677754184705235833598802217783795890226650128142081902403543046254900155662203541451550895608816508159610376948504634384036126620507203007311087134964529410094842216942567699939665424918247820791228559857549736171263333054196957220570330932496846387622790828111592328451877445109690109171922810161539622268436522432425465772361363582148066922682008328897976415534920766394338821701853365525256383289780606633777559819606374198414417218735065530880009232512780494714943439772588862364291840971999490368139798657481868422769254445700158307011744292013030244456623077933583071494526072783857261475520905060554936333635112464276890692453858025770250886293342901707241243321833789841730302494266409401149387834184637991613603084128324126787230713027433792432891891796198800147307106903730899563976916578989859685902548392005981152871456165968887530316120087911170915665683632442641508482818613850168023412401831010620289267097286719823240685316199546823197571975274839449164813364449231671582650111552850516437814542971167735092436520402304955993517630923945613999507231372124165175833384328792185538050437249290496084513065079217309900505218756979397849976673093795078750532906505956707614056747777629879892982664808704069708671239787521413979180793613665478418484069925525115163599697559506607052988034734213163113420205013821317418887483863178184597739923047704644913978334769838031964962583763035265683606469439790791251274260592006429326212265020797974577672500695893906069930601104743719818181622748207862868111882588848981525651792188656632513958962336124132257419447942871348925450137333005294777247799242448421991004148249650693853036504993396134730992362210212419681458837430373049330253790996830667262053503055174161482339061673288107871278560701230648500560285276332161035457874450134233981985965500245481377467924412152137019822181270837766661527425206179151109725369744751253613885202925982234632889265094345686037407811964220034150406998806126398395460861654639501035988698903276184114343664759148397551080404647044848851629940286698963838397655220119617152029317735019402936014141452210031822899323447789444936633284797863207836729955966401941027328515465380115960751470493332947918742422464345005280770307340949254924229504911346652830133147911084954507611164547862445238565224847931513157135392116967513240726260612815001475035696198819707507424093710575596917061375771448073789061824555344429762197945353004351039178859309251940856270184560103173065487537240050541991196640368929693351056055520528015168929554546437753702719915997077490883011865016112236299722392454223844057577864773254988429961617607119853827433761302454779406317808490002434786731765745666763069075762135154026934032181417197752795855896369213213030122564074496287686566803770631351010648446655310144167577775605638665412436053369927449706032499886171821050862652372723033668184952874876428843638933256683664765705045097863141687298156450296365545688472985180311601646064473100847846595322888401925244057256058849883775950249973678727979895743067987801692228098235672268522235723211400600997596738002780334064292749358298099478791850511785477882018525817761650396679967180883741566675536102961301948748552645851833519468125081770283284413469640968721390434028984382289349592029237762624469695804371188420202128628498890937632010850064093193179979609801750134682329958213064650582964025024185498345396499789056153986030504326630426623710643790794265380324822686112311012242180562273521945353243352599118619218519494140365040733699265754972858782695578922459271492215640791143854571989816451980160432266570024912781894580709468368519903070012398866300783987819148996172500445012442802465379116048717636318285288600365360709718735898769167203459994582526089281241806166399800200038350828984177675945048012770436280351071010257330927491666033028124288293540745070701507671176556063827392729598707694250804389569931656571669774329384079490583319798011291886039650031553406859679639676109907124630560733451552180371970549980987749949964367703511584812046012032560274563114180320430421501142454076153302238075801962895809369627759584917130367764806613029454373093179121977131188018428052918066217681781536056353188906535749502159526341801626865668225952095909511740627599887070464286607110997512425940701879988210931362772299792017733914266157471298752326394779600106506105217811606420497747569089768818798959870094110275066959839059601089545490777185076862448042451957716413313338690623479230800011031415573689746558420852182619097020156559782294142401490800778497445999136847074099066095568748147691940373296470708315278334423650415755235720176437403006496077057857948062527201114520675162369682236042796674717574026178869291434944339683948665292163022924339867955774069944624841530669306046876028387392105048562130628586566101006817677828764736921948577439276198106663522631514787702774559193060740277113510356280344304657840395120512975579589413435311816009376364383793732788384394836785159874426520437861886167124468725685284661858204281814475186564667438605249347610891714310358270967605101043999836884505979793040573772665171063351071449921528169297176429285565436720705550723508484906709217788835511711048232206402191448312095690871521308112253346245610997666552523377109655112008992769377014098981194444282983162346342690927292120538934790004115926044943069587796639818301769794490940626697084355240546596629260824666990205748419409560248770885330543051949785773614045099517657183852385753073460992231576407467581951284946422696140584112640899423474919374526544346467490606811581480105294896277957590584150392267665205549799117208795829569662700114960010830085330218470635763717546639482611135768916469628083495053971408947724711981043772993940136889566465459650152226291138885488017461546104150733907684742154180756270779782741543670738234344105733595355088397803083424876284038772246117933661575874774578968324072872977903756987782416211857960676917833715157014680204373061591749912429338165781040422540624457668664371591782453640699581093236721090623348412035785114180630607226224366594819393588926758569480786081485404382883834804442806118668751275181789766030912199085571926470319783102178534532957925731946561768697224516022248423994841530525392447012399731230455451354694177072069290810606786788262957138736530792522071520540088704645151985696833075600486943375838882467300557397283272566621400501899332984020879619384472167097279411008864682036457614742675858053142381530628348513029671739252531485255922161542095650072391229424489395691353492291767036922133928002103339733426173351668878006291982994880564572156609329431200770606009566192877124200165273648920537328100402627967850462725982635579296066267060642325297078259358999219115061048469530586086909771149226462309171229281767683816133169342307069453980957337821958040947363752834787166706391430507069308628672311936544226437143398685299607590708182703180974968033857414569805524313046780950979626679764505186305418727951099764796306026219406934242107047068288195053286186825401835475248659838408913533796001555497582568546535495794925580906985446758815776222182874012477691321985258343446739839670309000636164032805772981049035637216698518423588041891518460572038472958140447765224222861694041369962531738889993984948401771905756271250005206859254610183669494558962519522095791558756225653380436880487022588822046941993364068195827249644767445831147355798527313263117622576310316993768477542247114018962456064810612692843756097531323332291280419844773678377927477809934517626807048489015019053275641096731648160436717855712476364854325396031637434385891962038317950885591935370774271018423426361658201004391811567339185657510382709752855487411650697383891750053078251136638466306472591840039118342040760441183611478408840172995495780599969646541306931799332532232239435216634330052418271081214213967908071211393908859866881902429500647144696242621148463924786310167668791225469487942873534362283070926227989169729591437157335237301845730936113045467121571601779607738670654043215017476903553987403926328294129099204979965203818453379344531217370004140562051445670913515405327654739206734121640880278436442491138011014566928309470835229174056825222188489696856426929180112947161262816879526009155415370851766029879487931857874324941888160037886515627434134281370746191892719510989386506685891374469175841312123863150089770696643512955242303904912800178910292333048660167444301822265289883634464120731619836638411203253339792206817520036223940567470993940590233584747209008463224315156604637066113465055380768786567351465313887681972219820358247609230188429106422159767390270695577673152186146167937885733875044385180994238425571539712741909282751059979165987078710544233936637441795009160868217279944936616948125305879621652424204718629995423951294505904484114404739009963401978253771898720258225117818460632386972566070084493807297164864648081074311012101709410039680376907319766225477866946280692725886536022403008599703073624591168372745897691973645283351815876952019607586373326294777292621844317050238274644976377252012426825610639978446520154371005847280174910597592720116377891138251025693185897562436185393830020223803172105347175780654598716702455081835935363653732296622919041012856512261081979373670654134782227869588778602927296711010164437258801174169530319013689188187970138168186367210036753056350041944936815983406197671581413139518426191055099634570533881277916809232728523545255282565234404170233971783887336777671033430744702815530795302225408610723335760969869318649016151044288129095536616043483471982604907703447742469987385758399514574765969919640589923682915890853047582913717480539520094222098989483705727683455961722889808213775117637900552290618469609059846283098111590916236760185983902432884475502467974427492137810161221115409327402423112559057536664418948153591786544804531690863137641195147562817955766359139640174950941396641728737741442663305765039560757187389427943328876633383166309117242805186905042255227451256065238376913634180651636791427431665148602171145641322108183603872387093660939950550129074982397506374840943370007526029074086836896332831334438182332517436501370942263149813493766759437689676952854664830927511884401769181132008588818694380406059143929920687234900863136682976319939190152464873619100231088676658086314839895852364867388827617168809427402260387160447596819526522000799690600196086312036530556590589468967688368914381416421862863421704689541612619066853487111989478982427350680808318675847733781317708315383380903608957390362487274699040623693196555067416762278844438694285415017885825799916585586366556890847950950950445294941427694596272452109238247757314510385423889106324736735407661869511377368605207178749860439905585205253995281359412747711786031600308136885810312729761160066445286067558606432263403298688918324927740700272125918895524638208792456632513160499283282638750963349890477193798218447650894555687369824330547604254809814689251664824623566069007770194210294621188335894219778521156269828067294158834276082725825838551098935594949088276244310432779380966493802828620567899802386485865527581034548465078842824012292706440444552615388570697277794290724260510378235250232452685236865389959688618924284851546655927213789321477050413951331225024178419627430344855000448633281326074352327204097890333228231246941238197888496284035826226844033957150060326823055392159126982561823924219972213386961407530982034505464885747082925040808832472288387101684325594361829030513515843143917294738732360731185933036150640381694785160197785969146014712050139645991427111354412274287258566012377462977804790818097970876676657007695784097612680862172634822058518981183071992750808937012941874884768549962620885610164262060782298975277006548341030340301284846321696678586116627910374263464855106380094361113939735639009641166559829585340980311229898725487372004664819664091136883463721987877180370628845024661669089708917372699529913276816744735301851159421077948973203213681786600249569373683988661914464525036817352768676999341679992775922399664653350955487487436944047224440873250192155262668455336032279466201712664131742115419163333327243487867698315162157606838783564813491845879370884544528878386670903012715019510954982104138804808341719436039360544890507232933807527426145628675280708150625591190864727890591758325086403199132343666236977483341572646066482109910136819331965660953970879219471850996516343035449925588112598538067328729842233206317349013642261628033321369265706517105495009253970155249285285816078254601368606829575125091047013244432702379495083047673899400357962858889969774911659158832927965292212734590907151473536400964631162152924494141693316249814479494386184901142948437456838832274227483714727869857902458491454218273073119410687862755094811137566082014100086790392834423682220105189819647162970614028550059096425850792111063439027410663967268319212452868377602892755824364443429506908899686039152057991585006837057040073153071839073479226865400715792071117146009017878808786328319762760713215156741758375706188084257242403472334217429447861911139546976230191804351498232881085557930027240839236178942524593996651439789521083824593500238302116245499506813972096623219921622521692793235487678772655451070517793857619833033370667085238336654144618843218066281198679123958011661582914125985462710742575034494506854002072297430649793402788198196515962898596968310974691369386466132615758065906059203350448313628837251524249161439301671746658936223853164283567114002013200358516263159814220914685056851576736715957795092130448216619206273357660397195943806016488030976276953904774775687964691029520673124461885340515846088524363486918754471516975251173703857105034373683267617800029610570883581689212710238812578573530545198246808048272848493429450043587055893570560353355621534826474482661653954809053041428120318157094906181325288832727003014122670047026159249666326527615087359109583139718990194248517884201513258014465332370983369983405732329486139073222780188429917047468567193143323461765905588546175333340038346241045051057369246278803595538468021313017304357867069026196399519734055912991632671946749746931009670423631684513771276943596128099080039217228418982908226697281187048110296043771573341174258575023139600372251540037270026131819640431897194304679107289914153543252983169511432336724358394554558362321839630072970938286166482216029807259426552642395674626545476681087436707462746661781110200448513099197207564635523413985728309141934025977735622718564754030442051909610967044110883361297749483152869798870450366218043057981181848864832963473465362889455380884198532275471411923464215088336642997413489448665485117251026706721357767740248384441220657391315458549861118977066939412541922804629066506330780108825728667313622803262452365782423214140624143723597695461866036676516144833647612535620100279792565823598934389570063123427228260326980956295887482596799778234123006955963918242533555735060072280988241592294578679894486235515097218905082208155374139880089314657219051629144142669088873843070148306372096875060709810515515808229085901395666809814975285514331970859367082673726053610834679486810092365824948309865231749684066487380306333045562393728751063467317363619287835180731311166357208522291853564324245315832330659326407661532339312176905959958587350271282049763882150535802080813667180437303129257393337721676179833206058330252092118447748575932118412768337082110361482043480891459656384293316866248542370569485538692607328956272039536675235940969163119364841175466415860874272470764489733602907536550041751097061500304104783556205350516837165370334340690858947926294365969207552775531676863426082897318451492043368499337701384473769475409427328956364165065009845521999841224487117333678340018158792860348078974638288688870608616184683245284510029249529187887301087909941154782579049204819081565868049112739358437346189471493351406590952508842535173480201068989858673273583475276634989036799334575534357883059398906011668717841559178197213472621265002594252189527402650281014824242144973578270855668055137051373650229464195208009756202312536498620290106680341103961379886607721020287883638549918838845796575289728810577689048002397516480418323181376257995871628006668093336423172144573118997986952406566129946841818034992602790010093128089078641904799712311100287214227886129464336627675048157825400245345657952360947077016106107079169908107979863765137904066765787434644107237536038978102466578804776235399487487756324206271985175452790607207106896485634303089954025327039356700988202843485892005224860078454119223407504681689888645779070476658795109448105619970832134183719313263784671364347092936481381926049548353849691676138208998161630245669100649755888816640680335206804327525175564251076143033621678386141260884077524896474969807644962450360195759962406450421397840099696916430332653941802302522647724652894318275982588068846613580517027762600752115814111733842890645688840077090815448041259484070736871409430297389187926826792371270455468450314535848636168764792539488965199164643336298115382359040732796562137273467533080968560196451130829500374843946896248143762001434906291214489025548980734381602740087366809649364276762321462032996457108360223559662210084142888358800783925359845504549089587187569832688448635598032508462798592621264197817301377983054287836808323796585044258797984666002058722405814070420165752523980378669430528747613282770903560353159601400958503156290053150299841571023192033056992349724984005896283443704525106152948070289254911549603330120670094626096567256694186478608861251781067721747157235836820522520519277352196858329365847639710908071838385924697994431766613634321528137314368546013461673560473522705675789338449547000522245933010374384919393175790990242764231988715360592110682577050998553236517313798467339936923408157202616506013690879252863402931500021138184875077681756051254764511406615145307527332832488777754968635082221172952330904533970224459364814120735722814553832116645231524089956237245047916651832943033791270639183969285567360719852460464266044604885436360072775728435083112920184044281511984961740633890850250272414533009811038951908868624246361949089479853628841310422762701087885722441406823136526624186547559740751275906278832340126532646931593360860905314304938130272352082503548178440711146852379877597531380008922460529866497203561882439024888499411544962762304925661401746356005560649584214201713632001141129814759541203495043317784577740837336777602618212633125079172408179160093979461012329062705207676810227001354708636000256894329517533183557444644828958814236101220602341056948257717251473994553168153704731139093442098928983531745543638350457047167770487670616291008265690438387814478184470220665588944313665449116471345746883626851601930656427071013944819870964154347971572749029039356873227497727398403493847103300425421809253354951348097486303253858018690640625383424524192753943633546936606821263416235389499853386865252221691846087855542452271088832634234838144834393195758786436051874015126102567586617168170418930097311190808443848900849766332147382603780363412704304333076128358939548162010458668737239080435389716481533589734216143418894286990240127628516103782352187975703092801687155026125624469388693555071114741365570754185970416180504771892780200513569111037453988750336943254747852874946454562997499471563734283298750051011180045597268538520304474685432526828458747008454046758632629948463786386249961570561096190282247351103456059621662809078330092040623450656122668668551955265962183831011605810629504636228859238765354716066720379221973605284855758231334590703061852868370397906255373840136470551881787261247143874590353971338146458434377224069694389746788192615895585766305069587214858125380815052844791303511536036616045440771609533246537262402988602187438884561807199385192755421362353156220779928699609128539820141004319806196379923968109087243556459907660364103947468602729097183496503265599054112253488342995360273866844446601268361924495357129559151761376312517053992621524276685363596080893309574034199712881610400635139612276568910806799520919044399397445091525320513321431245093574361822995490919226358257719520415870137715669290847737177225714514205161725981161502779238996441259929582146716093263695311071832475110442430503959934054404524142481917478697862157973120294284791819037696229573687293353003102759350342049819159764616903379548815181640743416897351892038516735857298950039836347988885105166327778563932736123499816950340692794092991922992804691400073768926115404363770522811980693103902570575242145941005935664347017637347501843818013867273780429385086974272172889815100976288972462803762089237381549263635069685598888065858967046344114805290507604459933978037177993202539496606189165987073585588454854759970031509191467916624030208877352361976500573720460717571191030944211282120891756522843291089814813738824342500663032690291106334345836896832985047016339624094504825854021287357828158017517145423133061794145177909010577215166837565205974616281310154324738241217016418797149834702365735830952273562577049478988411487118749675192679867805886594857114572233305755035852998494482030916591713678413996604162942000818108182916115336559607842544137515805245775286321983429695702377307315973216359228533252009142068176005504258964149222650508432755622430882525426617055086282294573431266900685811694080409441477716258288547144342246501811793604478195797250024022653345439429264422809147721708206298999711890305107137066432855137559393183097072988423260010461004846570073291298700617068808463272245222530129170179900157352321364410859294301853623087780574924267938542755701490159367021490886825474392023096563578688592903813604096860993919689505697743323478172047111622764772021425190295017034274950367852932411149638486423349818025155344711565913155566694149343970604893740843169710538832498257223304878353827174860202119830837977598417572478309773034608764258767364420986907369064023488080837274899770961520683750043295673085566104615933606994412711044249057194475542103303057705517347665435483924258411097007025560347552725171878056246937479910224229237634896588513028611411886329149068134458322718054701008521910596129417217797280390306494396412119279804890826360648596466016617260941069404555828783281618939153687282303305646025689747722796951156519673208425283193737077652341652319182326556303817102326824545666073018935437404107043853583838654892522301576570413061548351386298476470002161552738300631084215073613037893522905994715937594144222270238117490003205848897809494152101819069464792112096975637638999002239429838445439144003021867154098565298473975195725292849697855440325049790037569437853336386285094960927912462336276297466868925632897738541385858267540154625881245546937281397429959944036277826410679503302363808386118236846298206334338969694819134425293451257820983646950173984217885596074574918794654402106414414971192715565768944959451002989618132140303848882421927823317637762524385301519906914620971485345361830451300059683188306043294309382463933196022537812063492901418857690735860198940880164489860975475130793606334639887895172083003177290690089533440483521061518320452818137613209104306722925036999179869180035888257064810751591646808275109805024994373808287648698722089985625215166521898170159768628539091123855400758616151353278507867767090074391531667227094250792693795183775886739228272058292684929870247402654091169938984315328256704785594477376820180143428727307136662814386413018911699676931453104075959216129417079101291266105680208987969796160568210040734755397924927607272393706537913467655469471442514644716105365900580158557772287278891314562656361618469186533447198236251739022152213098000172206992020100905093486252020351439606147564464691999110113685498991450020742579538724078228793210867175933049446807315171004338318017683131047718944109398502094283513266483420027542358271348129322183431547663001625995926290649385225331870907609099267253511191612757570562479121148469546119845603273715217305965794842022181878257126028080120232082147040069745826147276218342090612174889595009949823627713973118143054300589911075720542169262791392753748670601165770531911853234067801975869169244805037015308527466459578209831764430586466946398190912846443085392339937606671353896219356277122320265632265397337996532835381100995747058906887683711275347330586067444033958275777714475792168718233561487224744862987544162996347820964093520558669023142335361882645799897820360650038991094621087208115327694255174205014498787106860742738899347532748825220800283385718142350530293081876870441226435707111028287888047109645393055097083356359396983019310878623143970092098046715765281157453001060210336593238929791901921516097702758324718563881131681370609617387711084374517416949836696808185937946811886898060076149424293024362468490698950108174562454348397800213898037139044302444573856035104495402774644075765242754285776837007149874209194367830389580672206041087218547101629065422030813164289516612761378834868125575977032131102303555410419981471151772936166992075146876379690753782768015378071361937722833955355287940145787705134392813344880789061948421667627147489000300569280279210054743912511564342648615072972438375767967910758337793531647358039664823162463865115632884379892252962877716111248955798022115310161523880158316221893009094581682477862676940160785988291717407211823374392947014576755323622522452651021302560229183495700637836392244043762668651329940266023782817098463747984360164426458003740702381144700448877005069407594818300150107108984415823444053686957466055593585925597418568193283805443293973673119864072023837766699387018447441617522925829514527192525492022929845854389217054286901754776339162233599441497513909401026488716816696751397293380234906976109156841267988541631484384560792119202247846632373707419574542592666714664043460461614029725818077244061536521672036863592541360293983446858882420676149442808360084976058321491652467659252625608568534822079750506691445487601911064959358396184861325397826404996907201055847578101177200790817792956034566864210234315095830454044246293027670464274875368279894708711521121033583277799014639348487503009861380908046174648797526700442268375195105383914929733070786863086765331116775884922991368400110846572849197624912244652623640305957942114982065129469758112300088203852516293561385702389850922180820775885523660717579056575080602449674949487670684451429790958517742428109922535077514185179453851237143023120133040648201245716960523585846818235365379697619541784445918303167308187724198853728291115450173457859347749401824072120733994106331597038549793863114970774130095385826006520051748859316484261050663677615017752897831026276079170967497788236621002855437837996114718308791300458425924151197426006762636553068404253108089144048490721188737323486197678138881899555519094252868406246548846132494875700118332003487136199257313700864694379542898791427738360842589905311509420737417232888674938519683888477115617870675870438149978993287078236842502668799139195236154731302582095754572295515102728944475784561147093665294626791063211613258563292352250332284790581559140246381752795864000868839919566851829600824735015742685057496791152970431941745465925188319689507667782199126494851584455262746102221181334462874526082195207197259736382563610269540789542439393961356821892222999523946967642215401515025216358905015396112210469900458852917471047268951061819810800709163936654137273767799604108538344049250115475619297325968765000744653924167466965366471049608032118684569227659863509381547240769623633562883786192065824289966280730653662067370744238843289913945707715010569898742497667981182768874748920946598131192802415842540613000982287649333715570902813073252297119298003992738393682541666547214458550827373582523104137561826678991732547256096655794290395155988709204301842885222301304268830265820826209316129275931139492217852851307537473935959296672330836915906724716992935528531576017224237116957019623058419926398706062472347412014274898729893457946512887159817148502445913410265306880924751001108904581361384271410612603818030701681445926283241612563692044594214965977158174114477669518608678075224085202254211526710299882296487630418038162820340074001333832605765586111941879948385779687785196303967873891999412196620924229541357357937583551406473312940325483638738447946572173190042259685742725418122081019600520382346343653069619289525037482695964708458707230016898007448252040071229225459294847611299544937945238834222900963178623972823982740919188966879166980234475583031801300823208545509887408990509818459991731455028068067310648477908974717323470362908299568240976456307680955299872131550011103472557980246475983587589339007462917516585764988874073664115753725255827701491772112201492231931531086810224494046647396203671912303004867313818700040664476553885678551067377855789381039389403543388176045159161775566595180773617698409929004409975636238522759451065602300543705821118536692795720785162062108178195754863658956031412588782032169658844130586960448893874161603589425187231104772429263091549615913171215874233984561950654509925943482965104702900138413177739022177560437851025663834413757533645034845745823546025981827940888953010719823751702978409532184667850227763022177427655436211204836145008924637690108028888142025381667745447543418842056781621578719382136771548937018574263248674507238058077320825390667901087514450862818001852234754484119928454092262259499027960626090641376406793486643767356464089303539731760481905106595340778109627596387962045869041108441223692059896608708997676401117098394676015905029843009186867612077868453737111664389304678779280713059696710852262378001849920935807517416474302507988189838033141217683055855707034943068350178253993788537903417023626053563222672588555868816143501211915413909367836722476561904797155364543939334739250993358999828918260342577357711111891235145298673641680546125092770480023574798915040799135571398760267898402873435290261407010822926193542829310610651288646843751204954433801853341484506349638126985559693237522521914024318929554735388560260164374950350784780990199769175406298764019480894954882446210426206531099546858311269899046278937664975741807011305830374943052379196864759533641781776188064340798410907262358714137357001359022057468271023728136720353774409025090937665878237847466453211226904118226934419407806627244156293752125340251803352354106540582480859273101923392362426665292950646375377375346014191549263908017909510819111600559404549947415617274384439153019500295696932601999536310213777248141181727176974720058860663261787133123958670952897135750330129046634876709129920654810042228626483896443555360037657946729147450497277651518133510159532199436143534348358676578465343122750814357751019099262972278958739028228174737063118764247324698619803694696001736995598423745863726906811280804761166139796289884942530808300921315422728934706967300995323587728065212162675362420217004205142587107741471730493702445751724575228459732016941359240542291008616917845508455961269100814252049819746222958561447084401524722097909731377042808310551451343430616025236200202989604289340022994183031943500325075448091697519161609878130297468552792679050158858492293554850157489859876361130357819238917554512938544208940948891674405135815536924904010132910391294422943856787585666317467670165773030922541856176813171615759836267653734657066101989116833734000818316924615176660952471792458893748678611777385418767404598379898735567114402942468369955707268935067773109923984837174736187309875141138052634095656061592042141468479312153430982135778803143713764014942877711363009449655041724309143136543261506067999647292538590867982150123613304818457850446024859802312710284288838436041197759795884877627922843292803628374498535521848616404389110148299080085215367096583034814145890831551880966248531221172172514075098300033352776279727313758181520714537703073989415663997485175041356627935899703943430704670960625231179644141330401534415823625167092540048743069713073068564129249590887876846437572365504422813480341024704801613488518430648589895953021871131636605924445902332809547631933353858363454823432007430320436874729369189322061097331082904913648412896719155837606199497573449229429437276961529138018432369708753068570431651726720422448540743906199309676984959684136066245186148369796257268435680837672055861161266508027963545314516357462247514530970229013117870571809108819370837363396556719693364000265070144651392978915040798199386260094892668379013180732960473876341879106014536620988889895312151374594403432215302166628740951968629596001064437316889771702418969219567942776716922569621822074134792394236740951095558662282039434018651703236886674487032926972387655086006485832372216086918211398600133714807715062477356145649469579309928317685836098676488188860225133948808213806881654009585086421046276518152591557299917120874673492233076481488055665607018486912865086326807070047578795426670993265133852028478021808855221228673128793780644706080958900832840603968638286742652337724917473736018404114789009924300399606635127875786373084156194263738514244818599378027665920457726998593310646428039063981031335558904296295521372088589026383913367916372874363618129351774824989380223197332607480750247271992073375748553824972117488250779990824257964999429350376085287861385634953337980028077491676016144486617620382278557069818875289285442938524733956785099188387044236094664671938053009812486413393613006646979616143754142106176234223147698616705046037049551845178805557757109570539156721305803374927063007484098564937453937035436331583553637846415388308766189710343841218809340103668219455284339542853290171646185415483446701956952656076243069453730756689897880755167925414804537882318865962584165027002200611704845272378919675862549477454652824671779294652507960928694671990364073549366052094051278153214092616703731835624956888304952234811916700988367248702555137927144286714408991629403597575373695003059277357682373054848720635381519971769780250041142628919869695526424312569120850820003265634864839893108570493556807562415118557352632958340179680635080769036864369928041881228045363614078085854103995407493433042857888204063798308363390869160962024057616025068291742060757086762980186732899303878793399861878314129949508847745710534961025432012667988483044548366981900471074146338812189965121927520739579316625302536130896006845653757212989643457405652525712779078941046330814029702074435488588857035591816815708364986634123369619943026892988702659266580382665244977340195638146374178266063409461222240774343065160529775249915569978000629841786945524264426548937897282367421711954601299100869078633465373153559336803660262112937049738564324266743893917733348216059482340763762658937300005658909343395290389612748118463911786780068023014280418413619466255072701462828407857123676880553770380485927749917785158630039971886827721936147611623492882791829511311978318520778318841584648527235758558773140068146036646650989349392099943126405867319903992856794499675224245123758068009094039239632164493762218464004356011687522200848770090056756243541901032411378017216276853738507268939256524628071691087464672363120377337223538873602685715284289980987933729955367890416679031999012110680706388407015748821003441757098238109432321820058949925951323396350597090720736683720798926067289090325996574584988926508512613704071836910224747622547151196909284898182919441927319307546312313367421628918013484298502089507198160153636984703950697234834962805063939569979300761284506498992017032999961735209650471570230025410317546315613639276440621071791757663799596627964479938921834334264744915129090883205101304772991855394733003705596371013797307747603997244340906011064092996299843520774853909994745077719558994700711200331258360946388713221527614146830434373150156002486590309874780296881768137769477417146932220338191014302183609798456939475242371398882629451950516382565471715237660326331209500003568619570363555482801588290285132577742902671603404593044199843582564961577178455651719100178169941505489172925921630332145762040675053280222767665309369172571558456350001158989333508188152449058886603618973546040180272078771966963821254293717960470184954336044199459465640821010979839611333017264525369544998535588119542251946003342671055539940412910801219056353435568330253494449095147234615565096885524206301274859028316902980728642919405603398267768379706650304470401612400495233226177572417845276842897508224404833276277486769125268350029163896204616352770609079733625367763409128309914761918421893487603962870484005731887374747156509103838566216893130993100943841122009889026840032408605883643850631186304181953213895034400979095857318509168505139255159113066247753296162878198322531537036896459719598869047888945896703086353401762668825228834922513236240200962721268414894622127324188514141130632975443107581580493388821292772596313924121024809127695820828620407500671185657136743307672174697286037867373224733455461436457793749694347264948692393202133013182732485644877758131820143328987407042837188305496919832973935339296856852961073683565380643749355693760981320035282838894583734577856947439502050856534268592804513944818363000600658121015532304882528026508942429297549924078573989965782342316829708272456999656646940233431641924859994654297413169334807476773741674216314117671446992390635054282191518229658976722437409535174709493800171933001304958681670093866858791658355926982508198215875303859703496381615481201387726012781478829486367966065333884138821212252452793985088818284017452948850452400356224074998401106931417475986338598611506634557551463095794561365951244544362976679545657732428412606920377683611473604035910944058023058241532825426769994291383111063598843667455020951755383768122454281081435892105764318504541375642175257272137762646305716643106141594590638094875374382336483703298270067047140053815608101107686125090891595101979150476102223987262827029827919057272320200667046881150330270508395016158352294678145878288672580088212589284584957074853501168444008771821610585764705470138367522272504693687558659915043129888693044318159279915275877890029124395305840235319289265540283890934627291155036773623319078827833484806953704063376960299090158797179719381188723324491887157736966124593285735720314025182047384121217473599833848112580370302026976538992024328321498550248261394219741473171820552536499434326831696142954560520916742032161992914334848150120018284303836870621270711761358297240512667168900002769799581442592140337238618193687741303371439443505796422462292173590521014767595960821373141881773533442799814265885449050265860012063589782636299385246851145396093427518867675348994778223507424922918292323598228335876053487668899814880113807151352178912040091006321898767522626681492859131765501904977297122692370770078942164162157680589577964933072350118079756533078576484897331475343855764110960185794997390052432346058466932827316684345751880644017144911626485920109937579984833461446175670693766063311907939294891779772609196214112623441783090774464323809960947811013219203138800815221660504021378726396116633780276875144269047062474901269560150932783167214388834241917049301545859873982114755293563773735418513447367870101318201662906466424426341171172096887246639283952715776236120496717808976784151065803507785224074255617452876733118963863874163789560499479518731327203055626432204073458399555879235137499821055916476532287193279657661103601129345385956885980135549297159682246781081881297178219768524273574151172307241552525287029741663620450774563080248415582511909666328933381846604227606795187028916970199996669613179328792931205257286105492680442512858403139260079845890474777139414770327671834894380781056753712102889152323609177211471752311409816299512549156879132452905943809590683174086614279405588130655970450942860318338042931156497714994618639402770801795982155180343290792532451476344356132226565779641819540241567740083886297367212354117427434242689063554586966231781764827874072260885913384282541304412039781289724129820481576366091707653475691983217808531325031413974279262122176070761868035702704394624582906158208140179862196909188526440204098694736890653643345553164808401200388647525722560737806673626555540104003548676597584562703225205941738210534085257701762488247864056306559222000773290811582315217964617078901052459258074633885136390854818145969717470691852395785925031329773421293090853108007337500139691681122166564130070578293456191138079656033322603756103023775442759084902281933828996182907581175708148355970598784613329595828737549784700659075858275327186008314264828850810860781048612667288885365933950718289989728240932595057751064193291518183158653550927098308876048520044800019812577427871034966919798206868467059150833459795365791008205312678175121031339816397487468472016550950408975126116607338976576762198220047205048354379447280326013529287385064878870283269931235978481663377617414890891036657808401307107253251901429842280404067904220439112305464417189062216986324024129098621667031060522182172975434042335487814537358601864603967697677091858097043729774481445091075057471202983295018415252589900291393786418216875729468069149864186534396690048374620507284245635896438795231896872156014665259806098543245098345820109080531314841604374176960749644166168230830309265687009930967195521815759989499388310926736808698524715246669718746503218575852073487921583233552230134387550050698000410920485530845806460961813472613943924727883327317584944606111836881311486393861887483032174623498627892016709001184618348505858986902420457026188720076486900681870083138260849363533163120670024913887864062318641498318117164102318290413921219335741505185286513986929709403295970552631604279289803196637350523444145452535643388478281827421957998323648886097786195906254883046721840424341527531171117312406670298459619089870089393555380862772264325001116076927814034112106652637528248913985300479567457947074228698512160391834604110586868075277059589794030513685911538718426843784923425334310308558575960562794355905091074302541377049221728476917821741555409584334246415237375429865499087145298212205914759765929135554307031179111481518628936919019537804153642332223189170537226012616492722622702636315367362247715850510014481193707955629754314047715004710523446868921614411804923557464933987203127281641061451640897363976838148753070892026332078196140612578925616193925827948745518784981000384595862607187025500871884524015494276398305389916143029386760612148048731029711095488249717538354620973392824859717385269165506135162145237389901669347067663700770166919981961103208381130328495406470580071059022508489961458682296427275776260183010738132761606340193033398483118390374625272768915579870791178282602838057385026426049690618089796447228985240685656161871129751102919672088649899085070981258156421256735642585789465946715617663575729522747791368661947028720490343809028614656458725811906177659431442982574750342965235643620665153210118210951584802253356082829430133671037173122405053287968704446765921466227134330405781177218969354705913442370282239354576922015261566842722211155025080833890944264452769042736720591639029260653871320076382123556724897155221242311559922682041462387340812604880100421315674141088767259201910865265080066455819865590358181639193956455963557838720484891190392799381132379888633305597768699225530673196691592386139008698731546091534293396156906150421970452800520213662338630491123780642253519607384153077280251203007887896254195788895773353287745081132356363671287154945110709946010611020554492791337682039123187361387582567757412446246910701448738667120411756447113257817914358110041339129510855801944650605031989087883383364403817741282104468195171091409112392425328363878028242019425330552929714100495679961387020725160932455700117346614733716646680915292699001109484214510645765964272213787037879774030961124752438886664399490144918442371916126183897907366337923365139587429961765828237597468708240384050281956970967811226464943957524786183565923425863771418744119988079053126859242686299098574815880333005753922541360397928224326397045994953249656734215565076079039406513347344043614117588603447624702603551146666614153251684669529338242893699908189754115287625846106601538352365646340829264711754825395472562016405595995451391943903877142955242641736455141269230357607034688566612362472403137571198062530972547828363056687939948277392377692143132905129566969814512438506196597624940974747068632852720717732952037042616910601251973997652471921165042129161961868007139472013865017986767161193445715215152596239642745330333998508007307986848463236014915827964446946059833540913258894749617168857562504489476465919351178668746018921535716926157009313430125761839946264667720805581662232849151070327790105524131697205048100168778381978279428828016731954367819023377810088878900010430607835988991989340291454977543664495398572072297876848488364844519834068848464886597753999375686597560968104805721463887750850787518037635657860534223669828842324281312679234863479815332285217853419700263607996434744595793634761764105024735458146205074251506126962709141595370433627820496574327784520627719355964830224548583745339271960820229019998364358161037151713561564720129894670414228538960491376928614862017982500513999037336140621347617404119101095621848719103524788399875094953529180920025194101332403618075678026127699639316970871156074326542171691428524855976260005308064304104216051271955880114478678655621765591230814149168716303537475288029821498824163754113141411175582338921392297601758944797725186232503323216049480489291376631277842057908312195793528973899751676717541655110899033384205807232543114017476245716885550917042199432187712164136658502351203222830974096420336013531302576116282369331675456758989792069552792539792771634893947553943020565977062216829201947082452421443543870399574380237512922383948954274545288865634456811166255902023848875055612024020047773725381621821327001434609963739699168967932762047101046405201753222370706222576494684637057324482102955387391083075658639549354788996286386097298461906696065810266975914885265578561817610084934036534789139011724673463246079124727551714542634399203381190009445132526055904063550642976575294884560437186644501446312718117368990929724273698780686750090557019136810132631549376934609727485476642285873520244144506032519669455754674178518129833325864913465726315035019673421150514702872257745259635872279448314051358503256877500375695140832678267470703383013553834660152984970579073967911248606861026794872074881741309235990731290038945184414664641182988673744679597287726065881237486980984591645563086263149746039588049537209885904996174009598819023977011752259835773390764893926821952633877898902046280948346222149586560613074926901253663447270644623982271073505439335940205712075613414575743872326316576166425826520601307986405411068491662564543588686900765618800688322258932652450798570057788009778376786762808867270956040403498845921404276330186598385355405583267590033111760774017957123300732228443795990175382772590453621099711683040690398249248704461995975694970508634735968239368221138331816410710495571108792260072438554246501230958999857976341162378396099133864385516663097720633977101204821155307467732926894841469700214912550003919502686148158737450554109473819060055087365658300511501526915019163445829234040727568443431110210276866308944744373832886554529970150037544663478499438890431863712037181769678689442505631774757986329194332680942060015205383379029882467454164054151741096556117178017018139293798033993011095972479763576973407888938701983763009391729261165952349419780082956578566568808324659744383750020683538376060605235577010081016314934822369157367760475989213798214904223444008094156091065517926407287534197081905602331953790988462372956662439393139143688362411901126656939021454321075641397676364099021704052326925083371744175757406546304645036667951199957460541701795688666486568528521870974254831629601957503713342704829342402138875389812663833482298809704430790806809998003562315571740245187512730099932910896072471036221545019025120304557717859762025795271221866532918012435404631528361669771020414512427941342532703296722322727456456519180027968883745229367665086434806631255454310285593443788899945482460939425978758360558275490971735957674686487080144350887797990161945288097052366717254653278989525918268854276182989589035771314439768184958101729350348605407167757695523159780865440335710472152402829812051240887846295461968164272459939727577105739036132165733952963494013373320902217322789294523345815325702852597560501945253515178515613782198317465831352790531974279247356041100802912357044873193225674616726001867500870098147575080568255980989574455213628746413542636978413391669694462046454104462120646699757121612287078977914418301499657834538984101487509010681718708547593058868880154785379900270152576697932315648461249464927685017241069959728750569246873187460274757103874269263503692899622015666162147177575114731234770726015229743178023501280237908272618811190489292687354531306220057232251802394315079350791515907075463131398825806465126060907623313626131642670880344989683928054687806326594036659813725190105852947843339178612806132479605755697431088982049415035765989683244121274712120040585136361234978730939125622328335960009981143418975556689844501492050100459533280602767976604243471512016545179940621020475716739784035386034724637653646990641439799169545058117909943393380036613023991694591033564850332686958431211195827348361689261114390199460666589466581121267982702913133043165452471896523151052430984461920217094517291699632571491580090479465581122202539649643971950415520698283202971864820308705822378575525712560889678935962810636603695276734167886053048122726100723608830393081206029147062229973975918241819807517420209143318335618681748369650365297001868068613212804265887405279652119251028705885275271087731224115505681411740916734295236991954002363908436634804744882415861817708465064674516407296602945575968564864819037982452805838222926519396614729650536792303040691999372765508191882729364452660014340444819116916255388497397430777939358966344016450689339297820168065301711583320852053340930915157207222327064822175009195294685450306070471387546520029473074823119007182179678841093346997931173045391559829558715925024529647900110387600968780508799678097953232177782056658010161733423260711247987355245989697216249459143148070967798856849267512255742273714914022293437897949016212032167177222074498308072158639776498997454849610063907140609565410609141247479780859018334540000538450170515992523290147786244464947337649564329723638960936233814478118890634316830878667415656693057329017224735399462526444215289340167967791703986287541554128299952886099190740407553842225355793857609477344031803345108591883569995778300500922643657153035758811257824160850749171805532450367465670279600069414104445496488532381163952009897128948526997984953890085553579887819039166975964563418478803582647112351409175124869052117064136173264326665454419646407689918945205675810233644605039393738762959889143286282888519484603242458160071428530060732158554125236818441332338192888909480293122721689060636856060008966185873461380919172962305859305952380914967125637349458712811282064987038142792500427539818400544327205944254287605866690834194658837947273792344902710540333964524366182496199433493669676116679761396954782865701585905501725938590144881717380865703858617579129783246292260800900736329941605315153291076989399923603953685283030453440985346909120735122543586979075193624575263767769701290671349782567925334159811232271025568977673512972330006956026813180198664221540036529187284375160709931422550462346653718485536572606043779190343639302597552037056865496962644530301018448317068373663760642918007137668444379266715730139345116947816364190757272428561759780492601619875036051925917664142474283016014177024984999990601087698490458134213092081745474280332102955990891985336148334293640073392452223910459347462586086404730651469364869183726583481793588426742194807042515428164396956208577972243945619215437957026060411756949446917543981324425290259513625352656652730265670224859457002900455445602981127736788712405656605333421182303196783795826956713255196708553569522928092971120846105803906911303603132460278754107928027234551432363940150079477246162979278951407054799861602620211085259585303159480672023940212097169453081816834876811884361856856675405852036853893007072059441095022742295870421662096788698350743754272996988932430967160272595339218936238427179467151866527021628253277456258221828772112089116798120149879736033936473593606386025931122157305922215553393239326501188749708521682246503517425110210256796875163550212247793202347577155684894098040496768120066161961926905719337814941252704046363369555034343925264963575596788859367466717391513371437469629760070724428107380383257133309312187665507389012730636435634831316620579439512834145596534125193024311183357045884540436030545585805493675792203574904072811438678943887663066785718188750323762605906019081549144620875350577806255115888229169100476857230292203900330593669236452114792100388767576554206581572664345056860875712434915537979179946504411379503919537921992520668566070247708714631840622871218563732715769822143474829366101190838595052273205520812464938769499587365095695646939943235444966213329509582949397326321617387419145415752070644517168142135975501858263613395626541856179312276695539232050643759334645431219454704528910693691331540195919135007513521924762849226666211255929030292476619993492638006381693551397354970483384098425049521158751587158306974487683596282857928488637119741493062359649997592983134325446146682641058547094799762032720021583099588876312338103186766997314966662254263331808698675440485314967170286887021607384308079944193080392644229584314325736662919305458713841947111701929084719611878140930000536783557323373667206555292567818284140611249933851962191103399418341941801027370814771505942682368823979491419149108917093000991688026640873206590292870631225195448772781152173797722690659152199660760909135966647180968890638164640433792023815570931272005913305098864198037914601167868410762191444660970054899729103915361294214719598791168967785439344830357830190873943132714227846258835718407635596250561463338254502686503967408027167065675589851304948197118590526721450283634038647781434947758028151159968592240054245010518673638516002526934524149967102611225169154759212225281089652135213290897070554286478266895787348200147178976418870136146615406413440614101693323698997838103255375518714237739026955348462072988885546105782851544221948085107445502569400965086588162157965750611073488279154552111063998721635787339226169506996007488124927596068685875229570764090650707957202997121977485382130502864585452915582988818444112582820120219375063176323798695453275727613669234578689199104945192852566168590453054453900808652573516301203851244112986799146693446210219340261490945252932659323733961564415566783233386358458936287478589593054913926706078763535788394251097729290013063491898581929882877379880482509374455892107416158518969161907470467322503620817052831613085136636942716092742089076869679816265047261785442179515808882839803341505935878152236693086445746447806449230692925906977279036175705848207674747813301423284541885557673057605891045884920158643922580048514395642308350194512853977900098287563215668860218388143478228987266152222482780778819847382629168296536230301700617310201265151564621488163742194719358543867116368651364346309441496850997098284873529869012640725831910642268738494881680211909203573551977487859615197600785429232948558035453172576015155399789580337667465963411200593081518980521129426543979032189205341410847359253790335034282020469338041779136944529584500138556907232568457681337267262598488698392830797488418255970897797690079097793829762705057504836776692948477707403426080764499402160704832565506854198612153835101758667186336828278230297024877170527682760167969693927184813385375086517929940880230473373233699710596820417090219458233800664660231431095057235332525032593242474946764289400411311429470935920532640602787462456439586288070714387562844338493309174403636783262170275574990431942465317063899257174670904645705509054437130284188095114814863770541549349739257801561783158643681172748415336743412565256073105790421076513623907672741381567366051825031866723424532230598651508121216182416093103147859477619085366852911667547675996203139261775827210731228867037214175984188900522190334091731570893985648750197494464256322795459098335504066492239494602819559700689357674132818539235906391665574356793835066576692099482350838809064089382686975580992745753261559139380833688130802282056489043468642786407231508614008418588257405169684408809734149698520159105224638980938214742113259484109482245880298128425317495158822718763138781338966999563260249165059794513056722358583580866569062416157097845788258603404931458215116444710415950978875392492843839214223542680672306252501787672623684217886422432786645955353447376440564205236449440145682782759296313254979646764344386864721769086645146070663830420081836815468471288313376038960036317073093750610946193524769346754682674655886345678134895494775828143692554506983091237458317543504561759505145201562224873657555911256123670762453148479252793626538253906232385789859773521684313168965032069368104135896806680363972196858952212890621613603833950670146067777918945749660941199225804947820306202854593525285546274120836652571243138165957955432248451826669665374099725090935650899529283023117224177272407614725507982871049043328090617744756357773405403248100285675569747315191052964795274529026160650118124100677047773923771987504850206115276704548357895799691033039011123026540816272543228626226462968405847896711527701140146171685476418624513756269595632496765847753967409044155722956952997364015957439625946438614291369025546398573098743054918860305088949434726708135432739543584965959255036033690395966348154984857895749096458660543066047929218584225588066272139875317079092120051782428767453996271334523216475432177335702182382461286891428223825245583064164146475746418434684118304142769150577591537279297941222880673682274223207156390710694702862154081013069736680248733790406778118978210072206535245259965997251193472725545124190049134041284255129620235518291341352007730034108990772778301878689870080317466013640592821022380815917044046019763625100954044802907076396571136661022924588758947907008104056587476053149525321346683110440864998382327970461064830266720373296326084305869826170067896055588134357256652526439699166876603253409838839779209236331083510060973368857678718182124669520552891852010576138163424481711248959348658151378723559198785914420893292743925497662117794415748317795969092643958733800474957418741894565316774235775178197548958448258560712804806440292633453696819741428611712794758718206139624431550436098627546626668424660846564990432649985286777381485577974142072107871130870643059955488534724894364178738398428323224991105005873585618725096677523846976371026509049662555337412217805325506830280783135790984889492282762469643485563180035768295453522526990075408038832317307791233547298473663049155274517084488858050369001115523594315519103334353561028998604523290720297758305911503932323795521848326445651571823117007378639844808866272145156574141714920412909038908944233186654126588964485382756493473463261048831612979217622733904356097836127623031918021446405886914743131972568687143091097203676861028370209784789577017360853903418630830936081417593632994796948208012051273378921382702992796189622804655673020814029021616817656837805425483710246287328791259740628968607547183303540928886048591291909998446207107491040055392549499992074577864043392433163148591092214962262796590482093880276167370896738390161339482867924937602240917921498297051546911579338842739596656456369498164723069259818423704761061867073713405610639190393415683604854229450047408220480701734378421623036021384296880646432671088106333811529945554659384373178299068149024989820306442570661543857830357619693561932921859101618764582021374762133741393065262157934297149446920817133422591890149523176625065728699375788525908081194600487231394157886153867022752232066781043144369211091290441162660567123446987293194243011257367853167266480046308368317897954128977100120397923725357607005196117863463970580728392594464737961218896184948880256731117936626845845872936719881946288464382741154543814310290564389118844335486131845517543670128103751537898827311734556981313257587582630850304659923647985932350585227742519379586105353326016003391348078067789727615730808572979547649395783834516785122241237359885249228480075360423672606846376016049777597765256555332249702716585194534804306406387168230628347308281347754917261368381524550423245006410927656696197763696613488520847911479804190277707629310024165900791755693125542796375177790687423662388504249816194081758769029192950942505026879355832402036979372016195469211672284857571140279302175031155015340402491674486697760646654872701825913497241434719766905140183933693311922800109434081677419997902500318248753344318114726198883005790288791793888184563051340972419077344751654805735285621731347491814180453877069626529970481209087387087730395471757852524451972562372367462020312863904952808982951528000767497990194256585164043616039641712409381071169924438662442703533640211661964032645135217980652136672918537462137921897360355767059900686530689953964195042049580357093201157490924647419640455184365621803720029855280229461889762074099287749280604753759240181278035478954372186796672376532561938204932902537832345314533975871680819701152934638707230663788563545639537327601448206182082098657229731702143515268141682826664168462260624671514856883168368402366359788426988184294582631645178000047966941916393601759732443854305315521748787867102287937477265884237620876199090498482096868737280400721628400342622884114928312743370529449882673536210949662877419774818951305519206983475425857949429506807881083201088249604540762070849943946890827299512821433896107425120665411440872135244022560582153587055783928571053801578015973390939137708797879968040523649344818642196986756029023456424781370235870759207192874750396273774261399229266283520330951305318874201342704806538065195093930760508326317764492526973056972793479674534450934359841979439669544540805355409437883560963002840787706950982763102380442643777321790476972120829079540589655858983582523138067585099973236871116462275672387752025890540573946678786801508744162918512473293536593197177790501529650635092747322211435326617969601567847130876923760947885766564374114220149635536096494513501576536713606161570730323797645344281212853056626322875009625355999637436356471437476608563971243954422079315388986395658083134349902431760475401419197520837559083135239018478995241972955484291577888838942668219594066799272293187462880685899707508500676691080895935336511800997851755031608518854735573374999029526932261430018796062131343069674516330527488967788431616157552182447841400273728142000283378209741396629642125315075598821519496799412259124779688372958373014015508948872827520248369539046690244906378120802690299610796441759595438497243864695589202256782891967796987519306563430291308331348921772734321332809415325251817255021469633113682201944305895566692990749113540161384066607363263137671779737371247625807114848322185471780493253574975729449303908818317491565918233791369172123474027453965793408367327959145782213346848201443540332966821037205295126563666805338053112067165728586035919613820184007784738014574936618635436393097161661322452531947467847099703358899432020964807648017861122601383688004314761897670649479364549529974823294455673057678773194428667661197145440242284107573665095761633789270787587730386900576696409291692292280571564152563185195247032748339676267297832860669032724738197007320519511597883589843018045060398052916265106030390508842216239101427974157572447878327430855537525351798763701667137671568882604130500255295117111990064788044392334549976908819448329576990471158735755707489520478933641541909171659908468036448893100985291543887246160436502800990655766053789190170561940823991085664838804492052015703106800335554558326616241540953796304981478171070943449908639576556032055834967256183207507564930593955242400093425534036507632951194061068937821294293528621108031293525885787013815825264727150769766701008045450354997561245653462614734095735799718761492332128437461059508862654324641198012426823933727766992078757643965328438213640548048511908006064645146018900735168720769974387496961965471859654103043582429806768192966308180907841561643556874625264861250666817028695999273785307196951588732031081583008874813267988445417710888951790212365449157859505330041086770689668579536239436126926477591487900852513302887555864147082538990317833363032626902675482099960520321547048616567837749229277896338972125691507629692349608598637304181485644371287821018129437291654455061977990282584845547618651192608037167071311667128573800305003152209364026685113406269819321518841647359874066081384227188290664650786125524333958982701902439198835969691615201160521473487220988675191096375589637322222481804734596752519636012507520927454350214686594824533972508741267949392338027898011940567282678498802184915947071168085487876526138961285078886566331091547098044396555406982248506117828699458631807197835328742333329991117038847989793806236685339999138270333860649062408222307150088191998959281188594409838502631451309754553554830870231199587099444723315919749229593609520605615880169204735230884269616498551508906590836756967832096701457219821664871944857266135221526266071891450893634440838569745402359853839216617152564371994785156411662821539783572293210350545178746661279187545140917651027802666995721223719918489192199784493267892481489183131290190658228518003071519098730615027786277914139466044154639456649627026974779343824580688550060164739779376044271330187691791443575280759095586410532496038288821847639824000302818578311621307003110127249226629625044453226800852150373499380499806090646775614812282031416291817256070475352705358913462938302824707956483499170574428291451095173455510291360884966719144470317298979126849042278007203098495111521552844992689537384357372256433848933794623009954145176356792478145534778731230729804589544950729615745777571642269337177122012978063522202409832302482517293022544168400181970828527687058902527785679939393427471306342949967802877531255293847653942988468381308454622323287082865447096631173196545616616920699553066695087574353375484464432775214321257869744749468308771500767526846541021963652764986679565202849344068091274284714199664814811913024159943250303811010161436547817980318500665887503947992115350359639722781063890366905191264551647191358671651952296702406707195474434309668126128713051829922542364781045045720732872811994601463215243291054677871383258644702783110577369275827490536917471227643388147775074833392892708504142143882559080674999810201234648360962696456595004498025025038905514623965288404234359263269142842173976977126722581467336765439848034098756923612855574572436471003773970580481994606618123978863335302383566674703662135115451130081613349813408887041439593507883735399088029231072578459886465511096920572372547681584091377836113445666955742538537137764223517198850498834721284882868644505565775900586637567684835289816343918842001445968649714634785098759600555871053891703968738949816081533055050942192257567450373350610984475975306955271350840207345148157470354973690114041106892830166611745636273974385910336419260994334975989089760164943592871350501494639824076048005341152941075808122103685235818038916990299415077214295238599210096289708299501942159206239058002329358456255736161027699691553595556928623793943247074413220202243062340881603427965189526858279277739318945630527556343741056828835724081031389277596502873238789419419575266825481061383259672132460919306377476208160376067234748716735744062454654180997227604359081244672531021256912809519819177542624557842510839261279975360064586158460445069885238025714442350121814979650279954595754395565149336615775741921558704277840903667707883619553611167730749558840208799819421344863267523102440680113669477370767587010623486124336831519094906537652287735298646603564825540575845027563335368972407013301021733817752913553078458988823880730166924258590317607431591459833477859551683961138681111568782581045033412219095806090275758122208456422505147784924731558673340447755528933330764742437142882858462839675460356661731703864998126694959918031102203908108324284604224443227413200034582051802220811626823905399623625165606445286170086735293501659224178624957689452774017986949605879130870295460867391733436437712531197270973714918952708335875547702106224192386595481813135482458336146975232201879703317617860206698884959592249691261077147279214756326706744087425845031250229182772851584299201908480158097497831105821963238450123824906900450136259828305755621302527477931490586852799634152109814320366578896879806823789731523657589490399143317719385931616407099419704856843306441865412513080093089276955829417242679185231488807248008889085565370182682598377376756374943429589507381365915150720363495907251357927342178854122239613870997351952678792648309901342542888668469775469341856019504736347203817548418015721670725966464501953472393879531834218732874811047709522078494848084895839679757625389054464360213182825057169371581950795996605928897735698456214224664504727129133850979728774855577213952976468433133317405467183444247310673444103793879113633479509400989181900705454264318739086134417949750235539235561091054267322387654370895809806193373602409442592729866321252338635723777178792782769617724328119515733290365876195429156062638029270929416806982430253099348974774895933769326284397659534707841892839957016540959950733387505421750281890354765003005369799004853574543328828502896201676220259237564293183685617620484276355913849810065518481235635390557775756560776904877051869853022775931590155324424571108380129538721009733984987315640859917385175215682926218170589531827811853221444561442000619586935696459403784034095404740062983101503070704551889567341256989070992939994971486090260034358125781931831086436060199533912823968397721679099329036960599697313001298317019968077500958242828305013664932003202263048939329079238172266808431650571409038956613152274950773325855930444528010098025936719470366533578216079330269614992406853041696441710815747835835259122297509619041719988511045396374156092389684705808523072165613035664254352231190246236951249724904598297139770369673587196765731101907916014364123700425093570293540282556200556823968537133829352089644424534783998074157085858418441553088702484254731314583694794451499241510701047503781208412400145993828369549076240524414776502245062044394772599188136403313331343563978855575544651453830602406278776241198686686836868261521472966742740815605570195134877569041112784826900572449681547429496779982241270842266203419193920620104088147592057990754702098018009247605885179939845261314826119161591399204068022956626317605486077606011503198122425501367019833004346078987922036084173944518362421984238601687335222533778310097479501446494614405379194767449437908731978306015411320541686474553858845386715270490963101023839016115927538544250343796493501700014337564376690278224714569679712172884263228641342668748254750734278601404322790252581948200431202269500198780698663312415745962361886934619555872288989604187511059974258155347942830427949867829898021784382030752654233685780293659661145987078066358295216797364880634894332030434628051047311524390150643975185008099283368321491735549139205050546182274409540337684581139690858042930480045096421343373539295937511071927738804971821179083459855732388982028795889525181675927292617421391589492362390759126251533850962231255861870685015409771871951014790428224076415416597359351428030002269806313801935406421905810226089668723229641753168309480594450295357966947935954085264007582665013297853385996276213443743807409221616346222162091589715758741896724108420641182915186645702182656743651807799678018453415103467178569362288034758470086166339049484765118787812702955272952741654810722198188030554453740493576155913637790532094106157812450994059038239093175974717605842557203104133684111346661707611231128444381726061456595950990047173255068883942996803308935093683148123898216639261559630434868783617656090595697992400730151878609516395910240715418676474893947940286628214486475074196718716704878216817216881861721051335698447690721773200364721341989710731929616678904886266124604456681294563355192336111829604148677787844622489226025349766738966142654811701416536626223896417202772939927188036884303715617936494169928621341293502589521289995066892354713342496630485715130182220468651063771427360428962186113620322507209378482263771559426199371237830634572035135708920867927012010261645063622400176237346799093584818226110350780126666573001865236464655228407933965087036680688666703129734372515735756956079818586156634323078701615057157112590394349326694624814856821770269667166818074036209637760928454164786894199297317783652817321991403275539543735127210461255929214441811598018083939660744043238049660317099684354719935802636285224821219624412171556633735842046941144621632669232174254390876027284435160064364113833918886893743124843354067198123166106121303894382530231805406749652718848409101465501596942264994647572576679731426536748735473731592882087134011120529218283217481875186104038492047718025162653038956510496333951243823008366489616916338881434915799552551581589573930544871544454679927200436173033102828410191838568786992595222866667212937823529320540870782145887643185396189701045720579641089195812855365732627446002682378623106452276595698251325640994712156368957869671152840553007630711390018827189945779797877383278345976679510938676280858208010988508189095348055894810016083163221458818062434596574080355024855678006014875395717046463948519438079538214706987901732371058154930134587871731249591403759334290954951618390170862274924240951324295204190349829799589192271002711499586311316945484431561523819982967675850380567184661159399358445741338574083845165802910698948216189589039485370603611542406605644632805666890319671163044546723283669015423575571702416961313134843663828705101779221462381757381039673589231518587167279094870565999727671094636851206027998431730496545944774658797278187703920945415056577111084711008598697971081165323444609762265996820394743423979153975368972528753554497929687628345652717463620480596974178273010879204846478041172095541940479828900987032267930700504126182288691202257007420876198076023263174931420945491462012694588024248145077117953980856574516526755834131921191146443598625868234927371678698275266357416575915752894938384223191659001825046633492601591035962984220059123087747043261803446912519033452742955337205529755492731164471192739176314688273061076202250719151123232228296151082090710296758628318097547776942694061528550542446563981947302922981913029539094276533814025148651471591979086640617282436210923300241540030862726876988368495025180941392432130175268749994838461021273910439164215315471580342393935070071554248514658283701804629216428709621354895215777669311647347118039336386511230663630756782784839248729094164326762502293029768264297624687060446431537307361622897262663310586300788365986203196194704369601690100687780658841481140165225295603325392817519189848907541979226761460329849994953479184475538566707080455484904699702343047814054508239339519641665930263439342989765364330066036877324135843067873400517089245257283464735181760635489803254501645244361713065514210066694382645589869738716157024522442617996835717753047404535662552101298130330524598713952982754914553033900012737662178984857289771533096961033438698093209747580880828139440825258719780571412583310534420813619948201390865699227538697364236338648448009678661758011023559597720099198815597340459668329384581978800306304788401715525376813926965763109740772707066280939565936860275816142297125316217373006937256950063123633576598524235230826510971451711881725203633091827658435691523232875218793460191104302164949928480979523713475382633153644966138038001220357737570632363677479914463875856238182723665095127962782660629368488973625687311993503754609041549113573459083459706209532354840899950114528538005405385758843769384043217281079000440758732631781431732603988294422968351614809048771750824515403303256921922402854017626731662573217282116345224923125250978425184241094995520243177261022462038114148053701075478617897433320562763389945205790532217183412996998418010792165414471816717093090249232392521942307187859178984719964896226670848505103042370481007698653881724951101736311023660725704437893486664271640682685283642762050316686702797665105075158565073380523762721670063986647325926094929862442551463252203631965534834377473969606028416546374859111045904366777894763792047534466553992060754925538698846130667713317507254895140102884522402276497331020372285331186263941536878973704548943528405583695412117132403734523161887229546361209491579294274466128726316962217586730682456519248736718736160369541586116692634212185094337704389517750015306669537393684531688131748707517025459508450691764802922910555992805867063448138582200443969607324906490140145848117707131232119148268780639240181102846173851471301673116895401677778241528920822357239571302160231194718908640460216629313491947654013305672925667439407392977466337961830203335308923514298033096767162896392844143963114890713509633677532386453183181759488716297784142364242490643778701079355629133426897670434718316448246976425298452671924303967451543365373468660494061479785899191776077731578858671889917719407323722497880170433118573213608969841086456275014247164778981337356507425240452440167201352112335813668873141294886194531335437521150482358541760762030689477021265454458309688421531555993835293504475997588903228301233366310726105915250022577434234135517410467686611287879707058355654393926206279129482041135593767037713660681835797079476931172117893113107805672471131375816996054718492629520191923346952171651601118319109975116842802775696726242105946932670742162904072161426332478164342979542896163572017678771869083755236875557377096199128530300629952745166694774812435553900071642661679621936707611169740816795603288559060640593259868024615805119618709423078365701757077416372022401410614838055151322747184627236899713230819195967287424723819804368626256051531148140051363861944055343876493588969627043452032890823297930356478001377295988176168199996295544184449915588555283393774472988088597818228429065481748771027794934337012719597763100717695972775064923919326451598045788915637863090856282253076604564055538514154166521836106620174019247295499441703304715910937146792948670360416553522845162311889742215282927502079292873291023340162143653874068041354918481320949421104971891214328194071932785641585534675914386613512552096260687175883892483533630804188159385946382597431926484353349101036353374443460442548671548493574958060716445576632626045670950659250206016353468815176606338451147809407672543381835966333553731124092195394639223134128714732358658086532985588962879214001425386682900995611846632392232750859426424538274416995403629226305919910793729471662288363351037142875242568079052239708373234570317853738508382153248260655834915211072288649922392258208027840510965197869700125951920267662922114862307893805270374979701821149037107807817654790011130497213087751006580163529931079290457415122487012213811632193214463984444958161188365579552078673642266683266302620485851969768432580110551704112164782000678920051160128223582190988597748527055487361682946790986009805486540277053470273415241121108410311388981840099091730625812466531984049103446977099643031709385930194384550004197065537593934880095034248760546928480788921362843734407273812490643160795996311928388233222641138105697052735189024382754164996284616576867630966889431671072838759790976522639632912770317281853079013988646920738996162682722351387225219253567606095663700908861521231814483766880267362400648967866678152180535781640710359924997878736794625379076653155579363408109446775019637614824559249269094349575974009760248681118350826696358636223726668298350098830054520428831655315188556320387668976653008654980200722597876000542250466439055997341968917398876145746933004892524733241888754594450520084345634017838655571172559160672191476739788632587653304578329276388997205984939170453889011772605597210082593719793866349313289441085964658722782827433107560381401466877838847116938154462762662610235131171443823329894319360283720829017942905878218522684061023566007442501953658408993783117024106432320076015760396651286355666447443816684307737456740851129184445477550786431148282068287066515442545058506991164832806547415801075307353202098257519016575231292690452693300055021967967399464311381086043424778104686432005682292504810656206370891288457177938974588683262797743242498375406948916805432413166468492763433759519740110418618973279955898247342354925944360624668921447309869775622484463870419803036585091140093057668508415088162261914840619663089676437830489119662190297113127285799292762716140339728074451465386942850884471240884885835827159797969241276148150817348992647445719322948369654450144421310923645422482714917980328483474680559840776411040046821070311117387465160573850888975666440144552859189793819745193267781462599658939719449293220969606547713061345830931944522084016536726602681814107398727066301027429168080405933141912137407383134033686642043869864207281310864741275539746529087225510695354278351983907904418052698842132653020655353899487439255543808101966802264968850976279355105619222626603038157039757269287158598516369861581655715063777050949963333541665787254129561990471260750500259910499316528694236868183099837318464020269443921824905865088487250898038649792148233083487918965333969055685349098628555392350734580692070281672814332102786512103970519200510968842633973686362111228535641935219079224916923348863238090468180843216979986625483321167283723012885627554379762752226081105086034503184379612094720651294735517909863797474501111205183307589921007693273749440189124746376719764075888339236071485532369361742595592015812750501639156598007950271012979155961617572697071596667144624401599323515272281202429005111442655778985152987127684071595623227122467243224542428472131762421093329990196147463133590482205950444473457889174702677703127309257601140164568469565284958736150109891049341512120531854829952498244881141599024688527326471570380007366905830481121629582934670663435669386882751683130563128263880790575645886211716175344004030233314471317700374755918460127103881746936598776381485535360656209034963378814409875584273321815619034412659876816915533880543355573184140605368953435364359851614799292436092338885194259650364946533048286157070445398199515918052263064208577500667369799739937837126157836954235711126053679988777197710942232216237183173921647235359762695031615413680620585660575885338805035151424479722784465016236858826109585913322623529688385361874411464674144430559509642717399360798416362490790888180277298858813948068109253550289720185686806905122738399013424397267507907836058229617564671690153963169364843536807109976841057923773986492143961686809528612492223507725350743949675003219852237431311693643136579744551474282745341883425772594233988843881529854686133652532566155194269891070832669025199440382591255067007183160971481795981011940487557524294605999888680531071039045198865684266970121371357742227301532372311374836700461508306922728832757758722098206449304475018673131903042831868626422225486178392883846245415818011813115496730295821474187562977353289983275129476952988594061171349158492910544742059774579696414809572005174604365805315948416299451082953255286765679487680382780245235718826678054647201928239032077930105465241931388907156570189460576074483797430856295524797319777743354129697823057289752166844655718739207830334349759423773785803808831359305644492725110262251287852346097616401238335622880630832836118718801646039155854409873396048940269441519711321218989837504540965824741862919083281049106761058040649187790230809181783166973097866136530745104459028970185656186301817887895499252459272948762018034895255735341543902613408519612060890832130393537241200897547922945103209052955050684091980863444171466498509041734652258468371613105251073409059589546381382070709520742923009473058701602582730807535622518697676342919666717357739305755970064283135115516227088107594256462825585132251959666919783277929038191698403336433238910275066010005063689824353126110054363860015917640133054954594463153610354349998912418824843688320969826556513611670109033787666808233800822754932595424227054980191467834474413502609064344781191502892085748262162124196557133584377586597691165532730149276141604721945206483649405738389779084133000132274513903280382160881751819326789810262894258092547363705765042330199772873181267331690318603228925251282099420843656896108648533855099775135802064088225107020560209261476434423647446425870841758469913054569993157041108095112207321677215698790041621363594503369129714082906355854077138753305642794004601284375094809827639875034521255983096928356427595368916605194153397608612599153949765217375365316309319455715072545314779091162448318858748338020086295263315928975337849269204972204975998529977455709401759017442387484140938275346281931666591711793961483118272771898469377343107741955077851366909709593566171517667894619067237271647551453597143311909231393845300878796477424792808852539587952141102500821546206168823753423964658475607804472932390115722155177044158337166847477456005388952728507936760031208864936103011339329495557445299543556177445577050729014038161153586051805569615142611711290993372387856403010691224473324172869611080419680367791152629921602436299515951338725453757470976322196776128194121852193856630366825486229649573531898809236125049446678278525518967013042508407662202099929358924715221381014676880311060344313829660655455175299914754764716148725454457720466140326035297815761993624940376440151101043505645757603889509554904901326074362175014985632700631769786649548512968355134631694716069926871393911160916319390744065771859909255735043168343070180155882230741701723953689231994904533058615347145752550308316286570222860975902054429874319316575119723800143350449187680644987070161892587775482276517484547508646523619711766966430263165776539452505967994786793119904508652775240959876808926885968116264986500069924144443921063373751986046713226905077763005912711356841441891652128738429444775690124518023273867550112224084822778257883462506092092247702705047066680021391253596839415574850661573444923612261329341963615431417998385078470266479150435187080885039818034922040924900557295952898844522342244474955311106053513555511597067125011957097226227428394325733042809434047475873443060172793284887396744933674929057862348800604041359534202732281956424052495660840298703977874363545825028556410222282590796489488832025811199775455983268956458753328708153078525147186377894983548290018345901556371117215401347823855999182000155418026334256743815146074025858196362786176600983396505294535508872518321207861249327574603490148384319349314491053105328681799564049654918730336322284690334554512574276376369388024223841641953334756321978880395300910333646823401075007698512357601636374108302423747372185780028447400393536463454848903163323823048932166816942737386627506264432119449348584383941528660679607700787924906080590261613825455400297794150043735337446089309777939235246583688833036138954595424885597904823504655946746014766091127935568542688384923432317107355167654974311827567103076275542204477099899823432068993277025042422831770305733542221680412307449828789196975616788212629677055049788759364318223739320473660447002661994971724099185373789596888790155102083542138065769532866338839170498605938197520193858397348458611700777717850990832884944420774367822836921040449695561505032109069048083770585587942817584951807927738862190323379442700997328528197870640805225983233327493042367352773042653405485087249443012974227366146837038622197467655740723746854725351133750957049365268380753172449939657886659924047325341881596038182332313544102366263433494820593476594158883523070412063238089201235664595122413628777720204413614596489730358995050954988000207441039565173110570188294793049322938391018844104228134408574496111665559702661359076426360400374625715119195113609449298992128624943013172439349871697459080215496700749362052967660180737877568487029981888387055526036281696524874620970051981214034177591162480928086649182541108134567362843972581890101161722407973122903315826471423798789085986642342279921276429271720874096932054537342570580570256069273903489891035602680875359342397783404347104185169641577972697587925232528028229756456530375489470493715439004680282307070325468046491104377475605287630117900160450044789639002420460262114363824605610065861771808220562211850448463700330463846282780858750011849610848685429072422014560504601980780584572966424845967046749243164993791020974939908647003876171771973206443475180254908987119465990362642762489761681588523887723581400557718216509246474373803627818296819354860396672491367916336318882383667877702762294479756150410530927652907042925096946818263241365449813003470307855079146243614772861612014239845886604685210042675822162427495363895255570175738491864005928096649257178240981379482346210732746082418588165821741163517755488085727862052874707608307589840042443866485115893772912255502781147137282503500024339084443336499586405360857711272013607484343574972562274517655746517625116888999470436286794617057219404628722941159738333125880872542748402220551323005383466024390544881613429928940319981446023096617822204213647296832710826739627772389386039766565513808266982810305817812217001267562610539739183200167022910322375850027864831638574372699424430654874551837615942948636550738162297147699800010454290230869914211421465658296607269771543686373259586226922414470890404281624941454534207779643559186164925860467097458637317664923139634330903344324593688853369197415410945845731266996776310185942848732251859705753260667010778117091546461571402004425313781048533261456193141102080136652325664395269108158900882909113239919491645961240291068724877264774683871689985304101105751761985300387724213125775085539036682933159258651493475135875541708687625563660973190326988917835476094852752963711862294722115265226867109561480891354912195544169234425797443126957395921731327333834804623779824085944440774397190779332583595094737176169909883285429312457407166395589221266202077432506498879795757398693610833935532766148312202803281706617968090886985090727927598912019858276197924620841134542272533245749274121889642927572783991934951591863353073075763496711645012272929635014503522222270340336462778594346576926479947817817346109871060767521069077746364701546042603050505002721638291723407326838401065341785589759222065754460034519475695977324193678577486868313870516727403013360252047834354389563443042975622942493402890158234643271287584637501508987384131337114709916199989039143299183622595676747877857344519047022596115524407823787911718441435524831161757868405264062905841498365710446805778854183747294710497404988422752336925058857509675679521973579997971497113859957730215095159475235859654545842918140805663783562111003977883712368220733849477764709648242243417435389070925014180672385838313225700279715373718378033068105304834757716774948549387836703295210623683488729459007793733402358441379538855121496869848013529379780872011006827859201272513467334790544901076768573041836333072046314058050101341523813670789588088655847581019192308480978040109770231742888315060394514226471220915364612566607135024300630832170342181338479570177276462710740713000818956934784569292112618492581852119695874142783399618871119421447823333193517029430783354255327925979743149334021502903530552312871846461102048437319858511013555554514806461251906723912445218735995627515415655613834949875039027798278873111779824336796440781494045889732959566151834193893614449316791857819798264348780677029263401946065912299735470009952240628362143941997674258802551839200997141829843578213455980610936743690859987351897327115616594562910118809811774966747718954519313019568483003275276921452675938391138640859186534793973905619111287880511669588873193498008980988374994327851214435561752115015085732557810352640630535843366478232247573881236991129504398489598135092019118055862214085176880649000567204730119326475519434558111137146669705886416818930116681380951331652181064307327010411822016065020440405798204721888491005330031368364524808711161042525309539964470522531849740066919728356545147312193274579112233413120670849727505418447429790122248295060411098906171235908848317901811072237447814957925776695102056467040954648086864786788088097983306783083236282946015123665853359868039091863621422796694809283527579256769901132920945150092075042697761746926600122999941874276463430573414026406946823872346491353615654064359134361583309742787717840402742543944442855666893330945573164348078811846325772084708701182402841825802418371111022382191459134434728874840880658596555661728613783639048169222979198215596810272685505535959284698163352587427921851121912682537333057109089939184924687280759664621929718618208262046774591513486677869232418240408303906788706284038385312406962274015220197890912577162779270103356898368155136544163649799216897289163699482203117774362667990611319504390156699126742293537236617101826200698955752069682314170263166418544841351693373097989035640256701447576071304713266747131450923367299791567244293297067091936695188852563375471096532814512615905684254004158054690918260364044531333629591327674434591978593717192287676222528061158290773113438628051283031630191849216698642192590110779219145691867626890658567358018794569162878037896332062288281526903918377394849874177607487950469934380166743890518451232847776098650277337056101728342430541572523306654245983366464795558220488327288953207400568332729727602284512511058699404591297575917309258631382273348782433721682339460645904074395951436728947240926780907820583499818612671556050539536708999492315545769801795365788128157846269426408694922804803660732365308380839362123868982274231237901204136681385286165217992643432536341635432943214352518478616050718724053818687289916850354843209737588761999057742428283385018541393824345117214319147836616988810354883390202848003642338999471027727755909789945872256618532228318960209701485724382766805993290537165585576108223341074048939428190398478115119123533424546673487915348243613017247204781554798546413709873052204777725173661596814750989201661896329442999927401749775504986662805688143453939220083833771238504557811496304912674094856675160725719281284803719203880691911691414443951775651868670750541153820445218410916275611227335959472688951019281658652572377305550287365025580905340421268775037390752823715331323782867035600803039108851554116357288692805393835208819626019469806746657531546332977700160682871443175730219760054829730262765298928782655113446310791702958517324923445448324057605051041968706177900803561396074899979997186020726591350710776147144280576739093192269767734131728913141779872318080194063699895368255160639017970069916619676155862629890679270663315319478501990797427460883640811685625558936641749271253188749516821794721161608133025378291728162892290727850037530287337478947609785232241140702600822028392301357726180216411295799194877853974171527348357408605330035428240668577424344221880920025886151972577543949956548072097480704618803149523651117139416948030750419641414987528211364339378364726050369734293151449868138713730908821895628639552135152601539562261250478950589013118085061950346687341569909407881420316077087376951189279162745308937079610453124314955104357194411357436677158465113526173671303628663749047903896557072673827642913482986641654272058864679174315911384500526727486419223021028367218242071470557157048760336071019941041983203721256985108819864335306745035262160597708846412264436377627774402531915377980766791356201212183106855031828935697641519977308515411748975461170767012696139945466021828628156558285453003134325706133728048295239370051470898174297501302304503286733305263741865623401823603657143584461716633504837481592549948268545106825882826510974643149686841832575823437457279329544633056220867858830809867165432208087624325687593255361007542947750037494990764518246722317667741855907644679948509541693586807860257553739249642135773092616221730674857774819134679676137179819267588855090893290956727759972419459143769310271699221410547862516952953473786305403044077722754547788641940409409427036712913289595958429135615312548395786361110133480147133639625190247074349609833286103043149379021809224106667856403914598961034162229408715698798111060690885276654305703096537924921415222464525116321824437281919084572710838109034851447169030290925230237577502983285807258163404614397319174413694750026852062542754549995917532427308406391691469004547845720135171570617393587377065183309878146661722295606989319750806734305542227237635788111269236914521180205234770201050065325317906231535305763388775929815365061480915646110862455980272764344077366088100319449481299896275767341293845417249343617828901059383999617991987221505701429562244601315048145592223524399050450735998368991767674974712603200126928950698207447408000825588149946385887019426216767859279762229197104102709843801197463797572712313919351849092212367281348628057987551120616238554200092089380782106260463009813810533462250870300394825676995341715945007730906888956606775511906907039128320702278919959094527802944010105064971706298816468253443761274948380425753586069023950357919915667337892102600389789331624439573798742693994708744801847933012365942629667860345718680774229321565807078257991042016733505360545078942314276507729039562792397441294378799204742511004398423038211618430430502194473276531037714317814405024695921346876951921550456978982878031103811013643824960032196523601749465643409026284860501058008388132668446463538868159638121551762148930919396418898502281131955766887539565587430665978845171348319512765756711816475066700185096442458435740413335318619025054124102476391621818077417717961846279747984611694108850080827131612747508697727344321025450317406010845480735109165640614921275482468387917247071790511652312640296824423667196487690373665319972164509161654361243894935739072968550382588111015709810826011637381805055014494823529747232609518228415416534004452654520767036096097673651175018262647181938914430342122456017291894953121521846086711971590783503329941607443525194312567172868617369193874166506082289178230757411471425786114372515342574965378811898774124017771238081939776026667659087690526590789962862908844480491723122244002521835612940154726923089351239725596222281369542975093077650335936468728775317052318030396597312365005880500920535256064314214426980036870741844640933688714298927902767861801567422544741935714231833387456799483356053559757976203039898047868923347221068259345617879844777418706421238248030031615677768545076661127595322158393585220311156114224839015127166859264973051246746680838261243453378182139479202546963556810943640522107970910151570229144601130292570626654196423884864659519849064214461460303503975259102390646824675715245669249966464379291162159014608645293834129349233732670711721768447322741755872485630933730974127094769636507644827763345229100284959262157942766020206298895717731595439134706241752855537139635553947134670962903658686052265207961311654843356472862955537376315138977296680902490903572553279590306311516238516142072462232754155614227249805899338910172636051856418044568225435287368581549933919976039869864207344227037138670851464641951172853695727765804967417428325011912809636335164404151612006564224381234215924980036740197593536358789070220600304185578735880051415278374771313795206706482736499066620570602244377996553016100235778289007665007522451992830587890678464960303525574098898227768627773123086024570844600896021478700655602230745894264330218225746054805903506620265849765917965333169916352128966019539822756891724167580249046184582226176228428803122473577869243238263558208822164205481802592770378861323609022940338184793427721831600209802244586770639960435358791738354008321863792129342635575777902884023589521212407322238357796043876871459722414969294999926049406170954905299088135159329989143286407402966077777701210077219804923525644720017716925319619021259323878695331884967333648544963493193917956067058837866221342282387449881927073705575065833684165459216886818752603987398660810813850973589413121415012060751287416597705354679682907984440248751714660425945801303581617999764368162420114093544458078833911379277089949904502413555612213957942439685847758809048102368181733707363532944210754589896480781945034602451397619265619940927164297173222455509724964366848856175641671487812104651783966355775264679417433673431318338085574094393168031077410138532689704255873895318193057752501389179940016183145193343449052946368020868107886708839191632298264759117897527209440680409741508396718541333720131358568760621253301855533848209544167861125333451603006375627149075970731037057183799945967275695123666455632852834343934079547532104388377332188064677479834950745379367745947340039727448648958398729537233629727277559668776080424840631479232740197934987406562909542751683059253912127074260800677146687271756824634260191037169421084105565104762437314499527208117045975572078577919614694223695802865853629237756805898580216411369350941433589698356535765384212209964267510539703464454074054278134292988007948647449914910707485441852318598622117648685591345678583052692771678410856491835736190211878537828252204769943022895086102447047762400095664297289359273587774123594878881506652826777699933698934927839433836471988936507564173311300311117880100690571111653266703632417418976409675774745491911932005832237208125330066705958090880948989276751592508462650598083478298807798864952344205761480785615503270126392015419032515941072444836312449269062965754183883969449071567603792727935454389582033786704012145282911967552784621726449031190760047724057083259550915433315506597030297817308002915142675046955954743825313589059008341777126810969905320814375634036664933199655051281797144687547290318255435287170805916282184491634224727041504373350115706134896368929734558662441215505001011317849179645479660531502684020571228507927047375419010628632695960483772105919981021305777076647139857536589365728739723264072359578820327195527629891987517701166599998352504238053070149652562079334417107923971351767092025078631816158162224417955148765926587485184021014462977068305067321122665238314222746126917900989466131615680683700375242622862993946732805983160663004630827670123135142673456920509805374380403357576429806472207845738604517337016297532890373999010514728691881970746050781448432866814476884472540418420317577266242923052457059490008727426435448660643450934319989053571883726797845519744530593232114978124589382030746105305829664733294747263724578881757711336864842831424764052252930470548283524350720366849224679591818087092098712270621662518990481155773475596671652501351893709542410433205035218648938446828308761127307818570805045792900965355903075021756480277464574106868067304706226549312456192740398430291283267587539740986020006564512946333199504675971858899171723253691658420340411570657538212425462329207019872778347252789010840732313501293005595357520726328067109183925567762467662962253325826209489895981995275732487067299216802733702585888426850606398227711048490874118773357418569895305559784025398646733509542458223705001564171972852063892370780914516731029680987600254114750198252076657281817948413561118798483330370948659451561690164450990600161565113332441427158213187391266188174121399481178269850122491471817674701392869298129765881871538193954432470251096404384634917581179804801585881956555527002764346244525369383453974706453543867093069624913937978826489258705342272384262699853430826135308375840035567718775131797081992731704866978880255600684082149060736268388268405272933499793040633179607567854798224945680349597296807079225605431026752061362371118710812784700111696354220646138516185905071109859613546987641544405359931968564803335045405071136099832109838601030133073732148048558007745663333506211571017344253509117667425625592733390780980469001967620579396177401884595482973093569951498595976436902229005846271950007779690018029608617552179337139964862007892799234944652389873502178037509107624816647114654924202670477818522198243853831837349286237591216236567033701421716207857998364906504867894951769559218820612365198505798125172046994718253478490881720355533483807320359903362120094915724017861392710903855639650042913176502672679456996385700543044234387425446894219879762422132817405456896516078908753623043180137504677062684483042238004328641599617115136151375669051939110506137253328089747314105314731499030017988098231262962802059247423221406115844560401256521331103046708294351223410568455148892197667082051423662000935357488919117325806896759362979218523816004167723514051691165950919839703606756149615255198426603094721875383761735578162467679450888943262684107291879269552335487990028695068957412503687942730955017077720693467886456917886490630587631331668521388818796813571640545639509476615684428093016548034277954311011047848986362279809883561840620270872878111925956992848745804057333073636203910468941858211489656594569253167304455664014685425361278850745944002441366536843886672027928374502937591199436671517550687626391217014772587303456523399504415705358370792613402590974113359749583847485093424475417876856375923329507201677809696573208817119362850283348321961054614570448023584959042692933074241995314379328212705363365762049967620054320317477379104863209332563714973341899531261109478324394058228550881842827574767787335491845165991704151296817858242708696067191529622770670531202249471528006133977218481193888886776299030701400201816117682155975035727596806817993330214821300302549582182023116361290484146223920619438474782222264983611513694936728018712457146611847553421914102120557433259583694759357853343663157291511422487815615578019982240805529239209100997789915631167242639173157022095345828708821025209229486912441533163035138030174401173520130978109917243518238716891209943291973098066111052829133122787229038280575344496054339573349143897495854995192949441140742761601067702845231013693976254767641379496238305103819328828720696639056669507293823689580696661024509125491728667583930636835906141858112639267857459113668976077548714873684417697495997750619370451603481493843363640745810342010545543574682535664030638157164949873352585312240961879457599988288548049276468083434013133639097538057685844052193541492340381747233171597677136089231859478657483499999872411828054503030469714683264449933788400945325695535585455433745821712730180315302873497769979627669104672307223340471817022033798391078958900178722295362188525861184349467256121040642484849768291525218629888312212569089639757706277896826076916362997703930218074621390065412811399679137872210557675284670343903066984459536588575626687850781493919077882030076181807512218305946336211670514162608917254131007964815020669473280052473088899304054581648172962435692209871341172966321230484228997580897547342947387969726862234463419528316892658384939303274459407046371046309706321623140609263723592451915614694545578748158311671467909102256282682627746719403142503055722669769266685050104977399689371189659477067553325667154928108736391074998979579650498428827536984142409403052461363926116363443291851709575012993262330223796050000701547652199621576757650522195217644030090786506427463596527805604432516465345705945461594440405356557376860026655434587509502281358779633734439387302178051129508621157671937728174511642272607558304068289134607143099605531958573884885802330844938953927509618022987795058358149272125440886798821375567157218883180945387707058968134446258022523048809911982588748866095140967024020984911981178650700521669267462080314835306762486798839050595664170033669854656339436672146021986590714397054389279949107121014963438166236712969235390586916995505556868589414964925210600978894451979888067891156894790623420063043370085854332760584564942365366539392628078937907144295912030488990122259408735560000871667530205350810189822904248677398984194431757537281260391893848195748978370835531306322796201697774318210961501769799586951795010235015678496794737339716632529963960789454617799167086438796091805898129145520129633240112992912445841797537240424022944546561822192336221486471349126867182424154509503092373495366612620624554693884801489041004245120788003828568968571542710815964698225256600297219608338908609388690976514146009399605304954170235721868027318713105693773610792181709747221723447170706516466439285027522453821517537166170464148425269545687201404250907002002956284961108437172578036641165372153428342583496452064299469557147226183007828134999319662482327196352842821611273205968717156353376103669167776086429550638493285490194353823991455104330681594779023678874984380335494301130347024175894411138920231000658322799386299965976234556236173777973898024817317782711869743499778700129374283730758820756846766485989649501738321422335836593844732607303828936722394555309780491114012596570417765121387664031187826361322929875118083314025694868781936189203002869437594987574928782418000452059346843013555179393969485442309474908961471975292000061756526378606002092598262747798994153575201688505523879768521776053589755344621819712799669391363422470612245531612099601374923167083888437633730712274773175649952760561476081606891013291343931734311753990766518620011056287046138341257625912884590844855760750698822302180900746669181755109232348288706763211530729562673220137911137524353407730304883423055419607233493657906991592331125784313487729600103671243951581115684590316068128204343003129138841346004772622929732036304201670788431077204270332343466706272120742384842044101895016748170480977974214208779043199513196059293983077947469342942562474457813828764067870844297786303137938560408013090863834540034968107875332616660177774546722143098355329848248689449674817066528028030624788767766436622733801237819108489963513604593421525003644306894657369418392374180260250942479297332599973151276327793518286765884457950137157544064798577945587365220634597158628208593977716639303276359282882436952438942198007242445712583403539094460981430572356484397679474132888323927799898941936232177908831578619633810804032376131581740176384290185325637276863870334547379552074359478641319348393694346066417292099743929369055343459447430880361355898117345299823029322350891855215461499318935575514873073305742595792566708637331910963938928866710976692866891606461951714549129539574306129167823582426069722169766735188947129284093777748216182526782058217356002149802826937232925487200174434785386116064903928389842501816953047734210399132451399311471899403417879800036411618521506450923830184482137331029662481486958233420734470749964337217241280034850956221291461760016924408949763356389214873129914829608386882795964128019581469984006783469151564626921631757419440993906084622171561813778831027403023029413252918165103455899024589118091735721996780386306958992304757220081793458896210243266237967809538254084534849133034357773412429790736457928202549706792021464675741413217162904637424419796275260061051339907948435451159865903257575775130755053732551141251827287000765203609592674434608542650118452569555503624174322525334799050434505280324183686381744422814410930334412947462530876086607953657526006094163713767990162847745470971394904209852324163494463146530939507991122606259074726063079061021386635311640344876331930601105473885670361130779508034584569310592277253693655216164119751845677878820398875318649427615460954077546403663518466781642924105226019308342217668565670284109912042084639470455100419842050218367567355377947723861213135668787291266495115702834736703138584417596370439638739292229136630289628353501193209222950016334321643581999055251311768933097391860250588763068371135583080906061292848251052872935300856968094327984103606683141813604728152883388029929410897569342132605998287500640818182316973780015256940922336401355154723367216235844077125257848249539358393701912502248547348453803375702564398566512776004445021701753485642509673440802469625861833667897743030632257741887406153290664639591841898078506545495051749064632516428331243429208438736465159729029183609841089815604067496840679321434679653000597115391289661734151757359315565904223308974681519262625188815266245921266460093223040516109028580742804276920862503421901280775356330952253872197676429416355853818496958196838236797095850072516325924819744755027445120824484371218187593981471118064304699443455710257877696611973792787778949933728008146409270098652456994918978806856949336363898690780410958328227987684511682042918804122415649160041728753903812034829408790911078425231260543235822106757045212537259161675123096823938284978141499887758901581700554740112815621693390535908879641247036081772118120392299125417978342501000667017201426852621016826659945255693022481512021511820547008525310369825548478894816289600287157300915358706738512741932954726350437160679523506676632962225592518700378278180064815398456951788484041398950065436660712968627197679564845329036375736387158134122312765690600594421191919045064889440328832149900653997720904812348494261278748966124948569644522856433298637362736892499992282173228611246727101857768704467675436388280032771521596823848536322356577067037430944658463748226261865875628127515944531523198063048020691503902280636992641450784865563925096785169382813363435337773047778851139861559723266636893730384894612973993801752584964721925186467947821945283489459683538492907957374831112941547567629408466751210614278459130230261413687550854077042870963121679216286322175723795593415213546869740022037451546669642782596655363802656693478437043344594725161499504682272264301236313793881351663745823366128624787956829123450885520537578027144323636435066038144321630467516323052479010302904953132817859329782835329126822262895839825509652998180330838623797733568429155715663894611812500247976289821434654670367331636467509245467560929574941510342933734705364807919166529454053811041802022229931158562656619359006037795784007768444803795217091480576701534422825272411020184295736233956027266737582454870306544579325401857270831475660245668721339908070419290115888624105938456055959269708719035155537779877675328603265783510026308829943558630007355628946463950529545119123693939412200389883624787803324484559433296218645851790777012431002014615536587290522628454030343940312290204724225722743102381208016867186793589934035518374863536728806446563222722490512174740575456923938666208220128276043850082731931858001757994638530328109387146408933802207898196240252262106074431194595034972313718118821801742597141682565857786009970656971858101599879528760733644664899041968668902370880338260602232104582210793536735102659103643218403582922001697543545588764048096432062470549016297760263801565575274949516609972995009525580657160969447433755393780153022944460541544466572301651421824567875448466410687304624410386566140559308673618921337655707426742948921828689808660450972309927360181113358194049456539077896129764358284670466023024293202041409176653834727449076633714510439318369719003112916895135875069725742523988499180981748509693659854845870589889249428305234608545891198782013994491070485846501801293927299562554952569371964223528984958365858640151426125497632518331477640365500361396587310861889897013305098284949432109969593646724774148394327271008093103418844906193325673954482374304592103411448374784824999369859346431903709460824772780389860680033117468902302536586238118849950942344309414584961448985668844284146901567242330883470976449432237327312017550823566585256335074450343926094172225376861221818763627118323788995334144651779833725045993590885759322430319019075119200009187978197453612234052542971618995158837668373909458724293672631269174459646475528060604489692510071012056087224089217991753553309185830139732900066380587795298864922219806774402583327363208600281376054930254582215837633819823032013489280469363424867803493061066794962135773363238563684309658826523045084567852136220236926944348116792931702137354417116448544044339029783251971443852079038641465786391177034735409128425926875662719588788397526122497409072959475911872189623419804523800540427850444650938362158267654597966801567458829970416121956350499326217030792488867294970751071975268122284513359856654365931376720604739337747355875107286001462330769524403437822559368907806648276044494985700140557670986644683358114801801081679088509514869144164123108695187658940387185251058770331623793622262022612233767538108644847164588998785871142843524614370426905379364602787900490093141372978084944003127257927790211967587840988186374904168975940671496188950648654889715020355238148167901452533818480215313566979337054518530003351450958011834991080786726632034360283624253626261734112596936189817728463310981208713311986762828067519059631825285926440326931315779146903980025301886190188608128966715143116946620077333241931942323870243466435517777276535881196823424139075662045939290840564312136202146918922366715345123048027249248932568836173136286401379153489970964640638456281307047337827750678743867949843370038504587364422968846490449755436494431373377795256910176234695766875636449882487035114609793703418449957031578119382457125186536457362336861557477004853439144283479991047878591777608875996583129735284176915438080025030277216590161802646001426566856559671436024467851992392408456451694587683691313297401485021123437805938729978609073406947550120864032844250642180933011718210218661249436062765449849287388441054223874391316131769211544731539748609290263103905516020050029264788642805581173723941602816521468185596725578577603199322680694229523329442354368110172301427277710925743470586190368418369826859203543895756278318196849785239122155531617520691148264951524732872001704528435422505032734349729322076529106565890553865800272300155765998464108030814370694965874018197780150641112415193081987418393103783746282662979728518059431685479088143239296948365954949284699603696318334670366475959793792338935367143573162424126928214336101269739851185009209512486507045775096831238688462705457673836777399258097212548783716821043058074779746273607762731781449669194086616759601009615805343125725568281035300370425963407660166745485352565204312656046743168584411225695924965182905035109971554439740281981743570211137681203198095005419521304076796125630666945869727979971751535220027302524733591201339906687996252317895623126689282760730653916314520219177460606530411276445391900375078850014453902077557326934976939176712414854769185041935747947340285320938216764921181484293924839154607138589496806774669136469423818222790950023152357888042210986892466787825950829579261582125535000161678852751499415582780198992868116104972577827007138552816851678110761479050185039637795316169763949069006715884353531442688493485993641089614087273978059771524634646845821572911874861103301431360179853038456453415641246428329489806954046429985556016285279994191280956162971084475329310300588743167310328601838655468363652157338812820020780158405392560362415369329340738789759530679907553980548837395946108337632530901974826807550852910302323817983565059509679913697301739864217769245090669762980005915809991752613676925536241920840911102451794811012324790309495079452141417607888022525748099417756619454291372653734511015571581684044128207511935399942533764035858344683924008704428409721356311723626960213681818333332591567193077153751324279261512362723284416720802234740810971073619860380396923523182569448179143066834409570207251533197213880824356263509359957550379347531737095514054300288087486045142495633481474552013488850467358869057240807463065831827034964606638764640110019587883609265450044130710822197282463071169233020682810408175437120902059170428831607331064053047056870560035791135740964937912296561312688020389888