Skip to content

Instantly share code, notes, and snippets.

@mrpapercut
Created January 17, 2023 09:55
Show Gist options
  • Save mrpapercut/1512b3b1719c0f377df4c2829325b2d3 to your computer and use it in GitHub Desktop.
Save mrpapercut/1512b3b1719c0f377df4c2829325b2d3 to your computer and use it in GitHub Desktop.
Digits in 2^15502315
This file has been truncated, but you can view the full file.
656495374703823579095521733062321460177421535809593600601711021478486016868722763102763593783915375726838064297407946715733480956699954096214870423379485010209723109337270742661656269261710698169187275867171211060154050529628046722341739379978610939460828767552657164562644202331182144497429744449127271350305084269270745414481222942603413174399666100771534501891760474883408014949648512782427241438640715550605653472257306566505866294743472105914578834471487333718918694417664910369897926848057037571999278142876749782202546800247465891421218999646162766996233771423702584474715561032233647663598239294731140071390556988929561968287378991485270071326565553362196699109154555925686612349095053945352412691751255605302052479187036743881372808521857456179346458918558466713752730126868984145482558900177402651515299230766965179415961007315599329446850957843164745547443518765901534473566108048811642221915115051343074217240660856900308589679989101337575739745715338169347563433414723449464981867334732876957543010698388877014109074570847468957032417149600925945747114164012638361051441820592047244218663552617846443915509171244799770659279797683949014461066696317338106584364125266117428644734942045404157224091507397993671581128254950466588236450181823543516974454445619026655569609452261788286239322513079468973169819230528572733659350530707946154749027926713606101245680676945760586719248181600968465609693633481057504938689715804600641126403171656839441262183673123583776402570187165627051114347345702814988652153412519552623349670900117900796093244803748104228742166735761577678701035524498564784842687283117869838680708137286358772813691060185055018177201572913807859312937784075998143897234456255163959880428906253568251954467522305951270984453162341908069769298481454076385603728929846903026888910917950706148721993591019740896117835065587072036513076015735811433328189052238353687682210688445461408533952957303598377698504126974553134873699526229678284183390616107166939965109205980268135454223808610056227360785993433422491596156613796692104870733684773516487341680125066231779235223136627291526490486755003225365415140122182897441783933462030416120279169699273624067741838566354913052750406497257335869826041388080417716758033465458177052820005816673327988163010334375267929323849006277175549489143073543784722446471323374253145381199270497629496441092659515037088864763967272771041967311591084980403040622774008860246183167452433164898374084557874703923418303282609350335507835001256943716065700305777696123783054450092045902393066465276076607291322894179038411578411625329307345240677464913193025822583225666497168897802232867131070787030819981878300190281711039732278261243650200032328222527536324179513961181275468928881936790751443485072645040508638638451408738716639693307846950611264217566927960443777771012245399613381879783667457687566856082724149290714551643031626475202849549555960486171725349554442065818608624161651436390223340912610095460962316551091495887495197700221431423093532775603711607322181571126124795324895714783136821216948740167887737821490810456071451047892192607113792836634979627522634051471781481369777423603071591176136857454172004012736421863647242040012901219527453512575309645362878507510828244149878323073004731545968934163141408999790814578630474355544362337808986236479788356032584457161505828709425655342301342030333814338727689132601243648118443341024866229509664411268834107472048436202046427313157936402562194605853394630123252413006868606851029135636770368468884878736221454755126339006596271187523060577451929573538418178916079713621924713386286683858486703471865189308083819708830812583968245866510283005821137547999087231276947609776786970167679194666103239330066961300230023605302826064355678980695899735291382565261647017225319650934352304247252860558791879234794024115053317353229831163194264048794665783759677252663748152010303396645361595228854481357118578075289097810696629714916233182430722478675746607611025472908333437657487426462718497580849543654785829152790481436091362678590825681025556810335590529894108635332796506000502745520199933429555265214522315851433412490752401853903874145441273218399104858275026806290068481699323685721904655726304043933254719846517036880565278062717660262481905845838733274388775781949302479533675465944482791618144986282288445257840377732726279503975054152665165662334974853455197650410557904736206988018636103153322637041333801393655990629924045912173146253895458868488922104820558590039380134600992295561994852105665449839446750286238878058365551294289280087728357815082280002615653667460733671113675590185240767511099025369212583191530743592830592973020743566234975713496669618942677794622567206649233619483258674151908005143412929646472441412773729080909291466178351325549002549392101986682012105831546785609227584174754044258883222423288907505933346147865670394118488229258753076458296963033446409496136367074839208508332252048356646594862287185521748771018189590683621949266240201303304651755714505766692159937951443504214461610433527991666771940473898418649988468888130770574375015499757510687666263206798196503718171363424235931958848007188407729950843482236307486904012276266454342992923281994645270522766307556637463668798080522602213761669044623818532283154733701124074071567422447260228126002397941379013361357180261452605144353664262813833077842689246973094927142079417263925878994251683615903785625826944862728243885637793479981535156659852142359488312869466404404281117696696210113621722794100314181145574026924821084179655678829080807185433313698558800407578496796886520082020124333884544812686875669552831786966040457451034355795970171618128475526191634054423936365346142156496456047039981427249995069997332991477239755527120464198731521866668990853006713003222837297450606539460967334721492957227261366337056033878576513331683435009619894530252110385709322225955280336786464329651108558407995557548931995549571520191047700261008907957690242376972342752666184190079194409604862472150455327254644371110042520105708219765852233437110258278962313176438048070879692885705971327602911359378339648898894934266651767666334777114381736706782240243762867984624147124228518226808451357046333924604046139599404394921173804564750435135455877939632103194781257302670198069996564246942808317344043211343029029502222448253715287967990391956019219724766261309123326420965772798014396423138765947182927551031655244173930880648811126207062494531190549012340194549476450140260210561855886543923654800415293147325474635866412443794405815752871653274967837110091843934390390614203828439370241918706712362161022637717018785141010661736490690622500554680386193224328524048666529898485539791098852252178052018466894313597155254725133852030508220983032720148500698148921646788655052659031945057320251886626609257882288374091914146530394573529721746755125489754109763166582169769653210085967072639194223209861366743977526740419907130956028611970846337400473726098019110043146275688834803990782938344842785283473091789823874372290629105131274835450154810486553856942061126949142777220257604302337063624155108925073258640883214674625322606431609799373992556244348590158161904121450631803694651245037005736765470442219963961390519510053390228672328493836513895567662238783552326238400810863882568190144969935913929460349119846569660310999440128070173129934847542366038169976754133034345696090586409045368204249838033025895999784853999544343066711012581265130046284993814666960189623514975474514992122810437655711194450474763498484783967227237238561919474519623836887161285560934360322142412959940366967327824003607884161000998895683450680919794750295103066974457592322968517654167920362567885355115533303009610828483578397284744152633120607460495243060012581990189170711886458047485701390255071803365954186424014762528634828310229206669080792283578098537304941984065188895452033495612710284115010219618154042840913132393127646614764591903848284221748412687176935352873864532061484066057697028339550654069610736257786454302028600947532422529955129118936445096811208458964829533362489283652654726336320457800129264315848015452737820769552230154426173819711877860021123024214911271696946617358264805421127424100799432725127363018672405680505959554284601687680734983635874334056110912861231405681269019231409550519225556554290321516835368537559493500283176391561714606664844976027400314214494144627916731210177270455924039963171460361686776055504346933364850631547038276811974557104698888423611659738255315416711086575745623879795851290601520988144688431954187284015541260864472442235449548309284600298436812522124820468213676753322729810884853973336708905518985135400627455323825333569324875086680615603462766455838011283542296208956140872613592092434804418113717109823715565160344473654578245737385023143497173793067119596309052091282742258911309537441709619863434630807724436511911350330360018462010265087727523694882285161305173287950329877129204659458059732948646963911793161432211125321485489047282520371402188825443726416468823592370720432255634824453655393643881052287270173871065485343414234653478372044239922388549121018759786940687075661746147908795268068464633184169533076680648311171378700741409708032724339285269562720293489435569752928312173661492959130045012743211967770825089518744851691324645655765180908220138654247860136171032954898714328496174905888053509925032600022763672959481603665930706723477455603573947098498470132767257368176804933008414055228368060798527531766921417049452650420074421269347169032992559413538879605099766149260800216525621638567646806218186602321514956979008466255374392771826832123222387716816833680662146375797194944114616651363092039815828124417830484130782287692854035134121996119964494442547772177833148426343129359500026982392994872377930262882986555496441208218674153051818298272350192078236816801186266803752770836820884852220217478608611521177049220736101689538441382247239346202243816303545458208024571478395094047237495474054104474236806390256635321330536925063281702681773844029725165844972755530055004741454273987500228662520997961517425723041879077822688824280835243992415106095257224345644413891072858086720963390518826205924267279712591802677684162231208854812810535133469370360288260327664501830323453107114404107278477889754274240743812059962931013422133215876065282960761278664494516990804511073781286403533126196050457618264111439809065221047554872643425068600447133389291369929368312488842811716304531596698277102946982646395580124519239621149793452294364831499933247848360898856640068720150747438670036217072562274291961100928266671850702226437938919722882440294121780395183044614417560361442834195101098698786105238719354542080081157268084931376535021650448470562386783154483653982738844781981290272824156998154330356500386680811750008839715685151510546955416222162645993315949299755305434970835387577085838114295460235941216947522955610841121103069506244730010876420061751356362535492603496367144236885562917507281760742089886540076194259050541301326499331647219735410619401192657543917010295842052050937129564430193197190277166093168908381716433965361942529680624812923274548670959059800063518142872977703173142490190691055379658902340471963380812068216242549170019527481718888320776921934603878073153939366879894059202760041985997035404400888837937970078046191387273447130689510227247799210856893007422993359904645894203492048913826406914599349276066830111474875045742545059619578298129759615102227817440578190310619181067636670716474808741922791742688551992866348559774480887389607061253179963037216376601503732604649134422359769009725812111347219720530185835023404841454769237821552686154500830825607935146276159442917805642249446055857979883833877293799538965628035334253793069123227515900418203556055532303373953127119730431141873002312469364381028823132371071787186371252746583738622715816953459207329825581461736897440435709684729932027077064505670942752556350035933248865877585115444362406986447836900548822700347400682403299941630690864440231383052289609310347619467013321139255078409871999022714563596804305785546223249511355480125078970373397190562854259845610109097311631671555138703619786223031386481058704764953975288592853194725240195283745633568054768113956118956867771942074251867846634618522351266217048787043371821520567101682025450282796097559789503038896942716270682588573286550503788556217900297118450184494115447645609436627166738064679096523429196911250114103554224266646957160635740208233991511153393244555711453080355836582184227215584026612728072566386019088333872062683137766147160047879513554857542789999475720470762168284022852063000731261284425158519736955898095566472508126583559701421309363861749969781570855682506257579823134528231201452335665909057145444315615887952086705916533975962374341839887703451160422610662565347253331616454720105851577728823464886918030748283579741235064242617850663385015987212764346507314901907316724260238653738009748882558034824726356935962097230419352357051970172832420502170641397594343503665025135945440113431154978262278975033800765435052509296476923205596827048527095914284573597654528335278017633051074118656744940393119831443118353545568748514595942804982038610996863502876767035041295519233924710230663289517676832403035380724983753798240631276438542819765724028249821836978613964735816061251023908915967672049354271664744792486464211204943522471718938287303697292188936035206449360138347615677927531822651601893111564056018388347798060373369533602750287209975830671192357868610669313509756842665937449606497436424115283420795993394917246883161164189402180609340525814149719755209771963005406567752481316548251461184026791000723538985242229917823918784077297072536606627119603462722336201197461006747433725761239905742948297389609906903323719135762520650190455652468477624816629410793226850759737333769569953032422105707973052321974537698119820507103588555929685003038722507439934876934023345740863556851508966015074001032039046063639923307448093230531520062021149569268818390219196069072147533702294605552790078120985486763937956933320760991525074109921952692338633252234468472538300270584351834357954412982974310516530828825788040629169548847495377830786407147380622757450307135433296072302362922773184191376202813308739429081900047531934198215590578082013246364894633550113050137883959389072444539383227488820487836038173072296343249076028379415385044162320545135431729461893123180092833576074234679639627731700471100548989246549357953497655514740574251709917744255447413185399228117008846019908759896489838413259948193590220906719625528423793388470141625257628313141055187879256721252829436974614170093671339496048152565452986903428122235951350795178351608661789113737843333288064586733005091504681182337732664945463487691809837078695592206129198741329566581238410225821348548110797423056166704131467950646731538353180859744331838950376972469928931646052783131399911937618919892666121074945773349377904201359082737241131722515883781377291071200495608658801778820139887234715162395250185098802326320327002455730252737323980237728802224345325976516231716237722806239541314053361820476338713239819027373698295430425554495878152967547173772262794421382211679511455064855481918933935107581059335751337903128454928092181411267032759196068766217820512654141493171903716230439197085604309036554712854448797086967269748890940608849231499261737305658852534681104583452517941414563153836448080939280750961578798924979681545491440311538853924352039835396394387017322583291442461912879190396491221659171273725051829873557767872402704224451340542026767517583476767308446485489864456900389863497108516000927754140213477950485099209754863006661153550665418617356089013450776901971715653110737708813939606102593268965795201177103146156299048957491849176488707325665437570078762064557045098439255175135233317250614710288235410058102414209021841234757674786310827674184213185921513233637966247657131041007511767062127589931435405398991622554370803561705067963277448990077936640828521178602529913565808875923961267670622176768280019591728861229501936149986635164729828513447008702510220879837983764687731690375965943633766438059542562660249690363593604215331500525221705650152144048869742846892678902717821535682678107713199493938906889891516632681980271092023570582400706129222644389271613551581209334657201885510621688485646017758301511500452759068022684877108918619196850787277859072041945282767299308791750370352350668016966466079746575733461207008139110581004175154665998145829270125252315477431805782642452316585818224356835005833593791889543272856737451235939806941201954529208423369360472061968167575798738653037624381147025222990112479200127431864409679864288700411597580117008456474680559772186593585806381830157805037638257421819391938275350007312415660834616376337070207603458202525014736620558485923007004200859987626395724991998318969303771273024282660839964119428918234774516818534091051354262923042282242671825500687235549251457121795622618318362337256015047787384950095127066653560528511195038659156265806492275682413096720930889153007407489812044219793546757770887869143841095943400781337297362075378345372773009888076026932153309786723295344274632576788005284351180115595544595388830873690571638480033199853779105434288396457491780155062757971629249733649889041932590276609785337493704292822477331476057584409421661462158090992545065705220138970161650482844157021840310764946427208118229451858154337538050892499105836897874536832276869438302052033924266677090708887324800279882880120478030863910910398766599865881765951849291303126988994493353312091828912179127659048683788264725073899507030367638095091711762092758035301256322835221799389346727769131730987705138659743252536751298767853870371697145779508928328924123859987051897962103336557302838793691785721288347431061090063680188553326133018789338553926089010154664666385081344432237211711596510792416752212461383574579533124123650727973786510126141984184019844045560012147757784162893062917725655433661390529063223734390169373736433893732090647831698236430725656475446496196285829610137325956739518148517532795969861329487520497909740516127242081708012065762843706334197939869384964104413002563652580667578756557780137284891360987826359399954967938635634124352375911135349139163540540645948223692435988721499202909194885824939542765949435660220172653061140219724994616143983225709089186030717030755364516497643008536471474465384799137152507564297929248169112511564524548675520312555516826717407251323667589441990365191103313212928919922168610519978125482282135951418283059616535926915852144098706737588298997676649466257079027267039981116444662381831140306847856507102485658871770222388415871559039452103128722110870522091964265901992378093994253368512840219390466963374404347538834467530099804001908289925124464945633763785184524832460283625903871064734431628313656607209642849423138878447622285995096926817566189212683732347101732961085669842270112727308702341099925188932722225272924336693530464635146250252404678168627995485916250488709796576751530069600179130931882150999670743139058446752043877813768907673196178185041867691293183012871321722738178032484887866700670751201495537172682026314609389215041659744262572181497652369321644608718496950235171555961465847338779299384069967084987795677535548861996831579551142070009475558528089593700706515680103363661694365425353159622583610006596665379100377210979453072730312274217017889757691102271288334713471910983243272261742386277324588401645575724546761833132185366884070252971387406434695229721254760671888621502010724776480811293562292176146534398240427757654866478508861070823951822889702723670712493595382402485097253777421793167500303649370118281712165438539430298829716853219874034061758475749271213169643158407459277753138580688280278207586367683467266739379627092350894320962112726940162943527395278058522649618217177086329253899754544472224776137131930610332627110182077765786792266139211298918209951778861455840924168247451952364937703406228442867300576638575019240696600275221239486263871844114234329637827369603145530289499428164657675686318126208664389571316040566603006394009736736180009763382413060275966750314538020616634876316896777827649444122882903498638990671601899382601734297611695667501387388488417239561493158891457267185887824471926895988512452831657469917598046209978844928201751208539256064834434927559273087418860973031973100770293833466863229701740721452448331904993312928300342687677948732523578300035656042263537600090486121984913894438134731702902914569789868914392167643274385253029827163586428110223921636038153126909589191638379863829249435274681475713120325129008370317925734534483089947186704735900770430389236632579130367400867198501004275790409338816795650582009506731535530430901486192635900720571863572852145795673882419838293229934352669997874659597499083897000524133610717795225972191381775712479951456566817383327870117333390285332727818058677864609016828374535903831420561948206215875074208349452291302845910066058336071059845042657861568791392454325882851442139048420663941566688689687562029216204357751725012993883613556239947979073662632785921633287868643892235940589811123462680322683331679840229162019760140560404177434243553656349652283140263149673374371046567215296722189209082712014013644610900502859052831119599314672383473396937308556438029301364647678459538693222331105798655836144997548834139842557077608067153906131453236303835211757126089956306148149379647758942112240792664569690721340321014135734005574971966520290178923451509086081539899600682743690855145947067067205639632834979693538443776606399213439866840967836235585092876421554291099072666006603891970349769095038800486126948860991492521547882887858727929920670695810816272628317577815833024477613703264142326921567483912870220015687322682413276121621181443533752076392424549249949789633114280098122829435910820271486504602626905237120282073358296569114880466292011232896747304522642330559148011247936906037360268686678214978329104015807014590848691266025334124468842417225256917496000950003612572735397908889661568202083581712131393278699177233197884201760158149019827586501540469633718230167827083147693647165293835800353120855790741241671002737017658338011638806147783762405958829718951091018807353098324339440833831765041188864049028499800597220666502894155319065045013052189807353678855623972901076777442320146760258163341809498511531855425492220083190249504440177918085204423727417843939635664166019904659603096114011499823627453185634899911924706417536133761749050392947431780567246407328576591301935699286787867834898071472032086629239077751991255390700489354439684428783227827457430406862536556811297655848436768382353016406429444575471506274969829821200727449742015049489229674716168461815071526754574973706352057846523462865197558690292283241851569137957993726496648925912089649314211708596013542558576193620091634722487501323384254498363847319598416474465413212470641958556415963435677955142145739850871504040220628568929394374265502251368561667526632538508343783436281573953769517191928648486828366479990018681494920024965671167116832042068009494682916530187127558144293342226912668586200536928593921924600757725167832554277488083444185259337533141815564480634507072856599588180750469910785810808643146749895011305726784292013253248550827794119236723643801199232516691713729555409620779670729388761828039015009392452036853824098509511769948401387776707053235012535373035103466435882942509792565053755535522042639019879325949871798106730486691335652392732465106292981714075641193408528782556879851837453740024254062867313494558523311932194244922973664392752445101482130238746811649586247007740754069233979298187917692196893616504316704484628647045479947672634638809363971047445744827505713933983629457912897456943450988213177138099966055960687168456997597545888832800839421968748637467420131975677373624692750966621555628725647035269812876187806032818026229092553637682637418994724297427917949030349176423653684197758586123392003843681590945736667924884972895595318470072232558574747384280756269402888158669642414226651723702002563407480805535418143657264940442118598044557686362371870059496892879361622718918611683771729012380255773862701494501806382268356612081885920827337548726171788582720728341890526509761802714239736587441932832677021945361862642083848497823035235488958890716401612692437288043530098816842379341418887894883096505264769972855671576396755565048364168829865156560790662545298584925862427561693538010354941660033128401230792396570042052996595168235805077573579539983623176623077509741155749687167921914248886876307701584035256615784476316174691365058622561996091783822047464012158257725171702031325566141683335672315805755619827168554297481895977729667029070150958772546834575799781721779965226731938453122655978258139821783986111950279311550269013505464352664461828907984408202904349001342955793924371653766431637037240329333719256699887965176148485424929015371546554642522242839183947336920491808049953341647837781666073599527786247870229304845800341431610191522085253210875865984438711463833814342927026917823446041170677361943097683366358377422433925629863069016971285932100730119895635314022679038114511774557645936340484383060906470252766606347893188501701605623762504981747690429515947831622175930256033644372067767730867165173484448965196604705509338888499962017845761634193969886342747349116981467240651062483451510333473039255601097545470799918761666999640845029437468817715339528305230280435052175229603066864191449904120578568601481401757787379347372801196758720990872022573702912232079467818617843344858094464377553236620370833880619621142068712174348107366345254952615635419882268923327899931023581600883511162918796759107863850565398162186222455908194487016507622214701992224442903874219288050700806418448106460846209711225561754740917573343853672766038605904280154188647329321401899561834028535356424497768596039757793045640724959527099113163617550855215805942229070706278309679866408599295530708325384219254633298994047179332402496259836374108842191223971856120531250254182284505222802911145225300280198790079263397852186431401798475103623099485233415853281974780725550529995321204777732872064714666847895086860999682251806439739508682286875290563551746431614817763970912460917931095818524007439602531539838668241905018911862029132049118917002426017212881795368854301010146228825105076217634722488479299533502823516222457272968697537892357488396519832792429189498266981226318877204791207717021077319134970703871912213186269541219231007159988294225823338240375503812198813188511071690590035886287741863149582253547850444284510024356530380958582632316072425323408419527318243524410646887116798025710437058522693412808592214433914703790478192259602147177307825011383192781687304422456806274020185063867456537842423548495162743459491436195606081997806351381340728715543397877023495028756043607155732305762632754670393148377047568972004762598462502924261478787621286977972822661326123165756662257057107432844085308419202894316185715698226691831556508271445810262268034949271045031997801425198265838471016188300849559961133991723070838791748415743234254607095657530840998737376212361563617848455957076752154862072710130124874813261740276705520577534555795060010787005244182097457414999766871353937572655977850673842589145197751210562168623780292031462769971092405552582185589781725881499973033343291362141672057215774282883827017749573149816758763121906713613345335111238049595530477887310367416730515272687217920350549298195290579550362114971699846915581711304393709515621170896448293086209880850417649202078356199221884953921162971580171592325729208413897122775334050640595639140221076586314455318423302921512660381215349729291040509380415107393196620544047292222935281127683561358628676766644862502789991013769072069973317281796878190498668889578104468718533593835700861041354793679487314017863598402026617613779327622354521686906266145300056054990490648699847327933595418447960828532950290416860627418006632195216635717567652672278970117431911008693766731791544291248393073166232963855993868151495741375969370842229975283645272286695749928493456782215361676095224134656150960877058223602165789687300406834810520013682425644918366146298407247846146132599361754920934061216483630798147346290378144439471369756843142690934503961539137678122912282765948541947939534810953846941496008719051933809437790617748400687866157453593542324068018923378583572417631937707959571020134212651090728053244426931475561403616385674863685133406504646854586160510081020280130483931726102903362649308644751956795845368972151852432917280347114121759427623901694079800850129984017101470927813020771647562544479334836162601858092547813649240916893068494760956892607238982052141559082880732989527663199857576228331963620799626908552803658701960430714926663741191749398733768423038522423532493286468189433430999812874551835655917595620688580556937573580610976599492756354221674131525102289080523275884951321664322435794360926861138583220247804465526537372954954157146789943258385375748236749610120651224869051966668108949646085843459856332069532836113664757279869688365053898092276952709448145111457596457906918974875174156883971610650079980695388145520500478119642288656082862960445219345981519404169904162660839491810129068049249156468521316990103209364152646860326767371867352257844835343148498211210397429372992851283551951418264678552185162474076668423974444759427303002271036656114533052532428484463869697707366348000345971584136745260679952588716487741785456451236122153012711307913684015424553333594842320883449575285315601310455679000880154897290432568844430369279803587889924893024683608278336164935749666894554533650099734702820486983394979164013539212559619914538924186191148192410298340317735658589429765558261835271288450251759749905873801486300397084213371448493606720892293056503550523018250547014443472839466230333922354798884049121775133226982354825656167425584221827293864762385512292950669231226014804471023638149510053138310150764289671780088969634978725455451401813417868623582565291786235582355990907759630564055921976932973057687152144351025291356869991231356778707381937464331527841712950976426271871733629504007392676521955040661316404162734741798050404934670295030480305330090557343729028902696033532723715402810607285696814788001958802503497360701484696098763825231292456317575723057297041586274533054380880423998678200190085575538028116793124171286690919997605230571329394645684763150701560560864730603850860251635397729730049561265630665655803236663600755940077109016680816728364314698153156789984811848392526777938359405178269439670967853868710471978274553913103252333504643683974433493385923157664765038552581826104994934400069467738164548664958036189628865271940821263560999169354986703674838838280020081283411001146247810731802616766848298187657466853323099292990245992632055494699282090133887743105501793070327067408350311241942688748532083419658446928459189490166759901889294691491501633510491135197629410057513565327778077936284164733761822458674539257272531117553191823748552914184162039365405103392723957211565651083749724482195842406948509320097948192568964921839482080890010952727203736668746490487488447230113059992592397612888642309210607569153285317869006170603300764730795822001221646268522264350797930192955898973390223508365438001763127264077771769326178610223772987547230531027992635572402335829718083035213880382516065364344393160880373317902690507779495919756715997618667584207783015073105706892680694455846075611201343982057800739054716999730234292300625837423931135021049500506341713692835321405633922413517056652425706824345086611413616816073120093293311730393895123876479954890864834873400402405774635490663213339616648939345676907307734296660683652096588190911486215962126835743761917657055567255458117937807308373697241984499119451223084950520562586025332696379190108980869249638392572607381761479618482309433818637196728588427977980968534203661154448948563717342130576802650818226395802934930878063057047812276216970472943751154902847169528715737471902883294129075409955744070156675967404515428855494777070259655104559295154603935779459869197800208285854872189826114595632750725371723256835107796288338305865253607550557330263669536504827948171543032383033677633523238184877545453616625809965495783472735777015740607744300591870964658378057913930548117044238712461782355586994462010368819057809789746921174877142419830652380392748461039499614238937782370650848951216599626537057604789858558357500665194872609632895042151801962805139287582737830193663692902746568034334544410032007724543530528217381829618094461699235338504127747478240432665685918400028089516919860650502809404525362100742296003248693778963753324552910484102656754556252827838309809000355524574465277944950740384332252684988486473400301833732834415462303201034074603654457386837849697749432005228991445480715457798489860568082404286062397351717844010906802889298978052937456768920094417571635426503068283870693084181807785304410378792339107754225043569089109332929577087440516282185933846012518864819129184757586166738823363631014227512545852276437328221142826972078349333011835646322268696584333522279220456767332201555495356848653989398791494990878249532025964000167796091679858816278879129714279053184189470394522293923872022511716822245677533448050772341860213693188829936702316969824359697786565971470060791047411100154583381803323751388674290261379052647990396691939207125659289130782127987794823980692085410256043076147841606777617304152660113523779742822300157389511592562793859670947551322290234027384303569201612488112157246325996171742785611861159702740765564199228083212894779873080868323825687669316685560242140951473164117620345884284735148032476626907657528232466739674342135114980586581255058910725616881520752705913724930757081277065626643967938252893826076072118583252675407428917645003542734586952392961192353845294670560582801831769144199206102381401718336560572371603135045494030486818233341419160943367653474432281120975119690744841668452786937418563810293054220275034082507872872315649335797762084220819324251526790067603700372276050082405530681842717305443693590227194692101092929587058919828635076598913319439282022731384496224161490839964646685019757638340974693617807097174832143903977205012630871193698370015118464341974088578505054556919179661271959221431909538653521492255535108653960615326859669445829755529196223912800500614430579001884674652812872744128951029672067854783241069061941996112769315986410906441374083986974952973699476944127732081716637787815020400618036977073561580521561241969623338213861420890772838129647012625829675764092576451789063439952997386267894663560118021616392724107376956218979083757732718320860589109878687089608558935451384818746831336894404521320958522833860457021281504887669716749452297049704426335466332789380546920228464182421176382237076079959150392453722571919937093382069131439344266357108652954857672491582482815952344577139176889666553393765124388650371143956119193233724119113804722778803009616506400950126043547500513796783101091136603189471421767855114366971126407088084083576829918922632829841804060394453173988971596277464988441975737423460129211714699477239160366751439979170002660920609429541661473961379771931452016949603242401722228565607450194965277965374707111148694833324157239151757638004776701144751998966045040423940113446547352017311305922974719872923302465571412049693327151529437086476129112643001980201457855692954870231878130108207719318609460525719410660000975634995354635647060586948433500480171109093717385716843047974464213191005513330432118836781044265661724872503797631048072205644485145477928506392086045938151537745264245563314928836232593184137849772481631626787473274738607067080860494898639771225790718246807013873386836004495905980705382072646687538619664265604057604705413600842395389758456153613348829390101695932262929520240099814634408841275142933903152274532576887152621325748304720916776557701466420069841032022749266969030704023863561389750378710861519545377821897910850449945642895885725473692807739021370505996603165507155678796037688088017177360345618480057109761340732837005381573064506783757303503530869548209981337985620680623484558008716427193686648869253011204217409464147345534452311420860216186472786592964326873492840641850867664987320485665007172963035927918136985553421354526456835405115529372397984637472683270921253621758034966437780202719448032001282064359006023157420439489009302656852935971500673962057010923986401852188230607424695913591848306501003095448083778812559617458579855791469336813092471655006203715146317070331636822703760298828963385026672545689794922733842994612856709574153787491896609005898328015211925488249986202576628333092264983053998609432172963356333100331982619924274156411529054622279719436437251397974703719238878613016861306001269365004882241578137494697554076030080838459071488377356166726855574902254166056983843022301235016453858198162666651465727999218661127853410250082550178046994807394252567414630108401551519461583622604622244988571619801735466244921093547820793656118169509861391179272425148258540786562854754806208175423643797371540554748072254811158207330463621942369705913618499142508576405620826083928189428573093935636323104992341086239334393183172071959972950271499078778618044432673110322399987554001737907397169456397648926966129561291002203108257176455742438545087231806850131358214142747073866090274621061846767525258118228077473319762791012748697975632820571807229923303114224203757107007912550731401738507348059006115038278959134145888668650783535954071660984930741472472364887926496297552655631726456688067379404397984801229474677235681063565143784032619920809463614237223303079108819376936596382505822681241252106028597076605702833311607600141954281755034892499310008320360486158837994215304791613869548776346856203057931114760377298986410351980798908642902887777880871040692582046716659709585016646956712634305971470813061358513181043336896129043817852497426379038509021232287773216596453774664463684722749894237141428546816912405345210165527759866212597189902296985153976716795305997470771401919446644625298133756178406414832971932273017246401068087726250218705299486863794110128959837291893358823936152679068728556285680759063497730649125076037401986760951773192039897830690069746375861046793791681861658021851697639427165807727499324419191391361318936192971420560606717566750782983697417088076174989217961859075305898535754477631617303584553092428530760952918675317524172910034395164868476435722214149804125183364637594614532276236162645840248395711882822296729131607258844220543328611923402546835690272126783115380011637376858430004681896408275675890092725630015011368163809579466184893615786264022425554561875239112563094308498696728484440107886790978335072505445647735481616016377028822602991246274943979012793105376621137165868761680234797213519182965535930176617940320421041769791034937951116063924074263543665511304841757775629421599007846730006194856205661799415241919536334901710966450836496804222559433405150439409173335802025050537961507521010761218257514757622691621347057328504634263650574931450114848998121430768318786320816784307588493779458497967932016739782416856945387165353740902499783988686758954853314992650514592540632683168034578102736202799007823107677272296129327062655449644865205136147284187669022819369268531740956958394305059549671379711151110961683984474982274423078050286587509108529465902625770344317599531374164517125568876335360531208508823264387641715698200948282779879035059746775694280520424978876512076556236805275974598928797048578818017846824472293167988531856806926180024794466950186704655422477614658564639560168425380567657245142851912538487416041738215008749338573457740538041948564762600703982085538414348418700889543937452332635148978916247715944606626115438310795773330410808847756544583778537636223191278832839482535293839260140751237964428332475768762101688497384258208039148701431106419172870871217405252400747656906887836739867546339951115403672826939245212319394470092277207772377468919337790431426944769244164209517190077365279236984411284946500079709068107714738266985410140663000654592169679999814955996984484393690112792352815420051505399936120214379596318667787667059087098364227006966082155659148423247408513171180075126001028602864136801991250989018376225358946666553649943897400082256086692874202262359596236908795448542494013805318582721183778115368039722775127485138382703538247392676529063899245553240873664077534060501463166764155668002357550123454249199248210817916540244261956785897183138395918166744007909636579691428972045142482310167843511886372624258511278560951375087571631724240298525082709867018805555493787160324454268098791943795631719344538614554388561963017801341312171491105008259044209780104715845497791803957028664947553586548435475961697234913758987574256354167607462542131738171481534624781999316698707579717473831721120229172054669789326598781614010725730757806186259916966360883377290334300740917794362667024931057540712773474257048163343818784667484246127063556481874993548745409069128366582271681812226372557682788889732299979086514632330450331650890049131016693401456382864902737311382106091438322607047406053899915552084648174811235603104051590107725574127665773274592353008335212158529690269998696578947377715178613886336420750948123851461901182332682581603298194542745325931004847273932271147146015481851322617409039026895948040866272400475558536197659697047965046172337879301807940773474952835488187370557123847642085042132767355950402392206316688260785167915140253471160944889810794155684559275365390611089803345992268845864973063903257279043880581134967433346181694203509066050401961566627081197763067325013950329012355052078071317162170436102004797562876488067756350388900858378053531463584589100292948305237374200539321355728017742517190216467843775635838083626884870787003355461435385329429461989981536487301804659988144414634018026972976335390327788782854891336003924898377972435338642718965785827195831206526048066813984460593539859690990257876638952294077270316072276994847777729724472699045511654513968791461698470563833063696029536810637018745160883789255446566550486840587183732860396230968768689556242103205216936026131996111054336424452626028757460624344720737875623551883866233037147512961098475166055937881334178663540724965807001422959735309784188280918451477593300046293043720529748124600442496321239054880106550183918184475684819922435059001918702214247177413247234979076126378788417728996592488026610301896705838666942653221089784770614440407356365427675874115906280599249630472663631503995041683687343215359986678950441530747314107980911980279018841432040186750098487833908688388525627677759856730651064333443506532364018982894956035384635880673979412755435914575134445224552380998374685816249567003759899242965197240922844355770406890780325987052154343800662513430310849967912968539755961489317807950688114041842882386163460899472561946676789772830293329053121964254188306651427854198661598874686978978012462135595867051266829603480988568192775087013454655843495522336050155454652533636464535539908130343682037573839955654055245999216020528792382029313671461117851258207159987982683109340851237538259588594494957073519578400224241276272467962321701017700256925027567315850209860871060943643330581355943332539161290460910901835869951865824571236509189818386431634774992418966633762955824036669904192101298075971385195525001221276061984615089602927404792411032335037198029805218302384640710199488569263216914696754847466254616237178190420052419139886978994870662798273740724154186801604934530593266710327696385463109379981700529775796990510768704794985109248333793796274388002921136501390344710937281722637024927032209613238605538889984513064258309781991965597106683245886508281679869959925746393263983210450261443208593548696260622387373471638730782550364433524127552369586397722782782776069249898499948482271033917415789502098982277830310828355600506291780259162147458379797816320596162826961151111766537590439798935373926810646509172128712449654416568373187731628459763052315604377458407988823427466988417924314580876727761170813538697348889032166495677440805880591129798900053635168764995470367860358866995628202740888391287676480472820824818945272760181362775484940968866790309185681523541491995126574949961630253275171562801758134572051491905488282883132841243461560774048675847314204088477818886189313354624894917510140522031527154800676820057550515751335477837844789122893898059069243061828926427717261867416463451858312543645122253964388894517909741784478368705116638018436668926251405779896658618026433748032262170958125953968998006631562611073544212950366276870761797706586181249778885784013552259922664256022924869860113461660870176118200191705329495947882246604603367891185694757935366608834520054486130731986086251454496211065717632247115469936548073600235592856337582185989016550176358706995250446381896735671545663788440871406638522096891962324379721319517240900099459858773483841907712735280355175930205416782642022916805177890745379283542100032891898317378685393867752717007621874367916525803840194169309391013048306910865769023509121895792069057216121368943436214261343956372631650491255800672828852888502128278911784297737518616987766378145045935137605890191644698746134753102572079070419356827148195872275807787964290396009496596464724764242186481216810199397796673795720722801684555642701534126140161743205217169392965534791299023951290412740740527861955958540831927067162455878612116550157273994268181203521238088861840216596625450755366234733593228412452398477366778652772427900575877684735178313779628808987666491201104305583741574808224223705973034497750980849363799606086897678252337985195760239075641354864574372901243738833387737540092751354688968232150571486578250566411827479586808848755375346451161485695196443800194860541961168131641171977989716171310899793125505953405739891796421028510479210855143726004038909076130019514040950827546278426009114486720935998855032468908497675274449950173492564741027932479038323438948979694725402272172717888961545927327600582402407039811958898486703033629358207275651747895574312840777762968418482308461932513105230280051986149435181878171162803843709302150334700735025506959815144931109139451882786099555188959077338100881919974429486377059511468209321565066350675623993872606572628581164825368052911421613877460541232200103661421428385416520868080645190000331194148837676279274721225988058628839710841227918989538887244746036607740427295595098379720193505134008682359208622131296556313551719466201779266019243030252734317764972001063239912338746837959634404859872635654286744978856322078912710520412089155830862611219754083144731466813798660763625774837815699359811868475910577884114456142669651724408259662166685758734648131372623526265536629702420415490408206206901135249610843825022313738775854698272367764291300113981159779801190466801698899076128444529654951581503890973515940361025456829739470344058515894702635457772924018729753606913703617420105963426725486708342824063513890904760716394650969364142767227208442006395146167304711692068659934209792763157454529839128471643690975743646686447784413087294187147370375831310042741077699387444947780679601107525295756107499646111070160537104153253339452991276689209862481556323433950086024908043205805470909927875537548544882999834192268329734838279691792595644922404900398569380882290327836927273978467032879899148892589105684750585044481451151172970643805812378071547110995503045870501068596437126504972077015435049189510453041124239932544876154596213681885862059085193326568772652624227988854091935281434170082995158486591379839352715866036740444763701864507253489325113690037829299747551199607837048842490574026949267867588637642082314172558882692399909598992552985307219961321155699434500249219730477664297438634905446892278679334879487969798213299549587962670088345509816014635770840080926272975920834460833699336552558189758785272980752390258550457296521671905411723269541357134058939721582911774284352761443814018363094939311407452663496582626922115043733529252769888261651075547005461326473002529769686041335740797284229671158242628226789070344025707044274881123280799355990735081639449468653694308883675671304676195564327755858056050009649010453537726834684304786187722032063152684823464949522801880821232406019155677024049028650541124036585950526585833650729691132084076391171136521298814978604603402937373661176502363575724175534698992202027023611704330993878817314399022521345044271384037610672827444479531359390319939277706688866918202810913370742214867931512442796884734850293341741679193995304177944573227328747853130343916839586611247021217196148913344187981263260910099738545275678642798065750693389311429127162211734728701533071328661128683760174718307479852145655837245600899694247027466728609095140738134183630135826703646801752487137783148022891904967461691562930362439693013490982177911580024874712222976527155586374695703679173968322084502298257176956328370079926055753111628293704346727630967847942679503131022050859670816964929820620407111619608302566168288546299359966347966496914704915514078918828266022456296282706932237876350246378996508950711077822339199111489025039589991152375320915517932221910807353370297495328316585802878261181688219331130089796223773948607975240842028436989531770950237834006592397064640503268588614759057863930858494458588499968167841449169778829183504068061960640075372780419174184907351735737922417631958226289879891117702283211890311374198592112132553676102329186373423346870547218256179697218936309658920571164241071889269316399335576503305264072164742146449942962168322811784332771661013470853082741396225080452456461521373331744062198869807785488583344938626967847014312525691152656222270036077570830975441043482250019357424537856755730378158823360161491171088907421080738286034466254058605958885235890947246001269346435972762993697425873400503174080324466040531883488880774871320579372958516531964894874223121070707207105012874635525004405514914592454509345597576059259556440159533634487780868169224045090370513445157081042338557811214656477004867678136031015130490554157782176037294774315381062290475475152669874044384149308715847056577471297691493761591134352815002187752146955469697533283538302964935977488535452469829025448251771417116860527975451675009739740110377788285081126081397569973267594262973694549589049895986468354675177120885253533990163403405031891851208341719615178414044680830042770916199337301111397075354763534535113869073555995405783019538690054579925548381209304635060161221315284608304302012549732545793890962484893376548771499409190977070777688402022722479335682079653255488167162669478347836673022155918447423507677071989718632529519160857490758641233292651982452938719304163957907970908828223613670005915268952079626095699331546706886534323416765156458605024408932204596535621822753814580767647267536111540533082825047443767840314267987130718239720064067994787255564832566027781870706240163853096369293623399950475555160699636643368490138907768952944374324250359442357192139598286570619830395608987042589688249087713589932662062562766354084009320543993857133301913287984449053862956557020026378585433299888473903696008335330614143633028743836466474244709002818528482071424220787578617397999421578033537402148321326645409835723955443277554229309750835336739766816589496537041531209721944482307327331670842041329801333221266387156283515468889118451951707442916259113078003480981563405499311956480664252787920073772271350108586749650804122642499066746827840969291848752734831257520712515285522674503930335678919830043026273578566928676486096019644756295616025141842277811492185212251551511654005490008532757340038912116495066411927073049581201094013659139000718008789475970928546521623381274301959253466471539382834837862615186202050322391060527135617139382358605626848635653090296380408165207863442964996381150589103461013132777065589935660987181555221758045353143453450602699791366941141510782671377532818045254173828947762612415201462601940755994716251679285919134365637887027878201156115401185734158041632253777545339074728321105956650813134178671068778990224784774461199842922162440954207301186664289139554970091668176193237640391225020228063984298250618844924018546460816424762315552585292825289151417578566286756832931028845885271518963590368693979086458733373418483466901473279172536581181064419862319386346281732609303303074865590796130288260722212668552080748699353434897289159810266188678630956388699401074868978473107027995317369682277673997450343591778347311861584257944878816427152726105421366993715779519174465683411982007361392257779442819427519757167420392706713185152696926889300887583161328919625152801984549947047972077157426691616122904865403713542357482874259308378800005785878826521005550572581765198046143043450430809994506171212229321962613334322466159360450925874634164695435044563340760771899253075563791445989646406849078469003135318858470796475270612894951307518491148136872724978323957197970406397986599624624932007627694386274656674056757550174791552168983579763027924445381804815097480760654763074212386896466972482645507415428302712718152946458281706754555751289098127058573396170782448456206858173919411313362835769158574183731377767059184870620040650464455934578148957719903871919167654980825263479706306397407308863953423697709386122778562710252960804818011279096292507670667174225472443647445821758194839679194163224244598495951647700620969279860438753813187374876056829181991695372611472587931933256176433110326362698233309262704721775103487428676867268748630521203863581431969661229785015174846231641627542231406032677879952923045269034582294902462638817276365335904411411807380951382904606003573738421376756409941169665685307565289268483092751719548112219655069069851185260858283425967498202252844517598416285129400781758744884104557615637689678756657301687155459253295993211968718403085870444770071304437475495195281566922396859960271944827813369981194131064874235060041634539413048813781680454389693865888608312799045557033965295330737979054618771951470134370817330541674491745806847473883437246207767297540399806849154206845364946513619615657977429053498211376963164267466864778510523072141192491321142434954197462641274060023505407460884588316031288048209149264984033012987011749529741645012296794831604998723500053521646140184064345515244800008969107400966117041253007117655133777928991266976106996638323311597042763500165588648517688851344112050697511509390949634566461150468970490885997388871270515984588501853406750958043133200574233710080434962481497560869682338576561031294335650031176741877974842225679845197928376281849985838289517201877360242035664962969468456040105285151897026601905588850736077390593300011710438546059006989566699094211453760764989200127442628888598920801907326145670046102089489586161069047762549438058272688489252393406959790103664289280748700543737053963835066811149523000591926604503742425795190665955016892533986145376528792885855729347477683118837523058542262837737246323956918260934388331971830464547087637582345124987217518702211006849329811278610942276916537397587510574953463939097767370564541173820176542618157145559204893326221395194269279329271180172458037179408860269838761850577096487369628717070386843604977242083085662279199566620250915855692212814113746842990853420408833218533491245720442392364724456039567040018120886928811108723819823210629916214708901968048101081001289505681710969711761145795693170551780613054389734066396412034275501379926345011472944245481923967631487285254189819603710396096354983698205698476950011576005640021631677736087213475890762795802902793713045110270883270423921211432844616229153895703112176577394764779082802168913713176020111035342596143465559085662888369829978155518823360629937633248184941899656719555676055871582727514676241161930725398180223283977832511521260776420356751872192655757251320307876188049284937771259263093679768185878401014082114457080505536188711144449182193706848903346495915155399689427742026848984471773208795426975345671908667269894346347275040036973498665744881657430948419822260023835895517656240132776401498964490931654796277263894518172560006883611727997658326385367792150118668370763260071181245198628002761116564617456401490924670279057625921530588442186714791728959130911634831210835008411402351045586292929472338384291811579288870008577098903263183488676601297614837663173670599089862074371772641607448457447868189246063435681952657172169919410598533780436325361970099201781884223878185752477808530381696037900811830110769625250648852521801526567148621521768998112080561306394482077394131896102324295901166426703170142939213724858154519669352458509399126708980116239194873700384314324709998408357910468692686626728674241322499865412788599324512055070928848434961795101197991299382396099861137580039709587535944075908238071560185842716350664288703302925794602463476666016521281405457567818125612468355607865758114217064030131598523305924671074421793358580666631395018346226287017002096000982157991242014980352780416637868857789460690570151526867312035463755850090492740455101008209073483176676678145171170031947805149638645433595955051476458150111697225345295406234458165221791745060243420025655044378262495615339452896125490634110352807390217460892118889610112388547104588918825518877973109808969981354567560310664766755702846509986042257635057797581498809627699660677907399584060714132757225697863331910627701381793449793705272586517877538322269831522539793615845695761743575221792832074124076594767538820363684823210419350973333049842760931049708412723094129766020151639842445942683092355107901436237708724715832945467371433875820953954709228695309292752114768385497660967395042500867260192844748481022023494742401822083964685189529422305668027540999038975400804417225802236876794652523684854836514143330822971239165716050275168895338574441961524846328486382742230333888638647667309849248745085383913335716563558104685523450075538434079140045875597322934779205087938376007441371604252185886274547194716200039336109049414138799878734461871386095180713542406332159583708487079199957709524714513577532905656334347209310443151783477334861026586674344191451078672780620257614201633813243523878188304893535303098634190612589130887942643934569762276353492460634386413168888980440777438982431491902454695124558059684453964814548563952355403121951415211467135391982507067510245075314781309537544083422159693200989259761473744698163353224218605329211633573011409834127087204190795569132456306837224729786598161532701572241348680719092888671961395139815085295266924933811366735743427939718111543105409373319452462333318212530379545569228947375768022252889093915936608490514528121231372986359969735532025856305572205114876922814636978483943254108183906832456127571964033402407847184048512971127225790182599722082744857481600615971410922855689669270417610804085179776714792765351402961042966982930772811412304972160860157749975067651354448886174811739250875592989824562621332973745253418355979698367648076039857357635310832003164307771651041144174317208331576717412219044522528117052778095816939592718955252128441343494510477524723150281929546951014197723735036660017512911775902922133123648370480331152490547566177432634084030002879656262890029626179475068132141734185157534034787544073999637354958638768380519832601651931171722311673108061914680019382440271473598052931511460281270746283320191029047682764782654154272464993276845054270406004865188572745694412262891689481145675074405579433288535923884339392825794511879540412111864238537841929659266428474183266723450439072029011982438904782435493445568612477768842397925893970437998635276332203567626931451727749284706974357157561933141767374190536646527869804253885254483491618503654180974517527022853220557400146879425306449224000941426678861246320921201508500717488779572587719173717375100315138273291868684641425238188889132990864311840845444949187964671217581653255750131213831162608337552500323440006851143413547114081394973303361922189009558821831063723774487782090105436286402599313818115350511120515457227524637242346391872970561832400643687574027341734116646003602964405369643978485610383131203925063902655636208228371785065274655621075429028708098623688439938665067149388845170494306009915813241309085040209635582978837875742368461991941137357316822833567159791492985681316524470716097804354404750077598500804280965576070471114387536204858697081759765015657762730318640170733038029349111498975842940663255511629415917849263614182719011416027077361109097201138494900599527442738175473501318037156140403082469833666194093867229835713025342057122467799921932711464976066815546197509871133739157984213810284939961204528163086838533127319416865620368147688500824354065328522336589513212768828933424915979975517831002364688569752770917778919753762557630282755046312542714237954085561064112344883612613347740251157713162632934954565264183105483186977018863881124723037413901511582155292109333112910506536079015574689043881350036193846181425858339449488070668199145396413551879998953453083590287105223393170650533339283125649767229661458684354862760485846293389086379771219780699831787017053779705771281095451668318559852085776776556179705999051247419645372284895323244945608462171982701259904887787799382635779526020459699102482718931723817009270590652557245620502348120167815253648721967154661122803704854529646911270596030785277502705030329713104946370611081389512463287682466911237434230045536336546972046917899064342090364869547694963695818652973151123926593322074241024781575696325435499703906479649359676703945251823248396751891880071473731979442965887685145232845880762866687284269266830016141359948296196966356985163169735375497560700837179053953210168179096834915931448728079082341752915494150272052177713797804460361343075809531083052162230937851884691724045863865631604018710658037681351468785840001717232528095429449309003368961043220856920434180695115326007938226085138676974781698944225445280548660733357852948985707690949511665545207847178187110693921176999765276725273426906048227859971046605785513209800257983404603353926803956435187141003930927253932411196509643068324204891753621843503349086941733306944634818320742892661697569029191423770055656685610097419081247512713102683328583745758571638478143927501055613288178171834192620712730774474949493909341974635263089687990156417883292681072739708510599139033884740462424419031816962918443605109106345284298484107917925947161581553087957470638553319979624770586405858857691680410766952051566352714257531295018058113453444289616717003751762479354636684274667046350357747228741272274517906476620426934550578015030288186892230450370416586213816879614596645959237235367692020454740963485424662643636024778604792766994704892482963033533419320783879079247188555515511580885653125888704063725153669836153119751893033615304001445583568716325719488539986287642858043884552546098202797961797688115517642197999785134579089609094296222510511802334977857965788348217628477212844239516399264225574806636025012397244052348051732559687906320607146839822429924050862318266088411676611089752185345698087852343210138232391742512487914487808867232318941368316384672307192952417817426234857926186602511445626188620817413610207140998119541068894404079767985708120152240069833364468987837954668101564003348366943600294259166502649751387926286058204144547841151724247444403685593914393816125358639299899041224715368234482812185827210460426234781365568960185670042720020396444633248171446495506258059463837135520013580926379658880356371356037232977641713412662275724542125777120212170854906903635456755622319769134445088582384376081260528887694742893181798371545558589221500670296171871697661569777754391961794422067468116351605469643541940676050445794642807946198604191434297793833220779811952992172132326433562390704881757601032230228250005059471155997981969187005651366935390810406337309544250106849859646232805082494081878884696848793938507631057082289255193986286698461262653268947631672690663732560528777729297290843605806366097524022806989713281836397582170560891310348346034833657283287087807007376379954208279684873875796945054423353603853425214970196185529333739025342703471758252030306754412848149042221146063746264978961674862630181121634067979151966574251315545385218218524221549062830965255842117289291489505444715437186218675338845482147457502600740839347814904229351355550057748307147643858983930072535135073898203459495976047916552714400600690919459304450475764026221557951118146923345910364022653360614641119757402099935262932730675371006151188066673032586742754918488293626583216523278034440824258790054248240696039017112921403382047298562006799280006323339176704562691198756848386344547269051585336073662072844607123354344089964141068948938921044691164538969523853236445519058136455324863190230558304166850094416123492326621652633035282973355683678606735863099370318644475207001427239266567025384257523893692636836204804349864949686481193040665261627739164272145007531132497146101616855955976651893606922938121118538576795753020551575053243528398293585833960320127391875880712961336081816727491221069356743855677756702779193929038355341915596050926998854420213907858321193634820845789533671942341046885262715251941620411036589546596582235700970630654543595305358363343755928036250944371533772829326392254055011538316037172491956019321866764030277053172200953181112446421892997955691685871244276688778278615073615142056518180690958358565461584744809843762085476422869014103750315568254100895654477380690703200377152037532583727307459369814872601777578194732896810474089094180143376159551354394782286057696248137191460684462604627373216310656706584226216583895340821191960814753325151099953871967582381587842795012490217365049188492579132755561662814241397023224103294413939852072219783008338065643739779358556303315876076742569270322970048889062137090601267559925024389220887687038485689418555921049294770326959099404870008659075477451169528929172050899017740296724637851555836635821158229756233206013050601272556150055535753724671463314896131966791848124922139070085370615984342886933031400620345029719659392598808301733706877358699293512022316292655457715731159136731278640743733918461280823346013384534781277913133797973052837411090359795010453930853495731649767754905155418830780391710486663035769510818470130704127005589956810733415656037411617909007196345518237373102398819768682171423636387625549171094874806141869122280687944012212234754839077544295376667536794096329495816636446191427430253668399037797490022036282518259009940181725204725998763582011277049913966085571988941458461661052440073127707593017919120276732582408500990745651780074133652846534045318546832454238098771729410381042302751500206449520978614306372610001992210926840986090675749192458780052756390813442568038310993446568619095355719289429696178090223085227395435305970360923956944795062750976194786750206856568041624561643184084333256953354302460013674802743447284576063112401475889352873779244049230474397141200953223651226981119223354473176362554380817457006435433264571935856234420773946634178020991420791742942734057901484511317750810326151831314763342152154022135604597894291186960945259999938259150565408181404652528814055883711782096165743229676336951800719716109095996123266960969209422646912699526397993027878194632677056221920914983481939872368101518847728180958279864332736127476950349329598390246026536937379979723165588279747830937327311825435572037768784033509660868829051216697406807285503449708292606549414454257943341889733305394179782193656519406191059697323913250269521031283383483840176447454499763800062865914749285241215608832234570606094121464778468802513845448799340333271312833758382986635406605154346729446368922164156303379485830562189309134086728589268813998297783857316419397629658594769630929824190948024025018780190033593993167740134455066193860105183118401507179569094753048506239628597999391966439833511333415254120236849445336285593014601231377285641358888636854520175741824910059852260060819884229724583932936819921572835882375951527211630798361602487293428951164536621499790208993397195011220431205837202580927609069088302814589536504577783011748233787989570730727765045278511522191347247438805763119889893744566543582604178292182130766986107878168610803607303069599653052062704762362015376827816593581887091500782876937370914238462654916810268222716244478174278643515666138987034966939315189038839202597285323949177646578241669763184779433669467218013676073426328964542581234012934756949470225861802382148512760566576224011415241942494428603314476303498986783754888505209297090819209373805981773742002885285343735656247999550681775229829137032388267349799874350892771012365692403936451544467518105333965812395886648372157139106735915408854271106258521013996142728246787705779423928645250646211285047224597978426087557225495380669567104738320497779463796512215350386554247765244110946108894069207718767763619114419128165354403646800435924287788002579270202903992781132957923040350826782773020845902436319864378866315724429225551077440257683661342040586194327238237477832020175119103992397637101118571250743959126779043938500199331165417130719579871445697590784735876103258632996007681541107294284804273096325318544725447432168852980042847235764059746592941093654365908699788256760793016390169438305443976494555697186848318805747599290621253037205262292351100908493460942550066616837155141487608568796623720913216773433203932498393031299150373612010720348820746602679121757364124709187175503810475127452176726516159988565075897094830739959041392750962621059814073423006597285590665598106695889760016431827690752807294859211514716873567684842564385528225801678724832384345319770409260612962645530730554338361933365900047006373927806886169433179842190070892804012721280062219046373988791323915328475205330809788059900522629487519437761528696179987625590442737372871813662041384571261931572041323573038863090769502134875228815901663266773903953789018272431950826755244766665539318674377475011168247010401724636614721172269724847771108166956302436851745498865110473507595043846690709679126851666022834456167930864918072899452492600768305509976775705017807667225887211694828934758391721322742557333547387588057324417199530706546905525815560577216973896066226951531633039205240337090435412607612898551641606831272326420077218141164973219200727920026828731034714371434110591829185817937681483861277705961757818567718781674712497041689725594044820419185052144688901927479095461524311570081344818257620520982232099631352659011324776341206697208779114373567819618762103824219263102800119289484074538931735910428150579626359486296790681161075954246130420699263593267970021542463336567680265576474906371304421587214684728439611418821251124449104955085737620196642685340183463913177971268487311454514692493252220056319634859134650251178294842941131763576947463941549236838685199906869009975702354765697491169667881673000591551632534825081814098795142526150941253709147974206479342576869963998371879762392235313487140502986864676850682831176995908103197800903360520848294023786285701580040326632338964583200754840524995099557206347879218048254565510848715406612919788584081044529093256961143078306737127591776350421234927729938252942720714409050546796271725009087419950099490649198282458140431118069181244371071708627158787763844210234624779893650603072906647158103490580676176799051232681983140281290413873614475563008896710706377746555690529594513580321525421739910968723100630090583467149016622861076130726145696992940723476321226447765808638726484501946851262028915891034668208551192350749132673080041243179540092444379693700136847946929250756173447872004212134900651370150686483786589310103725696325449353084430013228227034596076087645784935532222954816500270330351561313614400602926907123110461131954183819386501074446680648879265375562319516752089665349116960967329808826023520773487284305369566333506221064730863281935038819889872937503273065436938546675999165951930903901800614754550672030471836884220449515765240584196554942606915949807063241374542358427161621182403410578642727151802085884449670185295514418714346570503479312529926603927939190764017408155850695758878083654538492481498164379120509613811209611595704840365076976358979694864004427778778523184134385171724837420052663511246465764792967540296582310568552738207807095628128926770209575136749662050595229748746331159078647369556228293480037732451684297576976345812663947232129274018570251374005147219627477872173352365539512287671189633664600456606096605662017987702750674996746533171461304519851765406623855229510317849318910008683342480063426703872823645556700920902181444068356885574174372192521074532190613204940287201057022078921293332522750964267376763514106819374273089156121156138312803348282293537387981860613304184704526641413629509298710635757458577699242155163483056521001352596170599018263477967519257565965920937529342897806109275134065202057947935845530686776235767297033093088471078997026902282307523399890050180637916130547789656163447889712041169961405620428599439768350669403452078649200327252211431718928682319377468496557437188568451175066016571739037899369773236002336543357006538110801073023818203010891149465012876712985623146792276052953757966848600524817850686203744194701574536237493702690074344838015190350994948486122562089948962687078831736879174335813672210696071391371609556605185826420616959491739778842224199763699230055779572568712185506997085758268969613924600677138265142717819869550910570363756622245194837601669446370767369407199756995873529197444630005261785103619101066120444358704837732111071481736424927730404581990812171161220070319801643084048096687949162464846493036601481881694173708112426790834110558448279957281819754389102458049514183202801984378197133539882349597005247830844644134287253735840112989537306126360775232264578866677451235284904339941114963038075967242563852415025454606805526770036665552539427471344463103152497521589209641343921553630956229996413467631507609256609444023242099181848172384484361934342905630185975823114238996073768309055342487600818857074663839704841310828379468247707264464129046812724030389540134007148092157120720648045183954412301943773208046095320535446046803299359116931303180574205510756718383552085941220235168815603446889561485093005046681265981946328630091021158268392189237395629916908448633911078109307863642807224879773948494977856778482251533519446953023536441216875368266154419521770278775635165992496289548954629231804731038770600275506297425905257956354378640900493475443036494440264518408820477389343559257320170197469117457320720033051356779573502134231653942739057678682638883700250283542008763125158472426944685387190132497134104625626731817415091073895080505112978828910908407085114455773987764927491137997359959580947146090872551858762036106809466491221955022008917920292532374511918066680158988198848117179498794567869643180447926102707056867669958790326271960304004320701977057923796759849382622813127301675019652634173180305708378816847533714090359798481554665243490714629826811754228992562555132975094212112933238060462300739909624091005769016719251705895359100755680297762696299088329639087169916740441507564966039424081670513246888212568805700843518707583382149442926342059792036147913563954898681452604125965990916021590301865385748688108993468684236643101654283197314191339400054075310870206380562741504829821602213675752084697503372265281173421466992063638002989232510505702507748334762752650787420316425542066121860693551466496185848935890802006757352422887711276734537790015707913903358940967851026813701037441523999007391110477531694187502896093620297702690920723025886518804202157567602543298574363608682062913883843809857756186210244894857447601834316306477555096745248326840419874460391169874478091551628883758673009264248277545277719015870249517817587866534865881350641617694758368009832478292276741749818190645872765614774956948348162709520702841625179907902258302030990531106144725546853429316677905458099378582732916292440094816271170683947017829969496742676943485397404876462745148823227636869148892078489725489204888051534718427915505875689923773621210237547725115760977066818083527465813214237947287856079851267000863261645349951107597220614033973364050703567405264404611183479325330607465380896029450750589906045083285507817850870118837949174705109903890578691741213500839585514567765175990393372567394216142533220360751487883387993762215302821572205439609211611950304307632889662468739575349263162711153775917526450613663266386625789906987358207295193417819585204049314676866069224328268892854216870850654013121248684412806059208818876850143595137694782598005301592246661997785755230321026862666919200432366438058510780004589049812114893327176349717092715585295834333993578892414437121432505940054776927912697661847504120919482012151182554723991152900915094026052521520668157679451920706786703825402874269988201884637865050871958888915638232486934712709531415216070565603210708073701494984264026866268569293361246786592177087284714242947452469713063115571924851177252037294529287295327907563720928063426538319237165207057570349119350212613596501377955356449910359995780242185908088245611879890869128946401460639160038604381077527003665607689337335024373632752444565728639742828691307262588949263037870100244130485608358197504828320260848512591302568812345505645944815690492811869101765664816704431808672348439292230769003071473416390588579640772355872226501983225749197252636106901265848305084295197899970185282843319139285047615094850381546419368954656350195677965064937276877549982849936789832404459039789291755172079776119507739434742355722798517664629883811560174012292361100123778799659408816348684482329772263997532854675462332600080116045718060043673179165385439663159503247307673675726106874886527937426099750124961160315963905887645887447357422520706243804302747359928061304981843051881198231546218025178036868120734466064408072362895732582007937682089421416846548831754527086865570860209292376070879737481038300637738187325696509629415982311766508937351729672224590355561829724415209677380494165561763643837353921025295746720152538092555046985757978720712084510817904850856654128592155076994828186607418238458987817230044453100778893164678593603103193119134538621378113317599610881500300788647267545403370502015623057693324301567608128303110494472512820724749968997468941862979619797054379456572515710946717486350646745579416830986256102957037573051665887310034534794494573048196808739002467018566657644197845927353518588690230745515581513015714762151984880747033770029931845938851930462136985889091493970867955465713381774566583388967603248304579809279770491818809081503510353847163918167648441871766432105828018253600084766119599087692468702391326478627035231201965783808175069105325477688481343028456739496457209178862528588625176673052650103481195135090410580040302059855442133629569816429988366487004001668277884234327846582876214432476221922120423260358219893713611602001884869051483502723255574737689763273632881044538193855480509270242990645338102841419382723159833916478357742619519255457302527075031664198348838922853987066921729319083659420993127890936193794544167866831226922300969622982034571690752333130520164927146463192503717168343413883765994491330513537357183879998294705417361502067710117992289023585197692396855217228273003086230443113818246836546952476023941068196748273362638166887981084012136582343955930305858953039892640192466705635661670663995010293412965247650554484175255613412834312740751301830891126234333441937085894524816319070440440158785460946514843489397204842326159574753770332294088699596209140090393246123565814693360596486953206556560424597801736142911906986848937890231841868940702513370611177910624418464209328362330974136231842361470303918803210207632010227994592013857775181045996289354478615473172482155368767528216999288021645169196868975782236357880819695967415214003319401309835678748806109322966910023163958701095097494472293007506711141018839976854961734562078343715382810825668256107287119879481410771829325423419689746103835322710958448528666720746101218957581261919193527403364886844193758250266985609636535887479103981441540593878158955882180335872763501268899093440745401927681264869861187136059134783224273243774759171846251211250490264447586597393164052699593741541010313587531292834699266850800951501514131685770774137177144894098040268854269119033809164252879741256613218497685788000598754581116225804063446679728914343602035554313629863026764799166989951107455166522975973366738216340344444899905854289386745767455784894497736625402070076625376653295221605193324430780676283065072073271558931249088176517286412139256369514964236483480062308136134298213393979628301878912171051096468131338442839334505887632934537785234160405863150199796426524746177131053696124729393224702065817749493547082097014248703798087145949953103456944072876183593637972305678126701076360074946329184148584653573585313750689619836931841012950865531751988400625488795940737190259173347835593998521706567321019984508849231691698570122379660298738501726768029328542621262181162936379683050603364549191203038386887738491028515029603405563019485765382262086964222443229580395808722141408104432316937596343738446826043949527462732178620941058933669085598287750635551177603619166494446097986707695722037618672692002302588994104182820218051070467758285130306506835784190796411174503663472449299317556317366800300382459812238106136357302583014341737967722921489704385205345908050209457734042876578470351649632636789627959684290356040297914164903076123966547174597991219565087759398816902853349975495024786165903872827404366934006050224669965418327972168333818861352873214473709923414242277892559890639289648062585469782366119219668524842266880915678222304131675938835391238886853083563434174121141694062822941642982355457056890579252279649364421066200562553189394388691175116220610117193169492582811842596727070931426254375495364131494094853281757665906489914101023448374820555601213027532776149404078996464937605570518520936080862305464698114410142995421885811300398701255989204561164366340015698418120706948826281878312797514085748638666267056622799903825563808291750705919717593954713518548946740659326312359341259441803446678167400174540092045569325295388475226026320561434489172996410261423740581696005588459789129510145918494949437733780923271879334581519293617521739386774787539147692340572172869643998946217180375977898064771982077208575336003101388057534277013507701142203521775458050278681926204057574491588914330062747208307045241996916635097849677252600893313925394744811355297111135965916014840237061788213505757871709140618012929104954144706412376746509466807622849784758847236075460531076611168263911681731828223741636364013175505509125347031054810584329037419466516799341638283342551201037366028879190265635748222282712332914155342022496842292522695492735092533560667172659399433648341578006932238131833436784031069056482761260918391649171841134390964269968310219390097491551685810668439995771257039372952963286306675291169834746428600152718516414198566276432678971417935009989630416738665531465960800235990204431731459253232670681012693414343103917441510636327545330120947191949128046675919085552762885405158557394368670752955139080606681457341711143263888480430962966577109654733656827574089033377702024840610938517881211278286336568393582898101575650389586221517384779479557183494659941447277251790760211892356094593323446833093777146653747975830345899439164942120541796753405972042274356283370097703808855124968073812648050212245269466445861139771784423714505721942327035214584932849493039105512323284069034175162823249408176356907410662072579102870394153844053006839976923985365017907373237572323885647345374040459177180387813110372391314590783828196499930567405977366739350562936262071065890126313831368871486653267026276274131139260927341222422622512486740364997973676225727095131944989808795622294590132792208083089100329211735243390906455434852733477777818489355355655766014873643294364641497495728854771118135873895150857045318768751547796306165131655441188665460268297752356956305908209255460190330005760317546925004448138976433966550188167961298184704260448316407901415395156512170557606401642344804846971352117835622161738697757759231840496443120118492151692351617804885406741106732989020399203251980565005844854079241018605359066015055224838542101529000161434783728206254129361709415667706008672313475033916766455811375013543398370340612678067831426338365028922094870309766455958497306634284329719321584802525774812848816361765574780306971711722659315929537548631329532943373931736124984047529452463311546394639258741749792367256013356352542468042004212313694940027616101988968971592644508824497671053825978253237711701715768800731140317856858360887879632141436437442537902430321293310768722802889085800271226038725018304252828666941858254630990965336975305332019913807388207918608142430352982070294564740629198737266010457886470100508804452741411078858785511959870244992636035631503437641426819262192780564090454713945546101679008003456853568552223425544969763498485080082672528309967335341726197497093640518331816154550514890589704823482470489847166144375628357980455432984635932533604041812251422938293121972058192038706181202882254587418126194711341847950011670459777316315914756188637734131672938989551547381526834850719175446908691192264590313120978846743444606493465218560140795285545941966324394730475038142804130079633930896791248986042347555511616750324111746229455792778643602733964853121738562161384068374056953438126645733294821605444091074192152436010051755776130510366236879095727021748624747691894518022079710821606779521713303130893939675571917271850754392729552839129281702267534469378739865942701885289917238423594952073504631244001685737686321443399238437436816584470150838138659187727528418784858899024036168562103166039932998923379629102921363597213691781729622237247019992209278643421822876216254285945486839963733175946439068507648544350172495730725282298158097165588065962716734177536113231792022836745894431677250660957378261335808352798781395308700579631606447702653456662464854704224910267926509597114961296363394706514395235563896547743613958923978701603674945740439857394214349937488487524345060108103006823577819311780262735415424962595652875242030696506487905779686158354336845347139296364819317901531160740194320642439003803464029151182817824225650778955290608982021560290208122645304886962424179207538533494945661013694233907556307623291700614102398288137010643775775580867127728720429096022053385818075222431993982185506220406113221131170177244313169377960492619399157537636070963405913336605676221503693089630372254867746009145437464744447403110051244831396736681962240974636672298916801335387783383905072130662851318489639109589615990884527432341631010823362736881327402661132638031599607898297379820873898367196456731408970360403951742990059773814821126972374415344033611329505659192639893757589047248103558254198324438099804847648901227304555566086913181922282224309458114894720429960993326752404650035162270155231933699659500695533157039819558244705177717551289229393924416543957390887432558539423412713909357562709510889057913606406965533946334245312279940230650024526774891434179389270797455184978132373586069512118093541962360932968771267214872464613781902496239768074951600014826690717360428869919413252937454951128274628681335132187067663449638797245323180153928855306962725587893621162942829259518527230950936422469625635848301384777502249172344424212672408429514931472910338133909928810166486967707766068816597987337717728468023670881435973249986784654522044428367105045953283001759034217564021018614075045100020953338335877171573229135651142610702779010563493457137226886975636906046459009197979243313004540776550498514269061045868691198727454311503142426648180822495710303380450643019712521514388462864671733989019992458994582358603881585681418208608365280601636310942068858196842704090803189899257492907581520788005851207954333247315796256741563780965887860734623693774700265735320486857097155815663192186218786156859529706941245507302278258764082166386142170187900350795739669044605075831665752733102457993194935014696531799100696603828011744807615371550449916758429439087050186038947016847921436187355020915099094823517982039792658582761896214176723240285797479146949218580806018264323221177707855910202146272408143665207488622059862300587424605759992909635986435151858175987125581559512453076931552231567578172197819558278494169785311352336445610118270671180292594844938726980318007453724927181181529294580698888537101812518551629710744201740220131981479132501189825951991448323531782892499502544755201583229309189002704908200207742541197054649091015572886722419244485160237353100629597495665527816792642562316777520875482992667685675166396778611006077747986548322508985380490717854589692159466556274326144287560147652225956575384289767045080235703951679613148690811351384201401623318441218032804970858991448188310632509577024119871880113767996867629846351661967284675309473483736055044653017841379270627215133924295625802542101484380449470795626961044461693888098872966458012228720410487574502041119026329414759413881455261545821508210786536991445325238822134821361305073234909742054620956640740209961155604596880092603370225639911607610935156562318264262965984342125830019244896362091907287282991680903168006570752121510337486550844597429075131491519606343196583084306047130639193096352889462323913542915452313377342497928394452180338537525763543875544348745727103313506266880206427481782147583288421563916325898676954098082299367023312096766410469219870156911024287246454524075080413824488192113400210479967828033608364729485445855275186662138548700603099581204103972466338753463906826123351858806380775616591354403880566290395987179401493936806254217625908364753976615568778133486904737967638793322927392737896464098053079873201789541583967717815851988072180098832738087611464360954914087479756887399007066472068874298999010124868593871400092621878001792168716391604318776996432559089869331396016526482723134266544328822085102580856981164370722926417858283750042044541585124336757941328063962062895217130252450541294320931588566829677831706642926293833569554381434014784737632745702856689474743898755124859350269576323467412463823022779338262853972456449654744235413573769712663728819953256918853919448742268957619389001630977156102681631636743572121390046243046135050315063605483934071717887158393001169866141879489311034455334256964639163089267321528134417252972500445455525764681978809418809913638996271229429248166190373641768740240744990831897216322295025485803845367328251906490438741329606081044708869921677699568056425910417223026961668501957662848232604959191349251536523971838289586179243733379862669466824118643128400305378613077624120967439044365915332205650347159474281408178672702790008750905866413873884082481021133570661073521777506951837553087029630797141902080803241506077183318488906670224915518918931257211668691494771066509682468681193190156545948992994164094141773086035714971841050595752020459744403370981908390636287164587344495802753235945403405212623958405843446995973316674169923178530485274829472046686909370269265563565249958311844286700044175781645803705826454196750935568667899556521934526505776530346165364594021248043441680533642629105863380077045416959327807878673980237869169440453387295906665721828671394130808872830472897427399452268787694604522212845192063854393508372896744821493028468630679241996255034569743046142526981604935149047631917376372506551292936401644437572400087996125716771761212059989275653029914432476420845483092539676826526097115907330953879166193768552628074149383102037907982538932789832802540720804879620874355932003902211262685544785180361660871264879636883240127019513985056264662188382662062295396441478630779903371352866462175104123914885193058223414803596331287754771451185014172501365949871090357423685894214994723445106999312199100460190546260273258685448517262708374021256555555423874499705474229920704524609656765047729847346772595418307685694487935795808620137797655635479603949434612340640176510504591979414355664851348589338345273427189472956934409015751094050349155263917881067800111988381810265345789636214596074995809923225666682297409350988856052082386525645809040024662414235884747410123281387497274703525236200792730262745174283850832146797485215732804835901626420486018932678869056778213292995811346404104756873619473792217879794187534848623548190919452217036402870311069958677360518325930311757573565166372531457734211336566223817991774464521996453786209547165153799934480646611943677768194266546935627980824485094086825047627356936295222588486507433480110228556336304578778428470828352327323567353648526358843952449856691201161297910344818889536803867739226066024696247066518646260661620941503671668832069472523978884554001876589292101750379120623063253061463405262427102606859757920484901543392330535810307520786717590271248217104018952922250961749202801040215910354559218138823610132420362473373224090926318668349700261389980827650129556647808603547569709901236972140479839162338788769840206362679886407932230350952273172176239184820851320104975233139096457140468664342258359541440706257213776021395239344422606802977672206646989199413537664676190931230380308295173958570511034599371241313414852478379607313995800724653548356392649131412625152854961217592768229770628938177145048177340382976984239177621891206750118119365204979263759250628490382182396676426807117096140156393747804040950968390515544815854931682048530837691948437721217298352443052105442037921862674043514597083969584329729660957186046591989973014267358549546891518054452375661846063383634517215950653057300441979165754517878137359361894450916704281016129151014358919449570269197733102352888015954856638320336889311745469437750471981720419942589430431189046328132219864644920457914084245405199279121704351923037137370991835407638984916729380319810267141652585953722884703942143847877759157492826197990843353172764827248929095903635362771306530988481275585068321009762804037147088350693086327647199844976392660489327787628639012838298318064046119263526767689261706516019454297397829256242332036650139172698155215069592101014199396745900477755503928080430427800684108793974443882411560739802505335768140698836394419256702649411167654732728775238694085435453429730844207639883405507386798075501186293124125318409609085800695269588166362822472600156372863140555745278468428084429833576896879118221839814532072569033479199630670448146680285267323775140441914495798635410337332527090384945418967727210952217993950492656687750698451507134594560619721549198010227548984808888451993095503246743314596603578689340598121720171012674705241808386656017891384543107438581480005209671392714693383626506986987984688365863483986602311303376325186498229085896450082513746932658032902785723835965459644577586336475259214841521209171757799779187370563442536288057419309987802289363248877861881985518018701242784701383160673695958438598857847291280260889491630166642888064507048182502507156190734109331851844023362576658373368500563596268289876864536563170657328735697801689524765535280532487433675772187166978523799713414530081549516285408883113953564298083841929319250104736206376735192877223171243169330749068251207282737965546161976878363729649789466320538557111951448741736359167331781173134278262918596453879394440376542176258632648247531198008888777335282924561723229178036158836741722601341724851217027580668626454162081922437715491936804884567284907907989571917724162183776118216549327186856309935978923704287347977159414253969849758175641437476993650574427981244962453304383354605620068023625850647004587424813502671334471793582233324455454425935904964741726297987922874344731729551019323846243388180017529270277437172579343938716879419892216000501424630276415458860112416734798510911909230122950763388347869807282705841295741671883162748124501907183047397263324400361212678938111950952303619971878862171387155977081994780292698514342139845725550514145767334935355532364448505989968077312280103456367095925773574804592220176721129507569792964559402186282945152613686957189727052509647708209745666796941039071416143683278722492203628754108169796651495518619984888039769630395231698770482725994079145801265290262244266287627755968363147549315335445747235378845954768809072006070680096891405022142488290137241313608390951197399202293467052141503204782815752278175100006703551914330156170945547350670836692737176539382930786570719810908641914155433186923177010866978171285960466657447682463922785150611969790984338474556148860709720927140452932910788802887515293729707159553928294201035517883468303162943933850853558771411604297338051215461654889950455906262999283639340932339130390135917175726705849959841964256214805676622148799524549042689241563301449079729127456184505659997789678606635913651631932735858438694090830887854988675223255928565435572478474666711220851155658187597174465352999182250226272299049952674645782705710133171516336703635253452016439348003867476577110007458905032062701223031710391655487653155167178305056854227711480149364699256974219473000531122240218317290612451421372640962264484771032855961398021882338220336099416740503971748956645270990432902090424091862098370652603824815208981219519432688768106296404202112867167900381606018725122389797633469548087131179010385442065641396296418069163836058037780586598772343265711290256877360909506824119378922725483273918221350717774052707184664472282788745830801490518706370886202167076235663895472332954897806786510355719511680973711414835098684629490467250147933263059933367213482464585468246037010118209115720135278945551999631273244558444126180175037792540273470106260088505888489708690016567422925536772923260575260732399228925721448614635786787760095532575133132873138779003706518120976280418236394344782470507524297084607375939601570901008845694202446741609975354794349884189048757119769554990031421074946667927069856938114222993462490361354390973341145436105025615947774031130756064347613658012706597320799054506135653121036410214905086320858641992101718739891390710473375969350791740144059389121844536452980848514957346613933717978467233640539209543335012318523439818312886833628846283795638264248369123094637195052668133967331675249665676584885260653465093830921229425203372027355955490366339434202894087684133080099201978024794694701089878196439359922174912688328397250396865020483846699443940681912070931146099591188692778991878072597445734948881900751851521285209174327244122076023534149920124511909105554957195107888965766339204195029513882557095266399018311100127465414093643964863208608515107956179275678515105452053411205448544607707325996574289028409021461452851221021306256100072492553511195748664842844460932950630768417083414235804401151540998651893081189147855291827071165836543303448712941974726687051241248109776992805983756480927866884856368453263874746562635908219923824018107733040832412726543139789560899676311512880826811885754245329197904726198464165565568818795797421037623515299134483201664426158419183450426256522741098312769269218958459844793065149678021487110496743090502184664498126491884408878813193523418772372592917025136325766302738044313668856195478908241831628386531089162736700572599659931667594389776354679371469365341207754584887004629960137036415323184809138455027538928961990962117510933723510453805646856226705212783901820446932381828923890673583674541668725547732428206179099202561516227180182969976022108876100416033915960776260735516190637599511077591907289375086677683174176342403328562738281485133364397533981634842880212029233094365924528896352137013092540669079620190623917516917281040263611224343372128468730168051821687948062146569513972820618004193758486939517218631416275999706167518371790480221043218338183694003218794676035264510169056301288623592847405218767702700493227994956319387074590554023833109569323779894710398331805518625861767531628515746146208309709818193273736025801010132015153318624190573605718433627770338143943852642635385176738410731948328004241174073566205376067877322333285029098649071300813190989053237956517812606474543206551929174506933341581088056075811555884809664098842476546621322217850647597980264259783403526017822047293581002970349060174393255613130301906830843910951236890657800165228296574857652034257117065845814709857931787556300846979983215859839829160281527399497488953641026247377823967090383316192831143071026308246840668264041942003939922026117821969708878430886913124527769966036770541507275221230615710493415318334684956418549215738468213962926653891567762926822978620821214678739954352420142480977377591409615538037311637493930552212455549894863160813781642059708121593429461233561535706875779072445005059047972025577713431896207773914674480405671393678825649797402383573730479428462194736726500323643455608941828663637364940041557848848875741113933786425987514229411576339843625111962223625180840768664725211610519902612327262149884965421770133925388167234296524307527242528184334070413868741692572164048065699313650990767666002047931975467757915178830086027651404482299678494078966306847356298034841946712809226575806725595927211813143028064699167253315089196861617985784647427152890269664592582132255321061932924381409305428738855725343132997720285625461237326394726178211245259872779927223325584756827668646389398681136616318709424314845158293622955470473553974608794562068094381852281114871066678963669659586476560193263033652644215900459249034078669777625784433459149389551873272308973867229260202802777833979765680514153389917436873044879934195572878554616577732295405225912175900639754704947375175380569564889228085185891981301479526936305892781150504959955681698655355914986675062311146336684378701549861762384545798790595735724248014619451526860716884703048312187165227394360440901870706176586980906171321059744787683780443584161485538885099143716859730659694651899866979251067268387176508246713446286068487938324358165699613481188739250829167186766045118085646143724577158810485464325309934492798245436333357454628027022649243215149695588353438197282305542164404337570243224993254526812331614992954273781926497490201471712983941624299135191443497508823299284322873713754982570229861388601983741661029994846921608672898270239336706087938558436262328613235121598400586094391020559842713326343656852332669932170837053104568065873703869419312074786069549240971643049960670634014971980859319975593577717900645555888391490523544161573828834265922210937787322978707770601344503641908347888973079562497141009267450831448143091656138223510320330222104917711833747134730863161192773483956624281403441520502197370195923749038250150516152326425678027797964603586756224397965509974982167218420482511484782085244100129816273429763721332415192394940604839316170899105240212536110429162158887788757345950872641287702606800681967724539922974870338175414758273521114535823335692876388523350762165881117873585782411299008405355355414950610155476893747954216868719393563250056360926752641290380148037369922007432699977288826459280415420495992547807804686036497154411331932817607785669352152056311964136146348682444945663481364053879099316640416756122629967406374606405622674484653067611562915646691893906725103314842050012019115839031167384906130669286032886373041252251507499106550387270880529547804950437928545429829476699611964538377174493195204785017813319407531822260185089597574317548069028744753382572700936334651882169886030341925924406552591659516846590596314466278323736476469439458164360469112091540312526055867357800198034108971884828787913910085742251121480300368908640121028725667779860175493052068796408058881245910802111496670693858831413405672584999546169243496869340289337038852934216693493800440209508747953324290236941770277841579000722345637414169012107339836583984938660991830370403609732882814562758592526378809155178434504714555674183566788686399080529842592013605160259658679276950961887996547599201727377250880039214360524562987803065282477000172782244227893705899674088049681891183352619654223872343955808223121980554959640398167059551973888653590600739537608337195964596357170066077931444638285868465227240923426208541381914515450796410537101099389593988851388077082604923812360710537351516694917363051239959875499755189255553014640232505228285247596640276135104793484773238929948352862628865706437073042135715354395252562006935897723308414299853497182609166331111459234072139830889553758623003215115865207261168782949778312462905643442971767820536153715036080716062285420235099973413369657705908091244513502931945936818886550308808542621217437945061804658988511228392992749195456490041399415611057744412076563088694891361512325092943628436689022181282454746309327399967058115175905293511889763847301627469787540381942543149049397057387072106597635943415311688649411185708816545617773826719484089844367450534657482030730388880615879892693330396001959291076678543625940797288990912051855162281303057119359569391124046895253629365607116045543851247195218168083007642790621145227805680825054897370942787472767986439611634660757279599756520537605603307708414932424134099621251931413141892203148857808296017028901313222756378307419010223037852926995439824447851161595048780999468090061090868602639948845613466407365865884468713273696030156378287688687868087197893542310032980627186298178279599691381699281692386918701187605464523699643735039648616888842880127445281226643023877652635051349060165435666626184708026074143545142583083328738602503056796109706156297233285880767963234538042390542831889706780334966591132385500777655034681394822301462605788169609264777210796789655248269060795475307341083547595435339626888506473980735873818997273988421079773656821795356120757293119225409249109547787557954545635465276819222430235488501244382218526861367432391079032903518756641232683997871413455704450639042317090156510727365300432956450626100969700480629462491129229421604029622339362679961303990776779090553728987295212012013708773405803054533200162356696349578264732629159779859892972089005265278552071752883874786132173021884637350800325380889898155030669194660262622529235249106555480445879407966203738806083378477776760624611927422173384899880143672121386348246600821036882367786290328122289738252950808755547024998903087869268192873465844512565744128547861125103179900030419066421117159364597747849702171797260650888937310257955287273621032936896144852985110897805757262741739518438330251200978119280986219354199899889689658873530809105265332898109617074521784733686449159935503615010587744694819971716568770867797720523711315106431070716805209878251314337508782806460086098267134002466153066206841596565037616999054710133260170502653713174784956325510297215300440227015582172920689742059819493898595892247417354451788035547844412281040896653461480068696598001462931415969930422034451222460884188456043385412329742326279272602585557899235974040838550611078497299440620927318756888629635399811984315017110416266238283307795497318853822739375848218078659500096078905486052571766336075912196694696282891676833179665423031181707319292960563989873163526082541834488670173999534255500207744049767801713149436263632869260591805003475373994445417274119358655203134409159444495698534810304343208038901980029560970053895867979569416579378707829971551229857162093787269187994768438185855702110286528519938527130069880244237563995624989360479065707622794733767413604494382929790449625993952198193924946257249207721751237612492229618646170110031469298932601660790891906268896001357003701209794550520444093042834900276245798634324545744783008125424578783415786588214041687527734213413327275297414618090528232576202190839003641043635241609239162057453486672240447379669415852633019843459479353165679770028844741190339982667906798795309630191128604683679211586567551369372664710701044391894291498984003102857954073945076849092514914111718733353365961584693253362897536627300444303548135685090787515501362507228596765674465750289128085788384692433352346685476575396078857772082453645509408567088166987321063756999332423636414822469197159666273620073143137818264609687943981933387089306829065686820713008486604247605747253168814278811819404338328636781271957647349674299617074360567976262777470226527146900766798903008017575426357694500929011920916002791074521464261114873771775963855196401764805431897512360538634980369640447348620314638630091509229535167473209771364395789337648342927787704176987609382163278775104878702135214481963086137587380552432367101287130991090780540950029867900244089771842301653993135651141943174662805475491745623459711763737669723100953264241242501098644993673116525986484123795636327591801378372964128157270456864821925224959053314799591391040363248348002140692717145642024076808848073958019412324995607946737830970285822947040822840304852938006804991731471657928296144772604046666518103419321608305886320736990669452919831783359902955689220045048234614790535145017534539629095893705575998094469519077414998628793192968567186824406430429824106166200217244122717625805453580962375091033921182667542880146048848388717589231533077561670291606379221651569900705414349780549237119173207179334714746561930533778459857647340522681084296525403740275034989278383895581702169992334142252325225933805917005283571540613336486313986858904887027447372598022613323592340441705490078118511519249341253857404812570867961879138293878739193477700910892974659554468128907477067396093407578240230160054571380215389492304949786838106047098585482384642431829463234442206330701583763966033936125862626092733663776936699128876241460064288688658197725871252889307998032514512626369097385643751385968710134838363073854094956142454859597989213016169931546528056004744522657182246412871603623593135005024356809642894097120369251470258720406235059485649657105844760505838202939775158937755087028839080109330113332064102757208101884652705303327883765849991055701592464631274933043191577048568479224937754461301018762912446492183813820300905919244769991278929595846020102401239682965100584738529496053029417574630022472383052416065947170976841852408689197268093228561650319025527834498991717553859507323363713311016624723836544414490766553650587347253552783786734849531192600939351376629209713909896344256878387919856013884838523252628719828089438952505909884971745820338103072743362717478562533151126628317213980943147019871053857730963996853206564446821521003365418760233094108603522315890808609386861778010568085801160604170489995990543790872288248463331479912894557736375584508764426404867075649327883258501138404689047555728244908112302588260144395010261054880110149860176825188489587017203380872146414016966635245141390258369879785042195408471592306053337305536388070188647883506955244269002883060179821111026473356094225910601569635129169513313846064327528489967885206101897505202112648605038060802360699907511542471224122227725235897080018619938083676074821675253343728477791787706631695953341589249087960327365796818139049560598795433208248811082568385355738301662717725801919097425297908022841609553712822160762081401167400883852633480552427624459494219871013320263660537349268177252503156641236739140408654369697935988988520554933345404603872753326546902344936657465325698806738674528630918480167978956089549307867715591283792141180664333451424142173789980481499299216298610389929227610770589879099296622567676681602292441496396352792687918433104111021873706059762615393594535696991372122824198736779215270205129038828480935917121437231184865582591405472324750466989424276402672030633268596414739277991053915460153209136413925766151813955856679971109705469321955761234959427410535768617507598547624316882320327032335351750925787359372408241190475840980914614469952324171929986002661437726145690963593221366776493962933830067039710208786426883937111522280028524372573484188093355731216505936989908560263243834435223716072592436315763743462170874940640880911282634525353770308300222649392573975616493463603806278683226262676627624995775761188847410409144065488926231665229328997279525163982935670176647303034895583561226538732151401386966799028096497066025189794695371183168579062236124544588116200015366590512566062337673475202363656116835816649583444444825230313246810900987064043681096925852475729419201653292626668595712311976858819943263758344510505119760147462034519813738594088026960146059038575155401983340392413166673421775057825850065618562465742223220762962329806495532147345462302815463137083845528870280211991520337023291179846217917539897712121029026166381230141037416487409410444349969616884680868588524119904655925443449851173244391557646541253909844779939990173841167471339426323060944109288266172509157852805227446545619546735014998245746020106930719369176362667360844655616962319464885717982998072633467989721608954143838916013029205316348156870723018624188570757001382875239254715850760664372156830120391611872612065771747753056096097470545175285172626133116456621495634922814487704881337404882488917697096642343054928029517960564456282427946343011857052791686015430787378928319299429113344209502581145703655913697460264363262143460376554864448350712640569636241337880470029451191082428696509766394388782719587639232800481091049679871818057657385984206830672231755664305244390817820446807343196504126982357460416803845301689218186479166393197947237934237219022910388376770767969227558076093667895619004552060179822187325356867457780774397977764090710682485810497866588900809522441960981894965679798762667983021728809390627035291256862612358930932691302766969642686796955739152712689057943055193663836007740069314871378554145075491001574010948662374438960226262307402987451524575042860647297470216521343805156503090347739832012916228021265119706017778787051906894005581545087328674203190770332677585802582171980579502353736890776491501224333734430271051802733483972337897819114711089329327109879246419156790555151397554471555752490541521231425284383120629045372602391260025099786884629148665771164405619642958544676161172680554392854713964318461974804162162636050318931256275498086019401741827288731686499519693006461482931504839573341374794565920089135023144138338430426229125078162348262373274966708143122099609396773486990722570444519430395586623164887669954521896535427661147755407447748773628948841728023807622550575795283588696732987981998200093398501466414017649101029698246640768234260312346951913927221469485290564089958979744933593834467114616947799517947369378043685992355199520850551718135432665877161490824895649830660890392570913065163486020631498748852055411185974823035656322341221742477306490014164959866290285053586421567419166707533458853475706872191828480042907354358031188486425556822031570588046181739442213373090827545054666906616165210254361298746259964934499690839538219634979567704212025055991677926335747781776536899056555842826747191418323051437157712803323354654098686169751861807547442900793226910656796267277449360562745399591703887320845393172075556733341654148850712549990035096557780160774833673925983735297794248074131102884217650628043330445503571132558645632600531594640602888984172597723414440730955617713500882957103900708666251103077950640887095270408116439130873540071756691989809355506293813239860231465696916611876129510260692736156694354983316825561022991410086625550459053076050583658320696551529214887419832781706725087873080997605782190205939639939890215562948836513508394333253413128896916088801275344188338631938389524284518945957611738190633904009833543239793509204955325154023278086366908072677922901902139151910397916013272360503241792745901104756527113714657524539773215502627148816051546578089936209967747504701588332648260082104633728123861272037408342797643183040619819203237207768935907818001856598260522992421190268018218431639607755703857363405361665598142741433283090355501482884705036792150488596051748538918305582177953022957994633697527501459782691351290508840789933829254839618214880833308014565492028955340520602178036718817151792445556067679208229425467379138162893427609505130769303260816256353813745276775023860879296905194899055644930067804228401119807536119001609673737618517071444814974444398978853120489146370360662571847014673711449341415561858942834497035186656658267097252401541848187675838211026657645610101209644541999114743784030461564841490035722807038000675882038159223417460927528502823211636731208462974483444387997386781651919646059185923509833570991177621817924262521331181984358597223843527239365702241055921004401402345734286699284801918392693883266742590556666792325540131176992745652742738207304226318516154313602796032296280928864817244038425570497403707180216955949638048719156429105594984805717281402901111592157842244571270884406511857422969144424738737492239717693839392172147676392050880551345576206906988794176953675802026000356590936278935107909775113826934219164709476669680059279291107050400635333301532017389071692032636681797426897192327134852334490142519507915093444497067297088035557479276023541204463002530077771146785312436127131053224936442471759313438340576287460179284877065890922461257210100872642675901591542538121070288557783682748902505963001386992460008691618777605373236338340213926961151898493356272906398769469869068356176265251140669722762493544257009397527238520050714914491229169842085266541596038936546102947666330829303632477343702877373350495259574643673565097792784425288464824777024585254314371834993819231631868599316305241593034562252099301247862580393408535261208068887267725771164282924784985931118398587584360351457757543106299074003237468610714106172398330026373500527668769776623430117456526371814320986195994326679615491425139992259978130358600702638681630102611660999995405749456716818197541078553724746012605489353940827505587903712114043817664615699468164794537601475857771943206691920182780671763061667694161356008002275435976427009293773125621382184030528603050699942929975343881228841754871620866879629357966814536730220317730822782628558980869735929295482003440594681816162232273882742359501662475087922590406522643106118000242500510426629501234849666356337951804747614727412059218286989421337252992769378779002647042252092895134368111565815812715186163327725521712321420673982269186606553124488182934002139480240590050410557683131721130981862020562556677833199246892436246202349002221339063893796566723934873763654301873275939296854192757373105318582786374418776040366517433008499433518641610834518144656352502928064647794712758830298137602438577940994971877357189884133637739986824987583413148129426720396857510470463471352453299708778483353120448968395658777125292729237202365266268682396945639769095825859469988064167048909125709019117189484811194934269420638004285278317267073837588873809257838448403688968599276195809662536170046959211614945496970144413162915756611793552118431836376633975643370721696320869721622259823185713096067561987957609011147460380439184092076605839325596216720016607899979327346364133102497362156626952227775360680010859825573298332885156702021040741414702664131987657286450228125013056563177724748628367842225088235471103662687264811761430331382909553885530298932724813012408315862802530853757773030789687115384917664652511244652841217316752306965151794882979825616109748718499416009528297446040770654163636178147236118283050075039846169683187468020124207591297957103611486270124552395047203321374237820194832669397430530137837659990959603250784718686193772423522538837462660121042578275942866392927932079244555099160472025690243341033160401267674705465682896697452896294095559138475407124511416652561359491352516964644073850001889529779479768877218089934631904732319734098335108411763026784531236845549314673410900551286665049659625854674249846999282923629282732472855644683005674462608308396067273604383408996189955371727968649596531899772718714816839861306243171318191737972195624105081698429301239388420124507727613028920453199266452701770331487340406503837678343968980297178379897562954140942462457675893187566390699411898246838757845672563674401918466700734962389801694894397707247250140960982283899184481805386136446085077777960332786441702834239003243900138429308787303228259113373233418305819658753453316409733026388600075387737142872533575490342981367606437466082340299818329502397840022278987974167381814456114746102378150732747719340281311270863559051748402662157898434098689713618635899385600821847428399878072477133645249761629004613936400814569138685277262848166999932997423483701838791566646057467915405257529297333682780983792560788058971438141387333714162772245024713777249478878109466463947742363127242466538824100154882231185377296493989161101627126462906768141479652519011563825540723102725345494839796394895019258983015130095010588040699660060326731951860221174204543109054102641733667396210016726323960691798904083434573525203110967026099485849661656369862932250628464896694100286067618851570956708240735555008303179353075618287415968060964591366315748099034216915170715405864364405667998706176373912874910548096834854022553173774358587801698832240075424462519495792649830429894186582130457417666369444699605483707479563158490066495644075794258712814592885321220704066773258723823284685973430123624021810715053343175282440068106677752980523874353313136373856142235675151564451585220668003685161581765532622280818495721374196015135471776463485438239980997954223307790416332850223765807214375930613291619482113000835699210434579150876759840191270904256017886081776544648867460086336333659144926514977401209926878099977895692163612427371236697290163981018001704803056435488709309043513903214009168087320825605078028605871020671095957044752360574026319387398844335051543839746893593897922685546395687334187468762381092564803546947997491085182751709832353805351880886733494404626213471628665960616551059429058509071199392032953368929744315719741657834258107342393846510125518963684196606389647697413897039026434711873166629575466638713539142552098833428007537477603365936196391064435264913925766345702774283914580491142950919897322145040427627784949605175401621316623309514431012270049876960125001315903156482155454980103548746826479115060174616197370936633417609492617191099585616512498830497600665454384619546509801757255825607234095592721847497106839969412480673736909852897937724433841694557045794461365763672837215838590565374818228852590167187421719760119088842061331340026256825725923910305227528004535262211377840033793924226900848963738748459659970681923097412949246574668272389557161661262828136145597611785125028516275883252906313809716207821860761287343350763845176755998876021868345002219843969493534929294172367664839374287135760612865047676845665525600429263901223375684516832562371706428461312996551748144358115759660961245217467477181657133996680242852200568327699772908182190882860994164891811335579184948227388662019992989396132853071354593018337178274706159317187001615081346756736054474528806137826019011224777972866411632545861650152050999115670427907894174178653842272108676534934442838346054728780184616903190102232786151073857067087050343174143725532829924829177048934088795552799411492071604660668355350446274804700331967132362303628064439874313387378003901231443843621766532533564514376526640126598064218327676605890770870819701560830980446844256054065135876013515729381154007830144270144740956228077294391036542728685599131123870651508457117414554035926668302907341927956456564555906079776518045880434501507413972160354892811138995651713638456273816267193984687315081970038903479554255365328136833261630526556814450453552058244168865584131705160389941434219336282138403549506111982200560629905396711573761629961003286855072970011767011983089276754163433495989176117462979094823501708975489867709709257277591427610506652182189820222404914480825611326247561424995855844611423367345100098573646127040207896769357836515328555427396065457751499656293774825674463380131605821339744443719858299665557215568708213298943499803179709634261866134373315004288904902541929045342306556296822510032643840857423679178968943808819343285978819258538534244946118445840607034142488470517561538523941627616666026488188953850641015784648623325130988528014910178588590019810620988164689691313370756161063243700791530449036638294046566849530095176726945146726541040144761451378032290669899792909680053031158235527845845927183755083083705023897804261646098391518367180456862564969779007891174406770164822869961698842088902038551799050189103088380904188084311198257924788434829274612795752871301336143110501288138065909445008063213052948918488970948490974519722558745743208150565466523987444137078094788204559587614791964995929009412452261900430623123187514752525767352507433044387347461616346947182608853374781272212484308071632849767713199128422181548012249711069607871668811634896918022882746366283445575353156368409827817943615396887759181466856341542761876236263351335930452030550927239578681093687905982665117953392257281187799704647507330300697986016630446602955298396679716479754117129935977014058125445212580303977974569130960194815520853007965473949384895543877058062087480702410379154771159188724896127158915815517633369171903536638428073743211470995459861634589819330670487415785272649162558880868493465719683959016632782246009478867902518187600145503482137249497090302206489697415945644431476290508561785507517133005866523115281689222549941649647399610769367159640157251885720738121484370035012567913883159187651396335745958030159768170355316284032689403380265363119322667815322846180212404185784526448921604798987608349994288748573688876124071577553931782462391622911377490338073540626980912654989499169441258556368577240207070514627159351862325574007393397057943124556265603045974086722289866467431355723290199102854813835863925956111815614025130883836601464669500525626161984701131637749897654182017480553666875500794028997926512026008918120075216661812074688793750019957407062276255018460099090989251536387428211606648029148162704125718380444891409570004060337137232994685942661710791099096226356369586324980678950137723069464736602273601642421096671684322228203472055160704876093177524989486359339098846748960592312275773459047290941605653772276611172737097518893721470617431610274455656055336026391601983201636593264242614043699063233646483224457025579924677681192389831133793235924882206343975915353820322133005808972258405188755353541885923766326669384618903385484036457308145480680312538796842669876802835578570106801775227198488378657752741775006874303327484307006190429752529107798603514784756467193433835464189238359644288391941726708010521720659745022045910135521407827070117256723502063475292833395118062590343318740658958006836283803116534313506329246657020082186345678513814470350519116293505078956236561460710856523597094037652914106598267781547396889746522526402770390768452660703042390412088097294871655798748149184388805646707768426384113151838024201007831954177282041059696267528711221354385651233671362400932098669456200804854293247882531819884673497175438630633883196888500554578092526184864318369110915590660322595577290308785804337606749909295475074229733444128545391310693267464399812493416534576956494943217935154537803771154362976345123794211562765040859388928705847612089570665818058247988174651489372052208243922806103505421541245690161909946084932695293158817447071298391090396642670153078919106560005030534733414496626431049925161339580672495757208601212736852992336480101236783411983120197498284640562968197809385991421625772434194382749826334352290785488389283501624300142378718235487381104558178656088307116321825219412762788061391186189424541070266190780031042782717416628099836878178238366419512623817107255117480731792000964627352349544711259065620405199190179475147284096869675623912044255654442093036726972828438804603006449328697817785137932328060442138406373194816358343444342435186157128676417693142084062804211693169683149277422507964461758537172351318473575517503008364715956703917230563491694893549292224816594172149140539461831458510590489805587550671014179339800840365981765074554973989549455651510242268080011619095314218855106523638445504708529178112713461242551502335858597942183573821891030834036885876358828835862609134273067279049535534198201732652309987566161975535761653281701832286209679189907226538512518337213176046246274107691986971345959931992518411016285297119876751444803603704247365980403728758310933476481552218192679223758916136829422336325220673917850975291752189421101422697277930387093214291166115777950206437656666250842819986287938328745996617803852063846521914783441241037405780708039311476635263861602203348557683478031470268757216504289545183736837427681975167577283626373002873862124004134408396766660416346323643379076895043261745108965259361038075771040207394934687713908437714038554419598552235279274416030038865867130303025328592374775314687491868913299793404629777107243804302482935742132475599236136934948403487025175071107249016137537947456415879197690480971101003746884045657402302727995008277115693350201355332432306764623523704862678244745863536408028939652310920672239749360087861963019350526975818312578261800906392655562997454287633075730573401532278682046641332838604456538430653172720870151202353533800506599358362756371640574339155598189922784467710360563330016613137367526024643273371438802706446376470838404581683164827022907180586112273620168737451519353930470294608112330004767606554296874200158862472997353905048626032718468532367582485781191704665591819968682154043411509202309533789962176558871848328003182027051523059876369435523597689338525129198938842346834204153292408439938792020452660288714111909297637599760311985684558531945136293825305710318859623248299173438759789317031679833028525442545063446187131246848495454087647076334099817821718727592091656094301607749564856837699107428840161505138325198940983553255744256505739028685137994870921795736115348187450257800408023936823569551840352414107057315312684332707016558097789829276705022654972256087976647248875591228181751601986149106789605682887922894237512382210741456624788446482012021753427816936761248875082139594106385169236758432496583517197680449199369017122029151070919297305406694401600145064977365207235505784327318222823427930594474790407553626081630412569433163768483932523037061314394440681109948061148786789265140466752731691077634070110692804396490971712347930174639634955231277711583181623598311655660663243783408217574857046659902442536750183510591016916569170003564420070014320174579967644047841202592007737211227332499867786315019194816969775916905968652503119202312400683871572020760449025471261487602539239117131135532723765471997259173209992583420257061398767117667069420274094303631596906707048613202445470417045088801282091315684336468696732293794576302127452157425954493532899039648572598702213344947184872877801041191565010145522588986493288631422546167105204244049097370567529426966995848134583018671032566582407967586150565016630772673095418525803021043360098139024351524061038226777825156590667459595138212567138469913044194847950090948912755452793775403513910865966213060436982684902682030959853575408631939754963700542276294196107218062411087464992186578580741020426135561315704758387170640400203810282196869684802830365964652873153765422698305480465811845100727881570758438316730953933168640520565523759759291743366333782666217340081849129352585510370809146005044132015730883112610964368046049490888986410086279117183332041407342757600460648232458768894304835320116444414733265327439246582866779635250213642934691419890774171706541169676104143447273328066773593746712930165623166155271380899973527078037521852670806961415021026525876701571982204726727776586851809486910520194376868087094075008044961868290379187529246007506732236375718515030302554725714063462284940899903430553537184345768267458204664413300904710195568435049195949058869861911213744498491161370978078005768812907770035164402160048437514441590854090253473663995431328019403075095174037366596365624522053307415746267487405268511851196346476020433291342902325984697063632171858320949717196117951041066569126741079459021134023309163927437069684443214293049853871298682783592533011534591361857747523973907422470876135318158302605370932376978694227342871438124702562437646773733183293836272729250288673899784777709307114239838622119522545302514288049484665626117205809831076315496239755684894148750762975839099392170286158546817894472126588721166846932723837039600424555672317179800798135283627556292918215286576519821677145025698985070754928254824045121885892377668125967755864913989732318793002457362379478532914424655246006200699049960180464242165205822950953734132037589463266504469659070676970666614752010597765255017766617413370457108231024531934775186990209750265791555149069803948571145191485399017730240093798183728626668474483711685874412834231719518472476077037813070637308038219194180632441155344731024969043477294512045440988894560678870134286786048743220802875846522306522750853177724114444598782673712318626119664498207343438548840880592071616553997458176606399744692698562871886614508466788352798578557351341711387771109315383588865967053584245355479438141244764885568825863461749298256046250920965568147542958051540583771239916923208527076756780849464952082792782290371883495744459502084654056492407612473845169620337455600408638678503938953323116988804282054534962221759912213822538274187995915353101616655572960040522431484490677292759350792786065630776664916428130777988681867779728032210985875990877039122008884374166480144035904950135778655436442104285417191524193254121192665090703991611479714270699251693590196310041817937069306382227442019285727564374037960216821148770162149092187144738332878167528031573711534878968558260598951705506580328498806767019913407780112529124957239116369071520727864864846726874568076097763327984541188180938801346986583248782782849414385738555947122604040871308286968374089814344510383202752814211636495820764090403212502807869317780428266110879664782941327110938132421296194443377667672663248518713298781649053457742477950994975572194452661702751720172315093002983612448541694478886185959273235307003570426744849836081443024151468043276355789977967267453185019407755846162177971467908881297417805813452013063658067148674595404472922954344428726128105211775308990305225835907829582756798343952657200330534017404507153064148281288991818024131412749395760562821306076081016617124403093938829782378333780480729215143468731429686496026626599924969566147693822151402537223779614633407646646704637335927152670566359584335189061143447335679033871619447484485371542643557996188120869343069258151582660019219084764380887155683685267924469959517941679736157798036663086723735248987390117260588385094089549744739107621599789358766759902919474215668335697161729533636709059004523736298051773445484958824636139478565396065367016921184928588631578010834818559487297939611761710196706546931632546308964534444164078936156045594151741224409212388909020825020733438866076136553851432622199265185136678710483823652817236629239534148226246769473191699712597446788067355128370961803598634108087666265167356471505826672712188684273638308941238549969094735788979582518248620472284882685528401172131736414037338144300434413115819039330189110012255098938836215423516926333998988068683173797663619341735046099789522008190121000082143499599453409091422561788545270716413297185687871270393218766343381822485334405598921423037330454159440161790600672788086660045691232368473354997363822381643409843731531842340608882923383408295330963276723284612939453235571813178572319578101933350081820770234492339683092329784629819670061426270948224530243776690496070875841767537827139538360565890534832859522014963404917306910191125098837731823447312601758399826231588226264507321784146800475888825851744605978446632972376389948127178301397551475790841597875941810754203194869822692327478227640045129951787355804490447704042219397328729548764104424140642646391206091733504946861164928984094910805436513535044284177358637573885704582936002548536362116950867059702213382350269457373165095521136612623120988895709455140283228899565304167291694270164434588425726168136297175698899478235470864129429996823842688469391937015117804668726357087779206071983915082671664444452622421700180379197886109390120588311957401671018248459999468259848552893762584231504826297472465229319434100905243995847604572304980806147800135684436066240818820990537936185416852150746148705462463864637593922117569581449756301784112733849363340667388699996204552804197529423231947581375636119225518655984748355955609736029752664015301121286693588399390567442770099963494028684398239151249070047631027664082526272902095793709713021609196175377693202632776177443346030310990746950024759472518300823783168959414033627873616761693874540441563604765268567198250660221013505004352486106308386016455128075094946126735063597439538479669577481730595398863645633028084661652310024872055747848912150775909242244869846943902915863672137487104482690245857227983685809594542338332527321586537961354596473164033337820793643742162218113399745897249437423727855681331190755238250399690910114985812406567577622091683263536311699354823293713551344600589879709804765732316772279749081205355554571575268285726464612498236917175261274637627343484221469712305124726586657069900075161017101714825224820583277418357976430721210623719306669216785817796793011533587602012356388115135367133733702411303821112704145362206521190086463523916683531866985194999891577604413349532748921132775510965655144814763246931770699731716878071783342438926220511619270036182824092536199433660212672761646840342813666450710360705962772585281526958701299570073192260221115042686405588506170104493208937101082163415890426064320883434407126664404915405188442564295017420637495752057791118140497937030928608495341575254632194058474614273928133023508677551675214308664251692606499973645426986660234414552956987637741469133717175532711456625689315647416123698578321323112189302179518165100691408370617856884936117298345941259985287533186080449712891833651183712992749640791683151913235818808440656341173869999998012214223928442443780061386056269238594475407037293843909149811354902229940596658052661629830693672341869763565246850495145620146460476100816718538420085193182206809341393154200027984893122154785074377778386877051476960715273012855860229954711413700013251203967030804033250305860612394109093183590186284631966967166936312058038103643530822819761799101088711230193693861839865040126549747086474012673101478003485840466741295366143785850570552908370621215584838235665572687560319555798343350148546216288757756869366860332224731631148673217783199973927042291626644762738590959535077325006072758920704129016222772471370636876123565821735038871976476481103969293503203534941967614383943817998932306971794898192274039491170979036258549582355371119533753417998821340718611077467999449994130806839511352474845757792330434286805849123903535666521891733788157494400843287974583211103549848895193031280627384075339276899380555350155744564308232755570636132285557905592819758476646134812014735366504893736247370305891752919268988307886003973401931077892214920387100015147206342045606022363475206655965778304234648948178859384794858102056466809957529839911213613869222782643254920712137420225462899467885450927066909632582229343002157169069527112770717245058591758468586965708530963161204704455135290983763222629805685741885072135903289697266662098227291515810794286403812270655749660874987972859586615389996356790670028932705685582153101929564638827678968935744544456413265602991125909669173666557960084281472030488190187396549377751715747789502174880023140076015656112238773638957903970150683793912182949590980827462618214490451674800881733377313179126246106561997569992832304546208152022480597639144397291016033428472061136176122604055158206369715726504466913576995386995454476679680293394288964078480820445933452158270505227028453403661993293518339266905941281697367643905514433004754567535767305065411108545076066887780444515727548976145799267166595545862428543332496882265645209487013805127581212405121538434848642616925271463373273060502602166372084090530774247393222030544919767590409546620786679537939767384904244706794343514142458889391791106614831584189250870740767589951912989606322123478626220619186959619346005611726657287082221981081954174426959920330578368237152173751548449485161865875919767608459078130947743414873372844702755719361767454386161822874608475802237115903260966658331380910564012789205298303766880994066233874891379096720410891012814693129446095051573246860069700016599699709776218179977519756838770885964622564537751399702086961985503932097789010179932618285087618916098283058192977492887055317578530668687942267848864669095920198360435338166541319680377236338161242737692398433192931975976614473224095112976987170955994237425833994833871440818023946276143480794269913954986004813243409206183433097110134531628006013261508112649060902429312593105875362912183749288215661221348368672278509909689330253615839429916544784363777109288520887093113181174505393710647075622299275761496401464546551217575593395998571233845616473655880308785912828935075630231951777117282188588537415620136618993299657169086038452418724601329458479249627147040034959703553310583791160950796028133607298376681213102063625925456776470745020554016049188162305745435469239766339390208125746040386416172733043076881767107119531023691042629415194233468003243026408650422574066030467206002839538824735126946360161858820238087211407421372357745066126361031969953114811328258717863763305536285682864381066750242723807950913256494118707220639824978137015296482441623555191948506809882248656200721343655954300896420086262916623979037658802511999508710868647502528942263701987732896518278492219330084654887766841596219227353299518036710589848340719999625559496099617465884158550730460423816961645549432066866583197812639774974144861841229813547172346892935139023115438916824459515421133491131089553121528945471577128280387615641805045035571837188315142033444988370753190897409475072420155456364463722241018496061549860083598749914396551002130712959674355437531933727882913249767139115214218120930356106403715466781536107367113493404670361990954795317845275771359640409130048022964329126992512030500944855090909831634470106767855575960135602300414441631994267449580919263786792988621882426629553530419505249397306629708228842514335017423581868007409868817903887530824577205315362698969522306737553576575237442473461102315268296175892071816566871013725205103980315116887887863719385811692481350791328634425696412484287912821142040351165651587863650356624469653023776024557376988785233030354745401419526437892541002487755238218102474811337058263057089073024141081863965192350345611847434506620274105231622055336710018074337586044740716867391137284680040585531749212619295444758930496595897079158219719311691721305745078287049802769998631779170986531486967735764368359921953473108498496054308816023275418506746971460374667147979915873396459111484878162210821105731224271443355537719205931975457497006964352168089101523891847832081915947877831586307397656983641092296432218071133205406229975407003578864471339776411825893430961605192857057943696058743291811800428024657878837833725660151246929954400663359465630856937301624247624027208676813152432920312551066719789845973158536561601786341842938580433074036015834201233881860628517514552902895705435454863734884807118043014030748992311706898087079872005783195642249063378632004604863340219522476499383433458824349917668880163892961516738546937739293248578405637471321227112177957380660948990750668284793454448960701944262553288608797981434795741058098187221495900497752948766780043040964387673911175663742145525627636796855757073812135570689477429609951543190125564673197276007231807835952534537856736563324244704942508637412695840057738891910312482463318225324083687285900495051446048609099556556119673718904452183476881651830993219496116949433642303635016964361942770699961297170930556410541377895349877321255278266575434042952489945615438252192024135701559904523183303216843938851897261756022108620932707656592246033296179077837877824475395009869643645295296247509911167034462535322195146932612739339807045042795541472057444718691498883729660562729697423902473308675436077547011378471203928758626533890216009205814193992002262812903781788201760902665008628018409906643031866690562233427607626261024506918686718985255195738383075577834588983663613141599209309564713320700463062173485966587393356875725526014692101718710568913286043339410791025236253753075020491977908907557284563407900834161533874401382683682109663873982942788877296995604461059318660170259518685487128954621010369386814599628788473435864144041650384278867997815725647904823828754733581238444149125687031316860514733924428761213492775972488882506012134843126528580132398129733876117559694164364274054307995082666653170108684148204084795884473700183249333321329674786581149704164061956308949304198818270247333891057630075170594402302757532120721929180219171552086781881006061588547439201448364402844525064285975060666946025152987161280089967881651301280111246084997393329355980577677168127075470407923350791558951495054936551927408018445977990328842078769744832684314144195749272385549736461845406753948036911890478580131406352549650112191564708275472810028984860213238171610432980678812628002668562519187741756170185179251205775588465082012262100003150388504559235706172083228227121768535361497548450925159261193236105382418479536316878066977942019299459577024371130495734342738030231055148047246891160331216892248268036097094731258945065286850824712843437568101726315980078573688208253038257999273433237245287282044536155309698081949209000477831536644407874174650546129580327945860547054558612970102615968162267970605408493930222949805659414967640098095878385685331617022873670292065370124282064427307252261365966090380302677857869849099384557767006399184905442298291262626049576183904615938147790684110596690925944225567957579713252027335632599180626540544918812858970268160700191025127977426897697006621110465781768257558024863407897655343481688028679886857280684761256987218189958213686890783960069383487224470169406194029348404275827526658280796372668055469824267066655159691004154272877658219858720818438027326063739754267981904064457198017486348192813595011051798833347559392149396761895770804825709103187694340295535889247865187441823906981051498031418561185253293553856709609478143615045948904889376172196845950770420319133282607615050185645927915747439435315633081683386700028722353895465943188751733434331906751804368405280099890640480908105597735541336988356164454044404486852618700468496488942517302781042951338875862956078491961290401034991383559443955529855695574809526055257638930162474571705705476972924135149073950573528009235121901006554684600572666180327565477197844725649970034391987627456320649666112452641610075781864790652238341868619563570553622524528160952643326234975732114961277637978590588537599622590683431724774730018682220819772853254872722355767084839180280145973583537334625648685063307561007595128387948798769906822438232797038614143277638053174286208388885117132577394242877162765899946472605393672920412954730733807208325031612044572070514238616897235200702889976323466717263909761125921417734782177261699930722804882827311351040429892278747290133631786367478381775875805344251060310167671997828739471846217394817353116906574765651519417296566832876750364074891285463070803461969476384741791679870673358308672298393423451343601591555774578303176056117966499366612644693090873979482386926019975351040596669843746670568347566253495471244863229219292787355051545698685972026810355679192862881512679478516239133874211203067446854909648207785644258294630751959035702870297115899564288400228228885907059298241936829241154995599862888203686811387914345329341988677970635081357786015962950495468854218820017047335895002997847169535727704589721328833265813979854583877294816052470803238603188984618962165068886910332925112910497962605438629059602271717885740617370357389141792820933816255290630089258328972342267326797501222312177229544632812155275931772762731740029085738458922970736406720489410932360265868717291644442592869883021373986893605072348340553198683866872333487542003602568872920369381753229890829042576269278366413082409135129302236540520759960200870070847922206511934804177849809390249103776282929075662107927139544364716676858942975535415433453485199166632824160265542743915256173752103709137029286015095524488279572658449942424017173150891213421417251896374062011205540119721726024291348625420177737710103376939492221929085119590431848139155710198812354448459366019863609174482674201531256352963436191580211362665248149810672027579779220565358634328828531788104276545409429224823591128878249134052235010883645360966303614783676556963928146343805790050240560637424749236283162610395082985891056368928724835258363174104042852017632362662341501020072367348732026254155801719536766892604593443981713239343461578128067956181931958734073672708583742985819399524400948695306078477017998910553931268045420225839113058481344826170843982793254153764691281876427418877723523619025258636816109303409331453471085789025043445985288539486645616426770109289630323962366491158333054467855183239800569551003261077302165980992523495929692068213297358170163937118129623556537588723981066313418342174535475672393075566461863210037574752951200018211739243093574096087475167443645044927256572867417746656308246601261913387767729111796893259286215897582710663189633368298537889640135192435983254323316842099726384336868654317038855711627375609804403293000002831588751921356557923229602644932875984795774939634493680739112269587696685857248467006802494508199167272662488366884883352035952715911067938183122714976378159884796701760518722991593012166813100771732109689177393568478693731524660619610040682671729798692070132683428588840578190589824416124235476638212362906422389773184496295964511342775927220625964796310286408761319929429873433079385880566371083062164918103387988379542771950243208216093315321923261856449256767486267709209782457070557167580074832696986781259187063354803723877897617226990159510027694725985065956378463354377474712346962448589479871809855623565862132085783841998349409431560339637436425769567198984652091753988714697767891166490210787042558841687149666888692178133513449386537779932524195580695424280675192889455948654089612173310547526152024675046643976939027337595105019248003600763890131491564240855130795454400511331545117843914601099409785848215376615887696284933658509031628667039435869338164438949366719851185871659794419747835063923864017108976634768161389554386473794706994111243471640932522120302722123912570553011193498934074998685697549071465624506510687099931634066502257810370503708432971977597117809588059746261662801844888977329936140188351807242504890697222136881760154696682493069081390012000716144691102642765721279903190969628802370779947519895376489757018481977974388975908243040384355447215000645158309232576336251284120315358807604115473662091212688878966225006366059678580980919256639740752480690272670838546804603976170608792353648078910805942729517141821047943224610338171169961642330979589249885527091705549855934508876701236192390311871499032053046824572195987582613851552928506189872707535529402834820675919608676284638859197808080529623256897584212155715191679297474334435692253163095310930107739852081799693261285304170998732770941922797741079498638058354708153942745219994870701420859048975743653366403023552674299030612363762492358082168868504855023024301154619002657123639700033105686568407992798907919293651299161969873561269277338177571502071085776051459156816381559023509145662663460585653335713403510362125373264065889587155451751804515514220483773187075655444822698748493371463668786810589785628345800864443755792149670804233617793214236930100080125936667015281506935878786942669174195342892837131826400349258789815024134564383093654422884387447120837684595760383039848800451844245873518929435809117928643151989281945555872616346020038387647406343830460710634486723011594998512545396407634796032497441746089660410577241706450752594108611094500715812378661729862583139400512227694984719686478019373061255271066680252075634099841946445588145571507373224413825154507353790599550215630068533962842720500524871457471705700306107465229469573175202865298400909138042877644498006281750022247961001863217876019830012912311409368586166565680398905773187905132721889691299412748903461902668828033465411608185241736494438550430061944120591721763474513523524331042969896714599099855013802902497996804809727788434172918967754208149975261396160417226905348141056557096684127033069687203214826070412314303872455014371156250977971431206949108566600020290129052483112258612623676585909575770562602996746525634867746064981712902852854933541318724595289354580431905287715765683467513702625675229819584305115087002676755560000016622962198605982950889475242385206733922286919661797315756552950777839213652696973027138603723931644186861467892649511260148263112942855841032807922934970843858825819542080256157507184635560149155095667510970094228163145182050248295280605942549197371298933449214341913670217052393684163861800113175594545881737659927825911419800803546566589663392104630329120052296860956501886776685273102876104441034272745063616614779956514216721066120606356473211891833857890258899680377063931206680237613112221762119177899122866143439590114974826789750037584102088661010082002329143805094221464922244490271290313628213858160291270597157090521608976279940079045447339505263054640441640809957493430499778884030588468431445371728885595126060213961526137543498022198571015139383045590941159640006764012729790950918368962033798756820349032668762678387556616693439034664636006306577537233466961461224632470961865816453637754234061699491016156601698771791022552117499253092624141729591332263022287529377827173870093175099445261366484565088561974836318931164285132381423034391092544415159292180231586235239249972998815599926393279870513033263773038618848988478981128906249290128759964783030714129012696443112035372433563358354152063579351442333416989952826656936856041308973295323262596527461646052438733249924315453764834642184830019143371987270759717480785364106759076407339565493284441245256234323795366130390200159742872523205295261153973554079301939713578876514394284240529271532817846274121246202709660083253514070637514269642010858887163844203805231186078151611953533021938734113351793896753797890100693075367190508619566499755941128617364960903486481867464206224057840920910537595484655538300741152420241002687474342372719274930416511986856457553603194717588840067115416413820824460013723233678359019614265687902279819186576033650658433723080832145143506525815070111577982378028887707346767384591818069559568429535388213344889577506298166213940549939963382503784235872320176745643741881111146198253150896989955802455539725581942076213961332195572612862613624831461680064303654214007302090921958805483564866376880780979307391657346969010305388694869749534430875037556843388254399443867502316552775042926677185374009561143075602946860245779049466732229074908208925904231317517775200477064170487551115048017200638268314925383747701104681079055670689766724884175648587919313407169589693580619302218055106319301485213854204590136470268539523119612475034180723382614136804870899450201441532492722736492821294171272401409559441085382907907341315889112338851176270653011081611360465771071930261058488537258025809573699603196063633581006421857355300737038924452485863476445601760112530860688774374855186103466907787010699564611562802836800638853743726706161833760858546445843786925163225009585119456491307353534445418928678990844600407722028728250335340649324574735073358716152060180798539839602338154891186008053028235420583480812335210636315167477191306717920888522126448063009284895463821843320978064769121818999052968642206046604364666540122479156738851895816131596608648631775556055541437806827606225303643838818741930778622349311407154580889810830019031357189982477492251764114021161860445844219759728255836543992232193117184986388182535849624300858307857413362017204083693290763739526131724787558283435964679083822195670076512831448021616879913469788111148211898274234704389913424526090926567312267092706475445299175250382730610177146680502833988746181558236981026875267155562062502859745625499600015444612394471835766649573124920704229647965797820172502851966415053600320236227576217618029047348681456234652914507273568554404855879038995082514070194550915158635064617290663627038215808893489628486455156568823092062851904224976669393159455776732301595803793552546112764627939146344833401457962996367558743391831868985424637431690266488613000996096165838272476885957546773202802167154442353455268040484149656213686703464821070445534769424278380208197893479436269684142137342410352192209606259308208332280451260336594216889296274066272495540696205204677491241017376599951021312670484692282677290439544747134600082281212601525482736301482105728852202581834983679087514057825295784521621033233274498362682250275865165695830858003424603732740504684394718746144004345939718189706824500827721202706140804124516527166146841518835941018248951118935958070876888687928303714326838070585348950473286230011244459975741451124562786600367368842724249806189810784272931895737538061906589542941774560227675582903892598058111984987104230452434432093968465672334317265127948703510696461102895100036503061567854069971721929718143901012682670152698647707802621223102801949993772269928303541514191021229495902837960101709126830727614730156953574218036271613994312494122155456101130182806804223523813614780730666997643236714870319538297481655139187853716924628414570141216669028460726999340868713702511801769060616912080070480474789549316159144032785496054785345701410119338229877508213095652857887759683579419206831818698685865410510613611750113721721431213159210222911364338388401267759288173764916706396484062840924900919150727947120450505281255833262661589704744864802126260677919080766497998568416307791834038974970312329537425193624658271725015161788740505596306488120414524575881227681372145709471724083590666022281171049689625466099457013643799776031565116738880012459554237097293398923164312859689545512168432601818942363029014234299443499602667173956329705521935866430963339548092258098551026418994745109990163879278353610989652484961146729521144050671720381196301070507670572424824037323538206454006169807634352654047613432059115029889684236741964265609601459707296036653513084645412924252895757776796504374884411074548120638928144910463990745301059862669680063725861989008305167812560901640099544618729329085775584922000775486498024945564779033155688740065093687494100838909070430114826891899615247594346166638653064046235872289083731159896380776488280812100219647017921463384768930455152383558736104026974550472378339074172013708363289820380460763686422576149661770021034796894196386825586682754100209189283776218509828748026937160894332491628034017648548677324423435710403059931219933175600566099009298957667770238479836693618397421588042670650277484153627210897481111969742185143630637325362949951497546426015845326140896219790015317037239629173982674571162419242207344042397806206125678201811986982733408476891886132247956807688810018350869656734380338635993713132157599897873781722957860076649947691641027191432697258586072433943596229223841100003005234771291440627411960254142641022420479045131800958401240681690230945951717917476498203364781050809562270261661548183337927968226412965890965982672647420383353210630197433557914549068654721928595343543201524629238100499111455202990837931019841771842083638263771918756095331669496961437570943480022862774432988880714805653022871114855870887958037491101332704195549340727553665219330992380595750732448842901593315869542930467562440537689821552131944867194486229844845240242090447362195388421216805554840864539273726765284934466026255638218547182526191629390395926378701177047930747497272660593118400751048027397506756274484775084692319163589229159103207406937118273393465678015781684951012633773376502744159748599641801624256673574704060447854443433040979255264664050193713441410090424834583041555164269137919100407182695652775897433793195449762540127459456652293363128847308938222266655378318768520968158564465292626134549982168313001107207483005551337727748861772809060606741193318266958253962926236195425146245692422382680486801170233673192191284634700161339539569529590798171647152606131350441184182097036582336110172702707963361422256785005825771422568059499235874816554528040871718604082466472453125677682647002535774406174372824991655681456590555366686838016018093486237702685306491111388038794631107850001134309442590112963367990870120933560216990587239157210324788891478661588871659461961490919603405074864798890401903219273268245147846153889083598996951994296831189511648794324713633268927313935818314907156700402450777215645535238934209710035340034823179381460771110042195219983698471758304276895026496405848870126297542652913290134656047749784012641271585232593911486693855638922557190615546344180699003489397163487522417228306360997099835641074508689149619835844592195141617128312309771372012683952223208362377432232713930725570726351647608382988429071410050578881265443343023587375096847640691232520581493778548593256333354730664663504638232653870724476668773398812302768293716218040114810047017604577022592849337304557190582055331886360614125630380315069934242138718654948882216084826183422182413123708781619566016781565241531918719125106232780610067376316917752554985835900576210544165858688200254088861982305337295120978482306155366453536187968698392356016359083656385056622259048093691201031448575912037196524430687028721611191866378512592409646869630813903577412383663132210413500302165612034839367126090180172065829950232096162937569280678569099054130971162963013414921243237693992131193338781313940423397458101753812138431620369399151506615768824979412610839763325410986803423902770400564832382281915452016165057523833919482710694217169725621224586240470061022902516383854199428565792277976679594660874981967371007885462856823037092747480075709263745319088801996893735983931941235924732432637361243560211655182741378060046808477345769440611897946885224641666873310491984789969649609666306205091225903756646783748863550593718541125449129829066521854512293310880913984582395724218046005057610868369100615871009151239998761322913830187009516122164359374316394447811440050339198754489327958297620227667283352186268821385068004210118442508769888472887420971070580398837674622338438734735910760850832819174998594656563177229989440011787249303596238712803356044580393185658152265769653214837150534967858564989385969586822309793253877168047081681257106642701816089421217616578220409458232482641321004170075024102088237572025843402711442219673066266015837769160625973277235287851149120230163501091416305215068748600324964646622299721336447241348140587394095700160586270543695723432829312491927834290168874208382945600014043553740915960401114681644316558079162042912986285616706022101278345176260459574425542494640987640353582911957953509340704313543638774413979482178335683755196185630377520957608603908514446953850819062518737601645870124382777896951306534295917221625605296961141363848108596000994744744507536011689667455706047904416517728394287651111266225874824638704337063985926062625991790732044930394155970792370031134895341596109378245431749304080213158733094223341783336736223107631251755132839439966880221069094034729778003679358472115827276642362428641878707289929642073463296994593296570746490490681804103175094397471705336001912689877463693249395365548575484914143124084403288281723329278681177572791455250879797740946476208404941308822078846781465532364767839592073783080497986310927859836890604787913055893669126096154346410325637706025263078747249319311645916647360047751016383898460512901218138456735243574522318094992439141616813018237147702650521061341392115983513551087022522626876248117136863082434384206218947684680220612450390388711187530875587937973997007968940701279123743458845464756078476696857633163453537678577709676708338191568111257952816948869815003104506662654834143809725900389472762497679861863190126031036543649324842077300092613159687938221245958681390835867464104246141728360649686656683055563686043048347810400759652957392050433730899986319646683772664430899268109182934077659837407887938702291852948159441302181047164140923264175374501660792646350325759272862891738997363519822273875257816444226480911311261260057223679849028030523854017723530202473273392754983347898934019187582907465456404813005260318855857963697829696872645135157146506823169895400614636132577798629623056930953105003433085675325569244051990229857577873816580374794595225725516870078556458009524519885419243023878716096329353789906236024933560496527805546339423896265874701028611415791535778653728023149657490366653811854208265922054966963174117762904387861950130845851658559367533426994585942876193285212201333650475053145231615018354089072704792792463739109186056419075005295205466003844180892674466849381677768498471160870102168216850277932892006781956493303513856257970351120866304442627397063790052713847371235810406875147476841665897111988004128406659591967037835373588844220687803512225333501609296691221789638121042705435128990625116901921004157181772450745620937822371812832271972817469932011627694067764496315592979455812042597926675511060961626463613457198040361768127920573688415233881128717841586089002976267523697577496769689455933257668757554053835293423549252364196530259555282061633389130146156929130710069738867227781034074657669585344471096553749445004560242769477285651829827164371855134854152753024496061324662010900184506392994363394106112675897701312861008792850908081059306531954097327378272492176015679295912472614781291046537681106625102390446915047894661550242085602299798402912490625804065076378246515496756460355386113558995672017473857585940604833346874581118350084443650352117156221469108978411620831339506020185296406686294185488503236391033640621356877815052812452379183604507034796796123317994145081534412825880707227132965588535889294709163042706545423576040485846356065148222212060537539479098194250611668671833860360685049299425906565103278378151691347389686652849446168899457709815355246809502420590456154902008664622588741211880464618308978256360821099948866459618102071047318095717805966952497640757354595443814959134886541171300369953015658915328193262499752209311851946974911843876991788770640556123834748212534749073247611667176915633902577570718006091810085112155739937634710618284285814512102645589530013584097502490981004093059533923267039467338728132562534815517716352349675295748724923748143285357927131548488313146622717486336125463186623899460013722437073552206709536581386106711385172278453617395260206336432129008823716410856267345053552748796886858538161788031819736374335699887633788133434964356358371550860477449439216224266215756975246116870629548143539986931046533791511272630502929303895405354380932265711861028363855547200652791975765966725020886261828618648812325777856354541093765048254737420276707781407749491849285182782870280155935636312472533190202872629874289514897067761075284416374418392595310836796429357621939556811288725774619741166740968886574141318970007941729060907799323581888876393238256664485855923002988928114705002617640114117656714951311481486376342192432097962643190764223170718171585401733143567353615662069410128836519652878665454893715271613496849502778962871068179032159549916818660681799427264818569681175017693211027868410713712157217888020693462506965565211001288872219423876756976936084283680310286683105421997951778200556439369921050584405168958800093264273685319497255797034616090471792997464917701492107011092340145376139091217080021490846056523001831520902936232221891865258833257224620799558279208800949545792917579885290930165253494177298496204694188646382658287163081759747427599185628226588499710600736548756979050396309961247336329095155462053412202511151825135483848100079790996807017202913471842927910641739942943152300603512551957638262864457616645798133664929968900228897377293585643097784518494316989369698248707931781003643478081203852187866351543877484453834570103886959716825326371607152206517102038330988419027530956408993608296148405164842031449341965252988499661651366059046970944802351712027289003518493995072180310594206641385423552969905040657732576902292186013369723256585372774539933006769095072182685978161277638774434336000205264054204842871807035290789594969008005159733160335432473893053397738227667893159900761975359788474848547637494057831198944969384241879670829074327944463342647812071260615812622795087748344561909771167098472624163066929548892123147960062232557350812972546855536255244292890282021523180977461133170603808130918790167320221271587115851084343165424341765268103157120230604932386003116474471939837639436013068466154817700444280424030181646755061373697668490022784970374423476829678139604572868975343135491913858739121537546506133952281775133502100571827187273256520813741242626107609308841786348320144296985478157188135949204934246009575982670124459208850152447021857128101609282336606118552817884906413499691942644270208507893164548376231349088714774554617753658824004831528627420313802985441979242769847534719381640152963157041697549526253784796729198381254846964231673306607007441899657858269781631115638160728126905388673693748836879066994566294288818690504685957236678071674147212666325296803962841427068241801638582708358410977705452121341084218146570792911887503358218818472198495404362749332705933997611048456955114925387476256233860836619333101235151048527015297019429443756061608261051025680872252936501625857060963391436386822152077166080088803651394454714077058474889920580725116958038921976540001846795452489269000025127097347863958005157466276923465756612620992766276581855629985565932643014872155901496697367999757663434069443263238550201068105192200694528997805251294690701429514725772303195595911961470163590237919826646631688736137191356952141174603084476079783039512657730347606591453537826887565456981000970734601665323209556115409783288948016731059342116706126647336156060698142484330938490385324569794253532296606181190674844830728434490565143442887693016693805602609700375815240730501435830790744874855402881207972562078615983942270091959948736885596036626631701045961639872822472111149491837160232277849888606739769411231762641417292627506365449147094136174324832229947544974388302035841978673679639716450704621336784783419855149910828129273819476968975468687138662236874802857185964037287825132184451388859575310704998210024055454974110965570845940495967724940602536769641767267143197937823867382866159592075750563607817138444474741036447237023075719106574546086666934589414872479053359915634998795052120118844165967396748514978205606857458328529642875567103962448197375895536127368501676062068712335021074941662992660470612437786762362356728046728478781815351690639987641627875181932967822785078844969496247143070111257288324471072334823078216215625654697859274405065400789807162632834805108889554410597235261431653819818451671673427467552814929650727292818448468494672300260507337852510774439098626913494606810747035767755815714813356526315527398509717819817864486541884303841239025650536802161397639586856027578362102253384651324428549175028464461480525134763458256834292299122318375335394211650190152573336188261530926440951053235275335234616746757684510638682722840399672049286491852425949116005537841677301600124757498874993199501581737235228404319896117446090032922986980058256578595893982266782534568058267365367166819580078910512706869142064562659249625044504687919864912218374251007346107463003548727771427703017870715489396164032278771116647963456665603544921940505496497774296385847712553377412784457413057521940311254200857192867240217581331849722446485753621759238048693573741623036596974766423166166088306372267008690955231058318314063500859881411245673937498100473673261900346777785913910255039892422517931864858239377132955832770543576344483010984067087314110673107773686763272592916342822435973176911931008071638233678474374239884589321214887676397052818867495946286364705293456236221341205079317330495207730421910084904251652262085919594747303620863957432221131068079513871782875840557702394661532119050751820027794737236862886170329808896299720502640572353044705958193803640531313721435612520596001902777487325059350669636014393911978516099485342432642784629032936639950594362414463150964385395613179546019744334901039159492919327172328056094223876559353665479759625616116967702914596446571381784753571528742039528305414353629780530679378172983787174682656025717278658279958780673673460236106701521178059236642664105961901800719403829158821838583853350558460944546397027494269534063744655840018396394776651159931858795632533942750141794676860042458152249879318282505257300704979081802970533713033014112408404130122839962782477053247624858063415709870062780203635617098488433554331319738953105755614660861923345082005923881046518826443169654149265729704092495025141755804469012312843114291044580893568360569105431287367505615408259449309181657425320546118131219226139420572812212077762725711225507616996767657406424484053915555218514180323367568397746581216701487364275043028010591135753695118955310833719411316537356630064447109007951648366112624584664583843755842924252583766428463909819336742512872303593201868812325976732702275378672653942103826453493431634141499084186958205349162180186443636819089757733023734513356498666917889488468997203240233468300796666500513713602767098891813470049334054820808167765809096015593805059345505915152220028460798348508711178054984427899886537961641946365828729883078119119681815169763392375034045813032816829681088015725781955161776663584501055006350197052060208363092734214209359123115071762830941025890901189668250568136097856895529202023834311567775860669441963213366305472162826548921672934143828442554111786342321879413337005888795473949928586372717788927201778843399869595575367031195062058051958364015791074874621407863649370558140476559101636577565619475879277020216230124688986538224442931880800065046936553124875532213511347492114630099763530241431080595371548523465829908356249634699245616915583756450175161150881797517250786923237770563426704677595607232441010395361015100146873846564940975844943059852017845258519957531266353737194033170309416139412316668922935216082331042788031194986025610180735395053855153888527737077927148326898727737290521153931929539170603855279595731214978280656371822325488777062060396864482808008326965963535238092266309100319871193775754303543764158314486642041359745774821476286457786201189918486968594735646215337820080021907349817629788014060719498273360466316830384709140121532319718104702331788544089998496471765461594105270543162368586911610118848794848268303833503927524206413126546926440015756658909262883849119754414210327360835523663223117244345501022615403188337347433723155315557708530669401730725359528321794550649238549418382158675480727078302805404641680754010674035929738939601554534380962129901069128076014264106961575235296964794913499374898200228441367069942162576270452789860437971560958783383069779317734154214835614256253491821023594244163859383295216742462148493707610635476250954527218069501728881226495010774367734537958812617527853753571104690477205419505463304370205718077225757905735382199227232072358892565968966378955257027840801367242038254202596513114157441900146513288846335837302218099307870791308867093212327894409545188145091215920328962295186776091193311879976196652243566317320404308336193861226464773731180182292696929930020299457667551406908975184937884596668885780319072024254191065568840717386592721700353823001445773757358033665363835119539969034806127034364041733166944975017185967198867126819832106884294061630875745270030796979057884716923938599983676711807141386295498057782684089770260141283941090715005429563012410886962018195568508486836129716086873343812473322630898422367096404949336284810355160960052154314907700561167503773497204011246816563313496426637992025434286305293419713273877808636741770272171834648314169277400001423284754482949048483321799629723199711621864253105967541715897783027839070025273446614339838345191579381973445169048527309251626386812384106404180627280705683304221645523215738068985335742392957218811796377282600542116073176047641848084698854462090348979562419681111134119687867474730457382078610536289601936929896398338065139959598037659960199667930450828508570565629071483218127540797877341178531103440630426364882798179246434962620111359535391518579139683196704781960079033556946097529416443507209252784714761677104268975179116027336353341732352433532670004344081639035871155983199201437852006221660034504568620271864633564221478873702821024120449910823210199878623995418989891456602610867169394444078828541299025288120350464043589860744513784986836706657225732439786779874700965420788555820981171232511946229117022999254364611997235140572460941836826845781115061372277078821106903613487526019148545903658445352380485522834515466117889840847777374827872870071624072614118875532544760431193760937469166926995528264919068201479602558008614459071072067391220727129532239243820014334083765500957448427397892543372794764556957732922183315658328721108716849231809600746637961327989933429550026956466590023215803572592474389443043157945663662790086989241158885933612411686031967732825862665102274098512638423126215798495566949823925814614108548430098162029144879576291125024255355341060849862980579532831994821745813693962915891840760817690762917811307738384608905223480784980426026575230682477162021309978421066520676131351599174502029449382512424973821179299575150443076059506581343888894777140119298628978390607470227985796281498816745020967160253368921714211890636001749601109717129106010094553985123764978256025721884720086841511275609775256302689113990474996216427438443719947639868360521582351557102225888215676045727166831975090815188553325323462987040537328532843726586498413665079727103713625514876923513248406387153192485526329852252210051756667292989691705398190606865688090999764678918167078227738100602548310317517045509466856843782000042000434783051325300665336731691747682452800504472404266045094822696943997373598617732737945121702643388703152464313749878208976963700282830756305194729688810541181799194085318381238484718702017471311139659468343038982881649296816597666821872327566639355602533677844490652039787585169271165825353432734118244679740367716075826476582557322265647341026519682768311101903804002665096494210890832303156435995297180502531085956362526939197897674946902947298776557558366044873948420473528305942384476663526315336361026886839013450883558629237526001881482148628302394012961144905454125857475035902711489511687180618107289899835648052870350237597973153512096504464219406085821320892427932004403470648313871758138745515045899871044090654294788509802144113895796466818423739589236812428715619983796253869039409109284121628199981301008521653706665102752352593660347255929792195464181961263097122542038597726566714938532409945499092567496134118810814547175983268454077354448460656138564888693128158635656268161198885517351054089402419744998770424100872070124791862400469261938605387990480281329902364313152617612780155945904253782806344606119910072160732926200743205050828296853122174000822828681436806191146065513533374352784808893823367884333081963330020726279958155604957608370660354710996092528161183372321906602747611976623055098666220903895634034149283916976439664751315044130749146564482986363006489602513027166594501865065529834237446747010262249239988922570265191350036667320662497994261735419882996432429724223205175480019395579065460530787067036743689621105037351693058406469443233745541484809979268271860833567006317599541375532210251573933813819170470437185860050166398652470761889460357141159053086712671702673823767135340886307770743329484345517337027211005339385964421269302133356386893665244027366142162972065530238226313185964015915846947666637363037849786312438140063098548817394870318815331436717175188855196374491525971970026689551499792629017286021889485788403722155619052337117474723601781059608755369482306516092155693384804769911072414385313130638132313719893404574048810745884526491284417218786205831087064772369077611934054689236170843291711062201138266420407261512895683814416614920783650487762997417234623797284603865892429900296308935083026302230639418637535070626353108101828601007927647477462886673076019654934420750653038520913720304846879596411576415869912295565754382969892489154753703387593538272007940565062511382802874879850503407069841949849498369859648718735578028338383416321880140762441605298128056051869088452159747324172765209001420037179110270544326011552507252138605634716772923654808341251074360038967627663321842021867074699394144041422665602104661239513744449290768954235002260562860650585517788553283609010968562302214963753197927586428038199815723699805551909238516424828499353356726888189805758860668309535052392343533467856172221873102129822184619828014772599068501864418999635483494870267924026939800026326091861828124584448882984934116691162237490814238260829909801717123757147041875717597792932221418671233047731281237415874769498162848441254466907444347470092349828040905361549627083491753989799625278331893928512585273917265969365441938498545248728628582456113346261217203788910424508814615741014738199823920587144554453090480995556779036128833365254844231611017573657229836521023862502024733498347750764381881521765930983208042838078535555556649128788662615120777672436405942384073908703276623575270436361263352801495990159386516330401091572599944794269048065166789272862753300710925372685585720943802747877722255604287515057148727736351796886925243842846321725896339283519778468295493311473481757229966968950978475451750425634172612728115058196995720204908126169495384593942404465704112946409412621001592016813480464439002582063788911370358206867010261900428239334052376042874548370721109349920353761513848559941857508283480703761724876374721061803713481074647449747203120251523242087467791403942244975906613270952858829795421189210817790632892937565770546219238219913732441292289756043135204171662730449006817433048937772929593763805333192136649079976938816513466004924569390743519840405456311985349924760363765071889348790499849642836237552705332341636504207851024369083631627056411359096493977888550029714089155353352541413060484849672761891692184919023398839048556759545068537422281258366695265517423135107180407926782150432380272895129150118522908736662362509714835513121695956978683239876616388087284118241585412347584202233001949882248045174818641579039986684882211109927116649978840524384628996336985985092278149286488768260044178407466980604472803167592311361667339225800165199603386740701570821708635724494615899530338900890484852778779477305628923450402604641307624531209043647002239792367152834775219638848446710212772664324536445725790554089577251948954846247962921535528190895826406730390650131051140141476917722452150347846552670494770481939081930390604323101140337370132232412756909267622118804494770234299419387273648250661585503772863659479321292268920206227803098315754436148621090682179491784205497004363701711846904290905027905581094207766027439246658198286182537578858153669736112189478240912272814286177048513809257340681697144447747451251849655849232760882297667865046146839717244453505190595936589417656076592785527263576204398837067539955784604015510029979936437926372513323365270180622105001464983790981817841091962192596111438373469486622805288526325819261553517444236247025891949600823990416227082901919687812013036680538956454859248279217748105897016075743241654126273075901807037907818275062836188459767275524530212081642024150546943056665941791140995559501325521413886827742526156332377014864574338311398501177777141559228501057304986493095651691249293262881941057487269434966505414788828946834108546075431675463234583390279321296193641250270134562378991057681823241577536196526128513675260441163465411536321904978729391415602717753302140611096251114888906815366155501655554125493048561938683582426749636039985943566904334584140772261337018924011644605028261671836903041774509766139911660583142519067488300752932171653725444558565089736729110740041038545968281431535104673767918337666334920964946395435654108418567629913217775409255874539386914025112741515914441914956403606963205010852173928871620030449322589925345729836648745296943001612057617876273863291804322442413913556769197681896111756415589422386590728954622639170719472224203906946790482267643476787302783643384427693133727887211355678374091883087251889090331829758870081980153444749499041303821553417101992963070954605964298394058041578818272407101426464820130419277623376616482250660216615481078422535564122195753148406713043511325999356912484462531528932100402876913069075076173813838440676525667242414624114430782693413921519125093474930100733002035049157364728387157835397241933499261866706425571291823804851193987950868696395684187999291111522856371659517822519792507973038207213939617377258842284212919143573936653596433992211157999521961324513082183805498965555001046263797064822075712956565757661861370836154595517441468578239729301124303194528717571552857099024423301784907138458320053829017673897893678833081523120984846803980929294890966752336929414443516880629310290299910999374415258265673829040171158559228196661402980426357865740643101857416005330919894346725059474814236060639968199216845239703121346468962562748523042900241743086840016998776387548075427183305608335808136443546397109923279115434898248960216153416606585997236861290953606103153963924421431947842670047361010514194623963094536231867748230282544691789320111496906576990892716418101172998917913656755923080825088888557751682005254594584808639056899593929889649529956423576283233139707743207954604031147794817943433617232672275544070608266100165725713397084821019874260109856912640402434584965874225818171467932087819097393143152245073158072523628560915116964397566800231846680732506425024335399379839447474937141152538286029032367344225941896419878376192165533852812809639212391163867987752847189354879307146063951054978559903762142010197670380792358186735655196347439831148575318956845401440390790842020305714567164188832642624473949208721105871280027792193986293447654319162941804344593921141478941817675516441558036242423094572974032615720882019852930716875228645757336786256815866960431368765602572229668422609854269902316918436688275697246110200505238847118749280602014125888019304119888995452844220404133046988917136099418427789469966220777775851952796064574058929868182839848845895442196944610900062063578478906211463927333961679242910938474558657364356350825139992206767152550081351281817133509580517395355665208496049055047041195957069196131950899822746624752150578645386149204316321425707451152899225665846844902581234477282665059494429615503489996463445018623377208845300769749710546886723632220839966542471940153349417638557297963659650362316165313336249975620363482801222296177162222418356024474385101336722574593285018964141352507554905031231146673674462711548489965213814518357224125131232637026149816080394399237440987815402764824498006658335288358556470338676613409261116342612214620589517417756875966555423635176857586869473170838042308415042416837317381558350043910682256686203783731209273297187056349404205298648396663598541653872757748886435170836077893246249261677798026650467295576466524286263018085394117111856702770156665044456323895804886908369662061258926413793020675026570207353191977236660505573102639983945039410963533843678853339189866524151391703384365121636811552538706706657139252248361454847013646880460544508581314754032805553774155992073105094057091594083731125549444066360020097489172863774732147922560933602679090863534744340370876143901437407087832652484843759967491206816176604776227633601725801086846965189151203962685588092639488002403787389381939338773108686890393037342760443721663779674570733675490086968665978320979617694260617326948503055643127722252823207725022958174476185696100429809167697469403694434036584579993584007413426166539654021868390088034250065701367349744194106992778609675154493428466882852598786582695440894327295124486172894516369033053693083976697172249929233597164100281369740352856988780415769521912739621308713625935928994197188301325278197172787736195049229315057269456620243201885263018660607666557411326195114587338392147096181591775214308526449110275295032849629392699929141998952300926145980326845114901486128811508253773526943152220957538779427836976884881012828877505565445011795411383220571442776234214155537197750104925081590398681627197867542438953458886581288414274344644218240411458392892832062784125372387030548704938081148385317599824040787293289081760914675122426554770151819567391963057786116250326173272570568425470960671542126792651608946855433939214219072784311145507514036904373996807982734050975105740550875620893091044128868156957140624530512542526876422080000172780582187794066710343216077467842230118538425360645777862365557302510143051576981678914236716132737541159910280804685438602921690000824905966102707146204886727460028297282742947474183094718245518076206298035822863015933193220443694528708387249247919328855030304883861348428536424434745469233606299276630266829134487277721254467417004856243687368665027876045150784121175889000810370412275169099621559470923110537615564153621424082179357150770089655175047632688956217037461770472545725262113134813425053955915864888375263261768026705567099628518176946340837652783225141590456780509736820076952087253767010855221919940129451581149231106460926220558610250791509282634250748346117955607677748223116961579365398040738552956594599345928807244964529337589446323980570469819889574782880610721877368524980529393647253394269063598439656018530816523767792001141807424467908901466862170481743523236856010455525347324529926790359257176066678581746200342708980335364976293945946829865870168569740410855849581172263751712317823582054243213852182534513849376393136053505023022803937617412587279279446870943225336586639993794041040691034287064880224407704215370178476725778947636718328365847640100604715305766158731699001343838869461189080988001064413769777455779622402795151003025358962632743819838647864053336455346892640793876452203391002361091905135781750318680555211765573358911651466158207826530243321156300280597343512228868695984258236790293675365582230511954474058620990056414424776415918357993005926099269285042905812546106520486283775444171804464491868480053378863085293897301338479405802135516891106856337859748883393073653435854796632457130049605707128616556014451155535167215499787454115179015323672051461897251416694916843827269330723849249094888309371090656837073412310774800844157229908697359463350781133513571005565513687136850890898794928368754626012626082160033313602902827889241299776662881164494807292978826629523642677562494428368589372029392019992151360967557012289759657610542187333578213547560477727380202856203048237946330129054692896493512093258821363606522177382198412985899583283129966757437141931175424732599488540257676250979271240035272900460884248368620561474422783641024968345869386419496257545138928086838763419327415836692252078833065888869810512924355283596680574956292101963703876418980438417025955412779988303201033877906071969092204246226449900879015504172961821388240230671962841757169025338438394762849361778734057951147119554619901307799114453086341427243026139994520134448180218246549534354310446376293219931833647438917845511671646847652262766079572122525955488859097246596684730698766039323169378892325834185656514762442691209313846637584034385987508104527707001089075489778409119584660144138611752822898690316331268973133002798891840851542459660260172565366799516160506165904988412735293307176617140891405009730573937746934925323027821879965482610320692673284187640630631326776186597937810815737948603568948174559704453783105776744422591268686215110757422442421799119374852913527486896631842680197705748632085856585388818867656836654618012000881930744967047093091097878648834334660311763997719601507466731670743680049606859189260307086621670551400371339959786684576467977847945210073207161341737897365113196946137461869267263775127713701499863423187729531095817689375129342632933201354652389510003142180501853099058627887175192451503860607628983805542881418447783840967005045299321794597567577877317695082564287945498810977396548562337386860969981008671828648713316783982918942842929023408519365326371350935709070068836224523951969836382494436242659766100642936312198704821272829749619433372811453343603657609373773395004587884777174000279984647338211883581590562970238846302014449812979932736515154588937154322090230131365361244450077075824082006407179536617008810636827064039758045726837039800785001163595134847036367703569905482674119119293654587870137509032480941293160759336646181654507946460670583382799380691317646178702819504265825796275068790885362079952810955482105861634994670092468419985828244098392464342455897778183497672054287708267122454789388865888116994002628487323370447355466106048599246387387208119758432501636675253359580932448248810361743926573206826022334986292472162727934715341926738794416821868737265427543333396741761001128764999112764870398014627374859011121758340645140263085723530786135140846700597140039981339128743679943247321482799279837160035141231722232819985134493470020329321739489666549031164489599818786277230971769188263078529002395365679907965387327004519972445378758220201565545329094292418763842790470526337367956423490981654854080720167245586641912237645383227415784380511108774569576763827753003226112103686636214961109588967272014824520378316402654282027731352741059484737445353134566878992794175684396441285829113435954248319870675968286622024812113764112496850160769535776167889365889591293619501565538597366433687077532236784139452087834843713932561759970492631517336339382630283677372759908337511273762813238937974664171950224618809794104457911530973512055762006910481278636581242444641333477409127195716264222073876829443230910855581375992885418779011271953059746313777974358033559752062830521131881054907904912183767918452243075204397798068559477510255254222280438038071424820148493485744819249237594681674052852525737857770285501146529587451414792764518160383613068964602164683699951009246888463244283805554107924687051030457278065618985252564891498316786224587092696891690556896302257111460318544074672264151607641691642254276262890127459582693417590253830976242647329395646403877276895958283197229519326598639718215713432395589664177002845918184182790039777545905455341104835404414015162406664406647946627920301667175323063677869440033606350146811960295352221652950067495071712546432894316438094917855014306546244614013949215599797847209504424293667823071191250568917630412825541084478247601022693646394823747374237602902337812382021452418718014990632809080728091751904491247438537401941428634797522848013681066063607764930670606113345463832582072213712883551843576024272115449401711893928333944453465750322424084903212582483230048579351452011825346140349830331926577078558418965225933409376832734776689303737813200101203353943526103566095592009591299860834676712401601256281714288148761505530497680043304325382983562671352982099469940885956759667141269430380957159713307413385980419318641861318146440589733577440714322910230990867636663254896597453337224082672682550384359600877631445339087191791800437217757319990622322517501732388858865736042340171065155596374535123168811065046271274457391153255292127926786415838939997278983156429917298929570767409235151625981271616195569059204512460354088950988750091391413445508250061239388906605544352193722956288560558812010850148178723702817184419856074031227527735757618697936537307838073502997367310129107140002741631289652332473018825924495759006813600874989298895861326852070249514403669693600210676934254636797182782121267247664368101497244699666882010971218335412065693056580197634026373176444338630922250718779091041784603954049560274951503837585133469807309140816333790060415583029279690412254773174271864595418002228755348779370675078895523345126855444827044363670183910404710491732513394977835014145125294199069088557318744809812960450325674490836929843019067340974208355569748551601658233272556442084215115101754747261450111994319950177787311891048675861492811782808643214250319983005724896292369823766626682341747867550763109829688657092095865953897843661733009699269122449156454201809393776360757396599918756948612292316413152282044582174543376693874022343674276984771605794164145065369355556930535049986984646155466565445879729966885595479389885183115542992591183368067359544638482155506407604772470686617881385560275709382554897577908281801138295133047942807434485972377834809320171249712226389159775374810839157595309805590115710242455859920191604878644089249724291629272134891497443592141862782262100895638380232522812204898852899444440314729941119579693060117015485127937639951390284283628264266905829817633776256826932165574395847026867577662188509979554161378742246343656726682271178797148410613101460958884226997421970936713768367780339423729192998970328060106615710312464206797337715440582702333462550643044133932794141982121580945409627588260100007945756656244743594848538338328824464492068476881698287405800682263062973670604165499930943157460841822030427319547278940645484285782736343872437841774767548624249920885098387816529191725167119685470481459123303459388188458939871986956534612896987325185733323974368870330996351867227128368133130974043790899009682248052407113710082568548907160711524425642306217254883183510460716713963836649439496069340780518515824819796092193630616334570197374272360022670794349402830706888204208964757018404011790549484435340923922833181854359026888680158833442846842956836817441999243775905370263023347373586204541465716954736454804067899220112221945091593316080803186075440593764359105984489625603861214159680656331483042120414611028059918220867096937367457614492777787507436985282879109972255195926726896816740931492309472550173216541641066677411069974681362915090440435579966686248588646338538837684414746898924562974280444784330826751328079834311045517269667360531283153112120315456391633944489640919019094742576588289916262141482649989040996826451425371464329833062758418421730968015388915831914425438668088481579875421586412565388588681713374393524255721778004844155624646631123680697626355473268071072429170820545698567007690699017427626159178175257932151365952531910715497354950980372392871034735880233674941261314572468029725998520024113766250361718425580495603021976929000742561053311209457535447198707456542400638183654116210153030398410947239468099506381606498844625332081637271808462131611300896672899050985982084157887123164351515144557806521250330948542959121075328577465306697093635599479005725450739024424556516754081910089927707232908208212790862574274496511570353608405355391831180851743811106703761466896941907146308945213564295813912275906810804761361595687997056106337586132193171428732430669812459425680679873294655095078953363423476671701439150447631193290131777925428730334707965463097587184576043803772884447531452910416929318985722242954404944354878682244161738583564278433098456208002391770939765815603056544395236435272456471230240355486066540441762203154742716685491309735540467733967898969878217601003659881556493663264161190083333128216828159148584883075426979091658252242834900090339135834162712927044196266365645878249758930199934849167067590844511897947687260284689384187332570675913260304446306382245379603207893327966195815858744220505263232153598000267783801812908929404395373988331938725679127097054030250848518103128045400262858128509248054144345679908697558674664662625335575404560035864841973590814070120486745223539906483165717915317099895783093031667716100946216187728404245655948420308458568960596853374128820527762427902669314957119844720685002990071884799089231325816484360924808530230802911723247994158665456909469787804713984824294809948446767291299529319587117076858732358921427806406890155660035451212909783680814618256985005150979694538565890942468232927489608560378905370458984051216044213033160453850204111076591126642182858584311633702654048086034229019167323244301952829631938844942516995311230049197947513986072379689335671341216910920076063338760730598164962058066099553498496499908561874317493641703087959024528854492231632415340272483399335138078979771203029543084435744761417654894238088105504924015148657738132158596803474864392939551621473948841326822585367232199984393630678842377836033702542335296659016543128092591182582692461988944078028648099194718046636116407344746134172715658893855502417525734015055520742971455885485242510381422889510008848408214713066391939218344508635285964533896396501475496760043498045607406837986998913053669013658382176613285450632630971192533153139366075360102987743876419468988125941103486329377728822753591522342362417563445529958863301611839626592105968206236643006723578523699114053280638453116557090022470539187403047547108605583756442702023505957401922224191543107347235348554531535010572790311658763954495921918000183429403953723188404684919250816138689025575505453908150781875456430737066932705191387856888954297403229203740355777102940263358654531307534784807984702923862935697497331689058478274152279046976974405275744090545366811657997233085150648301674782120545943246242559102262874039408251340589477602978572407889044474476301048971350475367834641704928840527561741714804857748929724091821421405898622518405790570038082993047040017374175154259887587713553460556695825597834002321935276766047486208018274501479681584496825966627391833527093446905725942849071847669616758837245595209576942648916061379424120364478376797860996340194054895445167691618596931876773529234405141493282986713758323650690624234065773786639984654789014557893878440178538042358217443383170018745293640294469815656645580804999505500440856533991045286203098486677615959450063735850234367907483302732414533620776497018569820607431294634425661668642146991844187589808075106776661784194472241357362004963854596743805460819509340942336247127809145468636116808044292120351153941646792325768096069344095661080073411845916095433778269893593575656671700372443767520119524094648478689056124656910274017947688886765517951039988189933786793853345555229309847085959612363343457910350094640992508589648463411233720752051903581494648446431700824110339732161862952510806343883555340917655571492765169948386779088279123917969895097124515399860201678699167196565939914108533551467196130202405677365279980979476620305103638247735365793460307798998223124659248011443285337736080893639219211070440574026518597257839802396139414532573583835366497033629794780279373546248511470623071730061000920971799063093391897559344557157938248894607675548055369459568305503069821845470732000084678926366700928055203365481981216065453483972178466774061319152961071591444743291988247204233817692742622641722578617911773568650440738463557362791473461312036583352884066179848170315073709250859642972503577565343782580811507723467769917444130114183364613671733251901701638375446951034484103336208202703891060841491519136442748524845961523704109220623506417002117916973485667417601788666685826769718425848090074248237788148952082196802582697831043352319207860744637212475837261729436813785804070498499453171373322862266726957225304352993137520519864447281340685115008709802675994964515730778174744488948332989506451206686173469160530035203920328027626177799641219080181736885075798306240447812805740462745555816505295480559762539496558122023780054610588305510898168875611977140120541421746502286168527232141724669136326036339433622198065613791214858868179194814109002837908494890415356126031010685383902012711547449672342957122416576077393178468617767624032223850421750980768992534604378223450817020982364171974883989621566850430213040915266053803573926339993344822632543136502415562307541439462384378921239980052734749092924084762125987120804352194117840216784027718241840174977296482923637935337438291797461320983862404245857604634187462402001280586299892268375258628459028161188926064157443561682558682974045775922847572790106099476189119916931888526683931552750783207018680759013082814858461551599307078273171611380587093688456514019862629203385402264968738976271353876546268893491897304722619522487384387694346485823091640306883137542461854480579278261782630428551365240215710139663234719141346360228377406585495569966011264786034209802932600293495929724423527448107619585270736302099041585198578357594916820847921711596621734725933382499906944424777140173481407871814824666386175678176987974186132590398506226516834894003959532219373046966607050781778701746860395866102540978589116921414328305186652678831036122122269603299836157260553635560428809523012175378267113979185270918168028300756595280289426224268486411615958219873753671999791056367600377172997610853186845137015616070626118738439295155374846976133264297386864733075604024980603054856008076380737800894251059896838055437621296675413618864881100367197488814792302972436056743144053644318420765808018050523062759398307783915405942031723854170722606973420958116067383349255615701753610467634698156833205503574481720068350371326920195613201267839906942204914199219856142671294229762530125769314939553694513001311604113224361188545732449007856219414987090597678320515731179732640811800512684900833505063910738424031204378779241634512093450992387869632108533522193208359453146521218245719877340746454116187813327108900330239321654382534843512759112961701488013379065656180485614590974027473566361731478129716200917618085661825381615669872192062237032878661250441480554903746686724746656636325912304770759886946758717286337547254885256218407662469584423912804677794505043215510817032082358088209514269568058461164859775289103021277164202630184633393186444722476139747388744394415094913704894058781979885434047070098616669266989402591956117052936469275057984807731546814414755175148253435364088451182871345655955709352049596806508435984293345654211513017961017608247200794340455149205529426583263086144749159811131088721099659739368076285199077723507014877900282265012897428752676408216920495238251236372253353757259111993386376198113830197328354585234913303342133311662797503743674777129631766468490981427159153957667741910404062800570139873250501665211706224147681903132504039781827907419296610749333832134292521529186802163086450232960895793208950390435414195843603560131131272148452541220336130316624221494136599965141814997229487109887265523417276424746635547835059211288714916727822815699046208820574619960221551155730460106810907255612830136270884827440072905583918783288339073049564457464788128319149922755171427477614031627544284200826154491168085254073872272169304498427744785964021120464348367900920340612892925295356526721711413190016413923646987832125567721050741197221688853145568114636340577838862424432445470361156746589736555078572140743211124360135904995410845153491279531490133102356883111969825787092090134168434555316115497674196441297754430216005300382213478537602890471444351761880144931886813648057366044377397200976821255957813819200393234294712279025899447618344420349407570241630148405725156877229871422299366535165592766644226818714680279019878281275543443981367724207189318244209559066741648097709508144766299704301579119670177870674848676478238154649643229294012757681897741224274460661490734163451107842964685047109966842001755064698173158325578002057721757881961470633518553935542056233819557851165740259540807991908826203018441656911760606033752971938295387486658567997411010609271596334260504433378620879765381055659670333005939813571502528288457025270550747993804974442742562942779378085958352496827046754642168409321511244764145176878677764649195490074834278580663008885535428850768169998632822197963195535464346055095281614190216472134262791172964852671350681531828228257830699431761851730536487909155637965942845234507713150411742862078731806934170858205515803624834101122981014590133429667289780253429231603353320385204466223783644538684693625409247380687031301217189163204776879285761521432497007183924235078669848090042706580390625515140553131396868359896992303496783499340705128694415524536650079785508246113313602469034060669368557879937058757490028239523922046894497944671987837619852355623245945434018504613307965830695242137172266131022485843905337581703166256390095512892726317227788261403416384019484406103664173112577018430722232912692462877203708043963191586656170335905216662616856883893548834029153461244621298353568839113934058842156454986379778022681035787900796510576775216307242169436541088308302157225541120021682438822949165538310424324560242929024442323712937323144130436064480418403607476735366800844694783872322206038784603216552115419433006990481581373642600237823052763485400397524109056254645713381145171174448534524393340690399234510299010996377351570175471955097474015683054080329007031447701899065419063166927983229831814266546652991294503574126392063408067043823864173517654703116723218441236920733267312613999299750987239303034413263314616981717317528255235562400318112552294302450689732719022247911500813094559423527915961983819013605841642095525516356625873063339813815002292284838682807853396359238046449000124112277584854458752535684411950156334597127635375751601691184990567683423900845498712124144696361912370204055988555436630134315104012712891397814412637104932133602911284025848616650945353403156386981987986672607474413581028186364380365484425273780793687370396293913485063794101914855421878227473004219358119209130415750216382592077413496433064319771247541204243719853694396289742426748213685234407730498616930644577000967243079168378137043108646414649523711605714596783351781834886893460836307525413579347780489846747880740931521493233937574733351532320487289867152924163273821497755582825759910466710905764348408166599855806578130735993766373154244536954804627217237061553119412488114570693547783098343828646052918813783040177549018452742387131466059922648161031273617710718906330974338890664542913848127830260637240764432328437311556720203285574727780074440451048421897601690517617433510931131990595063069143642742959616850190636391813214739450655193699680880827666641913211617364081520054480371756499627221287014382769137134636108234798383119690223758640221985419841107215023398585906414430990914784303834306142179873712846334648432178512419811619371689676690585886994862127533501835527747806230986918301527189446455721512239747602541879845544300757250259939884638365307162701161769382502648785126123426968916305262175644727438145150499797872453636241717452438899568240768291395056180506294727357223885296066738210709595124674441468542649828266205450273455472909579544424911585538514025249589287964163460302654068071575458078003745195133683255124010609906585065464935557999891838256761208396611080147076916965392112556107399559748371564902437797228713921419742525906900636409075025565634648226348627026170586972222295470107988009051256794186678083416840071628963961177000502360799005437674654150753016034080402008317685859022806093518880259524587786793751555745438826455546660978915939714835660096339027768495984405920851980697152655984124205357123137379420905768184594814757371696427988753798982631878631436119335249411930457488181053066587452182815302458569400849991996321265780343499371804356041295906666681834419632528316537074386447274304119971161172553035087546855482435880220372120033099234573273912658143270261712391988316177253508073085300265493775944599954462176388848697245173839622623988592140810503365927445488737628686872416975792553034846260861405047766533148225051569931687788607049362414042391846222817426933604533041821922595194149140921050811896187062098029548023681646233397917817690522235506532401286325957599867138587835445494692061024429618507303384606872442595171024614546131394073511863714530736264109520331533721016353117662227722627675704558010947956916488663187334469653564124561440750728714914614408868348694153275728843019950831223178480541869860542523972607883905998513012020074293832560873967882155267462692134514143289545840490228735925618485435887227348782452415294212288208797520134023678094939800300139406888350916810506708922362819027997685664059589206642570414505771484513533814422763306060072497581271660750759336486324940936453613669159647821559527525277592160883484122070538696786927710255971253066045979467182998738844272419361068560534998217914717894881914754815016993778998116290600434299361120488316882822647289381686471823539735230047590013695183824659178951928287295170241283960118263098008567650604809626150857546288507075265292421400546223314223024277976892376037150720387477720440800062644229316321917143370471862492611382925640787024022954840308030285937901256566895741358704821330492520106413684981152335145875493826448111987603635248148807420721297016126904912563024254341723512947144962804775363423288777197147350988624863151609383988691683563382696796401426266139184387457484038032531200206743840020978843002640696335483633377077055224753190232462025672888602129222248612057994211098046542706352043532718570144034233365187346109279075951524091467053461425562898405021686259208211410613181550329805650959856604694803835513205994887477974378390686644363102853338247211360684441433760359563848858581344211629453708516749517434975542748094339031799311384040978215354477746506650690461715360338557856105053244273171420935318926344670014841320713363995900379498136321818735754559888178220691492102016000548748793440688539720628262268664846173822699041377855362762162945353829281036424646425005090805757435320311599687764204595818618730354545528981680861772334575095213241955920755466798642444140399074787636844750805067169700527507988730537784915458031335616191301234113911149588181827559854263216269939253948724802347554520566248846389568634615693806120215236256742798619120555185572184584403801292992225096696076089325046450879847955729943013532880783935112604904651518938526930358963175017864068996995132418487526850212065525500456443382219122345383991863024807707458287630335572691626205720444618368869160902172526326699693022805312075424447736913482182885665448235232137910077957664589126380679146839383217108707464824484773870657709887548412309395503345447620780018826388906373998321328701168094222502129707839926438888824444060744269562313200402777078925307732488383875286940618666450485529675675112023103217943859072130473143351080549581011209867137539672135341113232615812965991211571812668728069582349061495740042054243995307230881479725395946483652781977165534640192485691599509552509590446014906089293192508262341872398762213662463601935254541560700328728612288242890967732806852305411828429588208191010437313820926365688554473531767468722780418200181654804409865465947722833103027992281125925564017103004032272345816226040376727293143848274319859485668715158312506209337494112925762154641496305543919916995656874061435601622942107888850677559802304316999532032017292550708500464696321766750710626223311863449650876140343404794385304573947423357001771685085397873282380345945776186340400222852245396180584668624681891741748269529760408849748358928910183891315736736528663572689645256590976904048952132116459451861454366273096979404198256338414683842139459359346233336212869089414672478391200030257716397506951557045851128663426240000272819339804087633755718131584705499008105393002374352502707554355803469535307600412468038231644033551310158148489239674468281383500748355841553437946515921774388597599941652952575160804815894382943443510354603212356038523854971497130109400641394347070705381523800637691031688212378323471114108036129493286328166102282989921876456391210395032221908604152879711768867249595432030348545314125876671165212965749819688162717089578816597396949232969257546818810855808741782691897771527818977056849661099752840282300370672279834183378893327443555526162438091666248489697743768796764296924503695507873713003473115276046811866780469032820384290153859828794085491896564187582878458162575261035992446938844356110348371230046578960540713778875212138317645429115002395266152506859784461913595104630081670100926799945442196879352081783928520562070451054895203484100814989054650070230507810570037932221858726510508174691943067138818148651747797896697218076405390701954210780231445277062501648958601175891206662549441800071414025469668380059484880432257060490769211797821876433809498212160406370013519239488608524340820956168509959163465563448167878176256231152412190932422373358306229235239393498667369918196592447834176390342189497995460737504395285900889394723382955831750319628160662382652611203383826268474369368820044178952193867762009522473269965238528521584854840963941715647582581380757991030434660580308770360841769685217643407630053132335512583020323617581246879963426599377478246776440408233751665546079439546230430623069370763149205698556194256535458328921015034784180810992514955932956344641881089479765353317182297273224834439444898357847553069998726952099905226053545433615721461504160687882364006701163075147967051555897334452257951684423610645634444232075587501167531777379002216193336390093254618908909080320220208625546563875908410219835407865025590316229416049653762547490503664761319255049131912226951905346935514676871253313669195359673713386816922036185918592835128600976241759276848842163967223573334884844557467833361959768745261697131456626334526494024749967118600164570201782228193048477374664855110582282189383240882829091685377615641278683517160946688583431959755592037694495549248539714561642457659312798431186902940568357678761556278015154488389645050011866851810838991625721501407166869425513481678721638541748575165346537488019584634868074230896013137623025181234067414548832027748117391111611104154560011831718122924352074813072493773537993146109205068317649321967648132978341051204631765563299264432390707401960572046164500413863874590725451606746334790727505440839477108982261887289597636934483132819302946952661792871719122004126403602300638994574860513709838590557255414248929796914773902316835219688123489842452466581540241440305186052850283462652552131847322877003212677154998523713172603494246368915781887684001492258699888147861440247100785155135663773255731587119894199613527355736647474334155968576326295358321085574506911111050572411527171778607651628988144060113617464896262344370907728313874722543619845326016886258916523263605803423052389741313458529909212363888986984061353690566750036768561047937887276334795622322389572258389990529195657831342303048805048673088876086024543726570316823914747167356237967880827023056800823485421968510533488743511613175225081355900091096005754643516342147463321879344082771183505682193094863081730416973118657249708575612975433417914501628090517501258116250001240337068849990261944527362310600099210702393033270116777732052678644606041685530546922264074341724094708630504803742911749519551877239349875906969386719494442281788328425183640290322380511964522705298839624409347574663861688311274808747140916232507846617056308975538213528311417170683937178771961358271839683089668494130799492299022701188392820382135680402524181018305423562224087478089465373269522025363480323444887185386675937333355251470320811167353013165677143651931715718264455407374691190871608543206334592757147010012073070393242253881890239312463266342049415254754549063753274283033677720203412423917734782810488083139743581822569952929046369968213438283146622409517528818304149900536906648693881061087832761171489083973827590106146925249116633284157912682677153340852877838940799819703118375968611120704895637048920281094133498776741382795304765383774054999401047156526539598489012156147582878284477785105397857682118777506459979591460903268207021432965912924480698222448031739223329253732338551401484070743676285333294580312434085779917383118149962488159989780837916605690984817416491322251044908287263004067341949538536185374898105377259114499344680978130527710544062077113508714558588674787452549353030162770916815271743825207059474009801632407301615700699136099662425893696532690184773009144680665578716786342652402965290330150738222707483839286158824763874507048329830726574055216428517274611151628594568799597858619235577477033883623974798476024020366396436522683165568815590587331864001486946699733040934238048689057297980030999587531066057969776184716353795282531489161836291184475082779308903721524567511004347244606132793571080302888430302306650795558919739675259984810553801739262186391682806809809972933616784137665152148131662739136394074260489572530022158951791544140157540509500947082703616020331044408468969954793096078665536134787208225919264539082326650721248107554503360785575975202501120908181667201949996521502721829769306715486418049383525731864996009440398840282116361956682518342664108413169940733976781232177605443049679075266419908187649575208085793560820923658193680961919255140943713631160991700513360262243975289139113468830436599715796055420642960935257931634162883758522623996371288223106806328145439580356923625054759427606442493057229925409256624504134832677131399908752935713925973653602537496817066357870628803702027547791205266459432958136964000376116575749595459180481367398666207047903987576666155996447730645258948765725445470181352735239208177522590276462421174552368565936230308070477282349862951904128904875446046499535778055072815449365805687845733563483588981167109045381758320633164566910557008071102546535418880317445318345407339571834843149335516901596318652696428488340389955019636333530054529341612213242683708016445179469398572904816455770738058506366046897287814988849490456219633669858384297901370465482383876347965403307828759590533599728392188780460243688999442540358320885908177527542501456591655212785898443182977612927345668943629088469916187584835169652865015852897544325591502216548953643181013750502904631502158901039357974435356451567804263265269525820990169227327801208309475356717351555892855032003843686490738102840183127198589544131402378544667056863406808418188448496516911689639155370435006487375045189533482475460855480284006111842574076091945323183268773824433450165428832632095025229482612905331985683838513616321171026148661908827973089564469906482329843747100260848813226732687016869076932717508235104675787486764776472867479532814525901483193562935164176430128785717652926416039408411656066752468248741586157845287079761850060082710344033914155547953999663037420761124207168961099170673767468483582398062587485957819189321534864957740037097211766636897325001009753510667767611947307994237703658840922732846815210583122323216711685110636560411517570389673572780671165615563590491463898522420374184477927537019389865856730761256752389816138712599839434561467610094103036875747846908091717057171083832056294222553340315800166303533013395583121238383663072510939885027547312946718592339930657206554755356169839593265375236525642956927503790946733261704171915126106070173380327778556643603599167200450195680464114450364765083406027470295964947893129282421974564197292345252718086850071972837840778651994367437440845443398672269292023833991866469952570914811288739608695256885981149302143246200106469963065279571639414211078011429891119746932713266769010103139640823736830369175694011798277534499065860980252601219543145535724480973893230905850371836019236449215962405616042435347451884187113777595902270262563610336014346210262956362981734649268899097717767824629564731008563968150378855520621649313909534148460827908906308170205669524022116066117209728034352152092047249659277258902088706121942745049008217839311260748186179385693857219863243039023037172188522320857119513841611276614994374265105511033670842009506472203917535650420133940241488870728264542226669237212578982753419812408078759970277695527876348560895723514096824906055845662983228277082989887762232081853023281937480192096958651262947100595205758264540632583131972920188063184538104587769413036302506981265569429319709101128517242667595453371370550227275088946055776959739759865351524699287610801291016287257004338604503283089395011075841979449755107055773750056896277140651264461637926063655462119793441755695524234112089111703795711716903238853215588202480249416085093702271300151597401050700349523377684696981697734420893511460878516763988175698368666079350906391547609853788726760340983915598553169263893625930139761538591989444569278475400623310692277655807958500216835491555928238376864274787473756236619701522995178288966726336180128421154130634010702925674455784040884507106022606794397663185247793887982633364611971650026997178925455507131286523446125061639081572042578192805807443972176576475719292891481112082130910588991378883221841940746973435612005523471930302501575198663281582884159850181047622764090256797595880497553880496872937264829579201813789013084504164338845567698365635946157896704838414478321028644761540695420888398876361876497387703436297525836681301310598648008162143710438754492461495853487727708868811914334902943273758821993060577533716775677424872585414875724046882186929378969989364461058479496957434860438327174826619658569872627407040214738248364546605904266381341418585308541563462760970650492274604758664017167274545981922755132603346701938648047410528188256022186777313436290450596943770990736767745111647945725900034635433249797880695849809087438917131042415453232561903009710916320407371407955426165269723059635579431263902822938975146782300515638401174290914799905505920103401806069962243236642235347248629510995116835909749650700291748747315673104443774053151859447881691583472623434722295116987995833358380584256220316248649240068990434203188339537223795661632775383880054556786879685711669860172298067683812876288357077070206602601118462349091869399181563762407553498532358407557896268528343402020494215641322805346245599020685251053752592093834409186522127803682705242017574043036989047907733755218488579246521515190852069329053961464613901818076994555354996414532944245512826530980357914174512896066976451873353858257884449734955646499285099647735864858420337625525573485576989458519248922056377447595736609053066204006299613298386656162790055798635173253547423876795319701080906721851225849541749707469704136119240347224735192231930691656376279204392111857063001435719173625714918696603626759332402204171032746108530332592159072555096948585495054622707757310262972843905714309697088224491651022714072354853304513064933373710663821748909935120624236452397825102743101047158069781389187437837759842804562486914604234066293629990683415140062953832978356412649685611958410615279397550731243988855023957966994578452659879446742915394148709824402565619796114905622521785853531564863214016358444591063132181116508484980144195882237316546712459201812026795190917768373842374472857865042039013085893995780865873716465637846959949321976140531344001634867277906411260826242148604876760885800139094535933333150158925875505936552156315479675584871951980922947794909062609272473773256611424112319355912211875543062585356807564294792312373725757151319255980652781402020215970566155744660171153545690261810407632871169884554150006344246023793429531899479662134906055202618275101027937249488348921173840787553294607419610671751737535750145221961764208133330417592685303060220955050265936957526723652321137686989127351242896587824679480054854341516215179500171560616287673283535061225845267525448361824361358660480109958274724911772958075510130756227392253403069152569010497302482607314029495139868125445793732359634548444047473335566346245460059412964106369211601177566416509291678425906552927189667853800768988691251547853403833621619637626236318171955328985847786475944048007516725803683851088610898863282948656601445411769708962271763973974144714401741543152202070677613277291305442631721274482837637618075966158395495029428334623746906641544820633201324940412212822092711985688542447567795121766426582205839910939055799116552243679166320531601051814002134543596236760540336534344845550289031556970930066770825832630676631630323807146445230470379521302619070743706757683900045087626596471009910247356910457784609756653212812770385989679697733755475490064965898081973350839948968214983366928357767616132348232334955522467418307420550200375035840064557023357331147877771870391955996211673661224311482514301796077220846449881068569802040580928238818817366982357566572025768319569667442046154020530212965457071685920012340894860915227483128448026959679544258527779656772410669956255030636249720954426293603690700162505827686933049747477506722790013222925758432474629070184492343923027514909607972570953969012274761002420985234567227886363200957972991549205831698683455480512964772077254360970656034368112083530805509622262584513970215610304164464917483704460080746294678246194976119142534179035742190966645894107666494734759759150748003391928900053982861122643349565593794895999514205108769649118325175841669715866043131957397035097457949802622003950351363443467668011050568202668939258417033511913207373861173513864348933838422946713693873552428314761493673420984179277802366912864444034825714758416148239174766286204066308317726177279894688842171790854706049550936882901213294451222338779259385770444693621939230532117965980844240114763058115811163594122780485085837049177699235588606461962346798678982867979042727753942699011617490329728396434050505790940295364218051868018871500385548361775322179927551083927654079343360361052193893809573076341327900551009167736225490291643960655733098177816234787227319088103397501384065239021132116009436286154154582817302374621121920684092451513754704613173495454492337887224020270293191764399385800077724015930697801759964347119562614630764099270458963561909257072616424770230383023101256984866886109720838739253438966466781367828467366689357058022753912607321884465981279381696812838471127102346376355654724513955549934380953826382199487685039941299702379904920160983998189190121677883334810242269859730163281146786133590012963748714982270451559677414452258912749217707778795784416054286495231466693441283888229481611586994041812546274494785899097206010983068713671380980039421438858318205922995210265068617514109932142884229730331458338785338934276216290514141484052209658794819689177183031153414420311590852481547419358384687289879416705292592461060718101351590701065713897305003247490178350962675863989805321922047968413360752307459402807632838532462015578039976563945172773333852543729318582496745138796422476470518853389354389286967389219777592152374620743537886177308890432326082221467421180697808757474239912494530369248304442081207146467283492282310006836262631637990293853295145954202323849345089511309762668685624072817921055874474250662032886745983115282830960276980346860147480683281163665436240860082631838367835020709279048842144294222457118923303880001235075341318871651112362233619455898796289238223804018323252154305987824796128317973344211967914664573447587672241269978321492709993947928088534702660983722304452045379423882404903756662725724101003173667465417388475053477694346186749545186561798983437029348122012581042879563055390370241567075609699795939107141576587210012618237592044249897848782932082784091131476350995313058733324459797808242065673185567916842840759739896504419213544228551963262212609702111883472894935434845204292037052249084949280781333195655582816125219860924745496561350887572831085570548050508203690962202882470098331273852241721516316969653737853190952118710318350371965159081736599594790089090818244816163682745090210594804534438082168056294173094033579118969390382016682306347221524781863886348435621939204762791089167979438100980154682258499650028303890841629479160589943144987583474516629900811739386202511892443156994935534398317309396161606548165453947034230208243062699813175469702887265264536963969309620890325848010663552375517246325587228353527976534363859424405913945986026046392681270677720760255734691196916230662067607234512359346953519730290349554433447279151714448965039077057875575646224724811261326843047165045521199924842733938816479775638580783531887148358326996357857596952916279495303909024506479277938658976206905380909780223026266209111399339028731461390694824006572891450417923556504675099531502727267957828028728899504866397783405441552752595447951816566833811544596378956360961583649495738066033191556068356262261827494395696620383602055758465948408627769537577586609256863733890340621814188796205676352389360624262131551748196318828727118520054268236715778337096660345869846830136489706393534215655759717063221246242063018032960340101677928296178047116910645086500034553528685499467440171645453702749920531444776562239528070632731368813535151836751155562833533246065874451542226868917342224856460782225495270156866007345344872162696837706088458072373314126809791642088715475900101014452821320514057327411071073923839687663327206813224019578946246456494118083245550972782465351698241316770682781423570450022301467123990260158730993847756808363748912347935033490770494043258875310438080413823687612560608098749451238208386173323051341311448050040225212430919537691744923906085187560176850591227872742244715413944038311350047625983451741023703590667936934150389305999220788957633663663916838065596860729786732719559600205085896204104399710991181839579513962739797887537640929046020454872068244410449873096662350661897634402612711585562295617648095613966092165132058293206513860894919313951060512683786170187565680405428756783021121275585239696664251147321549631304654807235501030158625833351714150557872243627482636842463831253819488653172965283926240664693513597330720588909557284480145029720210711231036117313565861845042626397494133091103931151786750071270556223350407735304117917411561122773652572413222891021429956395307184918706719541749723115031242399795752438366445883708060876239471884488152235771429642234628340400772400967083660064016241234212391636368839402211068341887184801228339216836199253708975535926461122474084378849361667992578081798191707438175732653668099709159250117522375107718696791383339905904499065295153924827093457055071391663096249599011991212548875372171243322016758711669204477108082791064075274943861200050563807408887480246699971714517839476420044727413246290885070822702697237373671385796959595068398405946528179645310211148272087495966763609451927338153650596385315293253663447633616341724854110491235326386424117102250200760981258427467977521298045475718679609901441527294443907721144558153005271984660532492944799544130231319197389998059591474110694847592431447151922992342228698730178534949025458283312176860981388957060967263307128781705658446089007550089871416405610275632419337333229709639793572857669032000427186591909792950390721803139212561299940226012868070086908871741853472173195916496869322302365334744212163471419401269806466707776159032127833788041442061743019701354365559477436132027575859108925678658406906417507572682078511537036693196702096300374056992473104394927273691482043664304547216307357661774487782780844255312475450719212995798699887057114260119736197107260263723694615221958656275734298097314555118639331301879295758364489508798581514548207837635206477513351146710831696749571308978050239076624970454290440144028018403076650583179952297801589522822376279761613202243278400790554584221406223023096985387883236783130497695642996996368425738030181591384134914576159581091927672659792672834676708533971334255967216581924467236328587241253783957734691736630136773645290684738052193793553658129224394530568374796856891122658739829309664579159557871477412021392179948873588491406361475865610642327962629693676095911918736186827265592425408810905302514172419242626956142020024823400781478430849130596563591072290170974741695435716766381326185706766097911316906270703657115199079038387127986933600556562157592932165816181147643654410733377394139084840449175175236632511735665429927136579263499497774566490359548766097823903789482381346311211366703916751397681060983955781356965844473103642129248504288344134774279541921635014051205585149505780956077967570395466931906893753647861960879598104616502897187494227983213635758392706769519460408231027833051845322250338226627497274804482804745140104554726990896869605576109776510775228338737565632584693594328722305572296607490576081510367649835294285544988385109311099702551454110473880403620839451766679600184561267232762004971744354035867383045230420843174907937758230111537525733929949969807353511337577329652889379593568601650159495805408554864161690984904391653802870741787850924944895229286640127767242248229120704324657765705673901658817222115750343755974499361783014056187922171481380301524162041880082136661259057754513424896638426613039171441775972537883266854485564582536571106504863325110119071151515455971800086268903101811116496986603256969219537751541503345619284580682804253349086694165328407627478377434521479148004419624140422627388326417477623121326608626576042416379613888009721825077856977616560556348858221235839999149119800151820760810704788311066972698629694034728667400442339413381061922701003076100617354715197798184252527882130866681595387785490783088658011067361557636941960765992744332573484380701947886101204677171937402856367336789180083696237709267757046267725878056406620869857621599212014520551256619604516248547431199832279044896947453952213782455342614337940592424346160008962748441071277291710978470899426178352769887186285742900249107883282792958520760050737138893377742410064192746625161350654131432642500264103027922889637428381374432577359559188009181788735793376715337935658296707568102522645604952559948737711721617977479766142704133639999492583249141047458947324626070655788908387564483223141402767130120698445383847699608749919890162911437052062396124924520521731370701368601265087871131321495578485795243836393270074344994829184670089891235742062634462003661575417510126014774208677694896693103994975175529038843544152479592111788461979366759216741856104272875840985890628746062849338682118915793196461675133227172995418708884408854306028820307561312692349307057399219957271289488376235212794045054304904575910884029761565077117886607672227872315844425295524357601607415590965201439918744926666837152131130123752674708057051165498647303512827807976525591007744686818567193378344798963381441416684624848328162651535384732226385716534959715309292690587675509220929991278443813320784817983845333449305466155510162422640377302748237956320000293004560649935643267016528015486806273587583698337067956222156122437022398671195463296284899582912805593142668690645033559923034482799524510118383088021168764508973227980916170179370156941380012175899531686010713098972407220677788119797367299249244202500350533398302848204452151729395744089684168043999460164920642300516011461949354182172019678136494920536598869585287202388965596084898234327186545257536553424681462413336577753896191465704578695670109356863653721983536549132439155902639861713741376773513708004994223219842991481146873751401762488534025538903127651664128441561481702665820407429169484526723118356456964437117631157975819094964724104848816879474748002713454491193750603318211236109089469517436590440074179137965557619906291142388496369138514068432680743132462211702983976231019696568845174102880177118470121419256477629158213377824002573654254905317227161912658682410889445156107484090703018983749546291661829398946683289732694992567929846201269524631864743472395152671839148511609170062441704959138498400505801508346931145088735049682757971932892059387769070846862479336788188462145304443350233467427749428898320929915974824836135763303541903828468445677254605394357474337486009978651687900952780270400551454861736516740166575870961488707041003842581612184117597250461542502115799148255217354669587951799930129776319155791345446490841029924363554361804088430185381483113288717181933410069642187975175217804224924859275858740881610563849576548607792785548212244793791097239339253395504534910967260047508633979170675804064707960910584762682721464166744576590059928493494379894559220342531977044033640453948001666015793385729657261193303913312415370719198518059399201164319756482466013399634417714106926501865428823830064298223328290027933785472925324609645375307610892413662190396202348708832744488834451364212844867388837280261467073315161770431254687280195216223266136149945699636169843180512557099382348830002775282028054268410205293186379797161691625944019851094368300525234256451370319521613401885542645100622214028826864943013816713230098707964918357561954142916995666196485647541766691816071191502481579745109889414551655753030123035476493438070729344448082268627214252345988292379322129137499942523722617735062923051246256042516049682640705137844271113158499871675315353765113294534882659353346479938360654884338232070145653125774754824937427206610348510646033622036371140986618349468687804871813275453712228924615059804714577629929506695369831366736864694644276171412426806075346548620305649613300422325078999958702213206550753920201205845237890280010528569646994433015142217235344131403291105679314129878187863173718081528266201288958418445185629133924289866036855267260530749281908379561232601644485822953407184300740091481354297205418390403177060409084165209859889889919196865070799647278574666813091308790265585463715956088512033677974441721413113890580342274973867911534569693761652810109161829935355819562219293246246390676508492884850331205777340480203850763194274011393036380729671523830416740526167013736803402740305287108216628551072421279707275744202110889842834119381352352462908325835722018637059009685584451286360879342575740806627557366654749164159780877214843368372347468422754621004893292983102990772031491041901622234156953667523031892132387658391266071092132722944820787151080818634444253583663065885363752640580078620517532298068759656888407716628917735105627934294234397877439403955013517893201579457546828477413408981361764272977799333605652013719750376956430695448697368904592173967983519712244714000858072212881730720784545841941558296463678838491064048472652513696653216375792396577100740259403426410868552920909258428886526899193234478136344846062544730183330501670886817543935553535163494554169206855908289257401933156171511729921498303174080848322473295229152226167459324763106196240787983865383532047195201654720809968192509485980990521108677551695538694545536363835087871396698872414853951376794294417160192504023173710499514860304673187511045880531637755930333635895799644244094994494796428055372333620349586330656504030736484387020129334829592118958393201634613520639681808663240140096700490052755188837729005484688570904626528672304350489293294177762428782835369490434538020052847826395268531390316727803691508781474212877017041857252911769455252691155801034923661111624839348541082329583279156113595879860217620342332399919574987260201534533701104465092420953851869540797790851885827504689829449856031770037544001699347206026856065477358377431937818317320256029054968608163186508105721656449759883591392788431314654224550651937751466863041663706128987638676934378038504676518353527082948602855145993521936680760449474783496674643896347263537719804410053990431245676787482392202263344542406788932443993730179745952823753542321421029844964747100718284585159110536818131182501853443666588526712095730042266386360404584123630366536952735709243889282207601856988969471078097406300192650691460460218116726997628020402045533393845419727093285670535530368339986633502848013910760318618942972959029303382224182970583723593363235043591796595879534604360614190134890763556469383877152894990450972416006586051474399752466668262926819830301134283294089267681773718311939695671932768386101203345358870847894901033686462227920016972132062792271668941227052097146250593376070028298947175230396313863870957505085458692950183477521911033850980540147404903831501561761792864239997775946430461672614473903434759200491381116551348042748643727791752803283146822080182439339455372147970990983805213622114868016302178758121513264538798146475286721422895267042407671709110980228137040083583561378838268947535595043469974871802740571896132809316683340226324986502760168929998007970455500373106222496094499980403953466230040897138029319835609932248939575839441677441044744341215928359881561176537631562442255243995542572484486192956008733928492974193689165789912347880690756672008262070615928426467768282641505803039572214400132067313428805865605901854355561300931745147159023409534152102281755405115946543897361086398728436293350200227713522668692331394245727129054166696834366053562653345197581565309495404119537572794781684820027654486446238047713688540063509021064308511004827665432793849052475859613059297931001621339646893549415831592145827222862817780141661814397593798963642648421879462510484276440960845653132009650156908869921030799633760207073564680083929672514840688669133167551870212660702594300738565533893845273522281236977796347624271778396253623143013976933246372611278344741106149490378035542846880076617235080640731033471609882882955763568151233317316586631087023749041414670449112999474681311928992400073124103823526061391507298750464025646218269407901386320428453087370749520599779326874284865505973034917063259148486446439486525343996069780686673370418865582427913265216867748493535175672776502566992237519017501346461192097993718773123158226888772892242045568435395895953876371579220094812471152892591091383011480442956474991705380209443764499904842478319921485853053484415157669030770640484724405077639052142463593013849186318362650173502790549621933065667356806665401335510663833152862151966579448691189101567243119956058197566447610219475033686362707110501422868214216417502267667697447224962181187791623994763055207612640791605269737170759148002748759271285016185326496255680842104476212967965508636632777078459338219667195305363327075290914339171824571124276810396030405607521611652047042911789886056778447210056944032520389840197421048667724670067431557606814245956528352919434492255140511753441261520976254484990932182509864830511182721449334107063566644697126203803604827787948228248380425101604948263506351876459613808252099387651156000248649656283504603793742381383334300009874164606709316860144253558189362688256018197739957676646509435321516708354455802890041017083635283358033571704745625884228056576767684415821773540040026148905117881637676704132247119977212526257513116307839600514141009149799628353836654254526549860441944183464232735127380450873048087538257953745121832647248783989125915734153168331279462635150302174484689800745046069612610579414392520248484647265706773498328254886145679432027189154090101333624664375899691137168316866428566882306472110459838389701387872421423036315128855054633474867864489960820291508385693777178597640989198861027279427522852996144265950391250303481344241620498275069217187222463965115109906841197795661468127413559968102614185546022494503633150751526349946193184427184428598066128957289234946162427346505066402319376283111286936015674637665679107728976747365435540957511440847035722515386430528467668230722372805470014674031406558244735180515211889998161347924179250073252902122433093652016153959183025246778293651674258362860643547928410530018167382646706100427750939010194893903804652668160839042320432984907713436499834215048071198687899171993390051892960731518448390888827944921562727886155346092425155220439310916172609081127725510935702937079304594365297549308960937136184068584403593769419626837977715593237554953404203836147832920961902900431033500267517230411513156406029991652540382187662434487355129077571617624462710948995539066696957178607215944192415318227376849898891045226686493725942765424053127686812115826625117614905947505433511041984137268880017506991661758508999353043683097236036602630449111620825861210165424002526402248257582358151564598904743950508178193057098521388169295566360828876653607406140617009082716697906679932640035274805925565725325896398365879364882910567474280200163550190519903252649694994478244442077834960265408618767064046636928989632971230555915000635289037839261892630951651827642439541287965859007414140641686766366795970287774166178355441084215255161876797568542813389590253453429809814410891922224622077337585604258979059175368719534629637818671011700629653419327094275995740411659288105254705851508455638798084451436861736216718609684945312999383754132708119436780344831322902302426487907348496421568418966576787472704162690753585929642806576980680274053987731315389473166934515077578975961460853760659804703575560414905483414520988952511150132171107078852149823231597545967998989489975245479516497079451362124394332811666138596377318296029085488193081923111348755756637357260210753777096322860939082729236130728952252033123777151121086952833846180322668171680499338415209831181013213616210122535554297381900634878211615348862303609894496505197883183652564181267695679973063869057718999055422114997153729684854858499585617584835299054362860447511760637968690712457673996486331534705543478698758955873606874751178470451735720539755087380068241650167362664321740305745099026217757619892525696123563080856465999258344483192355460991738831903104607941726291614319114827372344023575179982573218495871168810751715386197092002793011484461408859313037080959395908583219758504638535479539179680595959003981844272846999772722612661989114322300308344822263576187816557201979605026483982691658271591152589327568650933978929681600550071496297234085773659764985417716199247783425442651035557771084629747669555982109778653839724589159571735584753450528435021495637613310282238750978246336322493468057474676189869244141742214254835808977113747855413429876816511475770093443770162163279861488195396896726914274130762355804807056085931958477429686287604110046351504069789482519914876893723694056594519922413755635738048063235320599448267324464200929590055261447980196694352984663379396360663803654172314101307305527926633689690009701231471103930216261942664471077505211701778832134968165533540949531990091900484884187312383188854427984926547525641058379457556816697022290711003966627184770373299987087140515937121405461947111377578479174496353709018729375762307317299812234109815013163006646877559762990683304738933285124172241146381171436409330946966796358258376915555480640238543790637380718091286268566012616994174763421918981973270610683025361277117977577098923448316439546908392030470878397571791588016729189618562438901450904856210327412724076858847053546450806819202278525671029698973199823957137964151792246199690949080452163637063850895072630956874967056519846229067702881932979606957254133066198124298722319944804700337440347793361050785381166420506612276951218894320484126349248904698305894239551618255702502401004162524460371340123142713083487877900617651047670492903226480506640927978025145351992502268690926009103316921146744007258520457573078024070173155685595200041395054094159335865589891028760756621679398301667627804932038336464067170969780551122054707381222568100944956045538350772548722565209917507613156407643204279003224864875657977528422146618337555939754284680094505479558897895499333162137969273687656641366320878320415319365116259509947758219910684304744468698296873705431209632041124722206930006177202066778169359997333422910658870524708958360264027432460184375137206728613200186325105511537899714124256307937539737451086563273052968530334113894354727968637103462880546969162867728868375045378115513035610655551204947343075888389266541870101391438346240372441164607829038738584708922054238338443818049854573441067930498903508169426195528873963247608206886757213689057855593361840547943416453807261637900257119878527242880520021985701453238661852796823900288888547971449337859545072327541448234870574571752341540369170314774582444042678256962438927550308133524582966657210098381309434228698085650245544523618200234694399650043624554969581067424388079078432752435493170818687368475071449706686028564661235751720592758695311484237836102410638698106341329375965085357846751228177822884402487155831176692807160201464394667952673462661201895335943293206343935358086144238983751827812350699040337705156903125354953891091599685883420861888906038861311605892769126803685588271931553825213973331988497416666304686073931416956050756452882959061365184880847562924708149391579223133521061175517730427214520633857226952398796876997132363899393774151753296549729605604192632148253735469152919351545375675825245954341400926769918763707918554267940278063778454251772459201536810358185193947092788883968948003239976760774836270077976112436074406238976483079824453398233585330967521967124247160780963177820325376522998653757194024414855633166174536205794661180132718566995378130370203056988228870119221609592698649381419370300156353638524783703735281220814951994593360504343926928013592785475653338960944410526864250229052492578013182214529585081961781842714455536389598723372364380313533753118675748225295352087132249965340995367031215506847932009942123033191955037796935040719638831663407942077473218546173324620744729318586988422903999576313884298887815576123568561643830574763385067796132344869443705749689903690955762769542798681854484076578763823034214844240109831118374017711579187620383568982124460517634691528369076718923368970751905366482173511368100156230950636511678823239561109686583661062219188176425360679178733746518115112830710221908475075254003598234046791131526876735065828818819882474634865928769252598933914597028064019189626528712127614266653533688572972548241234857473477059419531341818199460723652166450896566320049250814323794538655131990354921449597924344862804761121916461595964045423768291063247926529214645264637609008047776722512762343832649553687653888332206341523586479823460099995831674843708300319528387526793386601875181360362308335265474103247306827919636798081881400515489303059472252505971134243352077195542945690202629128184858781295445080303944896187997617386140263828681032243990840065370199624601872545565601592940841312144443679079698726153272917246878415876640302156557193719963045177653742695773678828489507102208770779965895377258827243890732036204023534603339098670257010386648900591797846386030692525190305217504589986376523462828968915882608177491923064428783614619545003564716130150301404623813758585487600762019184633069316904214733502897391035681117013896381609406182338993355063103867118838352599478950158025310869744621543569147291460964621641716554111416916184269654684927672942199120235610464792318122476855574758454530500536221920155561723964657523426913612395338550286023900773635259271902956938146961414297294903894561655610881188295919269208990449676014722979091137481290271445885470093077305763952276837825482521578451413960739210516562749249342500350371092515370531388335011280269135208711180046215361610204428805642194663292876032534768564998179427804545906441814577155951324258349460210255320648336209422483603488666023760806808066024640039971474592328548937626587993529190365390294857688136451865750252299048474575067893802112211075141619001555490847571274705748898348294558293848190406967964181444928278704419759448916671506726281958282231114477347271717666377865411881996208251118364509031888627880821095273125735010712211679511702137673586790326436251492435440026925120348181312770550924769843855995758330480110054298281771495753352325875857519704634289166873601791265421133978880226929300248325004487320003942979714731211160860125374721994864650405229240164542839781022905294007099906933388212196028629096589311086194884469792413777615325099286785086899957271559246149130503939506186002755074674414637550987023198666268089516330946528026311225700613743295434153676699989469139876686162099586227599776395093672349213614417448577633971400410015285089809175890357414107498692991708924508345466560803180775143652383263513319332481034131174343630699515749943807099130476596981192591193678650474313297827563870157788619619917469830616188866866049887760686304601678246143019496864297313975124205271118408346978128884719245223268013066135776605566850664672646306028976198215445893237900572996526877427518068432392371026781902315345172591153342752530174109062996890575831074691899066899500100841109535256073360147064938192425147111766274585805311171246330880630214353141458758207999803044397689389304682351263511576812796315546327213655924568407566645150371822814539181758266067185604686936148920402585570825736562856276291799971346181199751821141340798499804296984283503630509782053012991924876964100135940057629701659977658979035835966453554553212600515858429685864922304399344379228700265988904544727938365608723631207690229158635410786686238326861424789843722556712425538959679054765389838705898731873761428982546192322267009627064539660108791739328727810546219426216169890853355868745473225535944455274389142745040937741653297704815595064929820470869888828783167734380590066640014158265112537885175694835530761970020477864824541106389176853560662935142670958438552000615073626263134806427311856436599110858462149278899479303969585598231727104396616252079094819084016493352200745579370530159578624499962042684959532895945461770536048241523918523532920634087843019764489786418449697648341792233050940300501206311713611856079283691149122571597287928570382826577200099013798094070883435714801265162592691728885156906594870162547970018055158904332984116121285966513674802860279530411330046481276510683504317341881242345860575426337753971831813348150916892277580556471432421758701977672347428190874834947094572548033342382715117477150899766989659408107263518604918106655289145210414853260532520967364982818033152103002895547194388910730912225908856019444834127393639183675426909118510228575214589514506299178706214506020380493897511526913443871791489947426188896189248806460562613029971098951058609924765236826498265438674714033616766860467250452271433812240188005885975102895980579782484317018602253954147728861365646911880561734969781157822416340508852843954707311873861604889559134757315966657080523878420300727526268926541993907881060894534005456533814167577439203782640132471319752162503591827649855089837188942946392611774384111977600824988986603222083682363105740689949897470895254233425066245228132308597140463367311444390652923454678014965492364790614028586488216913906127561237807797386870141905981515123301005586034962131098829998646090358497769889087805878192723268210033932369258181908518050937740303461611091486499343433800909848603542728414967755505262851218200883190897083165533898803784358394711754055887784846100767429150740789073636384037871550189209030797887190350741875756118932931768346262075023426864927580691967171851472958103446729312746020963352302107327106620902922925418675153621499094412445446930320166296551715673349393233990248688597511837498526562408319950801806384324843183070116221050656048886899620842213378582131738569526187209338231382687213793627844111049214039407419818071391119863229406370731829667507323604681352939851869266572608243855604309955402866985758552976095498550419229063847008632953023035405247803808652474136637524976348261432071251338172343255944995073436227427088323932461152722187383966621333687325116815541083643011389918473748135493023790676251724134493741897302088249828768915091816375054440628072711450825034131847867958051581914173595383876893907291974112189084070313469540995468497538655228463324638454073525624731956767604570271277383842270441469250934813521517370711203777350228955975932031270498873015074605782710228908309169162921487686413691469939672142412104697732411527655528161544101903524331444204875024530334485937384551320498772579296368774222445698943402192019271182997036968140271298751003858463351915660551758496287970339491041839839423460006011029388889918446395080331742156381446836800990462828133805730019252554671317315130010835825235575525978266311743094716486470234346535903137628450803659038202632894473593343600135608134546315257166823783079678616640199886648632216643328494503626208857819390299489363077957642988184309160808925088322927865514676744130577320828516837659578405336897563285956714016027716229328501087530568408754017661774590256356230919644297693599824897868920901504558455519472747754781901919935147178877735633284889596563649306398178706841786334442028724876247142529508494530735257357510761575192077565746186709836707972420913915313912384409479882669988005290066604941196506433956075517632862650539318084449410618008567796554824889252004665774216065927060557339407398639151520203410455423072061410840868397723601577452652033667453922691057753449357595626478054650815517536962941139623415867993014300862094790917349086028795821046580026649351653808923996956326369550462878665138915331938832230933488166457751464848663937632545535536174763397444446414852114813387413462258022542124035967196601544450935604758549719977267437582361021357903817651032655253617651932526685885834072165634682267735792702944575837899819327758152072975358233516288821659577256038184340900399348663084170222053470084614345409691134490295357665471039109598097444662232417128421760035526503841807724426108221843541659446539184164386363994483622921947362403474434158968259379393574227689693301476791267126562514748641481115322336319070140844561676055356088345225624509162081736343315899541523425837077780625548798996572844037809328119276351665248715209004349684159081830785739487460264382495630293116117568210116889073223426709137494675031823544131465096777877912033178420758256795683526802466951212651003010706666270520048952143223126973782920175831651993095782651714617125190270317696439677696446957103011348656115228822054293993016207383469657476252189556448142612158729765499277340694712024657918097663076555830471350124054767326573253111064670242178888394104094275704121125283512541208410353017718384049144339850530728018783591654335180922186453797529191955445616400040196743609247835135927447687831955507476197651596527224265397284676012676985051357514751935559208430272693550606742099231403504729311966042150731693112853272355152670382713037471545173302299324844374258924982647332919808253474594219108048814872912918595364775023686505588333827627515109577943817452168396148404868505097274340139858230669423497803157963870688870755727090149060615631700988636906706599403235312674407856917746478338358826588165268783674983718570193631036099406771288001254186345828287301562355653476700877900303712422235753491853322710171259559652109860261610605117508060905250668816799599965860907101059727726875487605289356514353577766933699160471591276728487695581114326951339180424885398476680644857301431319111169149898679921448134250182353441284766572417759918588964018962763643359244888784562395395856696881479753828275966720905048548847292050331589105322992582956433557258775297335857114080326092390181176761746720844931645490141506453191406700622489010648816614014466388621011487576995185725611338065152189401085230119776187578788785567107210386804560473754250466393992673833308645786408723320934342907039431512657636764944248934108126538797520671564913526952716379908150810781347574641278841393193589638275301830195658311844469099031793600825563067694249254122404174136865197598324544197168374704205662318776345630098570195766883207868195735828241720835517583899906338492159528107552806202232816527504033863575408181384133562139544082539927053825561835888211366550628512725918324134036323105141449386320022349283248088528443579184013367199181461425994559808150312156183833528137509138457780744085857705951186668361691220912260104903698212508770026275453061664196004684011948701836926090853001509981371860312089064445407790340081075022091406463287540484618489079443967096641396072772131996460043227139853474995902216544950125494568254352822384428397818884472350829362053669002794408418174757321071007982436085702587446971285750539657817625564362227800129144490903918752349142925435651480657171013750535631868214799626773239926445375071209386219981170817536344317414547387946432896157059972962002063648910027650963344540467278452571184254962660106622141254137875246895116723641640515308886379347928524030033920106169317893851090113296955270378081626464040758626596252628289930951225600414164913890687544549532683727264799087375942942854535713079836677606571284177584008317732259559774852118688040774607628473408867452546285625580942987384970280271392178306301330400919676995022158784229854875847766379621779877551547523275896964670440948460215742470029495531260321766858115624810356071056615360378919039988162807471390763179557562166515645915998491363848652727405595030497046184709855863960301843420248477499960618140757260700847965786213970371443461374147975278338247761265757284057938947118203001439609548379190884774971325872947242905434377170872808830696001783107537294821514566450598982790644471199860655060894836993331870510632479674102860615013718230265465831051239228657896847830074421188858811866346508939565897037111288676019269734174232380446594817722275790375939470919272895841458166747481461152551307846812662153449316484946429580825754549224040049464904762730545261202270641577173353506624291950092556349412228571938292715211672746928591903867586780158131472581216409732272600544571532481368114161156272742828343785800013433087749224245133878855369352644798494828827285239264813934867607331528946270014369081713587970702871538689281157228586799262008824979568834178498026241868061722589194002063909159409094524197563403101817695161152687628804603580707186471430846072127658340280326560533444878212138296413920719537564765330206493203018558805355955085464831170877104407215989809447484731971618882193885222926435356669319916040872469043584058660552387631961998993093249466356512320261150981079023916818013998202161319295390997415221195525313593886440704506657234706807820744462302200410168954768942339440192478347805407570130636144903622804646834955394989063132705614710598784520828519782728840325688829307012788977742018684300005787436586288788051168530186136949407438350409845517121460109668564226987899655175507598369064850606638401845778463275353985210986428579505870272418349217401922877574566077626214218331806755715831196193132642400126050130354976265220224740869420767934485400163419094549318770591637108277079395650277460699620047963151630706462162833435546574192392827150232058550517359591373465012135026010804839972509709902833796244615563998667414176107774326635605439634000577603709443358208370571973332394985031318619553185083127349340759394162724953544518732873656772704685363639549926041385180281709899718766575309520040557271369393305807780432269904000919492303957015191300082945345671149573417256831842270471256409211900376990897816394995277283239098689459358501282617158917133520728802937294676552154659286027470402684492888601844316946664021724817118220580047319590014962962201753125276933388892491748894359247786986700431666987622328699728794364922751280587983855054239078719664191311530089645363956919235891533949556278893422241340840194668458780247479108011266876391264949495394441449630956846074763513806287173636557330487298838948143812828679012454073868742209022097111843249777565244587806039629480302238605636195789418418207541651804924347232060360981197868902570193026494911707141942072278201505480096345801982168036692717612475906564710068789446156950421566993504717911924750918317523886160800092448887382705747182209942243515981536769213257243211687238582164144175367044188565983971444392258540227260677778443876367166917287453572273775274657412073886383548461600119639530063639166277701359097358439902308832713530163300598666238070299831996395388170220004227272430344902034763508511842621409124587337680746588710189827790472272711215443964191476849002000625213050806839733109441297607737388343308238777553670947026438272101019873944255749391316917729433699538826213974370520759777450794770176242720189530181323111688685374661044559472226615154973176438372240582613370237718841308123182192061222440876333914818436364526199607817970015048811521746171625856692922593180183561805546869571745028100050086632154524924714351915951425541282171904027633593137799093476830128675154288662116067692401804429739660315241872878473792435220918767094250334445347244171989440913770209091750411148850099351037538168076468997167331437824186637352717221442909017564155085092787153611318468966176816610269929730075199988894611185396448495345599062252324601016968678530533043392709393875385589080431271128786318219622804031892862632609616942449917291062864199975328806249701522859961361650854893480470479307727434895373398800375014523817563392971753770220299745109201159835252142518541455605508386335479393020562961552574211134006256622176996704056712509714903499722776286450117374380925335565748042258566906090558503599651110181997749926686567774640739889393752891941710774138998485061708001764754166250997580274725394004585360495435953299200439137507366831605413081659450648471518179334805521228513850451746401060846760929791416725613476227595227938930668281945509620873557346694190522054679250502134294366800323924702827896540584624620603234132366437539712509601068966774566667462897969900526524935875540001821082780840905732113576319299394566217887092634186515342383199698696392056827092855573660912734504684359147028588095051149923360278780301717837400802025843212882306925616533377925225827914440410821423040219115767394477579233586025645433336548657455894123462134388886877356588142492128361745561150395605718891587535850788623152932388231230510549836105630680853715525585685121210813630969364771577453378591375381119059593562829535920303239939711349172523753070019900878567153689784761094487186609372858193798768785379509066110244926470846466518351307760338203283786059668558767554498660455837049527455858094564449048498147231430524378551023688091262196550584757953568077241868270618210178520034110465815621866257889258993350865141216101994068165232040218169932771050459713220655780451792729519635846542125918937519871996108474910466585595922489158031406018566049787041612465750311910370403966956968752798947773104713463948147063480357914380756052635600977784070322126526535859879683970679364357220299529867273154309948094732530904843262921561394063605751685808706161928455619127078173307248229918120149349794269226437001087060431211875495884085096586604869734875179709145285799912518572322709409704959542696640841640503036417261220088485491630520952213403469940233001270779328734578388946920083380325363123128150936163481029577112515018049380155660756744276444195724441907861905245098436431146067609930959208296608109813590522928297942003737958228214558435938700689777868666332572351207878056459956308631112633310954704964967214565281823464846758809997415306954549417784493919900406257515995230799392262265033948007997811138655769873972195278632136146447207368359960928156752301594064670489239863478128491778774807761602393426621047425776568748846256831800225799320502245839522188802976009848291926470505000601599332545257995045191044436563405067499719831111093487505800747760150174007188656420206059368820984315576035323447861132006531535009422133265186918104873201855740811231191257824119409829856108610658219294503099480835366345133810838563354944422815302536138489529776711960474293189578162121433386895183942990640002557626241821355240032717205500011413312254949572194486245789530265404107609105005808406887759441475781399402872234011636319284052877952752495256223417424191623154120898011037849689826502091375831704631603733026979374241373026270995918529737025382589318607854912845473186692491619288618178088377355295987434679189014979757264661034510986231355965509952824557606752416961336683439626060796523203730146118682774711755794577541772944956969515333231078396052001892539767383309838011521150515661016305347710357960522973090917267302603727809274645120608159458105720385685017977480622413193196405483965653869350801185984570774135121268508272368075807276983721222040251912038830365473337598289451760131272445965270807028519857469838000175548825752792533735448783153175461983266625170528880439050276283733677840287287625058617128143517699146324666896483025834116570139842403401089559369200275259883969050559718854890830086259192894468514482117127458638652654802844731581673074190191324874238463905741322541820916542435488964934067896849591533925179921928256997673854208604721613126862570232898145296316909332290627927493274743274389665709964730996467106869063470464243082547683405742205188354570338718573482809859328979427734468908081035464574942244857663998254108975985756547231171304274320580041957447166003920446997896530218543223212386031161085335417886668585790877042631601553373340382885063671419283085398528709071728616488004203841255246130445622009043925825283049728660269824704416840769338094272066473957175406344049530932832294749113636116265264938203605425942552793958135390053978419325803870139139277985237077986488039635835393121245633372161619295463852727226373280688131124978980264587476638968080965225228399680955247451032655823929906217709296729024268796601394717616440581631033056531848849707017745353154262908088336618778077304917950420357828672280146009312194222564946795851553593410984922226840627713901339428230905620716681872806043722807860711975533339278638424120554178783941814663818646996147674492494919271252279259027828781638401807302015409735490903566590929046420606975727771256404826432620385080828932098698364609270753978704415758194587802767967541161462058594659833049050824026266638468270632276190782360697950419272441262204883608336852999851060350366576685746087534518069761949480945038650907740954819035193924355547562289674774962963877738012381206513837694836767712330246731860793546666879004662606161454295988183753371469800156400499367814572471036531753281545124383570701010757471872246700706597231841245600819191740810912862594040925146113766990456673559106468130502747661572574915521708273691015031773407251094233122754225814907156678854621260381261388084372791140118401373658648838066628983947969205567702743384652978293802211704963330658274178826897108821769701344109604355683402968329375893165266783688680327159762035447533576508270480533119147207990878195420399888507052147942710593641556072834752114397385465230340234887429954876756902358340737127313751021196295717732522453644566543211622442120359385857809635899778752231145231485022731438177918870241063224236273483051229323634550794982105132511244633411044642831457041517688549625475831675581180475954630132803923311557739068577535958714839040643529681893403660879558742655189940084974914303829188511166259061085767965434378769291786152140275959770166228556782566309773402921355128574564910814639821071967737045891641850372000503524647348157287588014415188757778047463215272634330835951925369214067855299499626477214075735010947116658092004052999957670860572870272973618756361426750310516239781402321280948656452458919833480927119525472442973763270750028870932870013964911033970514398141105591625645069806434815336712069223887357791686356429171982543876086059535499280989525906428421666866121494247354269883121781845230662964695717568093233582600309229762300894840563387968471985164715960547173544865795334206287501988814133158253015852601675137461033597910130907876034050431148914673288052613881526671260341449779610517978270986325056300502386234536699297947428138339981112311216693859224166483457486966605843445458801890904812127359083132407058694834170439561803027525446743720754457018163593690659575564746620325497492898302911515671969736373578802458641068378870824684575264209893892284315524171756010606778238037866130076843381643317037255036243604388536792217443987091452565331225508398678916219842164001921212686834872608253057515991765636364549833383694670214547244864027770647386566186209275228484754420921455538490487278097989478422410628612064851664754479845900354292155664180851046316220108030762300490949627548257282492963609937611624657722512138490377393606493446702513294346833651712641919552764586275981598426413193354465637331793169182466611518004380217465838630354541624810338886491568689488707057597313056820837685249006800308792178564757936550431341247913959997438853868288952734361566045656807042360591718687153891749884992578552003744869146403495101354759877815344525040868915256273225143055521572538050993820059333397882472280814059392091307130807686046654057548736323651480071881360058035138496994620707846433163614794856076502460128230463784736155286188123569994140338848187380419197354593072658985707638549118784620559730382769069302548676717236555488733613472040420407865432899570306559843425447220039735225192524677331004438530182202092842776520340307513211644641868265152404607217108258736077470129661234222280699097203919328128239434248720575724586870557950628163538071217935912553495592969289857396884447383853510770915471124980900327356042349866249162725986942629297577430397199796637875874035067945437382566132172671327525935835779100261206037123921426708030283658528763631269289192130882682073423513247281620516006294684012840920486528008633867354497912145890149157182438269726536852523584566872905814432952349504326338759715857058143826124131918430993116038224793493153090497121497660075305504325950460761746887467578196807138746789323600445515305715960811546334166856554448860347047773305689587300035255093165520691053539867328990796694744363552944764106208629002967488630300418699950653934783334809378469201005815628341831295254044229116860638822132425463975583755418657425100712588944160011582287191098807689344707082570654327957028327525221544021613000683280759966275210605809615357209653676895907900717146183953435094719266161309503429980687102560245401303551183025364433157038400668525352130029786623536064316593944389124683823132383352568016488855065390296519536572977447506060197294853301440822480842547295476880512602107721521936244617755756347455077609166345409989443733525411416797346122837442036693340979799196807894667630445855440209098817050459090780343450257415443543363935010831253275048478936581833561800168173566546627612375338171534682603123135204538429182221010885884048054899758917213528035404386791231076037399677116111215681458718019223030504886308467801632136079112412324307961238611038985230864208861792923151771087288722905601603584678599541585352388552709327511720365398044065705996174485944812909510624862568792060381989505606364004318545673984437770944259408227596337109772931017455621459761410183930793282742550708062059549530843490323840471880721575506889321520504153398777981308622567386074582801691785134325791185302558076907449946046043391325401503213341019322150978495938192965400916085002838616834632518339337337700751234979757625406954001156847339813030954266043341489055153511589096366017466943247649977795430746887867556143847301507767902748735446544358709509977655446892506320310854823758919385839960164937825432509167853748536840677116454670601434153156615517677448710184696443782671661034911383230839803974568858122777984278399607922241721457464768530777187430271741858834872261349496480703310902255665747149390210537762452608516614646565005403828595645981010587232395473864138250762909929051766467211162953102602624783695775177026761647868030201559753920171279504439250842611288354802270539094133743723497219597437302296751844976245111712343331970087828024748252656554172116710515448718127206572353028243359279484991825743799912977477747318113145518761494006690164093158723591925150376102934409929128798541468332182936048242252135618399531960698404481647336372685029580761663281698914086508457965587556664823248612297828983504636752166152904003787958806914033122894530065641965228269061897949798874594821949419091111720550118256123289564355505156326019586073074746540897568706873721876446458353355906247133429361830897218334982340407720368056184250671401463938459631551199270865331381561016875155789243529180125444126739531040127524570408002762177910131669666669417514137940158186177190307678718840453530713574284035398155097367083954185305078614208152560823834805550878835522824061525392481173893323115284273697842733851791202779918054327399730526849038731166949203528615833606571839902970709158796073867834190579041457207568683413517044635839478529115939913807782568634957678329892847251669856923294326887477931351975151641773502155090770484875198014159592511013376698884363875710232805912106779739810442225086317065880524259048958037411972593635505406986028151084371313000808267259583147548712311373073139889118284727240094184973381386902999946574306498655348272590631860019599458654764303425371224682846261609778869235273837430782275404696923711677803703193799898528283080045152552813750899584701798634417671070882462399071548444894012595584535290797882681722475479642946629075705077962103599875560942674524994438566745691227005377750277126937923239908143202645133608613309601785289622060591260130143367690122822285480734754999801004506997275331564967382612814422575628523001983162180095276434612601751441497398616593103925193931698478343132302027350823904527187403733922509230747085931353535081818097268789664847695283191459145434642507056982053162670345216397554747188063291345500997707825294226665323373775371200644511491180415737525589057764598642979700285313326208328799606037968337137637152786721736797618078503255298180081075236917914396913475929970160744894590414538536145989330089795181325671964032909831217690486474298451040746879403636569043320892540494869693237822421129686688557030636168432115159634792641856581822308552473597715237156516148153989320960355268764104859620887563322909430495404414294767476332167929973859322957579970113767719045894973167078814284758333539023899110563672736872278253130738392907852280222335539562113762789234079203699488148724052667569648268782057222053415562994136204094360021904508349913010428177776754280402475788295330037389449847502332570239084129477727356417723543243413902553557876998768345941938914564705331121627151316704806502561128269971109284283001812209359225403435978900649529426383267009462172831602009731373972258879274536602508424129008941402093218845668388349330084488190474640539975110711794389978956620782497789519565986202745637483032013305668165141403107617429632253875737135879956836129552749630461095953455927680921628684994069557789820027238041619647246051318770030244520073570236403248352875586508319526984338601833925525712575240766308007952596306085944910212936719824954115565502819584761475652623562116765540530137059209444371744774099821682722179162319461023970933473397990735957323146135828685571299822193545845573405859094350048853176705961904682670067671176867314439879297152329905166771262164126972626335546790790321513138744028041823730179553396385113777359105695732879158709981489430389884378501166940411201241772301400216675691939250340100044970684189014930171544040072765330620280681940612770346287424113420507917760167144823566220351175700118781920474120795475305420291086435601532185284328945362099994850903871982015155790797955759563965435304770588542723493463326516895782414568942614266074934535077429218953487345898368593321086831284058032852099194886289262924744430913452368626935095015265932806937034073641256913561359389742685127241656271304316942546671204812324111808403411055777750749400951321300203989748472377201801018390531280016080386285716142329765873477403601975059852857638746568857679170213808914936698940244623020116747415246519624151749766000073607308671299103553758717664790795544082999993450017395269592540008340942325297873549987131974308458227506078464789787880221535707044333734393893499089568462708341251361399564585493007650913791391246098694729906083579984903030198083059471039584677143582963530792708481376880568284735993999654635099677901529706437249057716739297419741595271292014515746793479487376113978823460353337611828003970830540791985829573573904394653172451005374996289795396723652740921513429005567803305424529493563963213827600251558557851062917382723902413667366092256258755581142305814632141338389888802224138550719162799388438559691825182185991472067420313817899317817353025688486726567569383487619529735675736010134122687794081841212244333239991006675272911125887648689641866695342157448365075579952262981924823452842883674355334916717117620621176660524765588785776272653854240299112428208952842174510335782211159050957128807678348741852392743604985339533737282418455411932912899120173432165617587312097521271509826654530332772647069727995124240147032783570966321207711498167702412604048532346583300858636926919227653806730025417363273798315870240952384609524497288733117450548174318964812853307345285776675819676376002244479591807057265844803339476191544569070801580870561496571070394536308768425257271740930195219610448358778237857548952619311386931579694174564906535339084472206250679955886925054809249327287374776089428253965999255867317633408280678170370716615810397992384081108164160096272320741223706363998914042701224262801336025975660788665683420420574787606667022995997959414394892830041100443375380060829511970907407091272085776219595518071559364688751702958279418549309285331623180154527899981278773861514033546500526893380998600727205697757583987521799169997424428871262025848167393439201080488086780013365662399266364781255707343231326365535518409831234417687356013208455222711988598744615514263435211266330433196295189280033084935133473277049290047488865678555828159298583864199238658077215518334796103047458475812073856897659174403425142743086721754927286214612106053274665102337664965705934850892984906030673828772464705210968033990689718449764641156567200757681453308893187543214152686468060348140805438809636737138784538950701381762681035400784562527158088253839138133882749493491592464698748331336099557017129168535763645818481563434124567861189074871535081349654862540530433921681502764634064859437640908126839257345509018542427863623573122432937393178904500180454332846188846738985518728540965744850827427925243024217561782744905288018378321369352491926418898622314825642110379571873220960839261989729913508133973238231223734204190526824139474990789623568778269956261000863458383206052288197225583059977056331857286458616776922018166922816013080131237183480477213073449131601954551229848850971649113542503638721806134573797183154896204579251734822595473507896443497856884007577091713324232634722505935787445444778308196795186638700165517664374456050417346599589308606668237417064990363446779767889069380976472952614467963136866641827734785079745418533563198884722453277304291359843604049887896746529853287848961159577050725513104667811764209609906067253448598264269528648145434470614273643035701971030574242676587396945879108991185330947151844168926795961833047612372202555215935252892916358207554596192124360896885577461140313045349245839753889939606508262231102143862952398331705392878028092853605367134150111209365473507898791159407299276115449621936107453331687818976393252629464903998582896101487354061085016679265520923548067643989327878315304732305223991836050915882183811626252990422053719621468705593550359530582366205860864566013374074359021353009240692211244606103028094161979067361005514898073022341976629847110545064775195265451562885963959273105143131152102252585496318620547307513940126230884420264202429521729602435122371755827312659218791525564246524266370932311682517138230908131208637010904764136857649167600826096007132283123314293505023214238119671886987297180922000434003168549099435160727291886796874488275316965088253718558388251201639888377011705402550494548248041269473347262412948518015726927449425544804660865281134576292459488409391644380966929877501805078942156809333743563393189570646347271564551487424616600530698249623780092158704787620728215696147876005243136920758584280522322776471674088179851719271017421458529429496472604690773080043928423660435702745084235514792432063986125517633254373259983940468619451093007238561520866333955753169362560245906740430179505791157069744268071536507466181995018903282018080991397272494659783824315917325542550372034404922890224746821104443831842029148985948258467961423431161503849985285053228659110901354778849864563811767406923057834271999918630892757081579683451749213568439210075362639504219374598169466726912028242790529700241432829060350676917256751874783868900753875301220373851059244120210782218271179874053162744602312209844880757240488677590482943293218767545348594012343862267140270513552781507246828626763955582722867642648358362742223271807767475851864672478993946014389756119495289946621579431249191429329277490750277657211407064865650943043842195519458019134634492895774862855774159315652842092121574259456166154775116077679428671828760532763479321549844662159566793743366248273596377533468065601838815539687985286193738028122079796894566756877176360221371879224785984106638155796286393501877481487908310314137663224925491564109844968909919627540816088035077231572393066615558742250028189773025029361807991271251344332194165756654111282952779912418626828191328560550229545394706525077009549880802655882767148114043300783298597803237283434714598740667978390199459106773706287580714944633917266993381919303727303463325564674432708062380536254952817799391322963332554251055023083412653518322619196831382012497749675394269832606347375264270138144597588325711396474046808237047835989724261878596926505323534171114434271628363723677942033263056431944071209990587389259075144491783814098052503232997403434556369790834860681042665478586877843351721858029201540880180806864883677132099101823129858879023532394864294286400564081955855637299300339658373492320291851653561703884940014684642063208442140120023688275633961159005485691797429610113334388019351479521893712843867117035471709668443063508625280062012560460823788216757700070529799755104628937074868924963532444697894517394506728744032597401838749036334139697094927957263475116016349612095787564664019723143075959105299852291600004881879615831788181292379689224582020855669733552894534564867716716460636878959162812175733010513449645886770739376922534003205476051622047599924064538134196161196078232295966636231150381312893498018140115206116241121665206077937936085063985000267922480143808389983278303600530077925598146454004740177843503992569288730919785968150348275495267184054835965403054084413331390705969894873151535329778079754627690474179822868754548065807694077582209821344918440958853613102547029344871499445035228785230057492905145739568544951594429829528164286559919519684361283720688861803689792617074126194327603226524597449033786760466472715109709304479199511081889797028215560539111630796137329579124372349056026280870613763681184674573184260926237525458047359093284232765065028562418083132496528124024001538264945107859163459892707180143043789682684162631382706365367344760726662838109752148454882166477203054089575617725041685548821459825171423391307862112448575502891578630774673652623883300397492231796084181468835114008151484088090872323949866675962982969727174401219496277805785774173518773673154021002293962053060051586092656587252816933297667692620882996962354924805918030431041080842740529440737821230603035678225526059714005876495433260287031891507655089395935413459657702542701372124463246953867654673443037416608169760884524104365607572289744931413458607660039758870841135103304211103114924858793970387821307004180793285293643367532395466666495716502041744210087051738404761476115315991613134737294231351234069582583006909157175397260472457246188573961170621226354887405895052498630169423197037830158873710692571263235480891090950090163932415574602844433352055309136322276792440840596479253007966431628688577176977808882610353384191437697278198416394251166076115875044701570927172975801602281822239884512654946804907004903526313331503077758355147363295709288528230330036425120322214489426407493226455008234626661116811144713845020295556145775494544420166848908884245307810792881096456338557248954931662988748218835535878436773764745148814065777038461081580595279502415327392528787234755050249655252022957178429458761082017599230355561959942024533701256886324655655158501075479665913268568025953904896693427444077018039669159585356025437181262426657230781977406287915071053890830909457351633941289394539234023003354325891461571274996317607303905374805609871225624291372555799392299169091636119878934059124809798848645469421785998876135976667980693331679618789201756738309495096934450652691722969407724813194470889921045527146082221359767474339807677706098025442097332814160542073965386141797725374775486616005553754051504346520419287292801228080924891757568893102955338835129103436601930681248472827854106177239020205077739156793343658724421979500278699677896414438703511079210698857479021940236013163933964883279917092546758436759511888524663510373081164046015252424566784696019578453045485698782091559819989472643028018031225611720335566172787561448089024331242905884157236498855359259056959524946421914898115191339008572175714674302774354516520842532186747802817321477441964328716527173763522345479035590722062280660548798034982384696933014588755396589920593782166732063417796474853113020848602050611820488934877342734032289800786627472077161759256097224382047387914234001239354323370877335780128235281828613771726171247916549745726224238568117449004425111242159575633748138165403045759337118175366718437573641436811835725282332127608831654710547976577106107486406544429862913190769092798343095174402615178303070752542615257286260946206988068090356546479854937678025139598486322540585377984886770820877600680283634534014294882652974566159935110529884358040696278838376558259617066672773218099036056888177480205254285128666399942303712684048754446738528933423824004163497232681956114691935572297555976484999945826912467026571426034550398160368216691473692098689796038995322120106767215868033821717204045375721082015273839736249739360428605324867499048008522366599911382505450910317617001118959452813902548558877694985629529449125297130142727763376550541154359003450885922131523368148851389859445674114199459946751860184586726433265043507172716781308420771552146860630593366917918140172481401274681211695277862372511455434605204127275486572286911714080027846307864937511765725985457296279167875533839262594440209929106840340326797801096597958292232394002007532575155342145214533813544474717686854209730345254420004854009123317272400543230120495074002001055910124522291349612718301008088984437089510480968403165082053777040850701452876665672044046538600186189256782889809274682175727251090256840989911764538504506278682802224590443370536734271023246155064321713636119587086806051572851334893142526069455906487685090115195725072363036836870748741381589244957891299789504512233780989697216445880752737691121286641382050934991837174021490082208743611222772372445684061983364540627772266449767915975069420144102426785297391725640051638353526719154701876151071978118053715162448531160261822002673011666216667183369007787810259727463912362452178560901795861869487268361198772693135687955553605582581195810288335891305296991635967580084077504289406626592737058925995999920588333728782438677353176039348087504985988126084937456704237237666932290920149509862246474219580412203406449094491756199856220182485632654066882190770457763448438775388051377832676511850884056145932925730233336894160882736642550269445681539051868532786635437534114551076451694972885607787317551319029230474311689477771349118524488558651743222074324039158540715657572620636931007722510290069833366571271523025009135282769310478326341807595625486373584014624205565153310214087032645672939295206915413123636034954695958884247308398667968488696781870589116497936284855160113816980958647411649691211405747894353235009906080642682529491547201841489421774027226413660977339811762784628598147402382009465636736342213538174181684984989329638254426197656122700103530170072094180320424883991300079558257239990180811371770092637733414767443356106159177019883152448921589482398586581396666901331478817170550449959721928858563753273243162870436468641407422412475515418612055365002971916583082306170984093487745936432715344312623865150738560559334909628363697720651673969570451516793775761797137804393143324031049506419504901306237582170797255615087626228561771590029867808074664301385763390436905869430284929683327024423951380331528531391765711296221954950996819826704011552898683874891712419773258491748722601144507351283612099917638862622767061856540051871167169732230474536822912432854097172414443105741160834944918777035310774475637685904054358531307944121960024011354893089332656407339189943488337350279397240090550159676297603266522256439300064266138977284114678550653729169044666658677843049301693860363860455800476147877856654389435944187252317492195583128665686857489319472182277429228625748109472909437080671976962413863232636582142147018889257136762679237938958851339675660525319055358876479768103792072091336251330531431356376464022121450279953388893352318487876602224631790639816157894795023727106934165703101474357666558103538243504111062283324748534561845077903656755589792494454684876312436896672272683373485429246900392898011493007481183211065412878026775569060896958729672216809787746970402689217840091953196118454086813673206111791863982962839717836493893541162561359099991798584758575286093128162090076769168740156408564676321212693210171877859488515767869650636676444174519793587614553625407845054880635791996245796173971781267642530755231727475251090835394637431151513930056857930768998340981173703966456194599151824641353486730176749011479917505218342049839315883864245388188568924305285323431451114338607047221608397956990324704724994261870944245455680227237923877242202634639040805105662562230136863048880953069314125109889516594317654202760812176583361983419403177708921525341412436409802758368230878578505166908439562712718333689336784054374681342359081222910816317766366532818300819525138529410625832893594344615411757125358197095442467283288706969342615305771126885989581928996622571724891754077171156519550041091083979385131223608918031648885114731444537456169284409472105199672785333536464534635607226503471057934356687696687562123913128226043278641931600049172283794107939591226291520453347302364586268010228387838662998140700360438604672055300133782757455108611117186920495069308181546135535015017233424877446789081641911076881548823075412137431027181388140796013738290557373907894839201352746424915899789053795644142328021026536945521555955314525002159169143043863900435939862693709735330547848304277905668126861809799936006069343946257953403249421998953718381332960314141442046011669858330403545949367834775016462930484917144354090372484286596600720021518548052010994941592531657625554824971696204648886804361467843557300078594028594704345347797174020954987538674196945409006926494623280742531086409631532614458361889011057629179607348404414771394870297381346838686838725523729583425711579067831824294166244493807490534270300942999914914286150089004659573560107890253398748613855922982875321472215836911174810826109526195593854524581104763933250468204000061907396749607792543195988194375445781442475454325037079289523147308911062319748402165486691976580553274364319348153554546290733903296109539074074425237915352795981355473835978989110347809628609727063808931779134494403227051074613049946992858193402345890912665738074235677768631816284886615298653431730754337615362693633750037450795448531370502931313176451826652308198759777977685674344353758443817363923477491010738199830926171261407220695090300408374670407511358835107691294105262914021161852940940922129357860399030201237892431074085763249277354631670455588958159965743583469189180576331657422007686047337775891666932131246941777946089537350259518589570864362825018529702024692399827956527183197974741034267161196115400836276665357008148188991247884888980737882509714167731587935957162687491763301555617926066729835725620640641571329152589694565150219346668845484337313233228325540557446709266575239172758668937357631867296783335551085065316531962295583346837973604051577886700065776868823962040131611995796156850856419423287483485089014283527074665685521930566658312428487827317614845854530205220723131779544435077236530651627357610513451165011878023037900442002152594611880463976851756058230825283074522827700430043526558573016675982291123831553278326595268419716365276122917227440398248442923410187028321460519247149200606464411231422039616885400202074086773484695789178176428795387582860168398181149533150273992888195037183009512068254988480487386558541906240349196585961454102781769823538859535840100993500648585175680196945099977112481027002102751407024903657941548124101743717141454459628045063029679423336456453955294597532745573786711530522688966491282594493145808638797664554765554906270007811417523304537593367128085350174343760921889983597696414198773353838905097638805592106144451286434555746132159905854814061549081639927027605131566524722490686304997489499673275070627312780330104357131828922903528023392067090549429787952792781599044544814238374491764320956637326136211788834630369248856390998987986464322026424359772559878678762666058980268724390338985745876542971746490412355946250697122075256086836371156380158212593228496451539671183895878664089458956384133770579681264961056500757663993870048910200155627095037621399158005244462708102399014520762668663644056888506150310723880026013874883710587691882934044217250861791881414770840303354834935374246989719678703736878220436171817391123497124580419502191195777938020249512984895943419947169309714581082893191330415512236954028512150660371844104591538848562960569580832193949478360690764085501625786037005202282680628434006385755448355556967035628310510176337279092462876762758445946649535215728957629039637783395482856470661534667192696607795422618331160734008115483437383079400629203368573031280443112804259624503218775459321077625147965522022868864122895130246646127267744747444590816859223911340030011212540019215647000024975034599113344448981212025782921109019776125137937912801903152575791072813459407988309594583002282313339491987073505497010664745191036649468296582955569011089266505033693102646151082699241218750611747666687414708386311621383157447900422815240696798485477796666855881239794581588410862069491531866432798797245366391072870150662717266517084564794479471533330006624485744513380470006627612943449490772034846117592285348699069543032299695405744190275801839626563468511905527705250097096124925284297668789180854867542134292488268875109158266797365152903333982369962991230127536110169968505133568046155669456740143273678185281060730214928448203686260946234572912103018888345259572746892084406669281521123914427151986407509716686263184091387304585801224867335874897896669949310650254136785256452574721587882425027154521047182055866951311852452612497346072965849985781950366271668097044604438673362525478907473723551197763476930898893344721757728385978208966174069645582880011775064587073254913328131211292074632253422116213835404954218673578010965730572471618023496304835645369371820796618173245923451897645450245559951626892653292317902159624057984687408702956704551408342804082611056964634283617280824598628324461255228997556932519193657580107114741021852104494563103279160283190186872283652830915035992965311861466565917645917871837963874056705882890156106094023602950043956971835763726008090768726921310508236255583939138928704216793327173428608606141868770522905699794484848034218102849372149632495011498451121894151170427345646604025640823117452590227624590474124547278172979704593207031092714193000907763688311520222010802988610412170741670299554022341925940681389724686100278598271404659951447658354273182113969604917777570708724437233545207088194836130544577589627209549026980577563914526800891205280483587029780999818781385115184156100039829218409756108385430035632979637298474410563716683752421167337991477691684392421080435098215174161278511447302232576938509445568549803483429235636849785602609984236373719128420333979440062579238661209933617612004060573267401734570030097446777149763652144324343337961133983823474959089062652567018258581108777236738555063568152201470521992958237901226485035195482217219261661954456217852752368342238645094315722944391638668794080518925447293743546216587360126307183444042373277517020227741562663189962478201188336144098744731442934498818070709637126649898027236996306413657458784428595497315047743824002926264634048072969335222902153728117397200543447925550502184035146638143965956040075443368527162404494650595414602354264540337637393280741643436893994696081842743413642886268393408422948582941179218598146975078978711140243009397622505784665237237865103862521269292917665488461980325848551145768161470388329311980162502069882639524579440709487694742227085380602701023436569667604506305896908741901176850492652872945534588286387699924910118446644877075814634994909142440607436847698418030358594913130772998339035011910920340754991707150581940741990455907278280469903436627266848155445480933975699980997024347460937616778364837817184260232564884001028011900446517370420331050144832459234275595535549136211698044598091435981879984005603136738517241477700422754369325042629315646715371467255956930908007968530913752901019828558696699182560134168814374874239877859552369095304037393776373525781812226686685760116505493902694696951938775171862741667007839390705338538791584590314948432428186422931032911830207925134136083829112452756179780257869002694243078479586580997668216616111144649309890714151504567603523903589027120875657393915574781481521948788561532597665842972301206604224169178113849852216927562877474053997874048297002837074830952709370964892186470229834011685493065903175594426076113063475502914373634185571402988676628007764958867003205723364730295491561173785853003836296762346982130266350551137742819844303768514135063054071815087742132893115727433936691230437850593666385190570868946066132634743612824794239094252323417676049982078016855164092684481208761401119549097132775931012759425773776924093113334630529938592436645728964900518556869063875153440696322565763397641771707654439749440996498602045746124391852023810718158216946579094894249377885931865369455770875846847909901493459142075310647550283737857149598513407606344760043300788528643082028567693552975725389906623256321583439503733599954612234074389243101797890368428716116249395302810459147316322331014385129897896936275124981692306980026315429871604070991425284351461873217394589085761908768371992763813927630632753586755805585924449993490481754545781343859421198084930126771581746806397741174108838973366238303895314933271420349379663645745494318653191869348191449082472946573380830029167440801302025432465020892484060244946882750916642841974276590496841703657900322254614482961690983562467982732859370680191411195295012222897967134132606088658790312948066555544165888887026060208635311997056325860136072572317668399459514923777798883347910424808682988313826451459967259151007072800849707680915048007591107672134929625469914900010233583889418689348450950847911680162773012896409058243480255696544751382458397540120174985312353870120595373911654376223736538813393929948962211977900555771064198254910537931035567506242415031062032032495703296047219575067131882476480344195362120066095018558776096589980490048597012440802753249819722464791174762659028229939965634533323767659633848947343163391958698148210133671803045746150495826333485056566821708289255421618973300905668040208959557214666934315000193139642359551354274510372347851914592481594923698999524138692079119247341726654594631315084021798385350511469532325142928865303088091036567996436398506751767799041906781353450960136769714835615789567749779156647105269914336234327230228831999002878329586623870388717356129100656615074385535447332349107979384896245809693777766356609032912855255267393621556299036550408478818487946369696119930095675007383941140163822785905618766961114233630658044281100933354166858309734258485813643715017229699477793971458412553632545244303376923895278719230655844227705110954903621743096153744214038723063229197844443073973222759861396908392672401851245434483178593148833334294540796362387359032585818821176406092466412229494171404776423504693988564074418406449866992362933888839973239009980509314240707434575604032162399366724117226143778204950892297901201330620799408227323304158092219748240811324543228365207441976965583953790753169184701536663006079669983896977994981608097554048224571948901647920223499167320667029093535338156273417733478860283373776749967795324449742810715962008860274739097096903850543933799829660148023894399392512969505951493198238751820545810919699109240609614392027217332767793017647631422375888933617146120000213397107175711629229903386908342859231972573292994091120837779699086982802175265706112995499162014259941419613869596790894361404666215596147440356679304829156333917057335467383129472456774715359360964810739850563349052606909024112821886548313015060792582813445670261967573529577384040977064181806164549107592086249822456064818452331519864177477821501495329030186732453831544840125758662707092981370348330490372609510081630434806553039920473872558896674224246659838959616168628200317966626989757358263428521650208224838921772767338057408915546126732817563601921313111687007883914333382461724377972594331924041892562482978335908339347963621181341284260922588485780374629134801172865908528922980581058527716218030488203267645907067221858651171785240365952769225054648103486308982647392168448763207159432004992694256173394926582041274176086647613398885170958457879026049065628703751962044416735300081943216334968512231092671552961266604135656065698521335228411243558209457574215265210447187580026289199078412122901029954269914103545693276640322859188923209680609919185587394662646062505708850424995147008763940384641327407709072189880932444859290359441870966435180964765099207924688867489771238721942887403870025433691202407689754684195858999942783836783224529256124208457644491648937615186069723550605651162790752458256858013517620357446142255275692312437066943291132288399265946381048087419855345995810847331678600616304940088100042282074220263492999508074509919495014533971224586859716618989257680713758763985223824823182659917344370054512653724753651231877217815323419262275109850951703854229181177813584921333769157000030488284126232871753847009502599768881775257687200756295756895522854920218364815515989781924859107969835565170593032002849657128975591832396054762102913053718771525925667670582005688974852479399472458947635050677688551951550103504933724438136464759959812038000587222785908380788463586496236892771396800214884963715865400076900863377216744513316749876082674613031881138316014872537606429167112061863421174287061199681074213035582346659715744960880756895623192853411509987145187968921131690486134806728338536786538618150620433626533118974819251097994181148405965183416110922340424399796922782464595626162072110740238472610174921893491391323163217061559980615060799799161012976244527112237263094267567313541123908243615877243814027248167304808664354048071339927420778507354152515613213455350616373048843222125523716241006348359607478553605058669750309242217593998802635672052039340037880584794966715707810649324405719828462212104522951706093158512009738229118700938934158914191747625984129396265168800313156817372613430767435789620757745473819933793469530617381026094263218139917474997081177253954956671031148973318687957558025231383452492680330845958216439331168323774158802565526539997738177320784054501272477289911634726270743809707884581585989678179031271663070349936923494985650509822024729765902693569950166200825608506124389803091616381463241968163394223533333440483634897280976515073605054692382236930396056621495880566396516544970142744729363214503233283716335645392558750868188618543158050642675214007218591873354831218838840794778166471408026335389542597102599766553376700526915750894572999778440209803000096973837940548705750863177757386276013019106233124772828589001053460716905073081716716546438141838226067320935628947798316236961166171332267877213818416342423341472792393263088327906197525316312019962377508219423873335047078460193862246632197838828256795670835901318311260068069770285101829161076601731808486055160890367983672219853795723655757303306111770185321194774639478270676034058864790391482097483683689860350803543922114622284362120125761353376841076595983768841613424701253418306663415418617045019743246504046155061773276422997510181049991632500282788098601088997437069867733281880793307970850099573698511545123953055967059317508922178804663558698501552938947719886268993628031305034265749025968938435369585052344567086465114350608221370956455565703128789662430072341240608931756363509882313500514016169487790407896355290886929778519675519723983017778963777540854101691531922851196335250446493025320512119979374331819792573421816835398509886927024687887145637983743906129012320703116737110326553908429146965937738255667969252290083002743857621436159975491080480937558597911131705631762179276191469819467984174551252106643528289528291985930900936104458380648333020549530769889322432728376235574697316194618975054169611356563436510830028256342171957723891940237591160952225164849319455444874114164193060768183967359545022758133867141792906447607871661652156926454948883341442794073976191287725855964893440023484264015003768548716005425586362459086930876473205534582747375141122720664980458727261371961953687537713045774184292485581497827730937279088263274075830643838476155999344197980162594342530434969053861056469714822189424886699625770105018902513732011472252916456221541489082133523309960983173114919785034291709780111167198977840031203127957247224321912533326382225123059305146090942530441250330102652507144466990580667653650145627516726933444107402925745813721698170517047376813528891416679940389981248802800100805211209276367867231183650248079405932238131309426324753767852298730055959742261577711683109731255299328932166500471343855477173011343045528088947792562947154015566295561534129729798506445534803206635114270814728870665104608771371383634191333688526608943184242843662231549316339871277037952264239578999845218912743189428307768164096680133229903362073219651019509222689310867104538235697815571186861923072265047515128421016684753083767237132140875417991696584884103546936778112685022017898701529923709522434637111704603486492388202279925411311952362611079625529565668668597547529963990472883123574176136604059691551208586160761097946990388803548653162583929741061568184801857293921481784759863895954757427917374754138276443029650453658516995427577616857909579961511445088275486974445818021930268813372464319661017629775880112793369316487155372219199457727642042311153053722788104185787229784116436024972588373678563406108970058411628478076732323392279966455181841645560492442580364711732646680949496294631742173751829088992609643763820044926470518160387502030673114430064505227048206616697874589107847047451702632827170471604474279714279654874728599495623586255168700751746827771448076027817266194966580438073727945051383476122623983073818257354787394727042613268468586288590693941406945247590016058978362797759365561737945169471415785670767580167986450222537571389153283993179838389285264219687623852105582235556403476792226615225894109717669191328831445819953395249752936282894877128307968555532504248229535802777583080845530532343761043361908021578587255932647457018451105689828119746965104652753158444705100349302313341844951200032338566532894699313897563946950357115475132815788871368498666569356003968543286570245098124773958163522496556733215101970818236232617857051962680337079294176049799485305177106809313548646805495106504610759213675254198432551360643135902578011731570848537328899085605364669844107965325746740534170021628224839017428284047981940387431470796905746503963131045018618531142008294195668519487057963238445558166739761485306558187808860339492645242705804906275530813513857909120047182954475892009927534495238238056607004879898651475011100809083246303542236257926874573953462444497847795151129222397274718253909063512696090765880948047520463661153486308008534987021767490253846720876153697182829510359253339268337689347516237050470293071827056925417370705904734077274955087087813991057739673957629899374431755988845559539760000691540933348366947919112955517382015907458192105754310645882514887852763526355961677909473193938593299401954942878060163885354248208550587051861728101289700035557894424629498738109207058264294948903436856636251177715214631307718967101853653609162772622303910550631693726574770790552800239694263223858885921805591455207635412118744787276161287390481067404636233212932772613261707608251055091972505829726537400432277915505896105659461140904113104232693204858624363722991229071074315723365178737165497912298642630224741596146815489716870757928153042055084139821564777792068299716144564745599212256544249515760864511180954343817416102374327435610595328744954485983568591202495820905503847493714002567311410072237445959862729822847612280554416102042075687893920600600493819518810919938091161111501473757855876148250484453765924643618325002582497132302326607306796346570275563854512787622456811600535681775665932386787471912457678914837642955205064533752867735548191509306442128304340734244964279073397528676784539161845943677276399087358112455620014369130556618460550998487889369504287002928827154353516031821611658594455930753806651447956654757642224830162369192566303882992804282629699170506755355272672917561166193460161283884206028164077757214679448422669783399458646719311660408600076764590804916625808704877353500886495366658855456070275670829643855717422659565918741076487859413470247084662439351704938670701117853721611107589702141238093831626444821806301334195498788662874657351655640045596584367895024386122708014854933105556418145744932935058972055471689391079893402378444897131445320779303641470658001052873303002574267557946519440720570180447023550857776396005819852378499550277742358696273366264648827845310022377075537098227303352616496735610920913248717923425289272942584815478249037330691619660322337758799058958798411605321607880740376674307031881637887876902082158545384886499558234484697038582036595568658738348826517714652430629270509634814253102045396527007074599551211168334327844865711530934692313847075156465763301478889285421826797406924678784717054994661342760983520576387531760543378056515777457978952308553769452407843900718431010141964700057477302992529605483273087407199098106049184633672605932600138814617798451758990113042790185540255688291841823229743213053739886830024222026580499337060143173592358058455054075922101375286040539456600712381073021551554900962128332314933358793619814169277189550954037392385440494289398171605276016199277919496101718896705081654219527880049580856573522729717952999278448664785852334114631244661166442528940475316482278699196625130552508197587938750690123349870377171843730914272092942231380593535622661375441415804769686036161959824905618181850768101256540567677763367619885841381448268519090684028009247432987012810859907181770892214550164539097851322106870550495242137807887544206436991395813742135388589738122849236106100442073776442986295279365604510881210160090174744029568758541079452609049434302622385650340336074956135180373339685328673936905214726671962565784227432230857326406261062105284248478592563492472822089673472328573555911001774096213495667123044945033247206036113836256772801144056312790936972649352459280112321197392772800858999416423856685828191597926818607827701761183256086972624794281719935703303159652687787872140798996522530058157972631622655299863425948361791063145530018425224777229073727097635378603643384387893209158496637093074121178335743730290083478167069202678852300647554508417572670520262321582201121760204120436942385757920457341684320145378250219752954691793985114412751304434961181806436135424683761124739877873180125082802268077200280524506916874632968514409571729348109869075673820862867647069784691931272059662009709217687097327821921134932315543833242137567259165044453498971406671729355651535323799689849969010063983401393699933767272695524808533963964030368131516097644792655379724502096577993894462664614698445498273563938566675083490831060012802371848622184895812157494392408700311533062538898230202255237677162992023920476844997764032214385204113338580543099687245702137884146505617799311679444549345447322384730172436675005002811891787734824336177533428415089416768981869778257992518416672726356408530075198070672983849434491342268591514780718007518189774310760839451530638020958603836674684723574358717764894514415645516076151192193829891706659338072941860763619411703955765221172705670683316822920582296859013857608357099027629566848752369910588688523725867801528699622248761342913670382767457894466636200982813465877255860996834500468165516654120110653760526811186460574936847923874240525727199522384076140308365558067561271667020309282817812277140127552108445684003347996780499180959974470990964043667417466590438886059602070198045536748064325453351453292896053414502222824325598753678893942731971876191854889462442052462692260561955611855225027002975483420084327602928559782296720105025058974164333507019399386164532045697188130118523097023565475814421489572420903869453474798179778410752015183048630884874288314216222800141768114198631817692859490709788111053597480918882571581553691855002370908912639119166535859849917323127313623207766526147677210537336731616342281801264286531221761378637737076507879337897641716224902760895662076172949359894299364447175317892537580798607891101761654464739155321312456624371048447660214061867764421022940899401605015298778889549058505130067129790334336980630817630237152630607565699841077252282799675057567815026878245976335930652487795298551392899312130462760688066025804441682556324256537645342496329401455259368635021959285073392375102975829925645759819248110563729993379149178600439358539782078492858282521638464961895442380214230708951138835565229394389623078861431103152485209488279254776017894437447673086350978822556007317899838282992760678116614818887965273886683166011587072897655207686226769616495266392556370848565039516553292746577079756877636253909434801979095515637092954733869936010692235356139313955386562145880757700153000410408620481004073856205369712531441618848686734544113365834038680584714044319190366845009151087284897062089262801873873951148624691930994245079991575990501530163877792094465998144331437313938751968553502647345672254727375411264506901507930867477011592646880447035947591091379196071653743774853400473215706095775995415192122899822918777359288998659119089303319554510199776663188385787255160462159055238643277731721562103123127034945596518937470308016361082822237898617570178216051704503550972038387258419528126635303323351014922387464542217381750636653998201891399715697737303410006003349480177705564891595258135432578690703803377470713131558007220931462452469690707192117157706989896710368261367844306201116227645790374211873762136344777750933091612232949281404415970531646098255108239543647760150601841599361038202558667336206663720062908496255289661941850515364816368075806066702125953087498725843401114081585337485331218023038297384873603914625109921054486648192427527467328375897933211874724851333764412175647020043687774072699185305384954083996450476479113360429036480640319235092463080214310512874596145531103292120478686009509802167248981579985737417391510055168591937164446304718165439711574282859091238594543305595151298022909190272034238591552178247378353329383987156726796563559309295744227872730361378678156534351716459729059741802944669768574683380813408821306152151242784295728216115827548882367885623419813701186875591320163195836812369395002190072817553966578954267070725587389577135059696429518062815309260077515924684920232086642917484363878514107571999239743786408898702292056519453189927354056761888610860035703603537482518951869755353847314769708199450656052292044438082133205984028354572633806516034090307417992763674905878669345606840034666788987255197402516204593583923506091728946355043303285612401124549316331920504302180451041345651108153130350223860602545778041796393548658870073918879890948426875948825985409148687531057441816620847211526941486027314402621959221004617083936339701351853124481837369360858949356533773565370490781542540730138581085824116821573731732718135887215631774226187172602748061562594399110148254782693482632108739148834601957004999391355170625666899768082870125324971559763696013440535028320433637812541293445653539734060614376721611018895720162020061688342705328187340745372470290939172271281106074292227211411602461096907169761924307438231778045428922400611127522747987307676843421444818558797672701049361077926286253860401079496483299432985073368178770252300535592201589701206492420604429124049567815019070367219386368444886421701019043641864599177423101315656069059614716117466209671599097587947343692678589221850556081748424941695287051176190285818609916564365721737172712442563538060039256250059249068327624234240697227309080576561285272837856126367456507480165714771594223703956972672898609355955238963772859457707676787276099407454908009999336015678358071651784598510480314413179314918307001479353664502379561886639357812822344335232637048093845637627570727232671912499350465495708534454426742681591402650182413479899797633545507279289940901767125251862009153892992534445460125923166492232666175454706631519474449972944250461310016693056111853785555797345759406719007798433973704755286971775568636502543426796073926007368624677256149035183298932874181575125571591528325905403401581534982432728049485615076492096822243947499512294989609174981599123395318947196968568817026575970548246761132475971070207538362608990925399527391742967598461205746808225281491178787750890764734148069559463296044963763580960628199925485766641073854122945605104030154455706968038026789476209188709271620978581795360960430463574974307645463904286072592422855481271044285710440538087975944759534096350383029878728152164123503951121139769377011448400103881586014386122953859863702018036764470811654373445033578058879887491637174302389520703674726034907839116483684155777518983004924212585890808353688114973163742191187531742118912693310426273455287235256881904397136999174607629821088861743516185481643161054244463971923611179717054194573932008826441985866846803422648982360004118874958025774813044513786654805237223495760754376902404547824912276326020641352565120022571318538386291228235811648084500829998686406988379782107610237020409059644880639780162506815591862575051492465113548714646324981844861462708814296630148052246799749274178777049028462456993278581407846601381477471277773797053109137658842348949698341592524908721522694422064998856799487270457381358885101872941104096615441029757209575880919846728872028146438548281399816927138245173520215413338613294611905172447177826232686020640716595786054700323771437383266975442792549962171036943606228585933824120232184598487958680133026426815874103019825721030553407303038767621501221593564945748401154271156639549092332313867694335188543141138170781138141608003400275900177612958244197942319205999593438218853043453980364571163838048104124368631946270776175736419747397464335817802017895046282836956895896023219363803043644418301291357715950488550390120548359410048080104603885001083278600082871509503640121031148860756203528344101667305486977418044034988306672891174772057896448222042272737807754059390180197423870946436454292260793471344303245439424678819059188132660513162091018481324467338035049886446984851731884133720420551408992169248336755646453793751858147054962687467083403555491362316643246096623023289535954100484043398289880629207886362925011807755291974191029774167488374664184163635850683032498170098684684488651235656976801827289300367955296389036166319148378152634393306238130314777801657052414319178148210681963603355120146809737483801697790843253253376211399290983412030464265420520637941251107391060862564944215430095924233276590670466192949562582210569035691849900215937539011845208558994701598780093140242007937374340587219370937882588750967638423430546894296037333624500646395422282869768338140715689667640994377891233643804526512647131503036763346114223217757412559714461436175471074128405326363386094346733128768377264690836997872216248496009408380557922178135995015611516713241864108730675342983911955310875159855932977284164448893478186703244540002708151567258465080952258932998975238202255860332784036489601322166835580439659356526547507364403604304320490949255900262283577480236839957151396881677504316751564438591582949026061882676046193875217776218234738880142390657750959892456371158785874713982538163653657311760209439599220978455036049414180738921111000048476550898374372729194526159239756886381644909379478174502747681080780396038381950710583317011086934184323661421247307354303882148946538647011374319708359843070901785471614758533154229099295626440567517223052142260907031367052265525299471272859691840867450392338245310624482342555823081448022827495522290639488900505229125726475310065531554472188191819043712445730825580276525280840724787006447748513673794925859860621278308252367483363920804905606310442870723911769143377091620770076622357964068800041656810586215767953777904048849723700045913057839346849231757967489762885603707677335055084438489455307736732926115377457326241933231380385262003476021689830363577820016601817561568541686192204046141936967726642398017499995770378396864856949618756604841357742673977248995565178227024390510463398594398851922715324483582162528274563397180869208012048820730987759699071485216419031850870619383186102461486961603238998671952214706832321628339352510365844367716515112200326307773708693326808991218325828387043782730635506088398849062256250400038880590225169192600864753229977012056704556619439290085180402693391250388856219737726118060453327347000003817266659424393322639007346853759659497793274892783002203072589579956642949133137147018003279821530020991355572745121931899548011473650230866164076615761974076928679108709404755324284219772916892193331846290995846999795369458993850500213370698084152935831403706003001125878174463592586168138211605765364825323011416558843962521886902298881813712018914109943608722236034593615704970200462149768553417321061318676070538991653773583194103303981261912699597931366035041941100327184019628817151454660202754643889413218824794879332631362333072378560103469346379862662933373535133269822318850416239509052276626550427414853380642110523774128776913192050713051456341963754239998188733800337091897356980107169280843098053509040598815425880392230002000540180573599068163880527203908440706535346114608312736515780757122042485741419521162365709368536058660711405100101447202741858661521968075024471279234503612980898612909087111665950220160757715259541453659043987445607992217857484268132389899631404634207649744062683430666156831481958720313026466922122780671309614765885870476022443447776193861498052411928077058055453310475691607410715330477757325460408289282412999158253320212391214905041365397589867638636276089160200880389620572926810931602689577852047970229124539741871668102707466710752377341220256307665087940246693158781570606133114081547751018296674350116009679802323803829025018235276922356421880866700562464376906777597910972984044469126735502697859881072425307917812019747956912287213174041010439005668839998899534427367238138775500774969640039589790399574083642277840938126958230442150065929327184884082541962180782268613273136786798532382646418236546393896992898959435365063382931932027978686873590998762918492809742839032746341502297266533015070733239040982669666474251374474712212277215026348457936852472093765032194578319468768699409179514068917212969395135526236231844491771079364625582091600230926266713252482584601939612705292172431767721413553140143481225958119172273421932692361968946603905399538821842716517304180290351068434849395324938055317075891610880655227810995561593685403837569416865808195862135125721925280553918077871196261889646840489943442264473403687281914441615968027231679653489406016018071523508777811726844596479810146632872432198684336815995067698606100514231065904046786400935693185384485717891654239709618284098950483266987392135927154076037049985487389064489662007460788652704852633996378846549715566818964674833235200509753338188897883765885445150802426991540348285970810847177927090162582332665093905336080915042483624295294371186614268706730998413214225769164320871108395365335599255102277923187572238142249547576164134912123652696451972283055412169245905415053015115438423097068831457611550163638139699404179608543214135252096662812733386138631480869788311056743852786331506574710544282901467141605197983760647914960985784134630845827750739426291522843859167185045968767491329644594158217425925587281458972444220489707703813152732975525665192140637426935220288815139084159002359341916873258108289120369730932970423465699058794410193799001492734243552164605692319233250816059858508671021210762839583343221093121445257126790980725478548826957285660777694299879139395820777525578302730362392078786736429130291780040786917281365712498129996723358767084017645683821349218059105769265937069593653209216606170270005423902520778077685760281942631751056854723479804823268182641989748735686408631565404715768962580571148112312370593005080266246207784798134972235713664344218944297014546367445252002998493472281070921137371441982273952244914502490419723431808485282365034153807749453451706483546812151759963811193109741665448308802898861786630213948237390419674109102259538668247938389134202562380693166451976515861738544606120098874658794226723710255503121888353927537237050355128677348756530531219614981187680677623967132589128803890639592242483758580627800939058031417198828608798586454363999671046569634063420028350778451787611121459847090623170456501772348538957126883920096145817754113974417253145126868209077553670851516778175076799733935264048223084547816397739958646911691501887352922240107394613037669562586005155600721450207513530315375237321359480124878816715397969464643459817261116546016718572805250312066574085137843622169362555575699973835649275068779251090208640690733584301091471212815304936875369621227974982317003371416403627268307917790169724405306058338859351641641847211228015336941258734484506266197234916657900592826607714720116196906414097629020734745067095706709812005812802116567128026606768204118043553172457528089793284040031375545598724813493005114789947473934797244187801617403545397983812313642934290408769221372830177195017981749794332719504532142286887531819781500299089781472693663286491275365447857814333883370068145690538932448564366496829898837453360791398753359988206395073076376307776105092892176442967629498084496383612238445951728014355409762308193892023473214021404626902114985476820253454107731756245374965828518585172401295631678406548475170638394833050855866189896411403710742802543175381639507016913190524204904023503544766017866121200490177121928263729957470786310075200216551945468358801517076024802811609139282593537232967348105022404259172797413618380722699192062773655415972414226780968849452546270792310899534539053673737260143184178101025034960237209663386965789769419131128966834904292350176358830658759468127850497490576289903046843704091418119964869038087208116479967516155750832995819210996155090648450015173062298137617339684036910608352154103659752065357197503190452795252232811376115285319288755967521232986344880362725875074420004355352257130894170053084311485090742029180576252726804860269994482091023038523492065646471042462532002538471363255481680222295297358937580328815371058492036013618258717177135880541851911482407104898740402688162401624517235644255804022038181560059149588269156636217599867841011827731215715899684191857134051031281033438823720036855256739303367361532754952640953870403717262256296230115571777677430724055981268479207807353901868224444367059722515031852546418566052084160785176444371665285569812932063301583785151656662028374742157809555761944153759613073349054519213860438452649379240244133513596752743034632345811684276688549067912862283131331994361435453372918663155852857741642862770909770840305447670208578531972581455964773321696087533577531369191947045783828002667465427418755965181705857418984178116112110499005631488532396756901457872698017603697240575414390190111518828488066723111093829983901560308986013258030420035613730684654180566274992706003117631151703007123291560670813579413421954372035500125263902870509783078612630520099308419174878290331055152903454938038615763864776479895910062325647522189567190156967555377203199206403462286504860836085284970608146033094626795926846402781486944052016777606345832915561782484537054355450095929870743164224373343258049370501036366973152223745874028418369391721293132951788231317271000228099522164960389391608971895099333507939006708090360281105965834830380308178602613263542538542390721043421636068380849019381173200090918554849751500814653678570617686657747129202259526528614246466933500906289537589752870876008536975623995018162471226087852758900903582026097159153604927475445918223522750107582607762263198647997710892672050904229518919794098511513749160608417017207533058442962723564242239084204779058986917224991884735477144630451919568036004694910391075643681805676659346104144124308745883219560293532583953463076082418862131169388825147526281559778132495091711020497280261640501535751108225771487416906532981454077627709328023246998929207038329942361445144622392648439173652658554627420240524423240649170117952400591995085509046775949787523790844592649734508294102086174322509379923042473368791723350087508868397914822114461448325081007282243855211711170329202246333506622428601624964617483775316275405728249325110099430765618134616947675030915361711726804732332399473596010744515360725477713406385635961697603969668848520639395150632302200286763131192551233939090371948608608290165953942615569039802183851634008878535479451653916318674218593310214393465268705883247438707735944461935739587441062179925463310121114140719729176950662440634515189623287210930422488879662822117818608997067751500991256482559462126277781354076647135665210987975021520564326385314521337449203507822990534594193152894517508622123863733358737782023095878080275489801849033626541769376048107187794690567965184069614219018038011153003119670813615081927246971328117332013845537431221635381209703306433308884210069431456181180930843242533754340896266536347449316618949582468560354698139730190058449986816490157328088180730859836221731031009280517682882304945200394434183410403401416593627176232615268352279532392750544608289209262777002014342930248690720738149986505761339230094733840163719999652444978140988458930672755266054425624330968666037860622898478655859049545019148405521968354014121255057744297354030669703694484952859061784207175275048526183403556141382430103286329219153252640458398426328526152927058886940942592474032926562554434908014171637827716609752804384121812468086539787107001908764126685354592550827154790364377672921674842843988818330675478242897343773251511115703669767645727651313163876595657580433400379598074406763012360671454150182374043680991794553478219277976827573106650589100177949507429223977557423767768672053962576167462570479770244007508807732002845358294594226877897967421167497829525604741683837705947463816406652205551442179274614281420552741376460579370780526828322967507967613318351255633187930531220487967633720758095355744579286335848654421516414953561450525012891124669417219218402380612835561755624553219143817229188275804303250021806977056153346773935500357146997187851036962781255628196329569255960594530910559112176967790689567091967560887943568781273926098577030457638612112176867590975176898151589085766614225681342774517296270437838082269300994359850321499906945038340175123767428785169627640276224860155336382906312923088574284580155683189598862277473570759208907432479965246453959485474510741960471828252250902954080353261909518077782566745064177658101385372138656821006160446949362010833993421965806566252216537522877361196759468691258869144821993611100713902616731457151275271610360023101206338089788924689825486971671592780384900554543272850326094582283352117660386751879406973477088668742871719412782157329548880796833026539852377926936073188993805889202745738052704975245614108266862964741310452262634186394586167511244209566829862688319931736711337492832240882233220053459620274293968182312440196429196621141489642126767361487039036340797203844575146861621722395074949689441190891527539411967401296014007148327310964138353300641981092258769450394976240300491270622793486612755426425906863741411656686025824776274617128197177663956648431155643259264464115723503036860297845293975641854339157916224977374985279344691589541275780231302010419237702289756023903858598633359563847258313811351162566731416570812987443208636250770437856719572706024939761118562513328057997550026236660834554995129279109569582673085993345119358390873318275825326488352202496572616708779948507046996881486211056799716042054906337776127219201257237553556228393827087617472055042131828377389623628777009997767744870875385550138109224238901844897361067006881620753832460856756907427142691538062958104454003922863773691676282487219031336540170379236291588682190266679884679947140936747817812098086884371113593536343994620881206743362129822021797985220585563889205430472982139762756905784210267402765290060109022669667083511265457904857092671390075589870436894580727619409926006678140164048612997746105854867446393425018659877594802613827519480042935295474059176267150648790379759755312202284467268848327491459379985286603603217190464035041675315154746290089963837374932600151275645866110537302526521794855791729022576473604829207366622011445704567107197779046029990033749963060173324179441557863442461043006316605669393947754770113682540861944393249925094436234702748285907543181088097715311214078830166766678675699893586311303088349485387227876087451168016686027753502741191602372147332674369464055802629318672407220128297341154985896522419918269413318748379571301557999223240531583968512357063045985689983070642899982883565479501334668153751338657279508793471328723441093772881419522877131553342681665918450129920077285876817493073511887398255097821567257837641240479204093961028045663164200993683223142756560797109128142635521560319368811636638650490450978406138632940679352064897428214628065217997539715879172650453421827715760758891583578312740157874401226573170770809967830660215355237434451683477302379036995323642969885392497017859806061578497695286230228806043289884421847566230159869477017394239206684851246871686779709659692368587325658837429157989743061649713894705420114090005249191895124027946622494312431568160395302051922658413222119541908038667711478101041032197745897309479951161061946794773222532412464622854529827927263971599955258981820497672401436679263887153508849619259664691241512327703122628726274725290124072302933053497692503985359126207968994620688794629781735645586944281805974775192913923376543352074648622559644232101118824257723198516610918682619342366331278483867683547144304999430271318014016069988479910441279065425999019539803731406632805527379437444747175022689164271081010152307044117764018662280258086368695924043993649451825160998114847768442909428822293598836853582682306867926596769944637953109640551067586572057387723682635246342911999515368780324843266966159487091590517328675186130638776051509338456379639868705982346592906217959914786441822999914890122711484828501901830559588936029628679650572221019960513332199131979529721806318895677736245991276151566343869951743721358120258423575519650195893772246506060353754096198979428720240809366995685512380778218813705314607075391367768167694851716499886872970827217922555511328453954273885911207635696595693658898996844893116511056963596453996391805459699877655786393598069439651300808585804397694362826972687735392333899027757269439440746674615668642808943042084805304151008083235105884812925831861675999652498594912741984072359357051874372466046372248490437744440680000868954665983761304466550183590226404517038454262966123527804848963333946521414219003655054473551127506682335735980789967601173206064826871149890041586136821636936581592493546115362860108648217387249255892390738936473517945443140113244216449325729496488659717460884742236514528863895271448058501958443187633920657836466250632797114636967745201248694622529216452836669837312739988435065660651612703279843329636874001154854615082565553838447779462749301949555108763644437592273386988358542063260830143001587937043409500910764735361710311374531147934485963093878350499353632321333366215538659448496634160327933646390594226784505798459183284081886281182716561418429516262185720960910256707722433521389178076460030021751193252260998533266670966156224917959124835682721005389415028380579189735094651067413842530072063790846712445878090597307811990745179625931482319972104344946936829015290919332227103277083686349774387855813780249012945451234999044623060678643519669813149268158903902207067155827448577265688210056535585316945507435777443162818415782219920380876387172209644408023904146503162299325630245620495867860609721669412444954434587483867719601421336599300385065220721130250721160905317383947762830477865707293245606606317523493398681464822929893840460846462078149315865276314033724507222219465103794241327106132184896082237557202636432428635684766022277680197112980963859428240663460485564751658051140410279056231305186207410799755534082087565316615719026286635973675237502207653714244680676532453052281224796312745733458153562124241539940543626020519249534219494863061570261413280944514601356796255962566873448053426844173980442966648858364774633815493161406989674998021378780132930835277911190469931466810238704509415788907692531147925642662422255911184196447929674756555841272536181458092489779689423765512889242282079234680476883147219713702225032720100714771976348653874363929964412663119547097343613525751918436139322121680054090118066206238338502231229617258515373604400021694294144420081704586878826435315736554441213307311489480695406180357134152362825737574322524503393859758443014112070796680105095561840343638617806239818168960223447246350634104199783571659432997437154869523941299982493753495455626890725016343480379688757293570236329781501400794251667577402075443806167503796051587499729146753892039209253219768456118923169533358322894887105364620075056939813260445052777154398991948998102317601705276722506165782810620610447592153961372873273520744120344312880635650271456274321023338335962376925380615649952265214883474221721032568272296999806665164369128314044338117731475850862406403264832560054166723606127778918171096599571707458732554643287173466996089773016889743387809139333629891445061953857638473285034539720150918306424312968899498596239893929983421715391568572861981054041807846140179504088719974282705734435518232404180059530386290347422700842223302670616590668376988343159132009914765194250033066048079196172203137605436435741853627395008342778218820197390514870342378933151701109166233725048263623686139812106643452439533062402819226987482252588556591982121374188871197605531695291307518544729664085103004591885233637280024041871048499742958159926698535561970244721652146386618899331625161630282112218947357593981377543447383016588250370227291008138204953656884214799883067819331663213169744397359322653333658602661029589908160976534413669396757223187051598469087856570722107425496459406638294259851322589745343584887494696084150388918855150449707393113479991172503882273283385154150353073296716346122719949230349279566336997060416099492408738806669469083118953762908833569728904651768396274911047736209221268621410495829825506713121070829071778363209226907590724648190040841120070256090363628032282254748128508150988638890140707530085889445421030888342222093624259859642317738099417431088553562904234472617529777090530066625093048771528316605702493003991435313551374034921013926967173907435777502151761158790063631277188063201902883171697263540505552846577444131500806716849440668011051079112090218409198793328593239524621803601974554431121450675968545825916214639623643378937759297057901998055975185685034034018808055164995138118444696629585891283916904362090976851391950703643636491489841891337324991077644648312332577522166092654916040289763694373657299076621429375907781908984337519908430957463991385567135553579155680557233930783054386469315390314965134614766555303861948302967454742118492049279493077894836450959908252045259789012951205747941613091361121332467184103743833368261625363609676064527585507426351424244261555048854430258981219511591605170013784173475644356001401805222957916098393934449492099110471402714981785611473964588592591252796861474624377386679150670745726352396951864582179211357213691351558392490451214654704005801469811317829411120936310657905061989254193710220430483541114353636616528903812673207052737804949319401374329586768419416907018894011063672636808988968955802740110684759812812817676343113508856624155358610709025703669595135883578415059946915651367404853206453059537661697182281519861211687674861036952335639867368846694731508451088935264552712579204441831565758425231183117136644531002334120276295531781602421200514454140842999545678218611685603147251133790323365822209630724683858876646503938299912762270732132450869607105777367341812459767659636933163421966788548280672272391947863121398622439043113759894856818598969049427157459154715511171725971260018253973762555284237915233713860143885233623308812135079384492860650022931258385874333933307316314172846528608160933627211987450329815257298177189327141254659732368297417135337671728311223012280819802738603256342123832947134399394836264252923782973773950053852866738481308472329691803943949036412766733966630202114172719290372612255052067702991154475505348770299554806563365909914815197381330800260809636415373151471272785353576273074714152315418262047929411026327432959638822706648416302072406892498783500727746526012506453736922607128688100863802475589816234027936121447817964409076684121436282161122977201344461486327811883594772704645417767095453563363721410198548680526997729532678862993359111710486910731517639399467398989317100776326192168682715262655545565963930714821859619301441398925292130482467493855957262367688390010175866520708278279198935960638878093485629660089561321955988942228706764172380990122133321979586918335048947271069256378670098515242613333638328442269765110184983441799576072774873000722115932557398069474997372402515575680361422417989148135356761236898152631805125627981579954356954659556619857324486844512425551574269556457020660277052405680992693197871814307859971597043123799759636665024748041012629310629501942643293608123434197198370845189166847739368921080535485674371064526208109789880219448090443601861010380902836489918895992763822613888734536682468618375886992802194891874480974069010887430300451116662432277736057469305577046209152791113926668337836655829388119524869200210754986294320470907132059383339371134551815060540152991055337344799630239677380103105437335997203360556065816499536951807598692886387552015682269190833094229487416518109037611363772548670463958747541229115847585713169626944340978405204701543727999838778365534187944871587232633128031900961863412842509959574552665674109095240275907808010271275866499929738693573019932243249792390963674625455309908370702085673884293726378689224668860227770322009830819580891350486597655581046510111898151138899798332267057577128591814052595302810613834072196109430180016951778158418801427543371362963818627909655171405708180023842065863313404356332292551073395475740366707522964995609184192071424975340988376027351581426327485489657711935546727157173204873230340653059102840920234468219721405695109345988992697812525507602639460188193435526981773421140853558356662551437859412442494091764701033147211657828834827654994307930977914946343649281893005312585011040349535141427983793985222861080867285284690153888449615317261418376060020085273728757000330087972966350203275254618945266208990448946744720676599220713028872134297945688147212195328716863992859866804402656513327583836961750079214116885546081650682147862205857115502784751684998651301803135176717393315014864876085554745860908518263185401976118404207805928887828284840134603458143145675291459486160190423838816737391863364819840065241246237813899197019708524655367642032476729689568635630059186985676417024287740280487089692758963940199189890554519911511499796181407606096487008707919397829963411548557927374570895153205704348763828482236967541034212368275345631568245463380979699441242457204021818097863725405379778447008897426189921280111248814770607870054911413540661096194155001676049861739684757379573252000904536233394891934420201707290281042407786958934108548158073749630971574718466262268515997079036879092983895490905325109267213654607858127816763761459141735912993929641230267995891026614045277366343175934881696409415498340103464596793394223313042050316519052680610132999570040890954199270990575976132027319517207119086471044912453648205019587224507306634974462524546881412404815590326036123934114605958075322110788990151664844746738529729785505756170487156322972397369585862631978795338001529131957174193495430461987939746290926600816703132808665940961254772534241472955236780796951142905871240599898725629231735892574817552652224698201097114473528386097862232682727814977723673449922186650569887801296615370327208081404571058876370626906898378686887567037854023692188798579164613899076629576458159020851170579792140434792938443930173207233285659392362055779523712486560635290782675745780301074615276019559286382960148291981162105417986633433566330437244241859080184956281060886932769740688485035025369901615866778920371523133209172009039194291851435089491044948902299200760399548277699245255631040985383439378287545505919452430582338480610737790574410305185088107767621714923255383996916227321964888645218902513739997030101327908392447772330225872475692191499476942301319955685100536881344441472125608616832665384997247495508029041354571740393816648578317027301471894930312517850857491833845779483335153047159724670824090529683432134771349062707840323276413424319654004817486640989398293340381697798172517904106924677428854638352088269585194684684152606887197678983021494686136429870080883463643753429587960633826727483119529881366349171831475986483556634306334223471887093655551856610021811028914038433615712147852176530327210496915718660518306410457605513968577343570865592681887859644647631036536792431786769437088691399622898840736903173722113213317743470080442274571963519313518771920535476150998358454466877344813426207510088638304625508027832480603334403756493569029896669530146711591203479068969926745504172015926902885995019429941768858236193282243399846575645329261375118184854163109420086630715927383989704408331762126290850617218109351071236287300558086059870620547404724560926996800636282305583688557285862628690711832146556361964620763411725284516825086478290472831402385988653595352271964977618367646910876344946305445639142444146319495675801897989147775662120769160802376242766007051040485806841269656935355781336497846038504373963940420668803749591483254288518605016044464709763566166351628248726156916298506375292021764028057617667197796925779620440780215879529400957768147555250161463048629323555460256346868579684510196856840407534119257452519301957664989418185345958670031741384775660537895286137389004470632444221915533983799223804800441842217514359519566103602349947566092374965766565091342483131727154579485575407963852787409418508841431496677873471779154127642588708239852232815911919848354111802874429765838924735990448248428847414281766890858386020592460702633142449596315546807621411028799159915452155169974460476501528965659330194840968480778069906436924416350156878061023401060519052751200793580615574625276018546863874145564367222578057287719339796524602387524522657856013955799303297496032708874176426670588777119770484366103622707108555613932193808438076850571101381467885202899675636734078246293523623431896901890942435351411642342861898109301419421155740518452804449216458953505163065839444189606040754473652807060309366838425893100865573549035896212673966587684674007356917033446784779892782639549124695963928074319496373413934892366460236340608930939109505151104621608699095890198652365680013444586485981213844590465565577822854681520722660529400619776746569459572588576152846557736960598714507557873695004051360202444747503249652867204631040030632920972270567285700382579100461038554638445682147494846054049162621760998876808945027308079099598890253499527540793316926879478213117854029887746980741772875211934967988770177566202064218065418034106073547980878277348840246149842772486049799554770421232156216118737167497008376789478401499722248760444561710338732383542436666133365611031510888351678097501670753703575058030883307702578768688551082653738246446635504668929483356736719934921499837370059045191684627975332026138282434294004896522407989381911058627497185444499469711428170922606762438429038991673822277714036409916648047157395831507678414591388947088321727966066070364898487284461644012204568477356198855285510449684383634736320418147922217134594358871707415153598340308622015452572552524635459292912357766098984944677602185082821279013164520262736502852135076812146629754723553441692066014567724356871392017302466278317901283267228372891004446096025833055137272221997885073793443888641188912939008184669665807761914013340885875189547926500699029588713334430084904492329174876018653348926115496806161212710035470850269917542620137114583844491100518963150606787918873335831512896053127698692164073904299251505217583207105514969464740798882639572823672594585892963131289436747900103435740657764170165765707489019951385580703138777960815901792741392146883435969402549803060849968253312456879259681401246147360130781479370421697148281293840159177896761854689539352651243244372894748049899344940916701434760057392498440454675641748720342472931172169676201742722738192474244721277151516103245176837691103537479678159909171768679158288889883670750247952392534241420789431205893193376259062252348525263143298000098115290624249748248808985918188986136341085089720151786708853100993111616383127399143447409794873321544389599980953113464758448550197837862351456044061695435054658276650485547139580655928528346966312669692662949024411153777997731196005103502720395733834809330408793694571280419167097490644394818669231019811566372757981229802423746681301380512533328090842668049999852051444932070726289944208611534637362815425699598033373261229750957258159446784551257159532425437518683625000371470243128430035753545810885648633497855824699921500015475936224312011572484797349195447676855228417867770796358925419007641195435218883528752297812289202490204694932977207332550640722277699610342084122552041423128581424039770785012717263930907749640448538305400977907615326428419350472090446847219915429393316713961483050525846550184037475831946355027321579650800932530948117346890991287480340929208613511516608802501391414344320918816462179030068994106909418107499666474409955228128802575466905314894468048790769775143138388825505830926404480406149195354571810967134946221271947813068645265376268040916180821776356227099310892518795500534397651433075735642302088838211001589392769143446698060430738167512737308324321825670691635439237827254316935863151346063810752168974217366833527095033263187908354781872616318921126085954051744445524913097511317041133571219864203267038531891029344607076253682140623214611719549262710835313509713758628681094184152270857113498445543799291087639634205773929511451416038733365455192481154798483152302632425203322569558373868235124622323230720642555321723054724050684064487116852796095791919898677297106218761699954234488948751228706648950752921704109010873299199908515521372613795455815160389508395582231373449512817276903967607769614483833140303781423493581385704362824354994508791996250178816621525343305310796864827430859440185962379493368686264350004728279132801169704824277580149310808950554559677068226747625497800814341288610309610040693188473517239060435188343938139399322636013569537423614303733184521430675911767196209206211039573598233532443722082666774256133454890472865673607172019123029218157199214462183167230810635496717732908102989114122616413807564673312729101929630262960565701863208436436954816709989789655767532563027677430232761850758635600359944567016050704524221211055853337360838158833207593099571960977142059620780892066663236435757832321782172597338800186133240619283653898425226251358896361394889677284983614338495346015622974476549307239338453949550839540456640861036024705633305548574326457898017544878977293158824579369096792702895692464163196369148482315619492366787526452518850774661388254163699237181450149065126582692453340316966419000235776963751677031732573130526314762435481869363149050627403548558781235356480033592389033140820516506137235212224924037130256359971621650321068564188003737902057068710585007716631737160709871588880374382936775956399214926540924770925549444959440671069169465857682072506731987692621091704843099484131934696579408728310207027811374106818287525499808221915454121310091576099391888796634182620045734715099977805609140066780325358921115971203774966726167682906966939748944188210255890587117933477958995290722943743004079026169075587333642289914268788172852850206572999572888140999873945794982378918249245267412301653122165946930161533941080270006787190113492136547609440294843763938574019836936750508095579268062833548826548146095576884400741946944773886247375406589882684323109835624148956732079878217965579922882971593175732765183006761809881316476255267666881031050547531655017763396445994372407998558382131982721257709815979003933293713781208840600812559570978999334800676361293140253813032436039601429793148955463943786054904800375967852452877615537066776671404421510765174360325133691829599628559808042703401362047810568218307527467387553001832334594494769507044982027672762094905497104041530071914952987439871859014622855461924299095754729129494659458784922760796452785531006996419063723988062188231347326502074948080434820897681447457454042720540539254460956302568887284503942983068814315176178709526562421403907009658910968772746111670745267777064423586047457942043069684302766223087775457267247731116439325461447917511176143905733776754027208632448680028436645278069600202061147847134531857052728372860189004315959457750053618448450513281305001152460291518789434986270961832898429943274883066077248061090650521807936273372141209036396004189696112452102520640574349504169122231714772479017002030588023566113898279495083878629279769679119678800239172938877938589401744082396702648912325163427941231928741013799275970019868324356223463168583749368326916563222973645003435719716080894096738297458481760028873819471697786385338670816494397988343495215353049241636967835595965674417328671550341705084261423007740102470985512610645978293732793322598181950216201126096554087874091134680591499054674947167121334243521002980704424180000196620947184907781941995156148258108943409206408087906741291203705868314200499537462879538323878885542749038761578152269018259387358683009329922433797102349895718805236007812549782566185233361001444407105158718145066581930337689934195521197476014471268790297245142251182012908695189899030890484661096351541283692731954443151309671210009897674750478167470386509697786928528023508505882717330199583061044800764237305548687396855772989275754259563534715257693440274038423249989638415348147525341029085574006804837659920969744974729168849586688180805315545330686237816053099289529595050341836467489474635935061633528537587321335076818910516334583128453669551784465258221607745100814571157700246502935606315646172548440319307326782616164902489453880630806645396673035961914718293004228145735912722136886997832027397253939576608291775042049921411565179830252697298875471318024678480120530825365248114791121926929169787140144360762839992153465836193106011780092153261315094932485595068243084342827156693511321125316871208193095987213012705777059602624107481051152140378432784302416021610299782671721873514146499745764603390638445062623861229421304405950562961074253055333736422074642407283335398216424976518351031036299156881331843757036660016571181076538452403039215837655252261990553468136602575221991398350285896571295843278059109329623175609514951217282845354350311962946607051682533872699334505502451935988318856189226954978767170861786680749420398875715523261841827330699611087607896696004003474625867318834842880753574206720903794767205247888289660242624986224209717777448099104951514553813106530224189852054554325696037264032934012941852701289745086927998722715418174133038073823928303084465937693960141684373957273772879158018358857386925419215392591168023884053674320634492250048716371450741703147296189737431062749273580879803345407589675410694378329975395504882533512225936797355721890428146454540050322925702740334880607726353361442289897974948745686798445994750511121915258226433313576961607026074520022105120795602595625354449090664178805314888800055645667250111525459707204111692145298384613675165559032987159610131373896462561860903429985424244533895169214464747232338742686448151306268872513753241896151920118143970849515653892507570788183174363014266694761382729869307479273759134947030043020628631087932749630015000252737438427038454178685291141398095052684311398855714014565312463784780257517025063472099894840063334662042269823641362063189967619597822816250220991727576550207879162741113797798367196358837911616974612831807129776620343218612327234662939390029437595669211446651802315024082987309777487589838929343657638424229349658278599014843855082638573830416137839179833526437275769805727939196373879995984742362496189549614242863078399237817644517443369360876424948884306251668287319613859171660661170821308048113621774929360866756838024088711029409929501461347715219269286191409698625978336047317994458306478966586994115613103936217900343556359961144314113678576645165309742533615155315606567777823167681189615649972906538810959183362241949953330581165727938827863216570891308804086935195126492271685345552835654622593227823688982072366139074774653439571001754048282427646329237231323075459888188004247503769169845746494335148725536677893144913060408321144079226817679914704573422478127425137072243615092888156151704323584805512489200928291894257724169685758404992537166725950406219054100563042425955067134003267591252812121838292845162917991240778543515702774902904886052481530478692383094967264318176442542014099468016784694513889258343917970291336013211860129817733532663151998582095063720102210845994992924442970410248949775832495260761554899700348150936928173833660040520651588440289720323376862731576128887996549495322759504939700727285405222740016456925592445438413728972931906923430550688233621007039977565198571719674420996969834151161750426295193722451886675970995963347679875916659703048699073970931885919501891757081735886581534802607911151375877187817140078438562020260961995436011457453730810212714058192101724746666174426761023488711307229360750543260166244082690154745719787681380812833266509223635510060208022228858390858536703111753506314356183300942063092008247108548468125780144297890757703015754806158772899555469756745855643820203923025353710147155361860249180768248299831954907931416907755211387511504588882911625601403398707474441241635144387489792825588609502797198707870505413146806670412197156111915395532963849662386256480112130448845491148940147248565799388819822429894668341923125190265122737157925587115768897855033999145658169261605955850545058128899932975819730783064736624400531099063255955789968315254525431809320380922348985063758519298662553078953246763097188137636309610375989738776588669852061318678251238881189647606945969248234490368065684836473168733316400440967132253637495479581020509145165949932895187431163502225959888964464313435910686184444057416997499451606733402850242954498546514728712386114092202272676631171794010673752220707236300330802540688247613688621443976762155976322531937862628615269315952061321376813848246311006908561585423599202230051979943370072712193615884146168104890542737928629158998480950733574197087763123849710882286549401570552276630281675716350265670333667122496319820624755864263742166900099240654218997684481349877942666323065183713866653411406022854683558748351657910320792408592644103774389563812127780750531409593621740583074150358192621296629864168418589738409262965354856668809024440345715793254483030094534243296111565049424968018689184932684658965711148121280648592080599615338871055972612360802550096091962665951613611275226751083998425732179001223168111941430421619458850524261322798159719233673076054372388782196558639564231157389071788788118148932121365933240484905098164581209653521391361197056742050756146768766731689915406616511773746832954415086029144329899019983386986317082290738000779647338838366938723726601132825306443935406201783000068416337209859809481331606283467509772667444623085252894983297746261206318384255848934377966681308245835525637993153581813962637955548385230583199807024302044587814174012154091112490578045676494796587573884683067602182011269741437354106285144197817459919150433737384410253905732856037301069148914758007606823871308071091170554888682736913780303536888114487427472603727742054836850193014937401709763025339613853640735469267167431568700015693252172171083877727332324602056383903757338670320676045219470097288523904325594877950953091903815397805364675342908425448135551146817699342139697414646698340139222015380054677995793776243140907173950250827841676090081793668129506656023672977591029697516466524997088334265120423095811530992578991051589605555732389094877971256201305842190220579686351668734995526764545929482071472462957040293712607287918259969977357758041516108205414827754250448483639975522987687061273973833714197173611639101422052589119877355066833334884727885722312313991930623005696025893109856838863108538072026766097552380022002014560794507223989663687911601245595811280276516728191880754962192209710694058741137980626270269807608275140524322197855423695559439322111398458897085408510827973283388783816536784676293595544722749957147940485314345233666050099812225634081368468530737655661063176260430021883644801162318347326831729685349202180355231778829929222218364841490387872816463935324536178921754885338135498625648654815114951841119949121579192193361064466288162780097732355529488876933390858494397520246136088709496037693704724005304892485891367533034100022035008889453501048131167737523083531534842258111521018035152713897616144693514257218453472724809292999333502155372860964731219750574228331603925036242083845235433185266910685080861047054218512581787184884044473624893935081632704220664826711664939060470375373626673277010210356383821226317872450595124962433231696234085581231804785378331131204866007748223753007060913823719191908759656815171392836418804390613787361371981324096517308506405110396827596985528484824498584515240238271125863770165027534880330533909725480866108072891968734464370186102851322572479940009281175422522481562572404116993066551182401823416628472249748092538072130046217709210803900311906580534953900588557183440339993707146732776150681026749566461229963207852598429244675923535588553309569729789276314122321989684192472168975453520158012158176057600521480181108906738109057785649723314206617670024659075488308071516671100002128304451135602337429184321167965138729621682586457550361290901709102364942359104894849531799433587769654759030250198165600436414883456427785698299561448400035303872978591992194735947917389934939473928576170376415137959924964280185280123328419668494729754116618247934670122831098111382830782058063885511742732956757745192194166921410971009876144147111796493689610442059055579949277506838395749180395040559091154897277722415372757662443187866677094281917325790321723422692441439052887525707883784745799789056342782228234686689047438662683571009725151815257629972003980864534074196038082449519696486699797339295254263864868515373618377192813356043927967871782385311827712966585270068075909567568238775408586016393592560720460686985355692395771677985721044164714240227708292736842021058812933895449447992525626186158654490539360068818179590760200473993071368153201828965206403768297342793071838694969462903288253066848883734173431873363025113050034342789283964536297963364278965153901647497331697852542249709700655706454133686970479937348602180488065550103302603495358834678353229933167591236006705930827126897015260762255513166468909691414465210678962803452141875286656171757868533564719235347501707424191225923651993041528559670171871556912487628584912609547884804034279184479494558266849921808995909868635249293315660743100622029550951313294901555850612381869386728049863556475103374365398856990365883740111216132124374469610820443712563122895315023702809321114650359344660841124656388815034202573648188473261233472335757536768907205393663740335008792980563503400568453699602188937475275381034827196700267253029494639641609414545804283444499130011808059390170662077724127527056679443975825897890254096758040781270080918067255152760468701645840128698705421505765703255678673127806641071938478911684426892216888755843131529699787125592141757672486799935393745842358486749456935489559589802976317164701705015511967907848600976055836007768801264880225372694552618440162907120242270376580975844951872279844571708974583598712775670861260134211270644060115250140328029031182840506936180372562469617694082555127082250258061116760812231123480444077741804903418907351806470899684710590464602761580824740259397798437158438007819165322087789471560627901711759348856489947188889198992879563538512393095518516939163903989215508563494552081493443529206045092630431170699035524285185827436690409617034238423232832331615921974155824971139985557852970059336187258533279189326124040357140084434659808504268776612750197562754342274850416911471905130907235306393082415971036102176201510070235007944031406043221105462439255696292554437443443017758826349732718274386618663358059028289975551175765151780783016686795247767207040525321451492195512738325033461563020011138121905685561704619926706661211852736172635782682373404961436001954488407771145858232797611114348854200460483702073672779905128065168888508899676316832432951507220168266012873662614670623299628495897885270998753202940783967098396975102615221828985461455252047550355169452997060616296289333374298852976266581214035002222662780005676550925001457728956782877448125102488070528785215279606956530063279446678728773915218235588756634291131874202945078741400037823669176857956121579123463589080135189261063913034254323899964001514987256206756486552694688447257341452836152174159220036086730276047702477949146915933396117594201922742239632094903672703097155447966918159400139434178051795624221103745244654768217984697377657673251027797330580149532134716849535351888125879297884142656008568779438396289446172177830991725854532743799270822062407746935136251208258123292812780340696978496917737543532420672442897666077638383432582248920773358394301185694936896218457670413599122052371812809129962476326086564054751242157379762761466991657469802666539630313949763863920160933513255049211034658698327057006351161494258171418472862304674007375998029546805119835681413254747214989852327017164451985654744820760898164938428799052923102279366969563428708088308989039010921495305743963845846852733899829352648703965409537468887025384466293445628950044310393613295691449044777008278280545117681320926266068514709971990191804028080232452313984738204792924701942493609281262833783929785228450710850869711585363652519335289101454370858575346382097250874211952415292643840488491333626937185236083514389211359601027188114753471196416977057746716532955010448459642899130863265487789270337940871744373330978785475239134412609799936346308371182806669557966756481706613583447446316651498176807475230919737436812385052075527143018701387892003802997149591002479670657783426597240739242049002806744064441428795781738246675144749438578279209717595086510145010921406021842721174785646843962286456357771240272897858239881568278624816858540580024602990377300587183795631380859160209873579548856374466662259232073044681785048026417060803133275624979132488387030174264440093132496807706886116206049435468077965119201578347038584699814321665974156496579394930859590506908930265990415904895186277834196055281255373545742487596321044730761608937231457412636427096918847473353898971835241889302719352388012139524966419778814673767942311636602587689469071931988913827421267234559702493093859512551262003298728995082109218310211970191479481864048931842070672661635259297696445504910431282580144399484550739136458768119212656966668837670365170377791519774881071964935199705910048585036961549671701077976962973445490492485204845382179368165771753337903421718309520481324833194243252665592083631546572658695450297310360862162478288165137320541777698112278888673719007508097402176735913188641221184378260377170499758031893346063577487188286928770864828534962078595443230729867764305414484251969867655585514441383011337355472885718055491388023325893952406304041272188336291130170125276763412074616733094367981237302813174123059405713892266195507989825758244403376022135299845704985219255313135900296277181573540051461799246977886627275546500240732349958085162983597682823552762222615382261090272529199652756721289642932110010084632968082320098201444973017711302392189895997058702433659348309864051707806541672100658651912899593048233104646900868680597013069090584919534181386966429913408167607057160758003737149180641800122301907121063111030968693102847784068393536443661398102070990258850931202461936001627278435140342762246828400596650248119522342790024669251989820333723687509703879493581281637457867511107764512535824655613654324459101519431054774869895539990976455010999587782533685846520318106035711852748442166855406601103887786072850969336261867286757640736594256285623122566133400486987562350446676686832334017129079462083246770238416053396393595111054026134827654535597941389268049097249253115721761593133574984979314237581141715185482987010905730857889272481374054030326664618690793054753030321210874332913598473330708497629794968895268056609532136452386507370447985922000316404036391744004300917225188543511396781744024680203688725169711275394871985709572348497281090888406410161955792971134619654781639033214156837752618857112786342719144945792777308906208506977786429893090160587677413448881150820386051410903129963465503836193125703312484870035857555619296308813223147158303490122959613606218913374090951787116430697102154071777301351489308962270185145365606815971668511818050558653033654374573646133748343322042709524221136528184775123596555729209872476434827269519965945087442183015484480695055837087143873832083058769033691473254478849474509021775472599183482017285930479878594213847744133494976958748455817759215403126075837526818741605900515640683727567253829444821674530245553497613359908217112855743164661224570794100143336936686208496309544223052593903270515624406305026176798319829704591614149196774957060086410142904308050103640641873381261171002606038544192678807830088951386889704773591271159603053655800614745921371942215640426597320372233018696592021438755360457289050214881348799352014913229529622969746946766963053291718886459946766616548773869503952081535734186450572443003782635800506520955258155389146394267675332364147061217828739765725238619946082715751987303823682503538228252940169097476052039363603695580945740580830792099797341593527628140547380120400785316136496695551324315082178800556835748289201047018130127523488309098539597124680474047347742238566924297146219713568803353800671041484146539636342673444851718187432605778024414301111111482035114958680231563770866248471379430768439400292830697067137765584031134355436600050492356370164482963951465656663463631165741048824271366050180457328255979506647043573444141399926631790939844060121081974529910370548167052929770707291071565970359017546573552593895688128149252232372619517434776380267234405700007410958101396880543886675754125127773690881740729236999658802800850137093595530706723302384371038757992184510643994714331868867335314036252712637958289577909929523498132102525198079591236609988447281597524447782851468731783266912703282699632049701122692174371816812876719027268835179036507535877300072342951438927696114040787074576525205369932669625685936491326659772147054835770899437016174141844070876846054717231266880077178323326621829912727619551512100067113840734987148124897533955125596025061395030188872568651889114347159062450981327363764272812055902625562160579634502899510984132784428429988163487911711991241770383627706533177924303619245513333996944952455274181993858816681362235279354366186751765058341130443573334333994457367819098321409791695629190362561625571504322348733387660791985650828428911318793155891922013388520760806661429231427736651884158129238481241367120559095708166664840282378913335021242735702390698293044706473417845875564527855382716863249342369916761929245916361910818997709341877058181228661567867542535793578742748764712014688411802280363918108519224119274508745552695440294882891138449252565932403791513739127924031804717430728283575169448382150171275442875885893174602582108227240335761502934412637507431206118991497466031994979121441937705849180720543834680645178856658897272628216274901001199071297632799395377468303755890322865661772449768318684150638504878986368842531511382119484401951781005753742794048443406620333291813423712446310616508999278861358165327570603056497758666713702306322942783584173462732203233074982591746485085307093792811794155030838936612451602664586033081830620582824956045713149928456897680348822679761622378516996449683150778912858415023684926222409697351229944796434712773544547663143393646815482524675650113492840484416749127487041197299411906820413833537156745359718878281418045830357872415377940148827652874864499439626840832633092086608967716877204487976627433154257254533233707713426358918277363872233144261569261458443257499382762177735118522719818874769390432965712158397810478005112234532578517406039280229487421747903239219997820489338256959691346544871940757019762733170599921846767171224769421650173403523935650766222179195998258290905898252054877943030130252681878367653664617222915695364472515499549172901769169744819840899065887204947497732648744872022751643684332820083678936646161116893320374340351973509387958004175635157296629859427139619786851542177548595349513315490433687334672166886460966167799109377563570795405346832318473419943044063047177059776081158050915739384745573904789138203146326140190608101168295002958939956228754300430417576107063307883260833118648005637522134732501699525661793264160730132627896049886361295897943208029930723411797998431862647969104181377527454483156632206231623632899301925538269651457324914201670124497025253439173259472353976114717210241772797144864821350526972606237689514299052856653483503807156513038831749129551514389593028688585528492235656762847555147027803356395706935148171160832332208661311198858045965952664686935618597136163123234113995935533879633797440623836857417372923889718443525460912362304052660081405545440502836772343228210742106886265685827433436009496271912608475054217162076179829597659053769904628810420403387857117852368999345818539067835028046850628797490667052034624881858877352360673467503811957602955967155119059773980632463176525287198517525370951086381804294795570886728694417425308724540721393191445289345418730418522309358883009571260205441175852726582085108965074600608493689796828628304427548660752566402978925290640478783452771576071567770264466570153806895933263494559009904699694060952850801087423576500886776230072793002180822563819696871302987326536251835423516249558477073803322539574279470720184716776987293265859856554623867992203674879010351106280746483698196166310013567797326388143867904680173889809152297695105704499473563571811321588540491711096857150395844612849015132421448437279257429452820147612932577896653943092853000796520628757772303034806531028522110154997491739089061101851560667944074063051955451986018819717091637082597145575744967292262720579653543928516546325477936049197716037764012598144662542213837115043276508359083611742004891710547863404841847972492371241623678518942368653750565085159063343401916713282099291853353302198284329829272730033134369611968544385610863153085201138994770342413741563994851102076903473298048466774659795421600485434600774618114812331909399276836791509961560149375556079860352202847487355557706839391830981820554582406392616063377110236864377570998012838600099721597851597961044544080482392454939705129501572788949416532158263902002370549936973959161194393466476466359399101167330214244117337940730257935429834477820859517320639991019334461113673273128067793237367296642661263434648411610141073999161721466411372104993132707291549054816410772315793035111670649612124298746752879813746421980612228483374464044261503366712194219119052310847613823060473978512770973081946862381040289210625272644877733878494617610850243040425283891521440833306421450812096644186181329455598007482114282186412234350445048203696071018004167445815051039135703480041920775452755928052108916297426885659306602222557830943303590511743818408671987088984377950726599677484774155674522824862586212407828137676737402043064835842732528947241705386076478686478524020932016185506929907734109966549780043271024912966572894490114253164454865862719982608427782339341588093199574516494284963232972568187109277598671934411074352631569371523189973530368149899346648824929457353274643099636130280185860931844485446837709143979523889938432173700758242339997448017202054749319863401608362503467143970817865902289333472208056011906232066496608379883272713492656009275966177412734391940297479573723444515520867457872220500930527020411916472811564306733578767395435929671861607086077182636203363386660612073162978697455944163259440241775324002175557787743105172879623862291044766723236897351363207754430103678712388994043303941220072209974029141218927575862110165817637342876577762394160982258082784714697621521879835697065123501286050027828145825525829941401198091428670965568891876553151773390345983634391281706570681161470176153375594223432687001465329783005887265761818872720425136245374180520109993331743267148864595386812256676371273851923238723003292777662695585271144462060284470854385725763784003444831976566190771645533520376318688941474523222761466882939398055125704644429319901597855652293996116653422416478640971682900133174086800506899538558298011928886645323087470026050167454327509306395597597516871271006178208852062182449976915460688314025178845212893319145529093472702047717192908495901785339602416288307537812715935290051567020497193056467233360904387551449106304781714638765206672094649765609534368191840795809911976917915851974876544502156637242651651888449909602240039557223030595591762889832733992887820083160956476900181130264884390202812902227898677576965863975681870267647139403632883756394590429399394865979152783037463612990642418665602713673288917954894599534983731074563795627017005346051405297568975073245340329907638351283506865971194095284268442445833815954592369058933252973216839838333937892139317311827642785541184132532888688312797335766695818052905039031865797888914565745122861082327989647759000121546060576417768617460467973428366298472979811807607258783821577472482547955197144072339482681959575780176531083773952499925335893169166509826611245450779799505567324467407321946602556353293933505486575720132682960927462986858871889221051466066368722454469762251541079110973472573358636970176716529321923822106997923482582203893387944762580858675315626334706469194385118556207432169090983451660798243912665166325908710002212921474643458258200669845948115312597408331071214065633252816196679746930777597644640188126004015411511803813165499509247938885606566556480826330047402902305173315680471869724955565645074890451796123068804885096791737192029443623777343829666647016477108419174590631659880309212458668186035826809748334403776551438930614647596197678927780447783756346967032907433136638451536446665864528534636715080301895263614029177521043785204890126471356054174455900687550474797503674028101861539593594211672245501887113705814343460723441282718988678846705816305706902008957828577220622251424818707197238595496403176405774416071185678486436343964894379946919000450119579057911799749136449526850775707975824381525719204348893007038757567020729815646002179639240123975216933032698813793297119138318966323404639593984491322665709971829597410598440929431162936226530293987273025610416428585524537599232376749486752909521089128724855632355038862293517043647548884087986961764278059873766963336048953346505405159397757526962109376305778772625435372442258258969689941021491555446610144062874899627617636683929691254462175036539503781654233362429382091420976078449991692835681444300333032235469195605011825161220262984847380099223984597329675680324155189252429809733685489535487640774816195585995966644179162570857692302721690798914638214454985748503623765550129183691077486958031766206168434883167038287984634597744589143048808727084976214869539399601809031701580321470745918753973904757386004584017421777230435764577524840142574219135474968093885833119708245557786641541244262729114939679387017449555956971038267746465043440196096409833102130201355816450776504690476009160674750384741005252934254702428115326387184817806319682568902436016886802330781652020297015953946076788468797236964866540195602719088259588691428930596827413152606790897658963313147874957222181238213561586076245134884102549338690128678003210005555921222007036597054949124158014703650304799674539714740610183273441121572351514039502454093628821075559507124190564676082366601214466597105825152632800462581229096588361172617790986917164109586366308298441239376543676246159428312583380352941756318721223936547327246760002455316810462723182898759072872058804736698264144703856660248655847189207050976212944290098641845895098701113030720482651483031544681488176172959746637879860836193089197071959916711299397964279450522500767284376254824182229059026056914656874586236490347791769516816138617487804772872991308511143624016912934248806993754028665853660400116347973839686024451243986171360176013243309839761348497190248521396456426183161726218786846983229386102669009042325734346934387150870308096039472643522389869801103629676645713793217606080763824594740531904909772396438959250005320304952276087029897408883329592172033388746172377798157688064473497038911481640289190604542218496650924348173447413146304784574014490431565192343518936868672309352204251447660585002611103170754538186605821237035757747068251399428615593108082053485543190838958868038746033544022168413426520450081430279513339630235829567892026960423720092893975867675060455297778390269789638755114566658952831242661425957680434026004307387897979317557389188296152322788594183931073612440482250208414180275488898287991338197714017412168732678284165398749937750152065739229252501799097885112102600531546564381198548341740220614182837345279245181422553108466221074762507994342007628974867638461182342973495195488163025431358268116550159100789443894048881860130764451628185036910021251526620995366122579318163148177104951272868253147302090096301889204714046282252093341887087664704589035427273808752053177794130051025393505271030857715917138340769756530266469036041853554563729792690252889444349711071899776355203328131771103130952190077430440513051983419054363745479513071515646751582792237309036048800435072703191490535160820070239730665930282813840138887779245797187763403444376117552875456474576048843503568674639364856258307838921701710819599445999474959103555916141879735248627665664494493534138110445516350353991380053804852253534335977402292136198971365251773053470555586869385838215668008654305805622150004314218850040065578609351600216521301494200812957111428387460215612253246595546526246906556868028493930597701590283973345180235227674412550407654948515526883321143638075362325778929942163203274914761275592280563114504432496585748425814489689247356418378621798267800181307421370160306686547929850292144802392305175904566100245387257915777707469323582447840177906635549355119252672892836594710304196287103123346044349629472467019898906144139092466891401405087722081918592732110184398832405023364727857277120627564017551661704558452791359116566749969278363625810928021370175640328756330610572151591863337655720615523273195462147284545010621145375381816699729446305052522101130413823872167833341220867336190376528437346682352766400875421029934208146536816518179746848418295263793310749673868545918639013897545341692818255562890348729684218854428314939543019381241399613706164121575532496212765657009412420559143905620529791703622477592316636664757566925603266232424825991585132228918786896052099296143344221372391547664706554540769640181470031007486551471883614478013585224788989870145136956454224216446746827856115444686618573320678968730688101313161194423348916267736216585086314118292810970168434620465726153162745432816713135226062697487012854128685164955777476305739878384629779675449980763141518146911119467960656367607832860837405998745810637495969488431006023942061198448449201870122577163905147687184194815203422311552493207065953564265070562547465660526861608893089496146739658938889386147648832097568065729740050807122066358309441997737617198152947387029611607545481963909786676086375525754342750480272404633877881881577119490662774346517828814129652667759210983068545102343632991972135616164112628748939110950452268887108458744772623036229442247048388395731424666731888465841969323454634677698434763366719305868779702081710446707989993894038875166826368915533730209899489357711251460120610058339661347754704569204121455826629097043863953838481275499575531965518811968561485545299812216916455202654210110599744837115532409224058443121771429768863300841826665129383509752678617048929580040731774215439337186710065451891092327345567161926307835688707695909689724479223714881501910243641487418230557361782669467612893872085756294541315433934527224923942776599822037367428285272831227384703139730559149956583783608870151889507420400191537223953537310255937526251308622726328833632244672601451784020902998955760577208211109286218948373135673643433158723443495708039185949150403075844039515436123286529383348987090594401066489580909212884304211069188281152184616652584954469044938536126662539061733462900785694975877205248327049592771148177355432266082048935434249215305831676267581634061938719097071240404833638864291728151645814209304477475975902282293711331442724825582643283272096323356984374703532340203794979187488600026194465840217829987615778115577445132755174787765426297195520533917002948211412603575158156954598719209447584510673491798076569230405613653801919784447316323391250583702132167288839197729900536337794897985439983919065921917287185023362178930561379004302974197368686137339197830355111896581531229440429281680767833142676921813536885929222186777286139476826470620300120922056019547934332845315781956480235430087661588696132855144187986215314372801836126838564351776904071731906976355603664310462722325801009943761982762557229686959206273550427187551850602271750315241090334588416749134658705450162357541626618887297766372346781728211246803952526028382974135547719532724156972331197117221754084438046505350100167044866929482689019548322454166748614486627789969554468049790800429856549372414489279342018339233855631843752467917999436930038594772695758899861769136500363010544534871865889658719502553145150775411227656702016143102329037776276049883635756629922889860815277895952476236444363349866634165074263413929330783606455335006335221614639578412362709746501735982610052310156834497540767495407752589080133427630318234278325793292927631856567018130806175323564237085615980398831776857048013153911648585494558533125368901216216450558729960628105007892348700307684496647387076455683300134866625068304604996338877382623934266388562154503713295339466438743097150063523945305240792403238673148253448082944474766986123494180650328298798930088242547962316241908723851147970120128424061754110964876869261384365859176791043303588392630111143697892677996822910368818741234317123969015286400088906665848790919247601942053107927776109651501016977732695965566365029518072223981132603154080056484451018432533688564021593769675551600068095941717596811378462641255221622733848036075156293308407913496875754410593127096093236834147395167177066869460742432756759309167665919674256066851481058968494452435261995672933593946353478217242024073329261615391655770826653368293469596008496422048806116941092279504606434124112688647847069820020014901638596158870035820237355963194797870733434790620594073515518929273547858117619866820550990294945449719085356836056948309119480289850191098650318796964931916994758906137035541886839978568354781707475887622520428693732740834922831190036032188405179491567291492463715477974275164382027093043618731552538658170349235603510660499586302984836529219572249798123213391684969362896022743461661194773931104074988640980762349174881361770214097779772596721701694941701518897359724082473576851567621423914748899431796884222008909538751347775677089491285936188841170700019687318802380520621096566016853368917607654145594675169070868655401073527091729609131171412647485452241192252352237562410908713343419066011598841569009305839732801075511928094013533309436527093937570064579914917478204653650875173315692389564999053950321988754243868673462999344362636556622340465489323640935078159166671250669186253770479736205916003307549782698227555066159981736847329905643317577492877313575943849277597450345789070101387280471855956309496227145546569715199207101958288308319127630058785123455044085325921012170442945886643546339151955548384971085212808446636386480565172282619115886395488208478016727063470743499243150209241322755814167606733012390737278870224541890117347135284769814762202477233351241561114050192091331664521326035776547247146864285672783824083451755305551155410591262821577696927634063950684481610945836025552162175256411894498795473956054921024558924500617275698303017125410137764029938505335880790092771746747570817534320872351260397479737756558896488717743925483751336877587280144175412999405764249326004127988946383332289296814296045771720164507520859199617933534300666468730575242223875620967231924905680444393038979959123611811325920947113607077585930635706674573792803676649210933303730465409924263115991083051327889355315412805544595199420485679649634524412334425109487088431352222053173940336172330582192959264030181289677470447970148702130381027037082959459546228798200753599769045653657210156530625924323302028432817397552886566457678920665027609483186079327216805670279899916647249102403883464479895560385126971100777334606586723924236528775778821990282022068328419639663104091089715264462961870842468364137547612334731287815732948868919248423773384503226641935249217105247883201217266005649712074297331254184396317226210378200276798273948495606898201881534657178258631663798043762513494711149100261332747849610465215550596557099429612373525724309934704194007937895330186193077090752678838367975481592096412971251717401286356443206057128181971446429729403425733635771388781301252206616289620119348946967097320647182796164190205951836823110062482327182322727304945738795777964597489171982081836035461966289073399381472077469683562943979222270597913693501627744031975296901703271329449641941579514814315735034322814755626864652720687415917815516373731579040007360894542865776886938597681222980590506330039149570336256905515583211196052472057589240379638881760392437285495882809963104423266307085835970133567994033557753714949376277857222763850705877060436568311477379146574676724887866059259505898338999386415228373347404852534187622633897650543561509539588681339817949326762187318201061282699265415526259349577022345210155742029514715552492338627698243804382251187196861381894053019455032823477064358123737629435509401132167199440465416324776938112891410461895873065700099571867058991072850369333302452149198792054146178201825092970490724737558469245851583337282517108412900138560662728820789985502663367812161122413170971713109265918344294241239375511912018623723195777922583973024173784928620769076601437704485166963142357974976838417893143239156846475601829057860059751267159497811242935771079150429141532403563816447202636025415986573679003363391725404838193452770420002860067394748076866229728783601492037148656248312132260709363024567484600025130096578716734189575377366938423735609111863591296060675376404764658818056290938884560683937301425996966327249145530212222800385584850890696436252834252171140310331933521663094854260657067828373558225881202993364453934187007107082908143414422000929928180012720611951820427500113699639785393183649057902108776920967568702748324527030742128210982809537558430637089298774397095707736266707420726901339257242243725482879756110602132636977763450549917487501146447334653024389732081610125902196301282014261658803274257923971561484303715014657631313126678228625775108636938270577469993510024874007797521421420210536659967965266455210496403272021972327737077434147300237145756923119606285317669197710102740469723739724189964782228136102371744223587397868878644692433172252161970999027528300036702350774404728961374500877467862846995669922770640075376122921716855752981390491459159259956909035824987923754582371348913813339008025629160513186934270865000236252988714994959931023065974958325301366183623262698527540448851034753433127289782606008061195027187365107063280460935614209582583090549309229068712156111458088336028870091977118642146574518330698044482380683434722115273669203765312003776874561085279772966553399779150339850594703375289050528228638721548319262960833758846116593090552365096480931408682335578101035063099931714036097266883191538192744940599817321259472386139441032945739806086623029319093421510781738633284051007341000721698342683270407600830636655930757258580110829063915675217437320356392880206905202844931954234589779999665338937906840481307488787579210741063302368516008235323824216623704832778055735700018739543620002264310652223024545693789395114794345481105116123659179262407068922971632431563904637910346805925727264318792013006330448130243847980154582230799517482674058390371164148455689245763037252315261488585912058120633508632426581403450260308268377113199526314039771213208755296481768899790565697902289317339605415968592271258876390304010351650893778459792029431182314709431658142914085350927722573067307445962992336728555917572693227353266988227471221677619277931978477551200423760671868869562321550434820719184202577211523976615600870721569349023009321674529615589005300774485589120235929955134904499783267012691771052375255723404887033690031688271545605500544815777023493905268004582161271182321232012910777592794528817289251176237551304600272414826563028155697934192322224734917417963350256247294796475891452839279301078157523464085677961680146361200961235071422584803169940327057126166159036809097125392486324959710271885722092158782675697614737295791973151939916198045418524610156920381493431419015151478613873682229126100643373593340505660841209969123279794688094281701661032540088750872538459969581554330557239446582355763693250804789769723796870468270998424062830097867849520856806795790720711240627637362041828666753321284787235025932042874229761818754082491837550810722049267695453417352032934664520891485060624276968114878186672876710786390557630552444511663504556112186847543359457749895814401338899565450240068197761326251526156483968314135060956159094813896894495137888119408904148915443943843581798251522885520211307374059205290381453967821818164099671089881065684211992628829000062392407968724877333675404249061203239582420820045849764439176041283260678094372632121356712055562972006699986469423408489536978070903297966777863976728273416082120564428327872748137615343135949884415495038842930721930612519727834631313341204357953112652066031257099420539601688036103228015698460152303140424008392840567349644819960601017514628683293938140074423756435122972484929989676556194309684177036590848268744230744396298919820044222776337366789068579555518927861149970769299399768937070087714579805033282928691724942909686151528496287408327319819366914403281874057509789748354202950559914561909219408923135893013823514469373965813984155556884376460021702682405240600746267627158539290286693568194398971105836675253919424493170140122454309308240324215476465600381917794166535976614435654392339474294267103814700703016084762833611375310063618404097933939150036970592391320969852059925109859033103914964991272693497187093016183413578110867136840345447046662846603426972046796148826132993506168942496633431301037368624368811547123646061192395818133146237261881672754267122079809812884947068392421941952309189914602075277563978154743512631353861469608240717940818921070791865830025889629923433628807690491341848379676785845325767857820297302808940929752376655276176566961392403614569416489276410768441250367454571357619652332933101838827659169003000052835546866952170666873557820913044883814686880857365217375828535109302558645522438768557314237155067183493851024192610849463861305504112372910728390983880116649392787191203137985838011114045739199340022463926210548218176688111010089445347231091005796636544843918406572519303363976577336180974477983671647373182333880150083705464691404430789664499446269652035934861556429055249045228980688410969265744699536550901499621680330308902050422992760008598321179390629200974867489867590831175874433444624279325076558364486254386651249691677711132478904842271879065071325812368900604607217604960357332346403356635709795797181468463179012462654840055799009292519879636191090073981625812352091598546570069830632737275091601472792998393933847620220769533044460065550304708301060938344883945996146929596402005012783434068061676242052539151691513644987043497773797363217571032793881715984291916940935068876432298229591940539962221023446168585039047548414191381135076056583329139371953648828261803458251650784714420603371197591955436164556684234746661927476278278629407319511577523638145641475970722445597741914575320348525316559451113017725771131593621833211321269831858898342315452845854536067781067756398804258467996975630778501858308061086899265721498494021298560346563864367911090893103030861308473155577856331130218241331208574070704116666225692620757698359961374008732571864656963550783942878132182399455541107091122500894718494403500850253001236037725728171343774794539931330850549876479993963172084128266801562282210121915139755888699002906289435904501233185200384483650890751812552092470250447021935330849606938719182045137269500236089160902854893439139943452163521148220907185950826931890487824369445687673885961774836629306575021488803402056741169306184930149491823362487506798487232585377684842183596966800004966614150725419745049577200560297785205143054930630939116579955371594146341807459634008716225817515726106257271594490613367221161756030859471079515061091935825289739738741485493090223372006811536952437385360377735813992882428581025497490808128942502408707720857132700349348965885592627453953904352332918485740378607759367873960294224015224125882307908786668642336901601874137289965405892344794864154180577187133802155279292714415608661415850946476540245423166293508804580669587953149822450149694577724777872642339605540169466236511391939450557928402417304784626208455400161417539678067607863911641558032080844160767499569062838215378867358083143537694907459519576351596077626732155309934682917223262308262327737213316582570129262660755311037418925756821491286273614056353678421415373752966300976837412162715958582137378033086991012458294946452175005848681098989856384484102107664729298625623282009452556370024415572957814158537024195616611253180792334668778464695891481156027606562094015543973464262038793384582590545976830008110798660938882002517849880493730588324814824663055444365281448504810752867324173262578041849511010787596919473340435140838757140516404471400978110782283459610021690064658501600926064750563233077875428127028853846334605867367745012940957855162721161709910190519451085692934505078081849140817129940524030638309796956520878216919197208691633465866238892844829007944330606716887454938130578052724920683654173573667717516804187846774401929478137507464553763365216955645377945415161974741182341644792428088472933175591663595704724113959575916487417022758111185405420190745453400175177382714328183332191589784702723542057875612593046448287044634731172387864414123336314254703074141796736505661246397261364201302535584689020314522823128821378414313481249642236232259316562460229982560231458203382639431430062569289146971091665651629769442151450142982130978895750424707058537115232564465757806014071586087939599675144918457854175262226050332573506149424337824286303287879242074722327781275356588796706133495367934992905934245831980353608946234841575202175480818359243854059997004911942938152624290728398455348255044474264408461857876075204308947876569183849259279057338907860016291762787931869334538219820539308260057956001595563601069496361033732907266543854802085584487608185152351285847526074370699480077542337697561621746816216195169020857726349274273296250265784790418508684206986951152214909820305166942531478953279828819269793085401002786804825845743235604762506306883635506822298310586368602158772144296652494853776329249295908174237523556344167261302177119885538442288097323888916285484832773498786157515315827560417774097658520321070627190021299317443946437918712852863935097903215379021547554979283387976075709736989548438080691596404127523747874311895396281589076762638988056836420174642937991275892481830667206742014014763720008270773388709381895166332968044583216035205600106204912264458258850494445953143479153780313641654663266341693053893030566833947983808785646412085136337082381162251126376172558293476271716579975618411118968439484090115633319616604949408408577399746416402965074637152713658691051195135648725241060422506359023438453939929549735927054140186216342739273338930071526782667856292712006648079593830399915267331880539548352401747535819049021774674246606719730632471562789413626174611121188268404305862619460820350656386957055665828459096753537831156716889213372792495147646172984865839116698183406907366906660670001091160761163182021503416673917987765748689012261952129367146698931379884622689176066921240824089388073165166363935474271838391344399436222294712424791600404085611439844197484884481535330903189093529096351858183062836501313152053020540822702223937691144093928063999264674798095578358699943841748325362978575632310512826461889497046490477348253403776907111674376898234658782461776009985426710272643652498592055048864955709831884216800572758859966723437238298293671840044118990177716994210438088627290323643121163961574969101220419659058474257053690610639685522878357722011275912716999080018530598803453097745633640010986793785001514308892862812058251641822080884222718675126738437759798864724046734120581139134386748748511950883762393652994238270427621156559665063247335766339301128755183812924037053678848663397376495906921348758605466932569752586145339179321324344545644549979586854475325405989389157397153381661425223843830793768159307399576727152396918428244025092287220915635547816400062734578335283423871463490346049214422445451913665041081524557560205918664985239221430497286015349633546193026145660741641542692549780717365144155786787803582171077160757313079363755000252267656495458041859825412003969030127126278117731088777090043098744612746309757019543451318202606369277275740596012117362333185586138524891212273138414339584260926857693141456885648445547923393606918899645996911243889568993467611348763378601067399271064747143525745090092259474142837246383986909526736623138182943014611532650947484044945504572401173633385318175599633487438230334379895792036301125524854725103497657110865002934538445721105144405344302220488877717809003819484527417803523167823954565505661715254233169487107220755089774501453722879558939919516243869149607851167213185581239769377924028701274240040691563808483120826780909947683022123588794212947969037640676910055405229055199976297871475079493114715503448803987194696080046916050062057728542220625554867578882006999064541424204812854740964062832728650437808860000057428521190256494796580733331431482034587682590736286287542755552282599878912316841347169221965837170949754640409469458011358782944139364267632210905264353268972808113168664554601068086362484805155970245878534010972560328132770911693689705056694522412384792518858067626757989210115015607361394342651418685358733781071211975246296642475513066156463702630020965111973455793561581490240703403151556808462841494576144965163944255543131392112927710385438216742445107398730881429901962727145134046015911242117742406736502593840360367177258749045973233106880533740464728335203452991680365921119051794325050084062022801608760425967143554267621388718114702797348253533324560950355906837394211057387005224667994163463867611178332867309886064081100457896885022111830035459600369116187796674104821530258376786760834582680802373062946476847662293952909111053200395849935366102697532791460219490002904269042213321653439321685735810483821374570410953207628465658697483695719332996459751022702265747776955692291689379588205367321093934661025371420181822114528705431780299224848459596606671024573483721433710668623465458059539484490580635585750418249880077444748224397187037231452488840864956269374175771022515979119896534935838807421296927425287704197511306384673775797000476576282591391688012883994852834833215368459951871276520187216221227234919445805618647279743384574763805656192510780812462770899178940114487616653844819427437135990037465676083619319317881390316976448802965333912595884702106548765775070342444717131385888764158834580440529312393940899279875947261930045852858590094151872321988329176794205008078730435364844795466175366925385083762182157442317726088288705798114062751332586746910700233567534424913559416508983117127274829542172391480657367114263139756852649188835868646185618945861294540537458331704624152120113522197166764739453934115994502821460098353180123507287986537854212017347677197091940901532443333838609338379792326651661057443905668425192685555252809648008746623374367250128409635110597253120713409433180222662601039305631385535270282181096712910224736295727695628538134317157800795446188321767476761376929033909168374805787385581101004347711033536789182219538496216328441492448796537208743655055381227840241107359094921138206339404590826225083557806940388340968913345313028866626708521839419482457899424783543360031091009168596058502943719241177836634387218741932968146595990661145586380858233011147415878164319807828721466893736494797590768430575301525501436512286560324987022604887877982986534727555286166282454249497749902453660276650412409013890143461172030932270929726387607273662579873243774089243461114171174377257716558267117633880335200596317323632744691977546696338312627613604917791169696104968295448035364666289099405111946783393618772521112987346434469791715530646639432202039500558275279833110752423500171042074582313584827405405130430902849928528792379310341824392838748039726404144682033042431435164365362884922860087626623797780322908916585776990591966912657697911041240573076243426490867677286861717300614612278616940120740269792908720030726307673857876162076235890540082726807083788613731655433124394198920725410994278755271078970212771023816269492950478882478918038580053704367497211148853112561757862709596659456867288034337659909696813506060741473027291770662537142994625066461024377048683556186262927204330212213355115524176564108170782641202753781469585755096897526224180863298274724147642002212339442749602794282168776273996471249082449611898138564837364793458188693562062750766833100965108767817709903716996589209368809820277215805877170543252809650162673740781394770889509541291986376955191667942046209729041988678083566965909641801741772031465083065523946807377865174747383137361188191723112497230155525465220428239018824805834430326425109941661116622912684039800883995142394524996223453336486119656134607764477383203619219150965256984339677365607067669911834972296887319953949620190446950582485056132177311288679165923007150036156634284633724164485916014703397414303882878668742185567459053248092245322632879333288821567580986496078426682570484739868149446336131471419570405356719122202677360943370306904643161398637501127316424094258758600155462289183525962285914659920691555938495205136011796170788651829383392677359381617627985520978049007344575480706665568780020085174837171335656272693102097150538341757921534854719187219832283003716591903335778673257786046447413445580299183211869589504354986236246394784931855795850858850378781000729961711904919192915502834146849960838794935166461531405187782925018717485031976927576444511328389443138871600922075066831467998880557081065801221902821555989830021904441628919827584293662977929488330894404973090597072115072077749902183741633164267883797737152878202092641391369099157640587858909760981023954326880736817642252246491453345637438060729460256731836932148061137311899148435208764995991585682584316125413819631708987655627165850254727146012630878842793933252557148959323773615032089693842412327076654830182288178301113213102536170816019065884337363915824923973026977806156760689186465513637668163414195562948296459896928271913565255957923282003046253905516537771180717928590571701807793980884031042852232061441527116031958666140492559001118634379210291061330143509458838619879860239675703370862333604908621382273643046681359176034294195398240830872472010747616448238030114379397151915286864498084617335019335678036436038854181421409182781141064699006995142166665770492314671398717386514724431355354793777770590517622682140553336456800819861765576314591664319034410948667028760548004874398577644083262149946702570979777662497653433172733185589878919679289683892448522148300084900429218735578551197789813978272821812298284887148850374321475337601448384473008245206078097827469598489279189094251419756540074919205340483287076286810727579547861545171567942570919868952688738469015749415856099192856697502475221435705299429344361102470448853291885214846117570328225102971735973590858672261340338278729082931377687865744267111849759176815706990967300972523553632789942389827800792415779061048545925772792634888296049006292181711298595448778578911332032009549981839221748536496687606623814108723758056219076347888336069712577073802372561273191348522743272210839951824341463720005512123163376113589279237659407159853574991307333137835764525582082631355130421722955954836820762867556775618688067781926389779780346980064659132343106612599616921508217175653160540314794781527679948685909867710000183832390998904490432452389701686422860001350404556627791565720563507454563387236484893915517798776819362643478052967381644584637545124992555257369038479053246680092042214494689418648197191207043946503100984840405193906611361246518015757570998789203522042705274608421322336452470649517676045883577099450534487846278139683786795939539368437530821129398117231669394962990916035740615088725481579277506736669965157814221799983326785643440484587344249743426135565425677491378852747141295088531418422016985890668661852020329104082367891351051058757644232719720003186954314162566555510648813908221569273817074975120111351007235714141066182034560066476193991332134607732683000091203625628562555865122901102688440874647011310690910973873019481080122825889575069179058377899081674165348127995147890882498787464227190349802621164357212522500607745116483709327412520504850404674886269483571277587596323037075751908855757396614508675751942257755388900413833945188559599469215054150947211912910151753606287924505515251040743869681754591916662988768774077546022221966775746831649949795880578133731442683186602605553077448915263051974792861740858796700342811058809467416246279082919360529560395123365609352052895972719073077964642598143365905793336576302831364340847361553106506855977823660960853233941724840435623433137231952664941956916410507023363102269523251811993495266142440443644197647028763133861439987500982514065698697026143375509592560383279169104353544539192930885859307664455068447485467013743462717543548855890952361187491528843065211033442177714111553170151995027155670859547688352534890896986019472111205523959658962874570607152801939759549322646584310215913921889450722382204466287006136115871742357237490674724869353773018114164157547564973258631924344382127728381818331176877879341173402561837050480312871066599172050224489149849454040572847613940337067372631649727420619905473420422394357403321667739257016778735351079810663519566467941014141866692150847627203595562901969502000018821978174385780842427118744759806259089418269052924749236281752919267187835001820266697161094461721419954543140876533566249161613008267397318035570429905572041699590279357143326295991471009900575058017637139403452656105545148285570396035362639708020228051641908622523284463176236189182161621329722384023466590910335449792578563338589674497188736454332701731536759613284030570625991088765197405542387286910456390989505320605285872326671753257323054176447571070694113797025033305101641801077794429812863650229679423698200256191412899547492758489491536101817908543032796531052372060189404119524897008863039023672100997500982532054058591596037482046740072935950228193252820489351756053525087417917478505863252219754326189072896735924669012773413482272243559644009275863740294802392227051040162280327612102949692134016299425205737138448663721917000330207179908286240161929514348744496025692310262367378036616573570131865163388235174777355891862621833483845861972199730616946941720072112595150635102821598987931609454695392048601532915536464037226634319512873364041896884457434568806403362909547284497909065688819416926242384503426019122025572496277408880316334044894081743427334713297772401516310228516368876513321746053967042739138072964419912385342594104041882324848605021180730788314924472614529823261992739626878975944392052919075607116958867331441219003128268241659251619860696088491786234057495886806120000318505748037178433970745805043068194991965276948902408083844394574810455903124627611966173399687363164934808465631479395735161238750709754869291801479191338525344610691701655235693742457591626149452029162583008604081837573095274604986363587573028984500480620460654783516019697799179464092599551849870678847191488674589166685348903885923245532682549392794995650561913175511558510475073873600413203213708465702065697433411637098576999005377408478020811217520872742948671711334127564008416519961083760228629232261793629607278046738506546253312164470771585985767268334194030372943565351649227983058380868185372148092215389293594035041323723920143458326895321335584154426427438018060238450204843183324688726065526720035603214879441503592975189420441024178019562153191901983486310192242789080435355373230734995261123171637084647855444770925371436384464467728864551168766394349517219216994426491398677045630183861473538608105610699897565653378515777530611152935573455225147676210147002545084441107628978488625261360636812629295001982805219990542962113548440870498253124142959067740742834420030850648472312238609978956725616387366532211499476887668275665661772546910158410878246446820091981511669460101254659584360180514873845801981188446022070951704744348445645932847662551870559374569245734026516372465230174728612241865094512470296887057393756412850850757959214001117075657237770911224083710888211097497842822329286748597624489178716645289215363242756841687283301356663315894628628098754399540989582230387253104934618113211392524969290355538602830458034864197025095047295535196584627502472108684473783904191058165085681705848406493879002974961645864593054129563241773953363899268940977867007568342318192376918469976031492639775410787240714060438417918539995901732070493937692211066349642126302241176801069944928227922232256169348186849134449199349784023642497843855769746600731166938112752728399071276322035760132064691026164086656503721060042816593838749198590207312688217570904200884532870966116076423082632258900970908032157341362451946414496340198128755421257114327514684873514520545523178290728023248103121889281948397247581627329651765706238895458499354146636508218843987365319136643856291187909157215463260451413138079780559737278317247949063284884968781405307414563562280181074965621319466948805994187148819652423688285366494254152816387204299455770425397366820156325639364024719169587333589187920471836193234250677843578027906193046923085526792346538493024623307547836476281961262367554972355938588691180520197474078816043534860104122422704625559393486965214435811764403696054980111940459403460716322105013026251064900130050606628162377270555730634760983868335034885452509010147836264896086630993646930005810810371770057427855589218602130931158787043616819045769969223110360127346625763632898030817058313849571291556727587747632451455485110250556482455685026226428322004190002946590800584196523659025829207180331201690874320677630960678655835434316868946616572788923917803977133139658954499590782500075463042988778021166319619874387619613029585464146849318115185678923372160860447766221632319362758203810151494653732222314282714285358443962029473083731687178095600062476720760817100029858289810131046074930438363676535749577168967545747205735403648556067338908800165900514733444398993593097477820485420405401601541344248510863909975210314137931211735500901673177262219653749143955101046233138284218300146874532061986508398517689275410076831268636519739504528766904213108901455399972939428239760078893888364075477392666419995531738152745666360870696172963648524100902651386521655971124057682035167043061334576034182100847873451612507241353648348007186662269963829025985771561629238741782419368385491889031245759826150822600079339497413465898679347687331451303377706336253192732842619111014361874885559553035965311337995486178838409846815115481410371731485303939968892421905610882741946205185098186850145107640685669262055465160767300652603482531626898202993789628681133040193564306152696235103154300892422132057078527429018252049923600712175641452170053505299820559274322978097081844555981375836519856604999929981155876656139869148320269688811134657433896845931583936022772734925174706329000699708338275839098880868145893974987067282647999730217552975181485875679242469340388499275797021845868136938986155444202408919618740639058879338935656589777362184230650396058234845068873578706183133886583963719142334915902797273316646712482306923902765459914946548777053953258017987118955292730391222045784048827318918288351285963469667286767978815933542104563424671169036583010826922061796003995111949026804073820904222777614417222121790520989056029636068074778180523575201105649809778848352873245093908408092469374932134724818189314356443487816140077119884139722891239640916991216123095640141575207972048346532563001536547531426905307739346639075646327109743471710369410610687094602948305642853572913845982351217766683254898237477129773999469913298665717516425304077177236925996904773745916762851446910428171353602129341880437988205437418393112384470908112819820452559705760093552417388852427621210156022441133187634219578400643824414142224887861113011755753036474429382273046741300183084871124139353574071123704250584693253680947602976231693231396115199071899204155752970164926514382187399545733875050020976310526733129020276537357757619085554031516340419473002373942703284017956871464328278038707072810721501979947202917628753389922539256538716632165925434292815155994952483421030205157948660534366792722437538404198344065409519431705494027160523405787727002687173009854704114407143772842589976162437621315003485173533046199562239234453214448506641751712953842890068757342468466790330776800479439005185829168537335328650622141203233320264307015192821424025238609727288833118380177422926555527792106919874578479487865795774756065880451185837043711392034113097392846097850895855915585504780128708795865233267135752980790569633810271647405698987869792080382107100690526492844334431362277336432356788596894309380832399406822986648327862475813108568160831884872010794156815391769819141775001098053990835963878561369717212254072884271576060457837104462847577026434834049505527879887998930014572591944954114102485370656423568287488012390423067898980691281409379188150999730680252145684664842044341620172858874204614132794620523328127742188931807479013391319061829058224818285469393547008768862104323874078855408697465035595349037361758366780820787284831290578849962470021341515211408730323912127706769983566043275171668886810405049567730147474043124329594009524395850126329039662717685873096170040584507906397339154029834910147856019589984249875405424815346385285550568951239086948963661314296012471005676278256527504133237157936273215266374831530663175639554400747335535242268847535773432249999080037741968937700303987884345535272423934002762539292435398371233814521878419701003276667003566926941182587557272802136670776835986655231435794070460062037974739028734376941058572868322504784452448481935761283978998901464137093162319354945321684815703834912263669066579791703979100442835718639136056999242117335477070171110204900676273572521017962748618677702407249428939154730136634122316374056826795987537145351760777338801218566331273875750895597671361253812985402596866467494487647729474317172277245196235554269321989284817552064026528723818976421106486767311372318420677713523217256589467633468438998621648035695260155510103917875219849319811065194659806759754085700034748113408838278887979194305275518001098943437742794195573289373096510202760058070269094982310621467961802596280404848190952334652229561307478549264997290263978712850640945392790232162955461343062162870898356408821497745686462806903212873177101668121218299650437335878800651393467885042395380552045784193081608158863569122095896915707997493803726443976337006035771378188857582183381437855439632196571931386743011176764935600002491783379550773210049108890978465489387145632934781268785803328928966195084694738879617631783149394204525846073988441781418198043841208941603103717675336214560403289266889793262048003118452604003904430601774969555212195516734040173594032960088399066111036460245855509262538398177035304220583973804846778210311834259393293921783503978504879816826068996785338555592682847235330201175457195558466575948844991775877426295852557295245911299412701011636956961216833737819765978196609766113224771965700922118244005340902334682936796307084033366641670049056989044500264388345224190205517136952097123401328415746799683610658078178740940030096151675902148633619643814507467555407725231904563764589641520786285073733067195376321630197733588854361836429370181509838638993068715477651690364700713243315047819631189695720915954066262593451920422241130957042490724638908840812459801593925105614376222505010308933941557941754533310341599653129975292078225996641177567885228230500964166553827292438800092783483743801046917805109144032208443675601393699847968242260391282749199754022079346873441663197741076337368476622229876212243796870624098084012068337403450819261633496430454811880144812154490300131283121121796969676225120849911258459843985033464927277644863167639020444154898838091964690404123528037972509851138110550442655886665842456079453970627175888940182424033492936604654028886805793629544701096197528056259770152336230281550867346940968082210060614905906333796137321867720409731608877190354340031233803881784261465467340112337540527182157898826659203313252446119377691046078289072721625646648567688403547020702214847525981844416689385091314099724908278068975992499696580903461319444321537481379087655613586984605325633568984576978147269872056650082769096022400766026464725197217215714333859241800282751868419275849581719250806237513024619782089054493185097279398637095776735731499177305413278297733506667939411483293764730666015491631834063962715752514387870995076159313065310149018331766127104998987866286397323825647271035096529069874140351423992609287831208650000484527623554719020804125427332783457147645624578008833003116682947826066664390934720244896441516190854160769551763080625354197148992804589392879136027478627544358731839295878660448372429253138272734524303409687049917226231698777311978029004327991471197995376529658069630297172283003634540431986406651968391599098752051225733661460013476223271394114221005515134110574101312084443046509503240197857824634119468463254450752090482605368889244182097842770243832306018149871196874463905027405810467031275269444069112284806029585985384158540244673493259528106842691933526356545253183890128487368292614305592791426414854534110221450899555293287553272782101921836545259082803472836426789025798364015164688780578081746583220164677482724877349527232208826017209882164133230441754549969901484949531337623504430383640149466434322340120775181635686594971847636567077891903316927809958460826516251040541484414036192153598795109520102510710512041860050881492651588494017808332295427465050939506208633246164051145421602985938587936415625011841598350464531234378782559998804797897918995125716522455734438076143750306159335909887097969578533485359415266754339923434249412601983428411879150306862902467637748721751152923798209971498012173128539658605487831192679912139325997511986592240788973010829510083901915741760819731155364743744542762513382728129591144888571717932612731528640845369697724961563474054508705283614290889167676884302641911676681184440426414997931835579608422959882800179114354484134175672715881157553064047588316682040438381655148155989444406244161704584920145912555513417227550283820131780914259480000848664260659582365382972608416798540678510665873226782024730560662151650706986185082845279230330002006479649736994250599709837229755802720818610507941124177139855817246154417635019539599201986863602246478761937077695639700880644011251822846945200514124012573868059540958414141114369126103747064879077651415528198651087327472377465628725406913451669773443587472841120979285152259110337242040488507787966632475060450186990806505723312283149935743861730098710539334108122414766130297156994093466663690587125937479557470016367194515371973714475798520900903781206161083557149816443864659116359198451706849003233964200479839649958347825892306808838280833587437348178392634274925207383615603025757176084214524947148709744778216171019893783866395732251271519261067427919135478958465439267774067085066512426637650399528288317903895007325719816970832101816150720854478292197059835224015056965743206244174785136415174630450953311726073417809774391385818412362867365999656936043969439780498584649287261816535718502943294964410936925170595030384717790523155565685255379607958700757885410202573179571790698661498332403255282872707556530028468194309522615353637644868500062603643666533477148879352695690777199861230871189563720083001673639058861382566182066661599566938728528829187120027884853642517938721593203576991529070381485125159633848047351723120743382559228600157908082859929452411473651923816555181827774858238301664674350637643290491823737045941717831427779518058262872111589669339738856631484342671873126148321932609427575963137432862971714207282215841554120815978483421334089046292460119289445421878392594890002967634069319614721827093896104654213223406229539082785966348177252449596908369145906399355790214582421225598290702503961915283684299250009299773530195862649200764289470560803335740706026919943256663880827870749648531551270569715507152762889672360871575387212988560192261094115011821847432936317052715825172664670563755467555233288031567244065541417073916688580103319207092621186733486796604295348573805688463416653155467428670872418322492577972239711578117824454086475136476378930549590635877607750674156065768458408556699153147735518328428454178161096310141251482525904639966107323410465433574989179151497216408784616707102004778018258023910434612012107009143188441218270454402146969835041408897970924822116754207262872994824945694983845431821199790162275429641861644107714966479690236133235760683353389701451113050570800812643604942954298487921251100590555022833134846357817198080556973908474811769858355437859644289791361835591490582170678377460164030503941232953658769610577256735075304173520085551041417806824835785404573706458990425330723703507525814218373182642298949115744552440877233752942611261559706150872521185237748850476412231475638711768202337430613983702948954152101276103175659804458643240317500239913568573567800591117607779182662899038642006937877130112294208728796643070443235745018164744864657125945763516735531991304872908268110382313199666657998719064035050072868070338341955836223881644551113734992538934754520854260121555897792556020360417071889993914988359905610536377939409771406965319134004897686086626205276407297665928418099158821423168630980228433202167063777440274842504642344809030365944483335239003700805612652274769218659662660847396207806877643158139145808531065998473690705759343252362257967813140584010599963258454198422042417902982214569893507691982991690376369119448506455865731919198869546315504690747726708126191217996455379831713309355499298706215519333516817817526433983890392567130153841430684023410862862399803726793463239048842820165491882948799395294950604937410051795555101770804019700465587736074124486310829158959466014450877120773934751508818977217497146539318163362838297844781067622865517233228574400858154260438031874477418152884000092709109724147569204159513544170417457195890235597165089632689110409738283283848919572989050310485014117588786762847032657368165967094092977030716763278478332379879602571156938511674756228532611072422166404987185591097016476166622534661682461809122080765544031147741756151039805759602688006320390149280810117305544465484090846564152751496783201298948254936962197217672083548515470482564697046601760768016867519272854193319756803227759661036781913813458015683119288546012340782084084093707911734163769469917026905645202963916977342220664315698001306785292650368802558665044526330961909396528563464641476663647181338777134862148698080450928477050487385843446505846667727080336973489761742471045421529301156030688179932551487801952759774817273670072313456450549285069758487947899157378918174874346661089191955144474260688871687774421112313917936221486416550708253901642628957158955589615906878993279979319301552110632802214115516833535834483100656174548844806535697365112992953669950000074076511927112503530511729064704265096091933023176361683448960771805042185679513021133803572148274099061666902224116666464155141475489749112629705765713322634731365942185842428982579648637978176378262916972512537658401914982306118791100494001913037049151217916229585674855012114925703308866922950710304327130085320963041722958570259460010029359950707264393929110930991952333536337617647114138676376469032107831778684808118794167262456030337132424174824876465568196282672820451569611398691454885201321418935354843855683469098668394476993213679982398845266342175022078297034718708336695750726053995690053425217025900669536207967119422370116537000161082266636811705533909474569328564731104156457380737582570528288820293307088020727113989346980438063644938534673389926305847317157939324260652804631618879115980377025950500999456678645643195538173405209910789729214049277385758938622031201634020523272751487125488312416171217334750237616857370978165791469103558867840956413799556737768605922646561530482602712932476411228763875356841086971320567675915561016789087230801603089605125637747902404115619026170083994822460535853209740985094963455072537491008788412766115035357961789188463675827251968553959891364739710564781781384918987568103157901299820856128829309286299571479013216666108515624306649669603794531031579411277381729529133622536310572627016225236092984495967359233290320318502749422872198769280714444562916041206124922722264299635669502507248706737406384993717243753332796355531926077521779851308271562995065179315662688753083653199776390166149024518843739766850887444232042303056548153031194805342749294859110970155395087887570911328828350522884739819384021538712882554058485161011545074471150515306341989398583802981427881947397726649350301379045581017146378332125943676742323346015815001258156733578166856584366868614385616844678516634936876267645896314159200186393707173529709914468132568226111779402529725713743992790310601699055448309686347844294163983897390019149155267856607731521851328991287011537265461357408925652991732695071456657070234356811310853698918960347731035666861411403380967790675720099305150292112781057821416879781911263981111035007815067007875931438922367708733539493813716266655817075323812586602385969658149789105624673515222516849735320997981632337327340759679705924637914070704906080123620818590616084043992807559893279767127234446049989158471379194147644159839706387032143965257033429210061053693459236294987044138936074289780629196512322005229800530129583012752259073495477245478138335003604423213799698214551614050736352853905607460857708953520623139225986445895563546852819107280434029178985341662940706811180688408591219311109572597877693226218648436839003033913265569217994235360603236299218913047968555738677004238758963156050396362197279768011048902132846762363348419627863452383540287467768300040340101997953678990045582909135637128648315578772602946022796354279336207678968012790085620165023575323627622685182616945550943769735149525443566563618633809889880023234182296868492896659453986128589232063726993620894254321889224921352096666848140855999153861087750005217684635512598737210858244902717842477763212141962636610130777790995659241310323556125589163008709142912772330994068346016616785994988771114027685072751917053478330500523651033719768088388226070698704296756393465877847234938416648983664458402675359392078336889184535024270953862632281396002293082175294283866655203355054157234988413740322364556104016226743093416001932516762924695072659559676573086292906184278764620870968367222399781138522804399263122554600315285633900670788409341504399326283730675824358347963513630737518380771224162606756051849665694088351440588371434653713135079822606854818682150014280764485069806690247775596509094909893013039261720240201771443944379201573746960621745607166893453852013268329615079959229659978716617795285457571884591334053140668117703364215394370753454024256822205331741658301280476989809309804803389029999521415084269869373181093448352442146776603027754347004523430027223711446379859544499943577896337883466490463389171387761535041983127381816519679288163609892463710150059381874154865161671474856596488071729550073496284191738227923751091290672203074150928716562536309559874129248890070054172990881658482330368409995356921534634467453551659531129654685782065705523818641335621102832766641628932405168747364113841047634687496316757764735982152968241654142869090751567368222460739067026313733781345431527865275514676922650004443505479767986870340959306257935736779042184051605254088232455148084355655096354613960573822749556368458929202615888916143930917060313676417214396723636867533463181114228028618070883259664084515146923656608648942308016843471433576906428645411654974918505225273842487832012442768693282511487211654127583359701382653150431286406124476574659675041564384467370877240836742518754180050007768818084168924887128212543858603522306867287570246157397070271519492231328081693663695699364449277524689519082632997310235055536877479937160664204055221559508629226503840666630284747662988682547131864358893581705365237007286548385623208416816283044344045828379237877223385933209284598624766824042322046510149916218746639449746286486394485923003599453555835092449374447121204107420090025694847790265884441147941961659892508980636399192504515096023723776461844174777108758490577704855614055028998686545144793090017991513685632709192917381585470643842326405900570903069871489687816185952770194460262586271474154556519505458053956557690163030034948842326735337278098839489123506064729367290915951051304297023261016157129398769885193922702220292271810198678804190428509996358711384049831654110938271761717725729312817560375182377856357930279488275442434020430132612880981906600941486205518616817515666890419868023086487765256935700606880211090782899058495214249944079876372412855525246097202405120709671348261018169146886882894574291142835952909960765299941467734623180476954481919436651330671616570542637898628529601843917921175774387326903902049452099733190660334771368956372213455816442877472715530093190243239872167362524843321852674259893708970140202198662939434491166754718767727485773460080200438362496896227874635657819489489348561949405644538311778600261521821727716994032203847906023935062491795368110214273848667221944800639715966232953785086843960570762317413524003821142409089622832610536273028044011687584632698103923356549372945551640020623128207104091362822101591363905835142223810144294915531847956306202756195678980078015290249822084277943947350093421656038421566061232183111555074787045940816778139163129424870889636366280298663802330468219454375979350672851143519201796661523114039696391913334160392706231543221400675386048926946797990962720176119101406649250921190781054461620220302057455394150244358804248954533197404192496080512389881495210873813367588797086562321927110227541220048312848916382984117815031743817997942490668218854224200664795881965118743460233551089032561318586674760475641448677041645270986725654395318175620511369098883688663359783311186504545700926560496253665202860679677247070911763578491789275452240832750977962662030373524747545223053389480001239258079455631079676567008059486159268208560522051969827481493446751007798900402160501355579956755404116810449209775293630070055670679830105467896776805088524079533969854829067064553603683797012545932655922792921918794800721259830400893598321957564678704186393182929077520872410466792839914414940979396375439991283968967950475398921595969526832967576343251366571608206083382968405853232843847385717248157892660311792076470368879972257875125527235878850790830845049302701407576287095737452624925513132563069890624891330477218254168454241731104278250462451235193466268170426246829968401334867200320172657623659994405959741132029705510210498497603576219687739475215163895315358273508784238773117814950534631922785092004463039629881201211260909606742569976342898306645178404380748234313142046264958535292929422800664430919722678760560031594091593352754264831439564374876338094964218312323333624156607501072070670482532793723424354455125291986212836902429619217586039807380800384239631343698762710829466347282496340768642545299905682880197376120361758110774912100386625990964873334516312442451717415324662176407335876372115252393402597237680802836842924871580014791101516726499537240043950704861696088031734245644221694843585865450418678421074632181330981351875375044061346169019626120981485559056515345120607883822168681198228836062534075135238324947158186139851609007616808036596129311642757756181037959423097390297555641028143940632336841191685965287874509857353029724979472159408974536788419815361621242054271884828747617222641241524222904141771516932801507185174637031751846501430025716750418852429959208093282238183285341303850922826882909663674278413238480683540314512787582365627814013235413166303705250404860853837557089113276934220173922275202125987146483501118810642657546537673170630528701556437051119980532527030177955889844867832254391281433649368478694783119622989500190103775035426007696886480384989458990528608464953869876719528576865265482927520380989279216325661726564648404023394497963637981543059773826364377306969708011628578692507731705251756196587510145112601576537434413623393429342771564265426711407864213640758283499173374179628579553020543518110509602887756947180783759131007022580478988069840683587524382751477088250022513524518449619795786029052308803474000774029682864964342797723326339636642914899390727186640817217414254498742353944217601536760275609854667307974770200135318311261551507175099234456357355960425011635974021098818728146687692665786859479675791644343145473354786495620971576411587663305181922749265199091779566980639200635558543382435796044863844281852785559576841840766786069914100467518566172024454837759612814896232799729968785031858718071470796996084959126784078021886799332599848350576788055386944422129961459167511446999802808034212543069188194897669157715684971166197647942102848256390710305255386526249183873426068448306761316852318660704595720235335928990668898001262701898024359163654561444961429741968637483466284388585030160178280482067957454927625431036299945047807505038058788189104962123240715073249582368363001724228988140974035632127303464424612958032060532171743173241121597931071986153037879829666246780658976657048065202726813529341267953888400738087323947178901161503997803116502895386362721339832710415515141609559271586512643702334456040221853096953583018919153978164989626767478354808075091722051846630315465764512651134708443434074639820587631534695220996594002436970852657009164786974429218400708733643446200320106772167732605046642650885315374930236491965634831457923957003665604051649351621776960799801980667940209739158311179861482647807493511687954866105172530638064186663883984036297911417572281090076694017048142450014698123008680558127435141636616115433363399397247797202284725334280791657351605899171891303418222061659930076821997252096653226069577582517714115570509685208479240281963931915688354968805855502783792022801363090670810861054268394989060146121834437327094217527429574965059684022196689596222490308643659424151260973835263822512226916463889316891901665689322232142735477077659475541778647734143378600805339720956360885507844164096396106386369625100656284255576290960340934592842444318719417593344506161647093101451736226616047646829401543435711412007591984175116911733209942453850747026555207057471194124172484872398358252286604760660505051366958152018883047753555524776509198608235420103985947044958038335851364962592903753678493222090290957112363241385418789833950501465423449861681242481138166704926051728341901462867601100110609487913199720716247440136184171842036147415131786420702567222726447609928235976551883317009722218195238913777906704018127274880844413478579927705133539622437524737969756819937456411849346550489819852233985854988122650869480671077494158723114331841114612021447527402712977019170625293626073402403423987657374421899376688805457721760888508900529788927181289527847398434715332383584246633443880289201651051916882107139668251367568524280302862292718585998897552532176512003438069548617680300731632093172695491092024375761773443086450444759666216601839750746682840371225167526885536036309986808374527437896941353210612771423328583620176004003459796963687454698708716725188491760413577163863725795544643906315950823430306460328253694515983894056114296843788084249159360617464772578179149322152041337263088725013742895657324514955179316525712065566860825655575332722180944605709068004108318526217427430529628816357958581689392239106845307311751770069017992089617649594242644594634713455827976201367613547097878423401852405928327885264359049842051004825035395485945167177152183152532726459332938861125017817263024001379959604605974416947394746372293094778418671637902553183937217330954034454132306570143025275315333186256295849723332187626292122836301721863914182340221873310177014710923627389080384820902117996611437292513833419726364717199991318942619347114686586295502202495977375241373145146800214372503157497137586749240491114068020601577870086900661825920548509245749828081701719685306407037293711681851965759005661735352891671155115295281659676343478238139743697649527589900400221207952182300255295575087337333788130298700969697574752642767338988448209092463353623887871550722600790008243688618257476129156662531706721495624858621603923227661641195303249703731449754179882719309903444809935319116136858156225406353362487318205800887930449153456874397810914009865441611449697457297359433018589087276491692722430836038204253210568554371731057012255915771874766933669119389636334298419810991819351457706952298351386851801613906749215087667414172621459554848392693042621473283976809086206116784407341207455205841051631381697631971853398989115797681921264098763012729184418624806055323987709142099192498984432792308062578418528675901584224217391375069455522958819406614013195282283473183100906216834831937837890900319035026692520846094650747458590520497231385160708056764768998881421676606193803539471051248209542219120170374241730127862315706904956254798055853776714067201202481517638667784140556417777569089627641041876739048863051067861152526975013084346896214993619916635987724218070177398720418810161238915273612895876323651767030906897305940407811598956495655432070141089229605873060141580383038646704730895438571309892581450403607722789611459150663368929388138182858992201499726418377692721890790718308905942330282817793241653618201061318349584549822550895298770642733790184887615171195888896658090351938706356120782203876952776173582037442502083700189966322682441840539733697100539285543369561420808239517499170446809478968103600650690467920852393891790742887989427058116104402371528817093046092638610176236661113849636239795207494754495444536254372654716154740767028586923441977027014137586833815511083182970026013609490550061657619440212217748899932691397743445260791210743171788947040674524486318359908795547262931454533609409989177278219945841384299100263354440300240723162647003496262026727434203728879042464848903058416915357186998360586495853041587519672129682348208256350343805677945626520636828965292501993644187882154055222387186421989164020170203118380281838022148656979639834317075024227094234382539867527812410522949380834246818702037014941902066962421798272381634368734702568152075510039098153481339956280126913614428504037129499912815438251797854105286555830257031406573092563666475635546002017873088408462626939793838727573821508883170369974242055541568904176399557217844220114405060148562865155367583096848276134866069759322750649562334852882339156010887543994475067267364820152260452113994813336834812033405136868746864008669645446120539918434940502864923907026225275841825436562632843138841913329402007097803726863115999409391883025811766181240904816505311820294417554995678454213494773274634814932911307304930197790547397693811984982345431097007950145151736135670067542990946212693994253297080468272037508878250993927950941148993013783694465078453912165484925742073469094914926628479060022880876130989975983210464292574083266164745851517763646523987471179680168782241747377334213442145461178606006652147796424406424554421771097808533971367777817943235047403085995185371422992169183441591446605510937074384456739748516135481300008935300368034971893097844780147751736061062185220740374864013440495551758112293168153920610042210452973759247668631678286495072914922263266911518374347695956866095037631852529640097190757974309187244148747149199853038791103508082393309638595837921083217296546451279473496158570859588434417932229801112200835461462540992303671477654732373227434361596946411080342371135559534436533056358294661909553760744917950610191216646693903664032205105791850770936540410525078413424569350477728340855374326277510796685460269795820538758413737093477870443031063151337057799536161382770831071308286557677942645749420093332314616172159157545996607779638711964834391814039428375375136206153083000728764644973790754280761361500710248544839449858004380357744532915370504784035006652147796117767351755921374199496269058089465789203768508474290871485427544509042574440497951580143926749309683102674174472096689069829014486875968930281026629255062556116306753142252303437587841492989656584687198171921035050723582680019324010258811991913440215418262776962597266840157986848542718977212107447662335759837264287683187724655842690733580970145763675707390588951948801162771567306596489196784574446064974571959413948534028890892277990421214137404902794012715653952708849477614968437719962691240338532041732679203561601844866976357928942511490055807109877645790305714914439409867539696539424487282743211786979907458090026960325572413770001353636505044775611257187615897636205377819825573329151378833400802419146025573479678446552179982439489288472093567004199219959512608776152632821964343686691022040917513564557580327367588392375602214245492215809401469580725623971323136738284691451834940740699541546253693388500485982427116384879670892934011842792029101481469512863752800528631250289170765681748311648756970476283887981487574364332810234831169804754195845775172273875022990713762113607726165594678991518378652733501676406242603078239960001820749195113229424641232864553445234374894922959106913093544857871722141011893441101805587235448411273510456429766413489912020892716709344810032494339402740830564427501391708641199022645851659901708226590679692238907568510516295180740243031450712922802200619156794471936027482107282987495248148562474739880274945435731221353060393843135918674359023793013438116894868294810973466596699111163305422637521738053264001484410747245862020233834022965673425671030335959632319403151990022497896029441056741908828672806908786063681492786628183712005612795717996067810155748608134644492587689891740340780334193928872571932048530328268244830606612533389214917275410841272477469462375833060570927356878050388898166530014438487033116146362234259239767493381167613492606100668001046511618671185213430933320512550023595209767257472622490643987656350057318371789154921120780353471030854846349319482336334258762350267604023840160187010645087383661929795568539890319480295697673145919791923104541843363868944051171216115300181891170113241117677566821408496401021299992270727378112109245414706456259464687644937309314518497244953762627545705293582495027255705339543917177790299784608869608317156404508559711521055992360204575937026713905222537728042452957948789196098983632598696939282176025586996040288622851735612308344161032293217754713819601912343052533637815693654500404646983469346544559055935892504095576257534511914191964838895081555918470871650322947223395043922490672128165224083258926001478043906550565275281961231615196666383247242820389667984607040486290116851243885662715019885071670954232350144531747061354319951265732650350049524298490494158116104942254268268973709467118341394934082629645405128165410315139433035168946075151443330071169939399399395822676649307872271134608971014454161067746447083440215306942077742085926268785430623904008004649908195830757737595615864573771701793272004383644172931006664360933398336741252979120685295254119929282589629755192556042578423455290365635164537424201517076265307306195898482356370539930965910036345635260402033955761015454926297648749071879621127495930002580874907997340016087595566513872247817639926267158113816347282529212810343115413245065280854012184710940392164614707199850748102259517453212334250151157711489742578245508090831775823165935801721763929481906139729053524144595476365063192497384147942716681141522217285594498588691961308179428921737468807916056121337452151427029974824732088472739850815164543906305583338475215098511340973969666486849223471342469071988841666215042966472246149888436982038819904913097899762032299559986467961295203292719209758295512515826862905702082992859217825868011827343470339292707492811192327195462082478204585898113798118239720853681646546217146494867186457579560413110030573368515682231447398322307206333874395704569867755086768475917109653808745726679709768217428215807542104643341720793752910011293942594174322616377493260120968737732807158125537886407624103752577162580300362420095999668416947689145829205133852227275728884325046978739143820966150463435337650634167110703457889597860159973364919717259448521685137230611988062582585144658144732901403230229458486769826698644725515099503021203048562574412774198767865235259916261704190393434373732044840447603889459786038457745210111278590208173385369724909871232221798416778870648568238611680887446950564222998867853166092973490483594372002501795938902021677039023238381817532020738160402626894115953090142102978376109552296775592636360050655327653953214098951153775722924441296275152492637090647519505188049701119292931337166082746561349997310074960071079680928354830932460136535256008278596289547210185646099034608292946890357238726671306157407803926039826038873293521372426221225957633658255995421729589609421123711839714608172410996340711497825583981935230864655690030759780431065335569868125383426016439725691275643222478413395420771409571016059833323747262062229085450299265506591970524495634262415434164740236742023304542368034745013380674722192996440236826896490766193080352679213295063546657195603101182281663625760961785137618705419959788651373111078700689190567170808142249958979001888206866368595381100299857638530940525071145469104010848517950793556040415898544159273880833903917734645585846177726255739168827511626520265447230295254596119505627992561683694816538397252363725645289719273760431742478010479836672795597073254045882697474525414152525014665125473423891682300025595751331490082192708500827256034026873376088257682691740410981215894405847190385727404523446791965901539691237547330963048920142375583118656511183876198703999243307470229242496486658531125875959669438093307092362263350889095985473186135679996916199457213139153034156206411230627942168722452598260603674135436110909748673940304683773152795171036741336627566210637153745939860101480667064793610877338110471501995432195455064773789293455187717501473931211674888758224779243170075262597311070644273321495555539967585571424459494642035875426832535301069496676938918110618930367274695431604044206226374977254260218644669637747368929640240848901488557991143608109346307149915486209809443722230181849486118365864836717056893296340415900795416013850561606119175278812406981867756562541064511991397058502283255691954043773469280366422064565489852730614435466251370569853090764353091940686819529744128037960504950304557206169843527487896037984250531008350727445773112892014684729703555576953203791700798643254749810307865646704455570996112759185227718481293730134677958673486870914930397895084498705118370109445177830312301943008819068247577852085254069635812368802421177001002168612883711324779597317775267005583919875106810675367998400347894138896057232142884527050427513828461835821410771413931389039966224258375985609179475941128628677922799100300354023116311699192868864970363341025780418262922103643801723102654742511649180014935727530477151714853946978442104210982483187338149503183552379274634718340472650690933629430965903987961104604636080276834660111736149507416930343013416840613627096825782531819323063070611706045437570491258035992651399894600507088441248892672627257681196842870278186398535467945068861756135177028585150920692217840493771938063061800367522245447673648914018242092334236253593417660465073525020181310542421526621405222861959770724325161964524189363921973581753456696190296039066772125730782937576524319199240542371571378166908788679006789934067041327973418134718074120103600807024566318260648009613929674622477459713128180260271046900952287710566187295202812628554233461317120471706688265524988883187236306524731145938868022568923489831259044939416514894379066119624115606400097832043420251732403878425398663432899559244396971957082260516789403272830712532313319077004335756205576729614343297604384234245538054981251056622396363790005530209818375456985069393169937278009069819278690186510335486330983792172436314852602863174911582646024987581456676113766048283101121798235899240225685570999858548251772149971704485803615457151636795749275873895005554406694528947677205810779830810047808811132765883226571837969031593884243564409849843083460146158082326366423029680461077681946849947189961577585068421064024933491727229337256017803290667864180247578146646276812538815684416963322639945048806895259694758986721301037972180790230336551942878831625549514431561827427980277167229162466213409254970945148695904018822541853502606284535067098532703365119969953999795618391555492627259341558038691900424467047146465578489996036898352246767184908902791586158679470841994586428362034512783703643915775411347066235951858630928682367486609721340207309980933136370074542496303145631605042202401066888032249500994849838572390517727230383435614216541281026961113765070176739693416621779393412822821946617026149605678105038937326172090112706826301589126201633902828351507889907166240014120834990229048047478535565903462212705317358121282010991747040593241616712085859014847325376740471349126186333359962011119727009736126167515701383808230459349063350991920753380879776466164604443253761405439839401950720729456953134171746279213541163650087814253313799505369381220759996422318140069144240914650129838473690991879521353411676335704342891931193145129574986747177069549874190940820691044782166459880514781803646258915392526855147777345843995433987951606952331405649949883134494681287217447353041556095666337634606880184387255143314506709417410697585005374916704637777106920388737633024306547480038884998975144386967991470370320879413287205818270380017481374179548002528626401350254812579350060391779879945475832253795859706018354107709120506733603382121609963164600958429265218354346534729651676493850274768556122217809488615939542282602698579257663684745473239830467610267020783408497060777688790653254690067634777300285683196915946263610272700079229219399512743478889242346297617913276187020264923143526656002678463810502759143720658829771010914420958292324600853209380470341843292110683212918237007703195284920298251901175466685685562792880553031828956649701962044270714436653355883856662490387581312461947708031319048443233017712996851999008463427928842080393630914560662362277009915215257709072317689119195178671399402410049584854979043481666008693393580285037536414120109093392889284313400873747691484097429413171123049989463894075612662440529443282093310911541001705998648766179808095057086191843203963123315066303422797874887058317271645979148629774946362428303457927833183847191727309971192392819840038652684774885025931210752955056029005814409003867567725990766389102109833600718130733673317004680530421223394257496598293509805683864236653529848522675497899992315992343712313059455998505074071437508574837188270084281573899427448537181575497626052683542458955299746251866456978900640492607605900797230521545893427442904194524635270009014809792683143631377081304761961348785444438225745418601007987558836631527030379574259724321914155846702555794188355979340700080817806083037102661187743882589732408516461554411873364882334181859637724718729781075778105199265477248723441213852853430042665661021838373661510482530479684306338582297893654765392229712851615414564185753971244313436226752430290261768170233858399095692150929283710256380909136720553470056320775177166173870717785163902007750186652287967951297817670652417282667914465797991957728859913216359098639191888847682924190291519149395755379089271541082892568772323542305935840494355762904508205477993267656917693864631177580178917698454544632200752526713141406752664941545226818873985334207743087966989346425511216101540592100143783478273671605087572206883498172524174232627559786888461244898110251833471154984126525321253022535718107916088957882199943577923201834558231308509761316549687898303356194767372842421878004479196668926520217241514299659152235348316468648333827474758548724979275724559788397086507784052882203568578997016693518621075970983732776266736175990407669654330922486030762599683218245679068894411573980085544409465794488682752322796998326329905638536494350542780250911840276270846745816780165616174707902182266874235896876072300448550940007248344243655352665266385885036359798300526758034295616755836042886089862448157482163394874594521555891200982533728628485423134218899109295692859690121137725415238196581902862914319864367359051595471430672369758484874949134664080002886828389674926676315078356458350764558175084120853841244747504372064974674847463699213128109502477102379144743365780946728959605634169393962812533452616683603502266123080934340503086269644492566850893201345368718550998430486961017468445867946855468810994250803135950701097870556755188494192921208080290258363211801458676227756552527937491260727407284256935959546508942240333645059558036184585301301310668663914811321406467153069718425102288762833990735404928348837958375527303530433450630491672948557138429062038093813572809075226766229482967592609918997592746659979308596908442781609522311995298353497465096569477919106681579905259014605969438006403227168050121575836469224441045257823822223606515440654103253560489330230607794260329290397915891783106770902567858646660522364739930245272072875756642367102051286383994516405682010349389563169388768994302722711825773385810711413518946478403937511130665339851767131631123856244591674693761093463071306271794120145892568453178499810801659133677612077432407693250520048776285810322119265565116809729457473318337564894576387255763212046165589316903376284650357267467319078532031952624662325222254266642632381268366887648858353425796844273084462712470659147076618978353906533118556180883738803261406458762919190537190883109753815873106663137509120915528047882665117278372199949672481575782255635214750142838042030912029330550894568862590840682437466954324407760294076716559957074098684661065767772271932535932504930212005215549017043405257288603355013735744458971929006808210938338502038693330069529578108789553965927597414713441502909948932564576732620759302353787710290646382258562287847620508535887978662389437324985435396037799113561971054195330959822036365287891986347251681304785638617826256448754917950761523446094605766226384660944566806018176876647051545889559123876192455205955073387564076385975233726231632364456434431142714341342384156128817883823081191784876335080225210202972009130240642135503950110202573502649750020793022199800794743010492599396287322563387661455527932273628343272786757765558063048258926128199014063724364967198784711136120786920845156397564731866075696143907395500485920324005480764649729572569127936013126057257142212796044931709663050076244167221967227257152487258453871061021736230638011378854280934851960260476520942664539939058898499040213182431171482494656053590779914090487333870776845018902112133794914054071794143756455879217379898459757884398205906033278538025392643102883659816615471386938080983310841484816160252217131888994248495056337341812584955360931202071855882522644207014057298666399338175182381490326188357170380713918765710030599496736320680919339868147102768410991994448746575601999541454671040432831377526803273471519713483562046398705301333421336340837417865323240207780596927239462750263316169501594469956556419614404880153156412604078924132914436123230489672201084577767365631380675320974595893439860391694740380732796936227698876996753790548010566850460056037480600027047396847348732730722623150357678380921240308402259076657885022617881691923987805733101728228792730089888572937500204161016762984688166965390436599505544874830063956853539972250042487415780864237963960588293785245303075861721475105182473989440010528765328609841168855852275952203935561487667264329089190602805377608881610888711838092162105819046783977257574226083204653390042285136570680461045879624792386086450478835206593598794789969054484707106820705751904226810507459647421104476808213932691080156475935561789876259644819004647812585156324419537895900239163514428077996161068595650308046501606241804427554226574465695737867863214311174903142761346637770945406268647695958208080173060806652562309609312959947809263716137296285589337709395846811174231463002271468228357436919524612542934542953909272947313808992903509718482352153362195779909306904629289060495372239171331753315295980905071375612260132744735829813077314690907397838832102522600907424351711671548441751642951272610767816144861492172900957657788844873573555249663250389770950655209717358065730550970438836091372108240536177223761899053273022094043068342908222639092820798878367073555202901033002661071452466057075856052458828984011774862177397597186451220429256702671671957348260237876482546312641711743772114940066749240643508983033380571668202940694506630853844065522493785925951670266137621367794320208112703562762402303782695197399881586035361089043195158017534703626552140194355981754450439537975568161592686363980866520363588485801256826740357561705611124902055297082122072001522179511664605805724672404817793385481503015806542471912588269002439661733544726588646268495733756088247052603585920118845893503682943524412164395305266523847393688218174434845539283254160249283071282620949380437293076112114659132118830983935981247459564387402309145371422879506979871221749750920502582397481308478138160557583825889735252968933452341314893215097653748584046218480099179800221729434206207340547289828831276482656384807339771484427495085793059624847852861826459937288443198906238462580973430241789591186148956349156240331232422638477054747612688999938935738861885326737531062375441229941639978700374820795469123075676127984140257034407828530735014430410474462472296415247561226700739351480623009722945205881796282199760724385203068910655226954468677322088937207662093309819966022914158795529830037864196644459287015112678273256221324325806975136221260675260536498486760778345545900775673436058012842670240447322747130307617450886600247512785585633130688838561973055037741629844100661365899156184552178241013369611615202772248289417792193038942954180846020703638853104252304076087449799492016488607523231008500008000115363533972218151954957824272879496923669484835790038798548017077883975614970817560242766606813104483903040107994476631425600986923662028998009705948335363965870513312215277999760749431720504161059409730574405730381389254549123795375273364781824530070429459740371460443745306390045947689900791258786776503831335025506010115085316268892129341618055336146325060015477373221504638392161495506891787846486017692415788556452978329746703604550105989312280714306740374430115466109035185964044998892550615973104609694422042657303039647341981964270937921563615769473199386098097757970811346792306861312284051449595700553948308536066954420599705174136376237678995204822269607854037296175354412068428225258807917220126255763279969309873018372488428201650179998421626448846639070445265340645556883733283166685155868652860622755752319459828169888279648253697913999491634763206179186826381092785742116828412722464208152009721843982954453042800070643021772087418114742044925378161442174061355929366538120107614042423627370606559243723944534428622767183042312965702130469105005308197094374570657572771089389573531740465016027001806624488772585255821758639798139715543255587253597619527566184801525949354890195477676674588202016651999028889413692547433836173551903437564742216077349460589432776667445674224129553225559845477699646130356242826494203349557587971455577898583559394336513706830846843879500442672066859716426411978850820712732475787717874027483063298374940801041617097595462589093713001758675116379608567957780644543262437117458878461226238425121477991633445519064514606018983393719269335078837864328911333667107542513560077781997498132737176401314427391310890960001746189188682968096221929655666456001332258421495623054101274491109933594801674608245471798963585810411493242563221413299102219727304428188596080385027900760834221292889277424180993221577310521567787664058811459966173239462259417584492622847368085166550008288597925470387163368693688208001196231183530379631527041348223821144528871854952883621167440306043154898312684429029319275103945765484585490990464987813214623621107561171945008048745341223439131178658226068888452759798840787335625011527602960993951473095563016822279988514191821733049043091229869186545414387662667668062241880278234916685041993510696725331241064757347037629891509890944429714925601916566561036657755067186977315368896259106627066008058143459308856590654464264004200623468440711748626146253426997063205105010650462381073661394417176738281737389987606348494866375012711981307989750266680534365836291399327784678371759721441751705275404642267851061713238562428823823719688686297198418708407007146547449395906641368511420394797599158806918371480200393644460213382530783997274255587048560590095318362807070865406976565279477172872091274814002533169291216516405913988553677569668505328616052644781377522509162741747190742268578714080171066172421178440900339257492100512971200078663332121891424823059497460426053117502891274782882372958773912810318307965285209114571658546838029925762892910281017620388615608106485010751889018178874178931718239343234107257008775934572613188279244131687108643495128688929669863817792049773199131256506063899384803749872186858807096072733626057947629897051014135501485759191507775732151891083369485681436123350927519421630356945653409995492041352738492442552524724967085777091208371525740283293541463702064257372894340492621030798154721742474955981788703343076869479308210014871257732981207519552165715365456258812289908419817773420490954713280926485630447662063134633148110512119355914065411959222429679789079984452404100295457995501437285336584842501179467919059188884848495784876195998939329773503053467827809361366285528245934832961823414690930657244412643684328222411245264589670369411151398758038039410365581712926594248530589319290189653426279528602890902610780657365063346930166575726663224303122807048766433456390388508445051529150316613690608263503865743933498941389033867536032676633441712087441936088294327810128796252691607357341662289275034874177850590354714730039728457898866001873342909706160456093998401619670225401050286866281466523037850384977881487613406363947183199062242991321115608227579412748452249430325944325336857510742410385448368883183750800703930215208913734604784836509432933398820427502940611500901788513869683443626212021945850615208791951947183571232947780349406721976336816286271718482633721326351150148317646056180498869446656382732567946460533623926040443635878388718966368883080626503803716495623037313789711285414738386712550442063241294545479855885178799069630383876553574438378495062415683771294459256626085132739132015632637474170480198051744237504994819655090354010816897145705300825741584445805729484965283109583398050936239347419403390176286786048622668263526225081174730410532930516251971666786307316933656271422876366751747393532511221807904795046424064492170312015398769455083203647633163964320440730060897068071569579780085863775222935675538374829982809866730375434785343986460562186079721445464922556644541512981557715049964310705138154491240168302510299147116210271127383082456618418817267721426493550329429063932204414585193864489620154261902355479106541718164927210965115916952764324373911033974179456899495456007071895163738864165608538109566293297291317546516544257864308121319292930601133407087216374284484019467865804713539622829445242594484402705125289544529755177783120160699553158992231230038074693713547255355682496348987050462665142197369112630424990893427223906295433637395381362047029232272803130494354450277404995412955380049556072052837776030356037464239095866867263382877045645827537369844366043599871210563189212077401727695363504498179679270768886270212703402720443656664892424547665063850678807880527713268050046665870649050959160825223264748062562209405425167491767895561017594161369994206790280139220520632727524055020915812775124516754060297870408844791101361789904948655601964905971846147552449057039472868993290450396508111128636928070606442736615282348013132926525677207928880283853188079524805867507883341863438164826454732113635913602454805317772707454308648091031992924776404857061383252972419605710033922504593763420518734032188012303203519783841423944614866170652692607979028868459042795064854661534476090953366125166984069525913361325316252818726502541854292214320831837801199179469047655195452576622842890795241098232605305787083192011737978526586435072138726713518502728896814602455855704786168719299222889182450188645233006730612626672924264523106260953503972722288139733382870657162413242263803178722159509648142794462676605617131637374707315250404328177677847154140524357108426436281158055539149419348570023713906553251740808393448587298327096190079952342129930640511178862370928468527231259862112450870926500566221206266587064409724576815686283505127905241511823129603220759747822617173908674863910197263074277519182414672514081015231014615470578409660276518988062925858025173568731628731308189401141014959181129618226020851642275955309817949384495168418631816192340440169191685632182988784801523321937819352139807935121167157345550956695969355587352850970056330362758640584378827067855742345438502419312488289365492221524890987660137185715585384250780666784379048824680957085214950212717285994814110313135484727131197513020210104798168332449602616009286713834366255521448431280242063815096759766865578729251983880725023517459141561333767580241964160400159457682191008576152209877825786762641070135628997817810400529651050125846658729728171317770428421792772680932516285619682711841477471682618368782916591703292709475980849930542523396402834495013645627540493237895652803530891516250764285313531644561282165915381962291054968853981461040180469856355585007230878261463003240896390093225331566287052379317415209047714404999094601536865024112262680507187233569664622096728659433159324545471782086105434022905160485237570626343787086312898329423452497188937520404413257468717792891952125496193285840551167318440837658792097310711678483769115819770911950261318441901083090872474540490808048377797529354491641275123824845130209365800235961828651911479818191871574928772954037477336113885703202286150619207015458920485970957957589878584397460864913187917866712398642015997421412411623277464544423033463268383167770876498895844462259991904391505155891302190756698098589564112744316198796063467637878431871579234829706473115376022617840394839847275130774538742790089287593384242172203116232770271146025225543856011242107096468926346022288809310723113468655398526323063751744789832177089630070548675069011652720076930869339514800181504569975653817594737213217267346605238184628416927134947015394227507292320121235490808959304452395394392786157314406369144577436873851930125024750839078940601374523314884277298471126627663099077447039706664885009837804007573323321502381062234404453674543570496905604723926436788951187287928850831443166520087357174272469092154750041006259474611843428497300782694973533593577335532630087367620685840739137203308328859120784626047492531977474854157562044207573262329136806398603104208044661712743179146685428119150169817901212935295725394436952985055020390079246860253528741713490739405804373661313381708877767692912616467325421684921142970598168937848279131866350551333279233745501948973362536404585301332937335883733798324010967420940373280079482887760723433925007840528490776015787485059621855624909085402053041356603249864133355253814504656052874673841570364809225433924305453756933743003594322398183679194006654747094502346911685029524574385896481678659362590637607664372314855805811337237868918690626666858223544506038402433985296892523426214945723595809016336759467766448347669111691403413982292354148533119149598706320880614077682608372821940200631387726036119678512680021170559257384705180007930446515353559027351218117872889261207719349058787480665780355081733784909270465680988843431381679222512541860987307776038744805951360919030790112271343070577242412825780607269390715755590447816708846054517243583610860158683308512335425827332482326163076903555398219466327838859968419473285185748636987568916507631921878391963680874999857942455056259612493897799146387305698645707062153145416068177331328301942018283767680809151828597923569525027359050685071254712577486403873635652925532743171983589233161612404722236840200451091512399390340839945665259391563099118239387273560852873200012860115977048578631439985375900348163780870768877170049919598063323641838805294183618698257648915255892437627066763939738008198167596837353089097983889536725061443802395649261237470215929854472537473361986672872521288543513422709008600428747284388855120216702979684041142856999535850332298989309750436126911643829075167451920587085863470465517744219882352696327097043832904055485197503992094562897026400509184253633287345647897536422117844649639667891708106667434437902227822445565273352229955086460122271470592662298491240023242966104704460792832058020346311186398363227472029039921535410984482496812484212550778483418491129909158294871272671640530192479678977440147019873567873550978959214195278285403415444529128792521456241901389799972038639039166204337814872172838693709423530546785035525012403797418837680163439530142632840645485466656114548745969502032540643742157526072449810771476349632359162713563863024899706015065130351102558796239331099404039504200894848736108129663701773430512974659731833130521496902976252859699957916255104582775652513782377674878703764813999940455306467825776660397569909073971166761209553572487480905073690297880500237045406667931567773741002377348984318441517741807131367111047415484623457602415777498653538358180176453222464857604154537562891065488251713751426247712539397989048350892928844302431280708228816449730227198524652134529892289537353695622638085634420087181223592526569258462168139669438272985231635574765106389396205259830143145788814942032543060012655612809955059061468405205098739102936853574907558370646852022355807293685801084206197387284927330101365746852615539774503638430371055990115880289412413602660585861530455958163951975050164064600392072271070754543551895175939152960506391475032404224037024543489804774926987362691122700628627230336755333169429591766730326462810483863885860532208240503812938312439500805570341871214403839621763281850725339523059790240949104340103185551817715104441471739496789844997977436077195115616843540301720556458936812739450943472495878106424549725463312287088251949345465092436937387622086125486220781556074118258105144598329824177100785615630697547083884573365596445417704608563992348483375554737886220346943653254875077684003710703689585611052455540033897110186187977631406804707739698573576212121723269231989797275829908231187973088200849168091933309037952797930240273475467258478385696270812812669732470784125335697625841068751536879691671056553085049386174618345198913529945361591543914321368406837446810291438626140302693183561604614451256712450647765336773090541958816535470641917796667718048329350349173388598044240826784318512723774290743602559166013646865214241658898364547309974800133742948392267568688809591804530764783402861725750078709154924594127167602178091499706790955760446310840441420200718957921138405660899083665046218981819427414690988215088171522657074728141079315474284038990400073950185984264540675355095507879862810846316919802530407763672420914230422051804490486310342129358280796256282494781616636574654100268041698818047695843872317183179532287482657275178323080065129777496407194519286168451618146383721073382332726764686157492723549999112189387399225300238869649455664886496268920365456993623372219879268578451122137716275152132630386533869625140786469255141192812516141695268051636878938568241320330430515375223241785739850611181674653354754998103811744205481597569254054448916382354004659921185467191110409838449500920145544206519861936312081291143791429209427020301518910124310261496709174373617367274295032282431325664419804322569919107766846863905476760451136132360427193819435914302479532800325526377215883134001722711002619227313508218246383033821234519707688246040873990753551933843019479254600071299181997987112518452003764916144408818018876215107837635523022151577645376736455857700463745151494315788919186383114639593991271636227771304118650679454548049220687717742103196414503778828890952550873150301210035471335718112624851319877011434204702445223174672938394443649935022313702433349684132076777099858246801883654472277704003815696230707422809739663499451391489508980576273216298607382549818027930546668163026603167800659675900484482892108730893756309280211439766336070150663764489972981142665129064927365685664157490194216906973335006728309586921154404965527359965384581286127156136649027768258618152187945287935707637787564065492971209649652850404562643086103039243520523520771056242241962897762049257416345960968086606795312716804028701988952603920369687567040293355032634517043087533836585895819786892764360422978089414297408398527103832200467166990957666927174496961026051810576694214055596513192504888381652041553084823174774920344835282377875253312067523044868166897353625605041102160244778744432098491452593079965201099391273952471897484304927555026512203007346387427795083950734107157241295873546358085828442114980818608771615233756100641614025285590369426859180891793077938454153834294259400148638214647032320629240240024082109961791822540135658471834497315451197235671987491465712111976569233403790490659815503623371162013732501098616301462094410610690845746582722321403881307024108368044888020447548839869917874776343045184544648376724353712480114365412230680837532523203559001644077129424151045543203845387310974822310462810520870178710591119615554707248040832015950185124132037488776842779807448552122689576366340488434021141844266014276934257742604964135511729724915668946777929437718422692736724451338767189337210999972141149554228402840106356462454094659589987878643555372308535096417983936586425618145093832309325975770171815239245712974340445284441899267629098933501439139612529025586389660762804981851403123339362564852490074780728258700066089798543315413190377941115054226598987098968018543704897480111227132318027824260205176173325239887009698688143430214547898135639216096469475896262867246357946262351168581229079207600227069970599414865009906868206238199000995765124453833308326460219420374074922914363496533122267836474136559969759182816688046340505074699299740336170443221326243842215695926514935421211866982443789198088417806359629757383367899471432631651598657445917548026251114968770195646940483082024690201557313774046509480365870495773196100006395746233882597232993863291983011762858554334257113435242825576678094344447484706306989517041545259039074910346188578173308615943358145473621585155618340641934337429557920070403155207291984921436765330936143850983083607334171411169694404416607883112134408234491062352765997695000710094852114426860564188416379282437133127090582431593482346973268435161282976813657465362761626761663222301484449490722496704915161715882491212315613074718573923180052428190267883972487499692753641489060492946017389757260800514388148229953818288466982641820949407751474277917098056541504890902679904750485400533262721378073397406139224153433592872095533512498775089499435822837227581375288810439515152025317110816038155674169353055416316489320461614590495434872187103005107037064431532714614355894963134890453341159461462371216284156387827115526993710504839142098103514537647324447511109895571311310244797875291463414536807744867087615759148699849022954814072359038057324316771102483526304202733226010747623594879474791257907715184347271188889946040637565762136010382585358903168467599683559712500344173669691118161204472033780760461952161670240176284900462146716455410377650859500552347312321818398052567254280051016478873958825031011930969173679728696272307317533389090145763984084856877279861814652496842294895162927455060649366388579095443518200220744941534440843215083039259818633566197369486327637481224807973575246401072431632024380277789672022285856800208304932835381950885976277899568684150756599809070045343815918215820021185518979026971767559022151954713975451498016489387297569499373181267017397169450806987624731223627308380333674671788932199620284827299485370779528841022441381108765115752809811891943354376803205122919648741743473631196765895896055327834230938524726827435083726881441940573922313483338832554604872070845057184581019504444617556509814464170630874748623959480749166107631603920664087063025169832776501818149653828419605893340602414477815151729721437899883235123228416329889575587900437941749871839270056869227735786517785484092591374958545935051296861307743618196674405575910330909788161197195612009947450217526180276819255495734495439492021993079727323821572694754722908309981986689054081697049781722545780101014051193930726399696513222255453981345827092719471801918913247715514957705779749677647028478912493244840267575770262118784983412217989086799500914670201171448941727493032110845824105697638234105685393694496143785203669672959990948167201236222913153822664553906557430363823678309453905884073106399112559068228703610336308262628688224587225332044104135520518420015699855234747147476217759574185448226692051447353302980750425338201675589928441222403668503700019463798035729504448088334672011900694106186410517753575424569840250565345499365739543023331847548494047414464553298407136699839904121747942536274796765785921993454561992570689801197510267751992302409039182620433417045815033440760400456023354989567008667657139440672158346669387967438197232316910633481610299991821518979073287276875394994681251024456465801992055097347934330226457896674495066449941669486529948855135136271992301514129082784643769907560126643847052173130086026401672432462029595878473447516165663606488307879139469072122212859477093757334750383281863985918205340986228688803769538552668068710873233751378627996595364723299763551030688714477859514508949503919126706416897441596166809445678351210485574542786823074027754962876987379981120660232068663527933130844559996319537072771317167725802746340970723817332427388447915008766070726258449769361986299994876507763073323041698873339971832652863060541644264880315977939451179960294688805528249284768896959834927484336663105329711309416927975213607509805865702927714559506791881110382220695768140996567044623578618110383235471572991003586059773467978190915066069460058211292526971843857726984557390671106918067839993607396037167046451521579201199736267394367857637380864481840760075945567928205889735127890103633794133945888318878221055083980036315917628852115017532746299161451256720161835873008033300384479715860779217617120110896184941255550583867000383249186263884494443016473651981585206841959699603332741484811498754129813429571702336631180370182933068895453161568772019627847931068405400479877218912806969154042389591645937009616400970578591085582671479868740176351777925925611253167385457696708842735580219041338589359830884486999457689957626380812245923513830283686445146505210893446401158786742970659294907665756690763520591809291996195600830520788082906337049868141438722789038475832603183498324546076444810232639967207290657817199160287363123359226141260748904002484213640112416288229876237302861880955932128613165422039767753838843207182684578972075664522257152849598952665473752833848079277399273799291073090343660385367678021763673909324175418919921995526650915045199130076666309863130679351132125600499980163383371909785342117999197012647564055420330194775468351474762009366178948969785551814102543796395624104895563613025902475215985933663270423230646219709573700580330133239673482631270709515839727717298628006024927915246251464868460735431486551229739332297360180198501119008818216886429383488298363320931931485615272955013354631382427898227740919960687740584909556570378468795036944538481035838338975007639406736152081122300873161602130076597336885451137172087481407631234575340754295860102893228183928359050544876102964015345396414493827840823055866163179039997553229530354679510555074225805021542501342743607832204374800528286305281393684025164528713591819158556862958241976218917359853190778074620238805207815856154767182363764194624328597192458034389469680556512800048427394587402851832941460584917960088954580076916820363122486756080125186409671943952812631020486186802670401534659617639287531093980028329992242900405866341633676398468739490627361362509187557035484483685997101364736405996665495162475681728798280326731640628763948463588327872900003754084518729296579350695717609066702816638599741220768498847761670266607663708536065074919506806173855701441490691626944488803938663503115150414420565308449300520526752695418788705239776519885126892874224816903949518768775623963368894947587852553663203821370996489522801208779273949844959056682240239600898397415097777777368622639199429070501989914753417202666417524575175348349351058589575701389448528871591341227024342623389688484432907331520348455727491121505676023452178627896013842014865572308467984133012796472729932818188876354210776049180702804869012399247257567911743740028958514186007659025346045706988827978233454233777811247242986908561959299534482231406405575018165622016677158507409474894449407871855708987008170107764071540170507515583759053044241772292249403735254803432410006469304098953645508651868993465117489775076284941077675601282860327664538147107008504108075112452410652973456593735672318895234733993072115675990447562055913038990012509189226580952251124643949362958638130673093056231495049819820028190544241021826749740126393145098354170666994385599811055220276599730084747430872117723412772364424052062957374087738686461186391999658437740876395502834438844919028474928675131807605688778853814715042124260164480358028527761807155025894180619285371641320960176014790397429399062828198994489877329906018752882481271248721272363897469025189142947167905138933910508086160108830598380206233686147709850951038401533328048304504296037055832192145051081661868868305557075788299329781464669569063970986709433049449527630237239902500315600389284733694666374110222405714427807727352363593260795809407223408308774657365714572929007382840670406401372379346976050314369986219081969930118732461587041055372773151203309376101347547070383081429547838763223146869320223760135666812029118465030292264263012060160476009589353678191300069937677927862721730954136471972469106548496323861535762740576230971438752132986651278759025914617076880330536770021535000384356193888038159280504232148242108917176951583752058911616144302626205725228561662315461225636851153030256588281110284585753999740435402546176116681125425898407640413544712919488572155189313844681479520132070949922144597083157774894997474984663415079466986520212258640275262665289690414421252212722758968933244748202232330191343767124640356046721029312326433961742738190969556112079475059917153492801819709682637270197420490307966396285472001277991223682958371571303599575274556139119539079068412010649640778314249637477355667597724646982400525839891650348659693197872313300822250242997107305785164685067528032774609530685946672077950257152759060806825936385039758371970467954167298555437075640914459600504126506008914501643963352979086612148631452464321920755891550053618599102153055839353773520135238292376477713467333038351946947077233472894345263788479920012230257524327381066262484009981009824712829317136418432764405942333592784920609469547905869156965851099143943014442337930839704398116482436800939022819426300739843327215812598969674003882544859535769070322245796445873805191414492519981373068435090158368401913466599434541263835230617023181602437648751834102411518279633817757509413004172820662251289382486208168435739871296139175201925368343163003959189825614395286640651518097755590737807897065771407006968000019565702610021996860873205517604707048425027164450927935551232817940191559490633884905548757541557048591655396513756431860223104481210481533529087400119243599926861109271171771870591164830073887690534881453247311579243313159022280688096540731865294900906156150124366475949568443617636674472001912996638058822580465884743055966513762516923931398657177448914689360065231607233050453774728973463368436334839738006948242740754474643415453981641208718108327566480535678398424355900892205781641154446966324867555903641251117937707645847758117732026339678339556996124047254383602572909132003508276360521936783252481649602456195352784706389265813508470951515645071267474572698893338548356826898689807812106240752292716581623033059710923096039041994719751795579641930945539903135746181719518243924901113984432085604715219001171615386453327587212770507993268657537575968159799994358509027694443452007836886489482086642007343092656428853435057359260130557289364400868565163750315641787795016517644767189264207382985347903015686675999775636084790366584154728850125463172023623761676246806065797689793246819962477554660422942477500632722136181284306641811410640621789279468044607187341460795306932307890593560721727944805476844969226934817089065893643806791835842517077673269498887328675076607680561742217944274991212207743055783240437062432296923450612453653694198937001477626196562557547020972669383484605573135185071398097478134201201669939386676474764287362849302324712029409591253686395932611427328125943591379086448735194065554285817720892869509580180504981871777630469339561543205328099099077121502374079095321357039648508180535653168643577393235460038786591179005957717938843394781584098272755327261381951703476433113935351315577465680931944581073265373753820210758405457334327089644159502290896534941267528309364024635912549431046869461146791969165776052227222613077623170598498132054064960838394369316799815325776736155750409967663538081083494038667395302401110171265581479505645397367280225510255055646310105625242050760196307774357958226932858870077221315192475280756288923229999603329011494041164553660724720590560335990292811911681268151604863825172588463037677263402345859629557114452003342404967194952125310749629807558366863814518384724673706388469092629408109885854244017823809707781446790148770925261610100902172851573468535504802006281185044105372735521744563480235986602877191222030654945141478848522465511500179104502834238483737010136178183303900568792055792950909515747325134632991395967720872426221975751974653053589556094759119622547845078330688366089905713278024820091056862822452915960040723655089097643642545328663501972645069755525700838494008796701315934979048603518449462910992321660006997176307608195403705384875542274628081412402653482215878853763674722812671389266740468704808330446724554383756439552887833445067416307283616949794537720875636953848170220922306850613031199359651390454860934220496555358076065875597484351333532988628300447111535465164214639404922184446262038726275835820699733760920569202292666580675874370617062628957694937282734130587795645103096360254281118183662289719847256178764909622080462128735994376133945106319195657075949812964876942814259746162543001154310814785273120230001849287207780867803556879956402773286157045643451993588990411591738860678857865386190028063875275330500019731960438112526163943858368934238554724949486519455469862772353551728279413095670981648237876808480432538813974513578734745056652470112542921756062221659300528498811360511944459241032450896473997966566905115717366512362456113754998308800556180055869221352931660938572719264878354904039709127848645336088093944481330521223581066282248960129559510750847222382408580416460142625404930602398174077102418411710363467795977688284845770182551991592620144669797226069683311193818760175638746078669670173505651407345733242195087763206234353703432291968219532065968727537678463640027380931372072336180460308814889926599214316805030655762972726945547329349796135330989995994529993655978669264542670732981007117810161357964643116192789625281491432758552211812843679668216476273358133313669215226306522385048957331252706720936919184355553644533423893163637992256074340847132417188522537501196301011054849292388229553776714211297198025494547688505161578309896318275755860358721543831237770910066009805663869437766865317623536645321162048004758537340840210125548302622868282485330991463192793727680355175315067959958617065364366847621894295646116928187991234852462419516471065466675279585816778231214014403477812745623073779757548063047151262208520625833583813061999011849876647647799397245186139572271057382808165182933679212838091905220566081551725748458478624284982095231238119196300650943635101012907972421285374405771085840419668917757276192634633746483005725838063308329026934556342534764258813511574680520906199604700747317454785797856634467024715534485163415878090751099275836369040756098367588527672697310108889197166738905768793108727487267383731101284809909030720935407715040458522808617149529694850379381483479213198704586383710679865436518053976999429510699961032275996862648343335319228110152311467807700237509887524899551282706853215515308439568724110050968368713036599016703284673186240821892124421376864823278932831307144314016850511933736793399328795418520574361811545801934434852538183520644342983992085615382382654570758831632402302229845582841736362834171211421126104850801151152345150514111230914134176785887568118361510884576107195031831033959100107404281285368822591955682610080435469409881477143455778116038218589297686074502469397005169899268363056876766805817374438126472036744780112787961341466724136322845759034557788413931315206831766868661602361522569831043647557629601484487218791665672166887795426593764935338471502277378344461201956703724607136420607735095150985698923483586934861196206681289502740291071582532416739175434067510600754522172916553520915986481127869206132894477061772319799459187668798720069221896053944346052073245120750824711271613985128224176071102252207925189359496026179854173233753529258370255760931562072869216456054402861363314707471866895958924485349363567365659438628249112697854945528195265683004412776306934318539080929651525565729427673690365049867791576564718173011593374352863816573875497016043383533895936329372922415618202594764853439159921894447614497812879853971850291240762285035055323870606492144888719808161283246735354221387168350375147964194103443502551096275106550146980276415987313576990922247505528362137752588262557431914752443803713916759838068199571651158819362477294602933577999942189271542744360735551247639395497192129200876165094953711065179085395374491795318946405847756606807411444802079117974644977722478993489865578975472405063088267731484314065926955170871463477328196820094511307821726603749436660349617523238172128984954064335147061474916048262283458619258569831724188250501881734751235241591218842942810566539594076941693639920410468480364393983546582109857549151554111315132554574507549997742907289190940018627020725972108772134708597550596818851716419313148907150050356034403682837352678717969869249264793927062530911276750529150485459126886223744796433476163586768516863535527063691600651869341559356678895343790796530910383712657200657397963910165120589778683746558360579594728074751226902413992565321056997806104408314903198268890765440150764654413398779956284172193906665501991428482818798262059253631872177950459132478470941719767330299878548346101745174643074116221897770123964675517714367204957361322360751546290917963592605888195650747646561431513343421795288519696674721090255221480029532644674258483302948123638262040218981089117017369338207145939231300897578003562545182261209207673086070026106473851146198749033353623788595470029494083351740177852120035052734709753676896539592412487958903630822773211586180078944381700776458184247172893534819880116145763993334585654529835609788596990610344408952274486170848696337758991975123338653488653922761972219211823478044417946856099721774747125635209161557698558166441924254762905538679961661049444358868476565483386007908184724015318601779647778394145749368228001260332638264986629892062360755317740058676699224677217065556213633942354916294346953063128040056465260264438465418289240341226124052576391233934773386123187110307057231199816642658506700155379843954843400655393582639511253484876338046397744778434239905611631719907697022052584695152402693103544385300041783594379979140187931108511709729161512938838204066901255113440667438779010368050389126516095696846623714832655916259591870941340283873516687997345430109859310914676455789679425678571234701643273237700329165345566951048659629401270592485799550611312197773617332199404573561557581490830765950569000329404922666236012421080109278378724877861196001415412148967523022640815617520587415950648955250085358341669102862823731772434651629963636379522439042037311554855471747019146648950677531360063638470976412509897225740141994211724860567452797629275903803629647008905534702000792370179775894141751655633140246502466182112761828377475722799975218849409928735765011568999040391848916191419181139650839586026366905028322216429959706714172426341383541782107073216298445525734210158126791780611022461398364673707205893541040267095423425674516959549398245829206441014942868931548265104929097396941817457989318198919293199655167744176679252006972202481229916503073081737501896669972381683820405152054182267665481512327016268323733058109155559281981684123445186418466881748743878882350488625870915445111809262180516693286217674981193864757386847236019974567884727250349311293133244115878465647671756098963753160884590887289539697501816051087114815683473039815063699049324300746020531203976903916951957980287118335127356914956821756486759925994845618998507237806451323582215971670696911197023720331517094077875705608954914638434688696138315596697866184734173023182135955855262620045073818851930956881274417557929695190663658136313242672333681457225136748345153525704315086388919825902026925184227060978230845848593977643080300403472566157810540978911697243958202160100857603667059992196993959080105232107498764592604638114458830331740930804130217507389650203351640632558484922593157039698805529635906202181079758446530462245248183820597103067702582833465494442945793484812203736533762417300332247746947307761635666108764431551337544525452420208515308932070381701629368722385122938518641509007330463962847862790991370872690672019699338084533501819574259985487533449240152342268602277440814637172110636695097785417879235050435263966832572954861676923036026803880367219412301037917736461306449576874720986816693385910977151975343069530389726704248193238677780622170433854407477225281733541558845508081261931137895170927392621963751673313596099599646175990548977798243574744773924606265579235662646243654216843774674669589733831121372284697594741833901442455807340948463171572460767611528590812539060923081851985174794790549115881760155938161404500678559007596716870593115470019840842610434676822795239708578880876356274872786300079447680625398779909078414599045025780309527600123691131511922571013462463469621522329108723717708796078210493208472019908769611807483008128723411487094506818599234641984284339429005777416525043105322542933830654556043886241133001787420774257683393939383327745113838505519907963694473889921543754891076164618868337622092853852271858098244943374765397211495480024983338151412479255589522839553623506992969813041118843321261523083804736113822628764517032197309860287689260807718097489074692101011186998280431750802795834739331095510748875287497260720164692261887754488677118219307907108908172924367016155830410543792756920129760311965153637216671459359967370593318906742443248446183480972843306186319173783208555477273236595338671854010595246130373957935363199345604182998979682208088630428654551791782017246198300375913861979640692670456702250038217676361920426250241721001045580437656085270574477503123915384093762865302495531958993102449151799265884769965038489937560406890563282541417533059281429392291340664547356098502832806355389515602461002623534563521987552209988870506711398287440707232388222366627456703200245469876490740567138649868389093769537430169038093514751276263884145010749747272021474302240902853733373506602580081000344534809656357401191390234764603364223314423014599293918617976737503991613281444092980809759398386947450581000250802120927947538092088953375500167531418148657554935661430335008474392189895951420174238100910564023399093838719077950848970619664432181206295396606112781045405517530138215196372860044939208238670087894060810567265043705632653707072180283347511094117229696685215760336059400147638874506751386171872545240514661209472043778355822355764060141009756528536158844881353304658312479218282319898228699460863315754472542203288180444110466790433623100584794697243092865256985290671261222888083035825017434585907274759200625322057920594462183186147544309754739946315623431188506915246923304496705563751536860936988994927486183222760224309977331773311856274652749796382367108257720575732156901680732903021708748686672015803891899421562944655678473294371054031808753452633902979268353873706972113428636004586917238300571843977261542316597570839823405615486846580649622612670729593588344620646996639320232210835387338951524819800015711673774470749274164084897094886674297632916641290499141332226593204033977147605361764255085356884422496248637637194044644305259579823109143933511682668278951412548685091432848583210942885196514093028163303186330787305098241219187395962790724905218459652871961318236620943291825459819487533982304178267380751266518851306877605690004402818432756049237033485633160062538771351406618394044930313917243499912607915333775334594738259039556434710052947954680755953569783409295641219307607043505050077816547817478432389926727914539881837311074920269808836699305827479403051259436703162676562380887829811383559892228979133173915309592635769328489409331637206639037317315596063928348122035140605862493222452607358297331475104197194152644906289263580352324349344421179502280339010297247159528727205670109984121221772178596111521934508169243540995064915317131685137322797281150655128781833142175288316606910907561604983640525093164005398043271206976815978268318617250851849204500220850559856120926005497672496447343251166063955598234632755414011169482112975435399045522948515370226118150751337118643049121623146505277400618458729705195953171633600194357411393540479465321330880779832464394739171542426857082717261364672627966713732994414493352226793811030809755967467435329980225407840676736481868363907520203938414836836972017977774057911998506868219435237572746427179194774122981080435446690292130555787051431451925234135965986472298423849453558250143883281790891009945497258554760238698738157771255202004096338624738171639648689138214615059157738487107864582745991288033896230989326012268176204610685036773839399465674789174853137681059797979440170696485866088473913187800948425107058792919182279288774347880477333756210162594978231290892952024498358284757986045179483112290834165797657026727936139994893700213058945156242752628572138352955191958611886804617699625945629776599239144440982332831594142694014943441645985508610359507819475022588189633133711838839808299458931256384703267072356040213631077979554586298770456519308004338862129079472044692130867347572747590505616522841480814110277823451350073832229644859699592772122564010549784774851588005584859908777001555265433053413636191093002698319664156332970646354475017793690661625616592234323854876648988622164574012958490111184779565272832060427879073056764911420503063044007170022926292444456391091687373017282760707827743844830908262158733804301476146045699329160751369655005443879272574505034329972283417405945678051511588834830759651017587886963242718217297496893058917903617204133050325813122576194218710731158750003391085334509234475123206899919310953873881578108434070819766263011257413540399939446177985879115190150370696380963876941492589984238490282040424853272516316860624500451527377022996734475939429423256424623877770670847639379503121369878607057604092637324480112086603630379679712823095044326264830585852457325972495369839707142633916783384438122227553951549098992978797271977046226809409653898979188431496496656726431431943422862401025316182717933150034842196718659182021086568439291991266502732282859671963598034366893906942929601865575652536287171419734633031635682117885138445339899716768493135241380043712753193320694888460486673486944638714920709917305295000350902479128350813090206780649376308944177748327896999932376198362598473735495601689388953628743373566287533450358912311437420133546945402757909579462787431114580168338755929310095931337796845323386007360899192009739263538809155573288626976639161881130009561929966234484391870868557333474084806496674177967746689116408224442889307146800272723390071864928322157432205801567669344253232274110411218846485626231116240800749345599618474701926482575984148427622311238192759969993757495186230942593821232792236642012062406438896028731792116123453674316301141849899433796166828520440555475441908142079111547550763624746573568588914905727137906366157178783405177598091669997817021681593989222630499387380971863127678778744173866499582739616211798227366569112158953765413060273071219115640010732811992166047114292851036194682928440963283949897731866129365397061186814271216020622060227428612028508405289082693592324262830329286470699553602139981553518542511505105401593547065532094757217041151230694069131478672125703492481049842543378287262257591983893772386479497288596972028433299500025581721272231998841704380002183378338739990501978780503239183840866336632607684367965073115151869935882676356733627306057567422683972333966794219429246045290148184332455016297343164231482318921948436083565372607276756415238877228494921405087037126170730660121429870382938631247800356531624447206714852037794462246080028545344794532442605042256231439183856276839477558656382978165962760688455496413515626758150511090652457821027633742729097559702950690369750939594612454021248017648343415379103982420185560816542308356154737869456782320650510276041779668147736682189106193811344707455202778410872390560216989607026321905058099523255230807346672696498733269840036241881544774268861382991582446586753130469475436967871004542619413013058686460084585374362836963163899088706318131706858670654564157964130488248330139893893280589684824930168807290796919833533596050672475140699458456898619113817382067688851007759790698999815793167556880829700884842373873790947438804448740831051402972568229111776323509465532522114912721242441521103863502462689802480430429110970923077477675411213539078357127905048095627649555005443650247657958712584366629431367665888882205289199427464453855292044456936510097226693215709181442642570343800123640515385017422766023289236232158192880905637543299314005333713955094461476709529003839379194570732970681758712160771639639135678507799581482258941436626953807502645381943672945001019500260473934338377695483864511885470001295048117330899867445771775627753628098949212866331579407520991227225082616066313031224421879462644753611140600733299804187036115023777592527949700210617247016929138107129253436327254683146140400815400079152115949150685225121350953282962795808050745423450560248695956414494613349586240131251490014259181170379528473298549074083375455931286906646993056710718087434483971554215219730217571899987654361402471115740563979346287727021110847000630077637075329296823160398376354927382114837190104994466045733955572062240295194310597124976039013735741016364685055999833004053940517698124000630431939144406632956969057635429466895474121009125983285535715828145209564115570903853022906429038686148763997023152931806842060668784552139075017872146007742601792725240929342337892105840319234380199184545808807585923842480906291723557633085061180568753595798475318951650190892329786367646130377559387218561196092418844869594128064871816981690953398210856087918647667826038477746098423973943053181465590185235452315034956291671874419991390149146381944211096160827363897067058707469402554077815688647335212645533723880480350988774392777231260311642865225313103525395174540216748659757471253234904866445055133911747986636097479438850609666770424654010901187296092325185535727573628503952987348345226818302682534177077247780371595980866520972887536539455012470695066967435899522956458006638644025725544377782803571237227002892955931784803981383318797305867743162764588416956754469029938451236326698785629948446593921032292913540239364584576357986919517030987622699875291441456132362683807084848982817365857701372925966970684365777588082788259031147621234202376759678665942775998477842253879511333414377263432181918460611733781978972504989014424610831924972035743079014432673452075242294430066026611003997906813329549694316242887226007715693077152449929533227192837052039422027899746308192867079379276993221663221808790592635439458280652186363961721792213700465094643076982453063916064695577978517247057061863864561032030904702822669311655780855271236782096254703242791586189224960636132192288723260139050821819728831841963739689886994713014353973199402206867457869188868367592096887103947983657102372277139468760850530494353714441206192693061823794500941242558747499954179963489312903517456259627385425845218510610657250045663991547122891502181174949146925401471767075281483227618347070353636023310493462218215904856140198014204197785652641732557179132766678398509054645048885785903268899640227898021225531729441380150712857999704369802814362062197749902182867054949364530120583729036485250917812525263806512621194657577828163650051905832803801214590624640280947002387837352769811061001981611682546494094266027597622631937379353180562716123239703108664227596817882113126488780593241541076172522247588958446545818764745450674829178304480324618351953981735195660077827254951858391690735592467702574694322174652851706756952341440521646655002351503347903776863015507049458361092704676623648430927587345475889844327352899164510940038242437884330850358366634086226800709738580266509419857803776606394452141708968721675788188506567015635468326869967735879627376767863834891671013266337240556879249955638313231836052393569112224475253198988114053513697663989073894979630776232507755143091694561868705544209863580833039618756739467641112481635869617806967306088817644227340815580968020736952459063368134781855211380849691067383678738652766266805491951511504413222187716547200652393822807459433848964782311570534040875734281000590627808156447096320934427702463592867245306929161804585724356107247966215479549585539858986745065113244356315875026459893484562218028676140455343297965800228949941566948328832697234958055017168995972726335687257454106758722227247404357739694336423386471371493665823339378946098013861740011625298190241767712757987949024035673531491007018099167692869066655699782816701126279361531559798637073070352307225383918095356783626271327395932395904815652313986948222776198858758813674274191184869585187931313975879993238860596324095650917197829656764542005557940160919815998724709291806538275182413300778524916115241840005249637665993980471099681781280183555884625299347507032525343747571354644043376063865043094393881629451561766704186411123352853330618457997153971804187581914511841701160218644434123684272516799029298316619281413125595018132723014953878295302165201218693445465821269568953878757539339351280831091688237588218260433033934722765691183231290648089883682904906146065656813114032041092693867179386458982545149579294735238838151080451822974713500564211042931834775882476056227669858647744658251756629204468119983889544786459019226520430254686427463461549751916031695758643220048326669822389228348683653396532728222333983785466550485717956145432660516262154313378946283488942243547771360116711033902120361485518573400248690002835774940501750935192957922701206346623179956007721220879125112435816520158917336526183748340345114390636423619336518941536350731493575169871823524299633168690661457856101688405049142064557524094013213053765305831804566229344975074727670575626072849906541271513205322784306553529448979492163257308499319623992816525787610013936825930282602022604441501637396342261613653886672949222583204531562084529100261006449026289862616760170955594805664046001717488791877501500393358286709658553341452090843516017231222238950109439955769764443220938881759267133941753201303940599557186369620649393810262775783943020280812732399035970285442325953674528023250745580801920727416532123454282706142858488680720134870128922312799053319810743774067603671380861856488320746059408225549276579338777106601525249665455855951666636207100054862374212674635992665409194172771802765356007750677705986406629051120642728237665784655920180895776915851141662809667376462256972375338957137651505937620294243850482991508044897242090057484281321622164624512065317208244215420842126663312048518153447085217762812616034963459369460886520752113407739110207319336782655679377152128148423787137615840256950615554934128869912865232774765445780562089883457381993320259315892380640549934187852337800166628166724622900061267090980154840422090402631629471241408947142524385990228597613482074675120675939677329696629508535475689950292144201119490551591458235415472733403747016385304827892546868376549257213988758178121440645604073508896562681476979020511225722278020484145631628332415138535143242144901672105909988701873286469245484024489219127615218368375509091970118862103412062635786369033073179576710849758373176288178633653472701204863238690565908170709761876556563493797188114790834280140286911611444907716110376391601440716535577404299429348009454670831022796939901837919740413701801231704874788591889436035370253140630847430959671301991868383707460994511821445499756469331537823945719839836746679051247137017265474053186932938200403222576422126382839390863161056318746528636691036529256851637201594437776676968649928345308573456253538068684094149475974621797120944840935760400651645093109423213155273126594502803032986928932219329935448051713226504745783957791632345672452476627980584712681279516800272842258448116806609516642719604957789340735344025800219331112830996611860831539735000076287074049298419356312810796804406521491219605814558385771951888831354231165422716004864100131143986281622975882493462574660449300653188535490722943878152073640164512167518550575747488225651244111892582649871811767675591714153542475785956774989234576243541772248316523632021409379933523699240749724413096859325462511246903133739914913386780817365661366646713343268720629763580015003209438358896868282881874745508135661065352602438907862716871504956550013486062956688498548994465976988759311437045415461070439426877505815620997277811369397975089830797144761486924923049867943484170104847789602707224448662738206465241200369368282580141366999467462056017570883051527117033862336348195551428142856543192150763049284990748458540983665100347369339242624363122878278820747236854770873416742331262606100262582540773734221561357450339855087811026193892344695050160869447604280934926901089896849116725796215313089552501773460068461063304565183051655134097954382060429907702234579046072435895954259150188806591970895188419350882456708837880653898341444057693055259361103851594162430230207959279916965922229873700423816716613875788379116185383090242810741899214650838317283012511827868513962968167205471186750562160600566994345953008927145703454130992135479919515393822290161990093130580608799421404019145690146755159722041263740083043262992857899232664707962789599263203522405615948026961639890901495594796830695289847968272203321550459537309898092322525740312073290642658636031584419675780607543720199642755191393190714965972867391350923826444443162373551655271916750178599814502039232956454610826208720543690685045871658972450099306367873072770277470605289345872337286588250844136549094205170067257450250048155797562838074994825083495780939080112677545077636554579699466212385307016486766479067682451954936343603095118654618043741736519492154884969811145473589006782439080369798888811286501003439265251105408993659152543859405623185725969665028078388727539306232798264389478237252250189168113519425783528472362624609487486367918389181888242357011280346453828087057012539393577119201710627694582754189216504732225054278314900481091549248986673225114561450712624600632528749432155147285766647826984051193985627093218785814886279336842199781807631102796950108245011753830575730242300405903615007853816556957133157823614077403883972960250227880477917103449542313074757354278439054025034270399074065600571139614773709381728965291155902704845135286795513641870005848003512995973642641533227115884468613192739917445349402960728540999053418830642216030471240016028953039592332649735336053755458139665682234677390894076414203985168768927405094335043511220861392282751046764355257502899325061094401464255008898218739488714857591009869508295495000954033904049310759435136725544860784696734937126263459590599038081567312948005522475019305811372573619352024056084170409962167981367397013057905440944838066241782196219622454764009748639141624660907916689640538988046831467821347503434109173732510547454913337217581717872131891481775578744729946716787764033146201092930109773733996002464976115726227619976474516158156603301335931899577044631057921904116183964385894727234867121513166218020498397332238557625961972331824584382414407296280719424742007258093030982663116235905457393242213471852108887331909737229741293926396110745500820363737270033229878512556380394135105701771191559496336553423294805344759274314674028549387922118851908525073428326546771064905529128698908122446637681767536725611556055319808861120902616546142034522117836025313080890659717187143538475124091711024214202874971049907524923668793031058925914368579610306807335279403361069743294652615374987098421123588645350054265027209111705830876935753022532287464543915537865512293700585652969979261238857254432108027616671436370541303397619921136140114155789954557703299539107973783391632078035905331315872476169678558166181556698259637590430504286486483292396520970517351234656633409060885279926668955279447030266882809750049369200918911320871718684366594401724105331089566960641988589016165147250902323620990236655935416013244212257657283003620196054164750506377124329220855757875296529068549446285344404077588100336087990578526891554053779506764560945499120035936018632442373090611516187791844162649160103615811997717755110852515179743792512759779726203411977319148197371394480924058170907027874011179936626196933744208281008738085370772580086011802530503701433419256939572820137577616494820500784053190156276863111999874892682873573252606617499461302972343580792963470357816492045176008303057173584262976341248334440647126108836393352610527923816769698904310330835549122946753865474862341214538724804257675038012854278521279771940092480177963445249423889688997843224572421039674983758093868905211605894073051076453382914495369115978193358063519321385169071761616395486901319995470111258950890856537643347787011014651457042916078047909969845157091938660042254586688585200438447030958537518496414713038656393667992392358816115149254354035451449390991553017389910662734383821735430486881636413415450742970617497191366987514161003069546600755863085164419077547644567532881919722969528031929343913875866612482996958549783222090687581814950155487611241791877839030016562097076184858606962313593795451540007321703387197126067224698065963714096716083163824661594006794920352602374313684982942230568206212844350880677050169955967228323288400076317600006301792260333772632286173146434317658589149139910608636483460139977525753958463199457490026841488086707791883468912606148117345228223299697632354055269104296224362891836117898664068123571111571093546536747298547108180012468457969799049977932533782810268546170270363047219626655172448365822425296477215720186723191222260514099331934942645116756309366737719087063621072191967162246978095072816487023206367996721913032123046130799129346080044649799330442343491099130079023921524758331275657861398223295831775236968611050936949775511385567706112432683354946034598880276505324718503383658319187712384111282994396425202255895267069953803910144198807884746576295952202117728919546394314123191123462350991171231512682141381969872685902006459460659782888569600794426801438690223256262854590103133201764046002313722958029605639994762474380599111508038523943804492878208099173817945640410888533453679941339907608909935006619034266936538496386904587111081411407048897763640089352116960645967212625435416456870381439273148732252253892596178297335050618330352805982964905272224322961769714409820469453843203830646006606946419740046216518662412683370210545544477063528224998745214644411762580879827213990917164534105252401810802719260197595843607517482637055860508267617069120175147748441188827923112145924409919534834072961765217111482372107216634094115369356202669989796612015280406101899101423615712892486057153381910829613293399614626105589402722590781449941337144946281990938943697721367496118915228807358108367860273748713632554353335213656194719767177176418283960092588240571038159440593750099261062851118320965690429063167507941845735066323053083275791998947171181349835393126174114470610182089208727260069573919458625901148897277527462273553759983042798215027711951211104776039329839181432186104762695405771590305367012641657926350734420651719105270719938284894149294995504252845777446754051824297720728494755976599054157664885729630786791228597175061733049006772142369151875448652211109461686756378307448398724134987051190750473223345900906479356396518222123012146280091189447796248745361052833597092740244637477129642279684248747812152684640880741537873484911760056751486572290740351846420885469187507800093729372988685921773427258695439004003898672999327691078660791819293661309985645985126973087411950606137615721685023804898340419165112915717965677292613699863364921580400106176025022510013709740806946676725054262453320640744410257810217533356985113928212888840671699518807163721224022499624944762302287752109335258426611564287384786837155278213605539219676131592217666099903301326875012612110238523870214752329087875633726702895422324087663679103153504737591178900385726690728152694361151646043825442166762979239234738019774612288764796071991416766347978691788161377829034661436212546827274988637419114307221442630490919710842483714575552297609654753826069415112399785823852568565669388274014526462171885911718293528428176145711196973561392971296508540657439548734798882322541297392431788332046922968928601424578766839303705258159532208142245197569070267076631497982831965955908093527222718422477784690013782132230605264681338859725350443110250673694509975052283625377105828287725460556075632564614594953810469771303207941618392126289272349558909687312243850041585585731191429579604942536088833130532232989245978053967372205321263922557424005514993001798147862576007024282276994923595962370019302519221505242234151453228748987389446191986186025251874973306939776505552894582859552089917624751184660083868797816955975942131817219105876844291032330759724897865916621802503798876489502218319333520366502952005469708572926447127525847870901009380352596048430022329669870062059816178621039453264198897542094871568577656345823481548402497253588435364526703739017855211871968684978421794016209088987043959940397653638863956814311334161033254603883170075756561679399501203723605267529035671809966463976531051752111855430838072889217576478917361106336314990980332050789599984288862719460603079323434261627418479806475267952632952550215190967490410791649899809586203251138717533330052634300686193328629105701749079857819626321967359312248469455688285080892641810560060699349127633453694104357881198542041493864384185575644552053955300036281223544247224365795132998197544397849680790694421226531442444186093481424962972592099639789811436284835096246149445725618302917501060256734048297872789191620396732317910546268272331959213701809139888575319484766363625218416470204713446156856680176567976739126459944056472276294184971122157662053492639439890936644867637342305897209524801415034559656331972010961416505844842692834000410888249755088468464772239446486307252688621108112218486192235450517412181866343086921350076860901640876933382415803835025332335572279497611072073689892414077449648949566698274813719798955972962876651823167059241346987536665477564091516478195446335363699404029810273085388452266507192202391667525779441162303233780641179752798510135398042632543323516719602269219422107531424699208214938555289926838755194069862252655732087654391366344031453866305164580324423336017325943580357591084665397580243428413112250754993247120180177665787203863680791801088859666773302340005097976968209318366654047442662861493197724876038927713335059718022800329887018109688356103608773021516898258250740042946515559930089786895848328509398885372277355999437268363191662423738833998096753859345375532058958312237467078200092914982353990940597141905687130122623784855309141347045278521872771456828824673282642489929020272167506670836630188226295141830573813253265114077461515399812030155434272196029619028906440789585438607095784355385870765376617511536133518497332649183318726364259495154589549132684834457995989131831446418719501478250285492226549841621935476089213429364899163088542214472957635287717595714437199219680271771467611750973974225293233446017350460739498200597064544927041688274458632566399688923114873264599086691827641102865696291515649502228542287985808222701228842723763420279409864638168669289789084163346471864071570079300814775102537270417810070424119268445474940929482404024703942324603950693518759217390351273538773938269679961263586956902191110111292694022281522008913643710977150930366625954696404469564577845231522637645393906272978924935321788957906888696040332365710839173259134844163407291113346632928738993881571312364633898421422660063100302449010085499162679266203295050189511191319659670777726377186197604502399508214515938887799560122522325471061005434204989403110752608106835321556688870144992494675783122104481386396197463914289795604640658472690155984389069971787238586831325917367201704849356297716572740912209031583014384155020211442112339914320535085305357885142824854172067365072032764029454211431606143684082340964360582778353600314322524891838952545326917707204864546892766077968399895666812688685917732173951825802208665094416086706903295912791047092865097260451083913668468740772822324263681432877105470504382644691217280786578835072124251708816007270982723796562461052866438587454392504950846661316399879462393271411642308958842271408556285210983279003210130708114711851280779389214091751735075186729393785609011649543393468101053420319169471710269245986907392283662443298544595240240304249794614955261680665992289069641385864396144395927640241606403716885917836920594470064170543705385376264565381173419820299018945864975841600905489317332441071338057173213067404982232730273797597975860323052445583958763546362690452938362970937312233933271869337970737638922727587783157388169225825154495399034537328276291256784496975953070821930616768445831200273424663247968544835896164742422367513701706130167080432897776250963271671787144300172185631389784928313692938119317941497147824202199035570666208637526487381314513318377302554074310723549040022670463683013767713652999436138328280995395679727890476488677711758075242011850505699497392248247251310446583564155239621343697925715267171918425131573064212738593431943156839691832052921310162061737692155925405156184649045366923464563604023461109621418835690858047104433791607164031410241615886937058805915603692631673800251112773598233689184909006054161064757193877910412355832093825484363911626814800992128458928145047088823593286529226989021698142340785605904236346632636636080032193603544979977092136550800343362154892328550160667056435788974947357991216849774602603493289675870845257397877660983982600712426380348644690004303904743211751337871213370347963757913944409951341978166558633139544746214376659370148387522087311662743824856687006223468910273628601798064890517658922511128764717918873930229661961905409994981945107109084061553707602234823984621765237655672616572694941155183929435886536958547410446449792232509922301074578763561050602194055651092308533829314284158705786503399271326468146521365648144376696680530261049150457397846371881361161554927663348080122636340725523973573601484809436085142741890602357536707534733715370336203047844918233658661725389854970047968758225724658611938416487457056775821934015123647208842290168060720274391473531489009324187831856498188621555610320815611794319862255929052967230466704959775218396063763063635237330467485556012067415628779188991064547637706272270623350445405947949672410780532218861808283334203188176920052348075487266737019922029438914847214812203258800830177229874362506354046520056771214123736823116050276835858613758204435578757327253904749653041150248997095429143494716440807796624266688201396967423558564289427667059764288231789292049628198598825434934339585616270966988803740260287666135971022624572496518834957588055260777613786793683584338380653915233143020342556558165074769663815514834671552315615261336589088397396042213427187377836880899019532201288172637713074891422993898557829010034668057045227561890271609895799225046171078067635978736860644321633421502436740396344959628127001926951119868816584688378303014454961400403417191164443759993009079200218308775758440577402177794651303611393100949444395305655917522055367826496775849833423872440581363654300236478758232932289316200203440227494329233675071627409922939190125436648100269147528147206435777941393119113519641461649418270041759451838804193894344889399249852791868798244566806569739276789320254282518148557782638377730991249815932013826806264651114841832826642252249728372238352091919182204208520517901647833809209845253550240391309923272239041251794032411083170627680038082685128564166335729343460620118574971836502625453022708842824492394764836775447054075601609045043350765121399205625153559764415403135723272767539053880297791679630160867457322284199509205146869517914879211632171741755584775825305027660749632575916841973397146624690575447188914857649510751622541850768109625144008974899568367670976914852320216770010772742503366881447467859425649002590295266198530508991822605198145897708865753989668884224335968394085558581397331560452932764593809677464502609755801857048586163224575525100360629472697291997264029810120684889242456805793082225504339487120826361080641245479952695213011066874378657724393209485579010159132451124581766642428992260471107067572138114227452193268518176971625757585269307287387919362731954252866177523215745823616125810964197846231164739631776542989196462940992522643258327304455385424128469353068183073518295201159101674654849573074386959702247014212499382081989136859380372340939764727037240319867744551520301582056963976481932517170653086481948485879135918493324477182015994190732929626633157287479419227988537813547621131090023978820826538534005815608006609007367866160268545499451746258285238020455392073144572637140237367349835536269084232833872789020640642716852144298538785670822124799765831265031171151421274144485433957372136116684473310065389714003941972408062018406963283664878693092195564871022358388100996077034004885034970925125091214427339121168674670437878513248673931894829807244208660875254617968264482727890806962160302315771693173351283392731912349982069669966799382620422398008330705619452913041156190690616004933843371312729570956073699021070342631600583312083079097109341302923193163196515705903696813537840241389842100711734157861850995506599584436759198700941505846887788254278040986176930497759685145155073490820727419466870839873190299900471590826263623864677318374359654113210743598382910230375996149202642462936719632474642606985315432769913380632513371483709499600227360469843451844343260597714952988819894307282115316499907109659377606030004676120825973475449942213251667608675612747412762252185866079939773732596061437075710545365232019625409022971212062408632548056955660520317151311092974668124587133780405744594987895717662398495071405174860237347975355926093647661783430658651711202774696731243409114859104658570758214797005140977586977696241499002070326211868600308424401695994729937279135796852031347471222359087786930128127838285956159821238192742112611085194216516454812100675070718851921185827994526467880831493448978147576798676804651549512041253430209737256032784750210273412066263097318126797771134573176749867260363747380362354570341577297095683418982900301517638528902171504401907045493874308002312531561562198182767763468046377105710067684832868202062320815176524986522042149400994184022758559375852472912022068746236537328662079347343097043614028679304085386608091607389172179685449490914693397498105759512840679289956298625296339097675430836966442932793325118985681838762382619542328694026108472520002966165145784469081729883084573338656124693706575579093531088643687378936034744286762850381564883486450924024464806617276085377149935102240311209277414594637255448653197016102620697182655452428387471834622803822596849374216715962778441433267259699906484520763218168053474430251510271479529576889358419615819021730875017068835511365358343027568936691324413208412319980508735902851979414182553392101980362233687418082750468870459530142824313615200649118513411273788448523403559889813711577283214092927396378720631655703720189503466328242385967888228109666978211338252074920283508440959200980783226568286720975439725690731089475045512342929647478840467860066680122916851234707403124583702713778061034253420627850670191650359338300447339990745788736374578817913002051249975493242965260853550625655629862154716541142916999473180902792349978589506614220571581823006726967254216830613397933116871176942816765767895917913786445912018759726570742287442835069751682423192945350163742136641918923482913043749116371209686608698870346827669789231378918236620206991611252193645754101591584787588656395745793120613352472308243030775507026610055356630332310949211829474598433325406148679142886150003535175934177637785102092173260822051121660499385067576567230487392224626323611082519888127314710119864758343834763439300935409239883232957713491560585666005639750392600161491699124507428406968522709841782274668234706894161556061920543447720421234985285267789738749010281089203634200882891715950980427477437458479969117810867508546988256414930761288580040640139866400994383520905022595530986640215663587697996840142097118077073039110100952561159888424606825819758896116672477247961852984252000697906691862743505520631196031130638154346636643614542058677524335560605590733340017532889482831119656155083262519207161486381947088727953260432481752065036045962393909083347054636996604057309308911352847416283087065313821717488072853343259876373245983050049606115636638366617786530428320066765589547904781210573523814114695773047959789433652648305704430926635100084508171187103766837998432686963380049381791130747516368255046871019993542401407852058820926015010511393817211431099516938600355236631321628116190533962734830906909940098115106285617892020255928659403172953576580968020914846811007386573946177490658879575824279832991744784551348004982837888170575308517491332265419460181727913031829016344954622148246738016596527191568308533593498264482037399175770885185790711008874398441559864857679304602236367177475830565777391535499261998957655408960913882729936457118895244472887457277257369231697996447726017813206087795035154166052761128246312900943591182495989790406428417225152453603597693714811571733204405373763321190400872023878408597562950508590577705746099473636504096424627095872450577822946508676583953681633240374906154844947102040461372973629483377182178361036452173374871149479062924885284831987883966257728573855058971647399825987578597300100993797074979128444809986951919395505748342671462627968440261513316911706708162723525159432614432858543445755378221945155021940697475404961533920832524830814642957636678332970995739697825172015228174319801257912260853114000270706821933002191939202086541657984277485940228744552686441563013320237487706032025066501754832560785442812703086656562344621140698989231156892894964250447695230046723686710227251837501953164368773889048760371332330245439782593266539251405514604848922462510510035880876402397645414808599635171156090851721550994602838216432973770104541291815526441953572923433629765477958157219402346569037311752050036847013423666613727515658781028066184467525068015977603842018388899488294462544534185431006403770229961674092593256534254799097503381144138211998143760814457882478744384452687700360377543251924346576033674084942451942939260886855227540136812832192658096412146193498135968445282911419706352640539835736541899503581368525487416542579860340288900605799091514775922645128046819495078840893980884132641513244603681375461221268368139165340547883422184484008076955503750669620842589094599741589649009221122821963974364953337698787067199283395760269412082311215088851897235931832139270233387425863466290798210022648894245840831929711162316275516200767251026536099372869490796561173004856602481197903261572260419167209712057168461401634562712280737852676752822627119726497692995258675013044531787430402666189274233741109386028905466083637205946066340776102503601853460901560417030477216859180087581868654560186284644165928556992143080066703744602669562897361724916420828288503705341213952178424266923936365242425492679948503618513947759152323748915653442252492393713349839387814733148210782702744909643686691318050140692084260715711342696908256958123863795860336556458892870693259867118627024317328979411256768787259666672572517176314084870590755367545316355212538763605775150236203524613686671739394358968142806400086951165123403020218059390830660430657123770742521916078725032594968175077931217594014620950918618082942091988218617559462629098755269342972942238589661265915983048928649808376254151281940359643188055668110196216588752809949256798319300232091429066209847557830819179838502237987173932586476556806213262677904873664503640021866305864233146450235683740545499568900983747837329624131266925511721735321284902423150396025646079937103936490465802722707686591835790073067972724955867867299316906165883091761618629612696041862177569957074841519954395082319903028815605302216638027650796103893791267587029180932496163148733379885094813981059807600671384195994686831801693948355221138979087666039343694819603797023241688338722298290054823855048000118965506253406401761685583215306705419152415146637067164374751786917286437027579118463173805179562561365484321626571179759804357046464258330587898372232716973977110413941543843579364218700262310986533261170252589801234459505585773187645023331675124052022188012757696483943988408787558600952957280930296529249904236670509802942962783766931055075047845453031756691550360730329513990751485863834601940068418438622500650383643033355865383978938441574498266594218641899518514935427628475235503430687967112223931676505939056711361634991406580807995364445392768247364924453889229757525212526497159609875032731256420134663449338281211477673816178600952255142989802085286411368792398743381877088902804807576324513471766502465592618956440984772763145153413374332831979793931686551415457239418402609751392949296059852866767599341439457445474024415441193067451196730031108683870552707276692063090170050635531705789260695731676285944183512181055038881211431263112467164569316846543637613561294821689154142503490503271292853670100605596126270053590673009699768155763834674685985502480182581596548628265150767599236522135072833769639589310096724956258627262838913935207205230116087041957763753380671689958546689193031100198943763270683576334745548282670714875742977038331476437866750881857216466575366480967516450163567636526305487958651599846567995251226442665274170334085529411344972244035712109088860244133808239580020937217802790111251917995966366473201087976405070724334371841778573847758380372917204547327294460586732021113482647251921331150784678757524994006177715452586603002753527215987707554941094305673910726870738628908565203777627179118282000172714347089402488989857457768831972220339355313667544592654398631287721235696823452287215705415503259102423588308582785492417615782539425109108871983460850218231807240877825886845715158771123014060209941724479049114550411452095958437508233219287038036095414461084504295632478801745978328569023761036835254238793279965434523850638286150091594225856081079042350400760205090949066690566472175953416219915155864293113581393898353824358983426544510576056232763489985301193932415467231004948193642887115962447336188611386351155458880286087749749485544817740755349354080031993013079012646561825574527360927433438324270373013829245906832385592543780172273524739665309623634575918334821068932014826297945504866143113238504794409914740195943931156902733466721898428590256953629281685354350148488208654796864868931650890691871936373646932848337637182487903497910191734409517804254203826118127397850982782031569708592514412849063752315058384762750590917697814769476219779327366553493330987431149636241920936668371282369148661346775955256542065741958912267755191483918795770314439834650407276988631123257418263440926812008225181896625660817870601135515905170469949192354798066466965762230964102025737960875542723232897244236069330024908666516564583878424325656542367866974316173771395087368342791838682555837912434069982842694485755116392239443653245660519644342351373198791341285426865820900961003466392727102969846890696513398298222904381089039162272303730542502405171516573499564672932945589605633623705747456467469674393692309955433183172620351446544926479349786527111812879098723551282245745209856359533379511442228171234357110092730253956889608995482230843198056737755831966930391575485793212257767040788218804539141024921334420566660185492188929396260235071480140433626201539393844778695219858297217719679723636204446104580910877555676028165963905137587020203930176475182162384527029551922225908041463252904168597129174685956885627834566967804536263238061281313025945400848674029924383017537375706374041419473966122233750184400880711057686626123840632223438505711008615279922534691451341602950782316194890078590225496255298562317188203756575262608537727162616938783767008241281024317520164383822043499053454527928801178365194975904480548543952979134527503675463963871995767867746014319504642654610562063230924724199139972121449883061847343855515659676258161396623122582324516608254086687368316081972338458214250517699561157877159137889698169909864729955627644642974606127954513096155980467564326383576055614940510029290389271554268057107491094859926859277576152038532963146179537525656957074253820755927574519190498945398266404505099684594749305027271519967266761520504219411594991943345026701645425166387509299437206520715232875678186365101338263933610938557527563649653783423975482426961276551349008571847894584294003723768960359500155786744797224667393739013279146308734617451517493606192621914233887505822979328488416659608138916984313037255676185045145203638686046265715098972439905327121903936051651768563323190436545360220530557717839121989565571815725053084509814949093295900686284803476431005670361877914279966069974218140027059081214679948231148105143658488662936896238259285533716158173179651590349397935996570413493324740442248372751986291258514657588030988585059702785803066470168259980741986050624435024354308247515805219688680621453561284119677243131180170468904371423462335565935269214979737327190133929635607585851848990661542158850419886552892291084652392648363399449417957392880740268272971579073862399955129428662122517774960056835585831259331593582508661356946517263436503188583264228723855134319999382569366274570738036202934771983792905109340963541136073238080575551102198935349698774704488675625267170600374219476134530465516552355582657377072918876289801032955051309869633968429339740610987316062629344949674764654517166881883631666160002041451683192313862502770060734164498546233105920952438990802298927700740387064091922634205192218300202283134294037004970006045266331848692802197579653035259047858219876069476489108000058217887675841670199758538753701583934967908944560927820004782709085651920104056547919228128751908791958901947504695434206670288775609429679300664675479769882370082422648668403257300480251514869871500186296407676295318505936671984410000836129032233794463047061550181468070230270740150921832671375976382773895404712507428551385837702846696807177154638223235350329717043300593796558379492937892011136930008987649356731850592164140597037222077051016095850572779362638686209969449834639968439993833180925327650500015225068668593922030177198174978384886745246563849732148229551722566040063927374181719240006068706543872137826092393492657723291222077080596145705016187553883773832595573585240738383839444816675496254338706801318300713282742870459235372831628232450548504522593328538763740277717544023656971314851950351233816160515505960843733500806713426999279586114821616346473732473050918003933639943020098478638907704979265057337988675273827146012572583419036247263826751288962889628130763886746294747498017828948050886436059494622285646787640454725957065001090505029393808998458607040473910575160862468538183015597673715826377665038423789600847292774067128793304403835957890414143499725768605989618779262609794784360279742761514689957911615713860211689770356477773033464694280631194123828168657515222823679892903648192661892127929370638168177875526507341616407335076610941473803083562044075822527887211766033167236149249625338058902623815331127423929374929847594010374401780685977952088988513348822435718151759095297705566111435789422878062929032896462970622592625185542411432101438531289829573055053597444379518903409200778809135758858663207079190410148220897569031846159592926264233325696699582568119610012538677603569677267301627380380069746840994338926515596351054649527113218388468023048374065972424626132309458586085792020995645779231289398646817311937090929090210134195989131482051322993164881614614244317510481170676496485888578644744589408522883237739211208296566112554566808993480311417431835640540096148352802158405987718596749103143155099496480261012705349235263732322736210209619763010373940194255892583022225851851506184690799854569309625739772205114817620672441082039713301128263086037361094271594829586550872700589624537987854142235178002625535836861390227620971784652610381487601031149745289594293516563575624304390187187622668245576489079961329083037566705139110850972367061969328063603959363604197814066891160302614098887390397738931872994515773025490092854779905909756306829767981820630248204280328649072573235630715093729399758352043587769547402449147305774076291912648394489309967711763496162606360169070774782920005466007634840464043186533592744777744808769378462405165971590413992084842027170310558319124114136092071023644536270027662913453437958870693424931291356273795645940492906788142632579555986282090825397407572016585072262532891028514191397319606603976814984037086112976107805147673813328573816585499213508404002492666951944511056372328152627838622814372300316177574014378677547095266651229793445149709875589806399320247487049889956742197212530598624441452509432541815399860610873658257565598270423025626080811038716828431593660978212870845310114801651677868947822465345690055138684435283842618812680678972601200538161424073940636584237716834805700095217083130671611865911217467291498498830889928249782415001666784116457872201692263484551658477401958628936035937026826032816297988096020630109998273456428481415454601775281435970858199186601061679388715827251630758711266486801175636091197788428464903080393146308231947846065778789367810118109611294827550559525522575033165600023259652463239878901661508078021373658549580407385630486865100204512209823240871079374960705388702601110027250909057827078676685242208924904545394287391935646320829915038603955256927312182820277416661612454088381786418936235202746672011623064941263445016131390673954856141848066337099747769326779587089067081498009508528363479754048076177391079596878650477148410501106609864825674001042053920616517308776016177360853424614951956194928181120877946158159280344663204357693616758055973444260784267831475701262419157792429271889835144608346938260259593112301091420710319179474696973413078280646433536402432332369262112153604065730082338061317296677562504266207604754155207863952667852211739321049631555969553376627011641868693271034388608479344544225396974891497384513093241957198855813266769670791069231818176335397220509813642251402308093665483034248475823140192444592257078219133438002408289909190274417500427957641033004375562253061348183788360875654097639493939830093974447736551884061743710604303533575119024943584054909079658193489497685392563671291210771759175743507365493929922642713094609664080070866337721326821738527536595146789935233376215557982064419325663976470192368396003134999782045924873280747582093622852004308531530593991479690580759885947500596008160454754889392477528501297520802063766567038722732552061734130249582210339538651681740423519968088523144956220701238661482456197111135358823581628861624855783401031488524485122266166648975818044017092077623522692546188116415131938272744553161313738392721121152091753766985414339225843206414249296928884110546449410240160352616351722396832639906014684416609395907674555942759034787970474262580977726708183591876786921769951740435039064209479901330049596420384843365576110794374406241272096583470390236094539483782055240670784118920446635329394597559278324698455038675051544129727508136165328497104940522540068766060822309959821015646719333766562404644923933931786986369290955098381722258026355640587443394123876705356185125258492195058584964648059921204988170746393989277600691222746649166627612846543973980384654956509461059442662423779976638968178150168215060746000511671157417903005449288191631921387453844324569203141296483311375081504955161771838053941285466109629980031720485229155582692816874134800736633046808705156318341457133173238381323123132345836599896356464590277177828711928592824310500969926140013728201062309682142165188636794659742305735407621370123989965734957804045746592764254246059355140379609030547287636648487068779271227404579961566313318559072666363966844253832937431038833323770592231315534206654978054628247389710328851691150979666924715142311608145886231658454975722643372410291219142487435820153895511413398554579593364196218595813882760463788656524818166502710425206890456281912189860165212083155930330132292322117789585773743612143598821735935425272497134242031309127609007539106558827832098042078455198487861771047820961523500146631996338011421384150530860329879993337228697838583072796723046185238232089344698094197504924502407962807578314826146782904174150784022893430930328717634653444060860940635536757279728362990590648079887735476860543968042396065491121609973835615535582026129009957796145492572920314192406287448401171576735995307168148946119530208823561300831888827465698462088376391145791509681369938872342468872890514046847035734361089164782204933031918115740289528427081263315660305275261284941812778890923266828865111926594915307806134660312019875266330694428088413126400215321157426905569691397308721340368703059096702002487933270290331282725016819512098560755764314488993717344734813129117339627260672841784276522426829078081767554000602049493768783110965189351864421586628176169949802282365930450101665929530151325674770185194368579293790628851518191825341487742996701866048270855601544619436100052482683713853286298970544277789369971605037142745519578654961215654206357459559453824339259798522252479933488961660959395223437852098820551010064576556415740295758159832031588232840603497748503430544682321157094389310949098484399470416394705661469780826523779723070562415099245757504733556264715309057845376077142792060663500742121091863886374049851771329851930293609359919867985875664852627407553015725277067584437953637660043283197988351544834160745932665172824192155598279150189409325899060240726388788474088604396293242357679376011081621272831731140996406289241330604904820477500921499958538111331912844138779607353439141265367242967169829302946244861532764969522443986941356699275048562490209439449143384715067022681403803597616224597992160914771633271858081568360154375656720884946512361514139420618743343666515026811264429984180223456880463424038664976184415502741226588576238523900959636871444627253081609405092270827541999392391545986275323196380181255696306265900363084514965489985896258425508855034953992547986586767287487789304160049899200627253429207253802543337015161944639273160179309999058820606702048003332777162531539519136919731590199648903762004691423826052514531918980463490616680174782696892674107606819253826407267241791350003281257363527305065858720312328259762479925183325914690676253591026114917247294796298641867395899056008797192974808319945498457856599799137796251198539214873781085362584589972362623827959069854210477358938698386534924546414187010244273526535105737177426961483541694565377558993996486929073170689952862728476669896899303186697812060292962967444075082263451056486264467225342545769015480885854990024485166463531668959760047186966566027622542179669676736109705967175227417212986131542339775822225387077495973754782662169308786181465804581629012453922874246374682631334663352258025453270979954796146179735897667222208169308881270089468845997068800157287645406194135450613059620066801619569013030295846398244700057604193147514601520114609134956056958170635251637085928584142113213135085755990020561959977901467562979139555141067109452184811276955705989660074253100255379851668397326667472952573431694412597676309609078158529955728444281671563281642061506127106351673650926022822305264032253032581679484027215416472983267489324885597933185427799304950325174627576065065373094973687340818558679315422016822677192524247320393102473962194471610022384162033917120303320809922160071694888829876049503926452010844533489102268912013429033667888420914574900211972170921760612078673854614662363587408770300906449828594049763436747843317222024130792964282166894007853979735233869658747901809787415282752956479376179926748030857109001787655970702488398334138982760465943800360524734874620910203739451890784499129792884772914021510206090184680498624381188449125648562594898656633449628789792917837830466888131117442037140665463826164890721257571402044603765304497153600268919930048185575219054877186049658509131615534018448824319980565895907810924378713078174989058935607514490370656146068989962090928538567657989121300386279818046079819933928212595499384595542789859318813756528393860630157348462504891264638243080185220505752324657328881310339915968929034014070615646079907048882167892448875505566829055895661884094889354436918220994144622726783137152574812795484067562789270993740054394392735298730523299517080093741492216668125132336220438352860410546336118081758183606916864796307336199511954393928831340878876180173737065068350586236454942738833280120263073632132754685296264114060951777529542692997438294597667910643526119771845436685767857221084268675120657306891158079562123428230202084773200666949509983287401371248804841802003538474126794260107818965790715275892513537693376606635398222922466921122830622604756893513286298409791220906505195760459902939183180351977716909204372782810121869935835937517926176326028995505250313291757774357047662856227616695200845952141078931938110714478864962494610981304855964294074035735347397471082522311200928865951540174223046427019532832306855426274343058891244552527441283260332767799719480237669714553645268746733147762810548849106876625653735214869866598000663087477848969835207435148298254835899506514086566955505429643141302942486293756996140382839702274286362201236973473010495616059747291238323755786525518632339832298707830595214435993634123034051139202142361784027356236541987669441444994485591859029881773342253492901514215363501676314101048979794922329390695867810294520227791367775703505750429162144988875913814977304682794632436398142778940987732880802120184041054218566938016866386871676709334689689001366773677007298992345873847143163058096197372594431451633978745867851607002365367653399644858141527893642401764484783476996963800312562814738411446241221914304235641615455277865385624865300385452370690345612216512415814185751419960791279064339181091771823944062921595283577716856565646666463429149380108462460610935217284078652205775490401118593185383862319305723152429881920412278277032599671409493708157153321210225173896979761749297061266887401663421205287964989852504121624992067987072876258545306946333781437819928636661517935810613541494959976176977916032921323031797492500693471657226720589494158577287905433733208634281091529864724489780448905207282644533321857885556611922380435191802930267968435057460123709322980937926439019021613145316486978538018676450884339633847634402698229771864540017407040641608737022231871023753477377975840684987585301053409992748000771881272335408346209875661669770151369644237770369726985340778938251545156634215277693109456561497484635406847326237486349374840998119424187811614581579100122984739731690681697584993835904817447438261815577267869837597688776733928213467625566579982884949140724345125196074735153668077064282962956498674841713963537455769432074207302124994162449861636497254077409509216441439170087760712689985682296778582961410913366062175134942691048734212511197992616763369534583150481850554684860494567031732903651796302929401972019093601349708312837746306961895943579820402495122306533763933941537542628955860600915655642969336969988008504783706119332041478158575512097367402044238919929849420213795786098168913257302057898749218522438562303791467783042145284917853875448283573983626827068521359485926357220263627715435529968327743035257170152272488539134593753941894982935833585071213875157306601557490842885914914250501587683300701248881251892325761656348417603143627108583385607512599495219269442086672686664716049297273836985835688725556325661393198929273026180170232884018794537570394048061553430054402931816498223129354562096117580597294543958276816120404120936929859805864148101238656358331388311695592448483770261329328293817903468656513902687160227469584072453126010437229506395466783020049534523658229173450677688778775998995171281441932486918740640190740443733247324061732071055904166169729545522513129384479513481544718709726079576786184154654613415643228803943566046930659994119813236005782551952691714810093464036320546418164005997823502077881926248196639160531581381194742935274739161751270748722316210262155855632312470187718948272886842995148745065164052901960108306688855390069371833025640988375957435188423296757724107021944663785739535534133279239001350685420495916932220494145147682032974781901280285263099678081497602320608153084737611639947766245226852024744846165356376489678056899947466222187348107957710057903378158520436811963926872087042101606778790454156206813059689236146772685317203673458521502760613376584512691842887578678838506770543655102797414902777069167380273009436957220638861410331639287056042024482298146502624629274859859262681460752144639209232379931727121038914067405956704987795057031429812408940373791512978103556570836616643110459589884484577987927449786831351105738787009718123370584056499628142211803923814173032732785149468428546346993643275224334462054217559901669342918593126316508801131531378459037865226089930277630439086907236786229229317883654956993882842391875037516084129007158539515485716532684356531674232447857551965197157330400362976830648022063298151779721232131033147483103808391385181970080904265793795933162212769560687156670376651420879194594591461831653404418868056648311328770350952594090548941176243138435020914210633694576937769025334052700384455664205421609572164302412019487767419939940758536231589939057238085137817401599786369369859901904731959238784781893518082491830279215980968498482969257478930309630766755819991436661768580033606560542677898737652091159981991816706321495083718648925592760265872480795156300508427089055571299651374981940011748798430169804229678267048482078702901410772343435094515438768957365147265992068293042786853526033923295489933974170684607325601747072979270838952545049580283929453014337688458230256799170153073693456580133020709008863525252075419916273869136299999740746171311298823177660749334147278351845325647925888717829419971102715996148989133328246547429034631558830382061172259105859020670518635007082444802207351590355882333053755771582516306896776190378669885756366896955882400575529000765272365048483998055384099938625486314699639365369688361795488695569955795728665787731802569732855060309245228535604893536521460796264927965100179301985951833872580418139524803795907539108896333471189683938805297520884276489820530424937868855740940174516246572553102982705881235650529653646684713814856663176254329183255414605089298083128203366964782842280328664493285777226976457704063994228537368612422844745188030582099408681845195171888128210311077056480000314076023524456400813677778438470163485371491471831768089722411109428034627681267587537575746170320924180458633880271222811791240389714836663939043327350457186415824023348354314813918236761752448970414515043954179349635344922665640794608811237736420066080205605946422693921158129115666064207745277494621194776820240731967518348021741763701193284334096665157694806352511139302461598210381609750556126269129558643340975548610426365282069395292067924436212318698539540059029523445563637552379304333421262456806542164575696569802451596743097820465868806143739096661094902592994656510702805040710844069661038892934352853407990669580989661957008885463443948068936710090611110056346488093713312305407841897218419551568112255752059013241005313937189431409563412030464753714261206437425273172214871227718979763307380042085460071995614277513349637661489119827071081909391074494001568400247020853200728767781340785680326385800760527347425341953488645238112903917947435583283619866720910218008245561985427997406843412627793727966128685577083717644100368037168875703281088151899230735542036647768642956262674962808772876951459768714018039990308896805977288868753928641111144094574659943445796135496692683747054571858859563071456703244283021678914784817134397431863230113019000794115739761534420900226444840636386356995518686925702368344563546490488952536401148614936161874757267233930303776825709283745226123478784446135267898476424300090034858252489855562060164884709195722602958033009326026225830219964764689507726269405883291100081189380516946517217713776144404191447003541015241141700070122792955243018999534475679458614635214748505924749732694819238854846741085309901722872426431306120853824120279632987880307352409768066465705682200247825146836020908569148832636511431845229290637191888989017666566883029422275956919277284235461529795762386593562166064559199439431921765373870797363533330954233869874825028302201287500219298065719622718232858512560811393078577898732405917048465486248502954166491178229883228494164831725243215702979385618380068807016486664828918014478978256800479612373487681868085707403213959485212544635422677184069965219787312510582522539554278074398977622968858468399602828226324281881342612259801038969639930968362611805350240580275097808544469713972716861883376339021306360860968739049210231065174741785494753266360058758787639584907729514550857785539507897893458519602649607108090915882534624053991070002082245246497109951241222642476710242541397297289915058404032227298712731745506921709328522260707631790063535693640475130769988168394253813330181179422809002321994027593202818536900705908292475850599151239956679107486185794870343086428467016349873769098014375510702239356397288061619330394610233393013581982052479418655953109592070183862500809199052934166757548693622026354163719294547620706008840653818510050412749369739702396754253847581272218623427846473755193632339696951794937972627877426551772536592411768481319310388830470242841534148278186489008621778879525921080658806206051706525070755581968821771336441998754064653131887126448441516136745737872588865252368949673487243878521817689934771356616027728142560998339595736083222429855913165108955241457289797733266500770280049538572097788764575049976778971566153832380762737905041389194609265037363351511719520834056800763382309577203262351621464303744557854289249348265521969741096682151683797005614887963745961059076256456776041479151844929405312681786413960814739745023128048886323496269863463742061236347597839291742121084000365207103972464293025659306344081801864784064069713322736098015794104867033444360987423946534184923129197242478134589682107437787743963601073040500588084890764443310682100583049390563546664361950486495135725288168613541351535404412095664712113741261116713353677151083008342857518181889617147746622879808661763812114653096285297152840489548300390887346510908275328710154698468669081404833643605541435124507945330502723499031660634211861101289116934113222634937730890899949431246385761903049575367905915214510850596734333251248556558870839367406450661947154907055714872952383305081361352597175496128093641279894423176732890434120326379799424807666267904597947018994374466631251688537602480046489074491591373799970881480098837547487940525254316943587835380687616284086192504326686153884555966742257524140161761330873089248872947007523592979690461339749265074959486512930740486651147002662755259112340151836181621798630115737494852613220802900550178895341479002802687583284805619531653658322408311797857885165050927298245862211978645801838078661351277714484029735668674102341091626732025517600477792845073222104328565887026817604830405490720519278292547322447767219007407803681709905454199538205408106737335663587696016452229433413209293997312115933749705238473122570605448462029619225670727882432182096222031926853038229185984294186898315383706017428456265821210831901489552296808535283415897940366310450822169128343778748626010840922561815424349762914420611606435657078175695870258531533279482951266014254674616429197890063968223551594940707836264253480417455815559961466529348305206125338933574659314670030351506764486588145476706938925696864397973529499550155681835130178363471927197595253270462246594364615117134548505230006497083473228719613257357589250128777775699026882443212021217876841565922348230344670546216248310440966774356992467487898699846641711675472584213969948995537702411042791627117039680372448187458338821112656793919778158339089920785855770622763446861452691458499075522878351511815402052128915982895432129263785288105598126392592436300635269114635698235317238835169268035630283069948022302798510303239458445539970055082526739957475227889373371922173348142506296018537087720636008300464590514588071598856172148904508857991255161488444495473545948202362047798834170143850485162891396434402910524096641817989137970753297458502315436712086381144226730927245205521725024475718592245585598254893238061657891669001649053051363843437152660659464095555367422473233337508327690140185421078407255675424232898819531936242790037236081606959645714221105049692604472862797503308394377248382383968554069860247398975648018935013447714138607562914698343927334520408091350955658300159523725750314420346176965348964111742721325465999427169035260209177061924258478017395111632583726756358067282202360106566938149365217918151114010128802529656073037260960864413673961833334547522947459553419693210852521272377620613123063697259969079916235348003889266295461991026206491516441862124059583234232859000536517364044887042048431751902045958454086907688144332671957519012944886854464829096058496642753912147082054030320105701946538249415679531076130133264313012388670929268847445608049167205483450574129146500339483601761094133957403594873374517759597115452984747936657438804287917195708109317925878224659127620060278646701626513163456327465707523338038089608810398888376858320944045632841456741544349079649012363566813935435997949541464921271485130641663982285351604782915342181345528133667791127097650335922385103919088537081890355144054993548459232105558003973987304216319092316092545732223195678499261038388738079748219104414052243188769066572035346101388385439126574128135816639224129896740963296727885064551863749347907224489819183397593187742541178708073375401754787240459309340103005738197280172769374860763966903772530880732773261459584220277024434136602550176831438353401487840945454784755484298094675744138155637287123249290034387519516363583104416200074379271944114350760763165743688565154450204887750863717819514680829353093474255721466906169331033780212783280452205165316943568747714258593424514041697320918855829435576553165943357149216298758543306578206704019196720452146325010945459219691914997397160958957686236127884103367276232337795744095260980254699341490755669615061126862192688717325802172502626296494174864773125711843344941407777623394080891290589726060607202102696357524013044201140944565536736127462183946126326285004777435170443309096267657231163239658143010763458870774622447797751933964927743378758272275776215565901694872362401058518830735443969275166367740315858556899728603389166112797669807069477037509481689798014069911756512736185319899085368595062134868743178419742780312007144166147740542027227952348555250577724123784258180610720074584116847655972691657576468801216975028930953056619275669402667656313205388275417962873608124420287117239000869824294807971416140966625418577963381595291976331287664101418425554039296140622281187789850625480378980736433504358084506358063424227950710741000030982181135727478857517638456973872295930235606988303153432468107944697571619133045516173033042018708728130651918392905549953672061839449086817889337590184036766780978109257389635396865781680408252474241780544840230318331930480302622591146562290264372625278343138322370839254193827884364572570044870577830736590141196325217488370541731258136569120049019450411936722025746224081416977925484614349889988854387915134453067593715061688515140001166139635353927830069668325916876487743485864054002903756325899443958975457032494332109894509662592085281506051062632213568709650315008043944367127211394290768574561882122069574416663859541528488534835008475552362735413860678327579239066304665067234431302233520586113558174362550161802160465060660417394155587968151296391155816496275856025955590483841561357069123074108331728959377389600690429640581454889291062609107774292811277661514811718733188915096428099750889511754061432900882391731025564514900218572501494288728316640354594395981561926837405669833060991063540674267600286888272691417316562535803085620350702542208691260068422174732697010818600319832519870670967155215278364825972002823403557673542980309288109567245406996121971294005799089759471657502259477575317948086407720202719167175297802154177307553710832706329400521077291726489111728030686664455433143181723407226589632592152755252144014439275019227199538742141809424628536299480334034278558376725460316424758082954154618688587194450955336224129017262521893607474473901330595908616977484499988285929765303747299065642166415733157091283934263956237894968402260103337210590878765474411855030023787379001924486090661407441739823030037126044150579322531842053993898645012493681992832772337252777905246451397469280367225003399153456423653617342090769573387113407300100431913063982282192548283750062034297705073027514806481551528230688638038612708139019522338639985344881006983233100799442009830732583436994812800615817036827754338713628012866628767465197123157700277447029561902389553292417226570511464433220209774596191014422816992814104605859104059747383523923007756438240034002216838160854533155801329555039427606313638361594628738897884398680387472147250147341890694500618440205655770736593212847179961268201894650447481248101209618111348202528031218869163820569912041734286339078408430052307438737436615446453030217678867685928769001006339833162231072575310239146817389864422199162695524349170889260926215727777490005433466501814826093313426567984445316897918031908247623231019945943546904656687706028927033655217573725389530279974584172922697151891581764580475533816341337161286005609769602103932361052723139694994734778545694883070840350976275919482990301424845725033542979080702913343601364597755828789148550027408198630552506710788508913235710804637777752845967690299850123416052937124837820247097839193149332013254330650918552702430128916933015247085703576078062224748855181240591603603669546489447700556705635282666366029056007083817593022781196872619891066538224420955776749464920728898966195127526558950207853066468179596111291625408802679104600910652586429790385560751710344115849630353309864555805311685405893637022729745959000111493752383581917593221121959513819291541805607189098146846013407949185036464749168559404518134868322746669117126521692322928635221368795461077452544211657929709597213576779078054808230726559455028913825110602899261097460610863896354330750069147737727827959269533759250567429874107348745899195636359231865759500347042446116971851633911713179904472320980131080903894703749083714052312730644199505969611097459324134935021460849771261975235078982057749502360864858090347179820606745833436418202962823690520321006562621464918844915087109758786533160320126722524713505657745593601324879415895079756041431493939576656745995044915936634907547901116398452056959456473595782762789111829528713324562623454375101266535575781692974990684453648994982069038645758929721517403024309582146661904611873691624932615515577743910351323851113255992806698905348474523055519963868364607582271158862422994669403190104309869061433635937536705616454548471339187236746012543382419924805463695579838901660503849985432669126264027159383567124601169981451359957291968737033687264827575081918369359479409889067145436719787575144576350881435649883848810875491694045997989816692444769965134010291757490173644958466674724165823311245410351058435457712112554707281084375512913005594875505842540568617888761772431971332435566775947238998175537271732918519646659138495261874122604168533849635671605016706473211799726480439084558730178634944490838511854491986471694183045953061091473350303667569961487434693647421615613701383872870635015596829522466019280350764697367803502123115981376216209529798506070727674458716551491159597644710859407525855208928880672127832118828753864886761165767096816921387772637433803347622544364790073581946134664291487201240919521312360823286970621331459145828263572106954721039561753967556855921166292167181040095370836615493070904681823934920782382859805751695922181578385742287799651175631480707971849780197927182356977709467740101732232273213323229073386459808608885407839169850563597021298027119305153706304917087523277629601588963015445729323270155243279762945300576651225715243394993667592242064578340748209083188998263621795102130611933831626507916556252546043580829310975373936786323067031516133010210015019621313442406851194046038431349146183500993097821802230172694610041858295742649590544704828031906278207146004801231254511036897237398395126690696190584042489088217209086248345224970778424538387408337998551766653988976256595477966666947092916399669798120701197436392982614073832989525214439305206899567132858007558693575669592255677330630872017089124451902178754868127738377443010912058798453063954316734429015890006624269723208209593729270318921081792295450526163829310077180697471461773758543561897522331718616682410917800031602038801804756992828795395661349499019548043702908164344636618250353627388962633933699007122595067273922531494065427658672017017550030273838075224490330395871364497496591601350270370586836271671181606800395751193178245519882858616149984133321381942570018822207967653670433822301319862013679789923588956447879154490349683453227899927196925791992046267295649877380986869294010046586516430528332153326953328418805088275345547064455277389913684340889194180884726898487910486941165051044466226521385279733976018666936265628730052183382715914002246659325659797719646713706116961711128338926047442213550437619770061907552703776457171865858166659890181495705334903734575800654888602254651963405838028552549178935394124769709539630479353414225792020348249580730300747538191124087170575953857695371915282991290758146352200504069977754015661455157025627593514529734839231015168877622905595108636449578207876549817421289688944340692651864691251438998516918815555958969844983276530864062181939431942126269664111957067373171122953889632995479617964647532737434231221059203848332404928490675684791448334486829479488244804450591998910585723076232253396147530407405337893435434180609894727797035023632780970643081556322374155706497336166732952334780905729023315837156547788834766598940618369729694927774284170427501277155504352739948531437375375186842377050444195578460509346422883688453509264965514862779795805340803078450539146428339319338728724075984047977993535912797354042486056250821067683877843567261389713099045749785509470564263219602626038956898157904442029543509569808619048767505568314056647354158743051069925303674828675100939193127651412828258920496482621453496388512172726688255433416395548412212168818623613939430513627359580893251384079718690870241479709420473528457457802279952616744433946475067264417194271884368725165818894103251317592644318547990958531370590755429207067094038259713127601227875243919872880166284905866785420030395247418519430429031750953963941685181687772119100611482864239076899126348180002317400056399440440109128075804367208143387528259067041594902974797683541639043731216727662192761992170452064284003820888017289088626982242879511087894675368742337662615818634409024072445572549661572635946747050411992433627192323583348954360693924851044920963861612371158885736232296588197393946141755514584833691481591233748032249889388310036131453374771996709059640676334782165594612654983507565072396650182691811528886493837654837496235342617759181091900807592486378152793507338705326162077937338693716187859727270721320446771735027912021696110423823448306624870038435387117165385454873221632983331380780947816860399228700157477226651605536553654703161544902751429205264488119423117107477638960889039219709565503547257030301061994893781630984531899115485800124081490727192971402680469228885879232455355432335091730044318116230673566191183132645007699434546522513701942401835826382439462513991110235536708965300280442082418581009541953765866958325743390617951792396816915458754492634464925606406046021068206936880866626846644590697881550986340664811245957556229969277947228497083142631575856657865780433850146220067694415228932993347194457258867559152109402531253154825106215481268154810830770908833180666845444208234234899948316753208813644734118948613259367160487433784694688057805305095680880653536191235889114491885932512838398800214671639520576253204396266531421585134625324216728383392029614928003526923650214164675512827655301680071841940556110124769668760092944412406606242040520555722886222272863407456241842585073360074034449113445316449426394707384966350895807529067072496579143323681978294483577450032736718055276013294595538831659663425287745876003259286620854784830610996656941205840632288285327073677436228615044535794317665996307438585121185922111108035066393280279614316798016097728386963028999593242986391530038457385672139917011925159679313154293036037149824643842779638375656485971267823972836690948556858655924491829752027643702037782432795180926571850975733283884545086902436176147658721611101014983455669040275820823634811550874247588215428460127384763328453362492227513724512294216779309630399642760116906004802875727685211063076484133019721930676935326696408615521091475256507144439558301568020256161244954912316577456132652734696264337337330175491381718000605727881297728732490640531638705746785517955561993441585622754035461679446581339912752222986841623643481330565880376584958434632311259475119046953588723602853891732891147590725104000424906129918615249472203633175187201645006003457759876376857280916818226131592893688676676676065916507640322129289475931641567153597231549347631386703337928416926927170827318894159154955380675620759669557708258334562634482435216857198570963380892263894112878528777064741388722970595029314005365800905389932672838894361491670525133696064087806377892756706710969764855864655679704747257166681463123236471074454190856196817781182268601336075048067974956747550869262933871960185054907099702944426006198865166299921999587071185066690366776609993717645969154873179761616904996643245496128466455004544808079057410251886226467696121649438296306029539263996412848238416822778398079995647403252988105321398029934831020270285999051077268881121083002759961115096773484465868314712810014803562928097356817466718633684204146544752038530246797113556830032744988248808453470835933191224922023941071329806237652437604991018329380920804382305311259433745546392874410097899375116815563356467907303777492282338341267896713251756058895332188817819471479332048049571711619551416182849947662025527967836806595264223898035207750188668946608795498642037812874581039730250979326908968623319857800191825217836788564112921478428881683039840398156315463699250903144354155183005357820320783558454673522972918787055929933106109115824234633302138109346534848733024708157941409241935602040952258689604633342080430906831481836590596512968247439388084217721585657089717532967401018120560641966828361300840918387723982943381593024627351755568409499613222552501306670955768082649797168625076274923745676651899324473511580005802774999101723285765986877166455362601385010175218828620808625421716826549132524505786373497259203552083554003575476916879589410316432528415656581286528645938695382144159489005975427924314724226653878694594562840155623547603378573681836764151342282000156569928000629804716758997115890578496622340732747545926721578376368634171674152557053875874334493323587165612494209452003050248008399781067975018130202822218546494815337338731925849635824004951100717862056130772217589044294010047331930137940869180914110617383688944851594704142008024459488059372476723491387051518645157483766447523546517369225176233156425793994536146168699519641256587447773537352375080568037374019704968301685008493428066213288930153652167901475066486905254821440025383993791704121781647574927296684383969513780060288083507865709983445141090168355328260331190027566327885720165476108485425580126092678222876947151620456657731252981253892331819355701270828817901630072437576700538004651526319838318624823701196035483943912362371245230935196469228824613870410356258146037766787586894018501722640166379083461818608924158084838268246026125552515271413240806063388835937149375385397223837943161498091923398224502664276719161630385242733283242043687406125696712382031305536358778001967548931008129307852597607144834116364546881191167812721910216478170079788735542127993477150419104737698018422229653012242367057938279742798415319345247253339280630842811608386745269375543374397183543411220989526701514651854507864870700564721194158387900045810860253631166124815366758813719102752398809084116845618364566557531388768636557459657590957712718413447105725580215517709449004115425887150881274991578103895755625139034329869037281573085040913136226914254981422303099114284525091380390436106591142006443352778887483573956142262459882655432836729550616624536000488868047524364878829795754302167482663015784590695360421163812191669351944614360954479130164029868791389576965355678000184632957969568413652252305932433659105045744532485211936466646442581524783934402316067855925490580343809545818221939564216391155367507207922058719087310695256833051421837107392593818042397994987931921761997830875138733560519166565731549981116257415107775734357697266306963172495928026818841408115868570849185382345367461150044221448519061234906769856965464775900281015608091287167466799958690279898564307588111870004058398942571915180432691825198897612192772447132350052486924502174811142968240867753265187084789275731004735219490366563044113696370879744109892618346176177928457167569823519648409723010582586678374533293436263688060513658767247977547475473116592714157716457113400135016898624382651926208199326335662832510513774573571978621608540954647692812451696089955470608659207128630814214202418216287259819263608797743828248556128154022204646178995533332114157218287124158110371221601301106026946979801610544597319508453036172254814811683957056119395666783628341950646494810664897684631657287541972728776336206405460587712598627247842320003744958434805310303516633844445854351450954305974544108149902385153682296245813608924827696180292241368273978615829119921982756578769471653742674637924781134044420041408061026761951860477828309293925381734258784698709564704780994727260275573861200694537245115073793804995575333380107090509951046770359867748147989381859423760479143413651057221822890090696300266328169972248637344684801504875179719838177694163672625411078484765087659653623426927540166440762611256190026849344104997853577857606164719121887386264387209263697812685832673586634576615815603388351239959522451043641795116833931739383000235893889629737762683213399206971967706952676120180011177483714870289309478416378978025131606760170215905729736183530691303038329377546385720233147179951770428195617053225210212134773185392041535459017534883508210599943520422910027732220523526063977481058097354265368785438383881261487010788451451450776106647726343397313419766537524987577300796468059183322060652777455184265220234210815441897450318717694726240120888927411097473121205627889391687506444635084853628348763735609813589460363198314122196513260569441144160489830136196755292782758692041675892474176670692318903414506062485204324851082392085303213755638529322244624866176152736879096446467018135016570568503438686555776936701589305734081153067735874390783906631776132174779500771003692523429256723992180986869088212706969204955570700962990447904082607434019227401461583265482714986428230960505724779496960778381951455678963775844817371664014598781879049654293432170672091943166086137650079863562051078191119441579205211993622893119778683211572571563250705932317600671485032494096894840429975573401904847132812489100246081889577323914971073222738492325059097805911744614305305466117443091477379737451842189244671256450155446872832565475877041182150577767674578605930169488008085596954624308172208278716514971916405597319883728860140770160373043280386209777357001375837387484918622046306468890676598985300785571946330889898305446609047799311616978900083675706169488880516594970769596290543170825770528174021135156462058336716980516562641049470115962604345556594361528030305312784303786658191428909936114952115248122084491801455729330336746122567660902411524965526927580094727916896508202393597721634205517998515457059647632671120209153876149340899728806305686166679663297320934295134563546581675929532141717073982426738307335091948022038835498791365122606348069894553410356029114638283383542173899948865776888973862783225995877887111083734140861532144360072623980927694951243864491662761834003220856453688782390598118985105313238273535901102300420435260429140775526739555631096818485466315123281355891540349743203874604851374430805855187898332378330120958533598352972090745688483072583875132727959580863270047937136228274415255271900635739876168856732516537163586144939414547506004616755006288763138488732686571662236486130199204560220436112940901521813762026946138626297690717362097927738766657800468075860798179590447576473848131227599613281214929461551854360364922623380515181108431553531104702730941506161379151413965080892903255552630894808079566938026089681545178998116951317266682906924175523927177924307395404579254144376024996671502700649469746946531587661363374783169255899521852474691441467786888034634258832953225560874955735955471901784403046177646169907034786979345207854136817961823875854291191257740053234824618455410957039950661925757182504914949529975421195661270054960636548321453589575528345907456037372694986292462240129838846705974974833272213437803665850456737357020993942873202631367208216590250676495909273291932473688393971304417921324172856973237119518992258877098034828356269625250085037727929632812251307141209697141880108149956457678889585728612874813249410800839744074278052547735023457115460203002290714438537921064634447367048582552884976234464324913710293423666612785191269467327101851306109363424009241021990184537123261639915584602652098730280556944413107843160732515804117403250377185473347353173390706095671998420570377521969904851297259853234687648525940716585890576042332811830925162858253193046248345919421813497095946469377777705557369849718877743201542746428356501726718818345144582801909884859886067748727961623293375930430460169849337163723027072725139439106259529416087293905990136511692436727934805052250380574644572728305480928829622903970509995085569455994094699304745917108977146416772929532083009898405704571584865957463452424862018927809178389616937892991028765432914543733415055244167211493483833271884564380422479341293323665860301359137613595691795821579381503186608753744144951645864230795400081567117124181657774066314272508699629792245550761919605842005967787644429696149549956851550469397014397421054084936219020957011457278526805306639143813316668238862080658692118625468327601218994215414407680674211154960235847578944547631477355725980818118979089520539488827380080068012733422612946309299818991047157506056280268420319513759880704391261366438515268327516214856049696649107036792062953559296550848761030865304502354858016870229063449217149749303918044419894721149382445010272839819826389262834475621812745119394473953046428029043086192335904057257854165773659497752126151194243254207547013609257738834972340668622002975466275585302267849642659764173086658838340546050487902149427354049223589534274008498185272426020246592036055214933663102839322065308376294975342484937559942845132701730399724345434575582215539878415769594894689433798187940616582636074254141649417287714610445606334700954370069654435733432988690309935821526446341636003431534372792965709895788394523032553672346324680458265554523613144276508432998162877663958405277139658563863357555420312807379289066580966561464039839639557118550492531862703742973419414099319722632869742393133253311561180354605484529554535222366515036176282235067339925651354588029496992908238425881726482730662334634186890364199676728696146393114226091217706389730931697355174983331054527476771731695898939197069364774609244535380421743815979007103574199297100642435794978469416587471261483007370635093322670120794842611030585292936416786314540690325940587873217324104411816422878482815872116801770426976140653289208276007620704336671556755821184466317143900124735550954761214724432819837767761038838498002506603031277404204258687470845387575859435188175122412143464236132425117788265721455488934392030988260180959094434091722689684274212703242134978442154098736416734160296252468437403454460079825772961579531206258750386787829975835391416879636168815844160748770521283004004435590292849253010046636331766531358739054369975424798622287951473334254370383342463219524779948894937314134945229966159590551564538897537336361352279351755633538579496584959536288029491424106010450057324392252792297023458193848074927472238812104727867022510835305010605983403341982225635779623989813474903703819925138853136778719646127267708984678571065990712298465217508816846491799583300232340780272105551149736468489680067436396765891976618781786521965658691805886142047983369981770303097805819957428352354811635186832216977505047691836290717162095726452290885551889423742566089026922801663898676173742737645237115547235373276205173550412761264990493056335228629263958058120704903596323900027874635354989223430577231120221951451791528190081405822855716369218852494333732927822159894626410885884200987051727013599959955416463960645363195261400764922990851710775712146701960359546711644205115918567751263564086015409857777655829110416779399146724486994093879436078453088012405672849764553102702521653237093500164639425263098173634245190438280784986341064070189297274734448993537440870304174000510063914393017988183795025831407602295329823975066422784339677131618672597706354497017482323219775312140268226465144995695847611867644613547476738706831944503517541661042435445830514656006790747325147922831922773871534189725460103376708261775857841119865299735123676387840590633244610810969071719244628278876500731840971167257051365101404512263687395239364451525917948672077018852731901437045144979421210607357990338688484052966894977502051922483733709442704638489686605479293949888785651390846525574012478058571691434483185796486146524644403160375288279603868051668805183681958197224096078018459171237556532414048275727096375728698280278022826164311382389586324412671679229052034299949608902970877837928604276892863698878996756440197749748508278019885642496386478294822359220488507694966768838823029175004585492593098849617849965000125425512779572831863017246073032693735632313909856942550562983102273731768220410744273772228583849250966398483230648061611907657547165245169186886710515399659308719411302407974907229239207072538874119650982203088121948599687884810691957842574858993515524551349811909337038595223704034750479251310044603792417800572552120358950956675483094577225982972531061516019305435098513249778077416652643839841262071880244878523668595531782893561310443608409331535300599401718549027828572232493787243157667610986658894900982866579542596640232058995428269671024190575597390956457071957183658906532175029521660629033979245700264653943464679355798429701421711945708927146861625964340650336114132405335300677180594591101002412736309908246988371411590123152183587196511634104289085835515771911238483278836097928614029123679191244103613721456639740964689379609535011546212648302517665707816371903897425562453607055968583695507894179516366434724193571470276223554207903839231496140111459461654687759256247452779414938026808811390706041589785550835071136438222076790767763436986663287911673117840625088370169162489332996678573927876047680099230639901028696893654907216690572325861355707170190674578911086778190572863300793247973278731479115902204428049870752353289224720149515938651130328906630663480468204252715490785204391768742481409466258163254862281923170615531530753843684247821680177874212666859974158298687187386588059101536869221007606958693509361455641436234962222219999300687111216511399419710581927229273607023958171512438874656134008405425885518322768396407535874777139158182493828236757075265592734008520736811316625449894069539384954350659613728737702056587723384692154519700259836673867243880038583775066464126754806263950243115236419000034908304658174869844630614310611272450794388785718672465197893930089850409055126257379319796898593009541142861910858693277497611190378638507665508817285128107229746507813838950171254347550000394866960165672837742974696304691591113199390456024025595536838934339023726458670381848676051382223275426681247269742784677228433899724394085232442116046366979565629477384994111305373536571297444968426457767649120044312447478133378286999048353570463753111765390068522304430807880674018309916462138969350705169759354753345214778242337586894360040047864071443929932964718445559115600406080445514202358067912758391645916075755249566351300923706951336065969172758226286181814857220347464624630910686012745565718237479824087684761525847261457807589904943990089267252612860939953677245041760438895745295680070220571545406077920346783754481735807427328254571846493672883930488940222710458638427808287966800981943850197638295994230893126587011539368110621691040655456942311263629512823426098108367296010669334386298257318557977609923429953474548266457575435973293736072079615111080047478662958938455163562970477425839880755548331040867946962198048795150662748873668749601426580587032565673412816519520490372237854362781245294221235195543392831577931288000913522911962053860524397452567826322730672295154278501420566111401150390372197353309159430637392558393528832334105927697315476385278171222846701238614137725261508152650268048022081769216816833606302885071298270630429314611327754422550433189665654261615931466485736810979532908920279692003316842471358829873122640410954711159894022545427740478627679975310783418268955390803595473563616637803343593840767112539103985129292090790575724334278440109076827720503276982824301867515659787535766452797191910986112284289483525186884205653080715791319293300829613193748009292161246963966769621914416963913599841183321756332953403332889540634985851078923171236898402542247292759686551677366701086649420581108821077644515620273281380886116190101404072556365198518710844540460003361636921638016400324939913185356063706203140749714136147171928544320015389124324913524618353747955250818904576613256346142116136763871420773923422643568036161266263075679598430720759292120747708945100331132799100068834448587099438131846677387808594673826001378175648623686060250437241057797326376923292863631792198530538345246056943072713533272218794576554751490203061681876912374660692170550656277830647246528055571214711260344135112604236177099853270104593027019377646176751819661200788715201607926639334850734173082806178868073061844568106704556069662468037400960570558293736762151940963023926833811270632912359519339936825111380351449790532267007642952752827048424367695298718973253099445900851437026037529403607927351644826571277658473890162672355358619582062114039329864577392536530062369237331372892075841986685159853173508303426092054419141741469294438262604912674034761940488316859536782545942192725851660060777320683896443280736170518225156671147642706125846360115537598965258233678857233112020674402287486341515490387096627898183550168856639319476640588947609090810372062496785955240360990817031920196082634357046750763328987216960722937410294948710299633309609078806047285676690930205082841144022704430420052308206870855596251045630284453831028197857185873586446737678304479129683194722418713079416891635783409340825187913718322916785431815668961335210492155868373032040934215244362766874085125222727043468019255341129954390037466592147224706428262356267548864161157292478130062829232389275842835839983727323591616329579831942709239062373350912311065571121233113981870473519892340136222834896102914554708927648137367302378187876230697018953716269846562999755391833635914491453104269804908766843536315774322913682142972050842773317351485383940140493887360430731558537336085579142479905149374501275752342133390077902936853163535857425398969536548322846877938793156078351144859112578213355049874874638114126836187533249268564812131503991540218524298957876788678217708473011069647826428307521356986198026310722070248574503740916492811350176261646250576474929636938568610421879954883027474971257232423041973215833104671945924307198315892519020057609687721220789976039902108247205060478738338735608416665429033215006525605826071637087182730788593733006551087098541886228213394456327977510329873779161945211032991572170604271604017203720506809973016770476479673207340337757677292957882764775854160598320813105528828638394107688758827991392636217279990658693727474480264542600306176755089878220177113327278144087174347308300589946858181663413190181164210833554176486402084042969411009468459746210446590750231591909118721909240509963978225446744392624349123596740392000470857677200290729970399136801164375202281863844044246056707352667997594293883273266036655148049681849526633186460395681218882682547777347535601933174008736425366882902896409812276897295850752651218109983857388913253982501363430178889560725699184542418717554607051509710571013880178223734925990892814055469375891859134759530201223886568709045781632431007279749834208309909194882913795261879722678310731930374002556343348862584200710713636803032141960606317173965220521086785045761135228160699686798184233295250378190896459218797967939578455278261496295810379732119292827935568332240431552093543174450092010433358087145806792291097245871059497914604077577936771168807330800333786786349425025053891929291975357201345767492580744117313675087600276139289065520333607976974602944406099976727478788842059763144112525571658757216006063946133269653925840775968201511684057087643544596486915345988076916446987955445370579935802172725665271161859532377665699858597384662869957582256019475313466741910151646398948908485875855887100216126247674802240028943544064966042683822858480380042734475081761957712935262465543304380055200720516632941771581312579967039412417146222683119816806297541179036659382415984280758933273552837188089202834410146630793204041730649841534397730884097685865118863098415271823725848564601875320060333901640914331939502335830652347402564042828868671499636744046792735280090031028848951293931590513299135813275881028146649485327988477815796766794334310702056096168402017562463204088529246255693107885994709056346457058884589976482734344035820757756860173060575145325705465006613744192741741991080733648603469929257923617593783374653742182186518240561842424186933540181286819310447973765587524231550734913974489674107376692747893657817072108565600729343613557987365473876315029496007220673133211253338956183971841911158223313289801076106895329767403291976488887021690218674009571873523105608474956714740187670689678867061145711586762901851231435017783292645049296173441466811936070630320252152318311265204360334208986188181123297707597538652810678485692383487998712996538563264265817330801033766906086876139475474096603222666542400837415569652410364861787393091787227359285566916561333135236036893094417593709070721651482913793306836801927619597727548438766906039409239508807782156683267341031329196939833060811522099634621721946004994650465232590248225233068102570666339128767033476424743742318327376568386711727456250247616924699422745655676643752309765641575199492036689329672707940373798217928108663321717410700594028033119820542177525939435270847957139804110824528979061675455292263450540099843053058256212656202404475277075527881065410058141839858172856890001651219914537753711330915738266385771663748745241162442501040622234840548816072512020610534251674308723536707712002034927427827924479189003517634267211814747443642097696955468743227797271931788342239186576479368815612301623867385864476989988221477544237465861160941858513640688771835168063317772747377572619311715853560681628300646256671559434591012669296629450481830788830801899691873500603902746268516232963833168235497913374719770288950751911349111082229026239117514913864245856755086808598307792319331576334584850033807620421379067349787526404499588690213743674243814251577655410127089394993003969532023501641525604567055672810212938933905240080682412482766182939741014758430053212360390337148401817977010455760242609367947829431246373304269186651557274824471639184472734012116080163121234139597632897318828494561904193893042040541590979951029476372979112507544114991258511307894727434307073922557108525358495445512748176735550466039523970988620845943718354623700178100012792761755586899191504238886461971947911727001881090101249178263435779193920870416619947117152270584336151804879698774803465686935075047481387676523028730758656739927693599267143507675463171607347167717254125122485219202819641732734897522983419688978423847130760896375411964117024129256070944208575344155017335551346313604824447613437742903988815251098924721567987019889582864539292157821549469863872312420442259635503452350623374000990791243383725606800993449486563581384376427537472475326120166147936078755024682492869942883773258728582321612920514520396649743482211760060698390670995325189390828616762339700554922197189505584313342465559271824005610916118875719246815099603913127696400463009129166493294098756930845914502617178170224691538331141333408739204100609185626732243707425327120847558972177738090078111588141854621986750989587115561070139949802245063376252656032716758921721497234672711405876894179965199562138194204420905413263715425596327942103619915428108177089977202282170047384111696990309471284884391029770405108222730269993352557853275564054568580129379255679439220826019151043740180540845350972440065343828158602077739826535546476793873852372141359142521038770109248411741225945988109691154857020871208060243525853525798211669753878434713039355462539398504963946230357658248241582786454170967880447011563435528175792567568886845350264703264613184227467382670072330328130865494936608007757151743270195118757153548113888621988811215388842221482957185727821026139461967145488976989288473881029305521850428659018482293059114447010199534230594147296065412954203869615171174718281806254419540772689361085094201000022848748181444042046155311160321427406920245704115213927070468085280326582537434767224445315612364478660149809669817659134890160777088895930202763114799930499753130425627425915551419073330072984550107369140496565511835144918176781905081164475026079318967180305544007684308293570227616356950227949576847187101507121591152096118036362726308710425105912144196612788896718708980623121037799583815937866647000807972873324843187896790481740606545413574361567336975846781343939230316210534892065280429785236509734467707049482587454615694089285520989594332738597248720828533001589059700112565308371849081044898366106074504455959420511440242562298029531556563460481121702577157738232521455701702534280789247575601266473361279440559446088529428624920159521487383313709785942197827395315145519951745642079287417292075258161229154625536745945293813694697359660984817898565753950992859946522514960751079565004870333803175797976331695996745297982498092563622749465970025225080462829120823076971650983842594706483706783173715659294319864991921369727240206231645047016823512065087078189805047619471336195196653738320052327805142842764138452035303448734534707960057919358499285473720788154340638667062471671511282162582672030455461495340906981587506152198069081879659505652309725223655545696400709167877956498790784775917442427223936949730777624117632729524388134596605188227285231420988828474592475492122046205112075290589553404978833473324429040604920986317477050699138805424002436762418253082836271058422900530054036124790981775981579098265195667329992989915431036747172032283529025524454800448289709234123790915432432606707868383856278689832036133201802041750491498502019076231107840392166569101295508516278147838110482937875650102638835268714741372179960678186041613113894186906589412638241535333305209267439610741705621939843770755036492565444852839431096084955847524839841569099630013842882894240462763107883061014262953536854076794528875629457844076674301368720042168672621268477337298963852079186880258708428681784554843746329822876188917094364717177015651467429341814159717827490835503942070133823145120256820698443070404462127686909284887892523006530867863139330071940072627126860922773774863666070830617341177393322628490800579104265327142289585429961105473913658920995363937527182052736763056261795348580429688917320388792937531951235682615756257301516510512154216615388961000708363772764908540781982875707628822766065219458217847860357530330510387544062463882896126562874654340711638759248615549957556937171602693284021064810702689450972530982140974463865485493193555474759153583668189670313533116988759366071799661828585110265084696189621828340061452835865107564672156476888367915396408003641249624494890839128034260940391075810530226120847148886637852528411082351295163482284557599522486125570075780017854099216546438333685111672867643520910204784510998053616557979676296087764979308004437990126833955298190419350664394972383250250063726286172256702772690319858573330500414258923502776920149969879713667882564682473573659475484374144174777405917782961786078375901878864435638517120899358071173377691971576479600282440826692332262191718066759931216480493779512629736924708678658102853783562169323967473361161201643894219396138841615410296628288003380222801103547754124870100477831058496843049431543040310982437105924305027125655468512111894233245828744519530677598477533050875344764815983503499266071687724230855878661082040258410183195296675436105514843028782215196964965464279702249358882742473335206525776476750856799128219128736979926331172815418468172409445727848614979721604621723780259688457029032986882928387582162840944343343186622528225520845808965274671891453553379132375496161268700733746903645748032731201538828693797751256522030714232496545598566480974393659782559179266633447799004680931985734977167683508095815782134594805225025796533115080019737925426360528683961439007705166859100709190890695399151453937596384159336922124499246119269533878089374784796734461969543666944413308397006820061779311600149292976573791136177895372813936001658694477543250307597067595626975824448993980283125920296130721505838879687467998718446900873598504683617791517856718928659469772152421255132806493317806631871718256379130827362775099975161945732288751999366420220294254875729717802463988931149998825324651786991463968328064487968339093090604389472480029116989537253625616544972088700148584884768765812728500853909972181730007316233490101504778813769715089936271165146750177007946254596986470115273629460272203340205528019873294498521368970810559345995247591238047181283767804295277622508731692553859454937612232553077815510259368092108988320740224558948799408708071224026553503933721264633593522115458607358406147999173620931969176241822827699258043438088697326077067559892524896523784744642479911906190884940680598100105530321324728272511489928105663923059604360801078430557556046774880388067911377969511285903749947155560034649644715377718092873686580959160733046292871789553433465132007158648387795507949590819063482587026058390612434274324742586937564434026212002197465592240648499141349348242978883125148864186029114712899544882100474731453384779746459755067123137288925790332829654577938644821893527690945236476301733282347858247013068630833306842853374150386217737954722506795332184812044131093149296015356811653840124046568442196993807849419016644272349645371580835968838304803170921333901624062653719798464531205866709813099328548147143820437656081393868294991005799843385577977713366320304144335560270557106306076301411447135906467619947277577808845246436567419001216708186061594720508149108483175694188676247287139182945534334041982115120249071544137608827135646257113479067152950825336964349214145096661758738853347048092619857268356697890782473717044236892478223631287828217041047830628556690742582432967797478425691757839333898489603602350350902664675058499365519887190624623620068185783237046522581141340678899912244092358256838776050856117656450473241569254691869946180508654179003647418281379655096967025401646322279893293110313615411693806686662149297960660164800930964657314689297758766317077574572831752206902250654661375400629919695220689924642633784884942948430051239255929483965099116951072090697967157664580852548404452956601011738000039738791568137340659926579111762392111679238327161998478705620662154658010245556348117280039880910803269400619123636790286805364091385478839360196265677446153030788960914233948823525882764037518910528811255431128979546978373144894664167886823321475108111860400718097821259810364713254429980441016684218695303350936145790111976898388325546044945872739885837091327683108702805927410948247100475409946944109199475991868907622429348392863541435907975489179225077973159940990270988116194266733429213521467929177400350061793658519342743960034747211517855944574825948165666932739938271742477148726666858078437017358594314494362715597584904473541003932738686336169646125437312498821681763198239198871908692932185052903900997853683239358879285039116208037918418195924344224044524395704765697803220954465665132859418625833032624140153482655909750492490787776017593657979442075195438788793375097355168281601689396169918344958354774991941327717738769671428809783289859742965775729203097509712926631109857164330351198710105006204802936993451658537877087091072257852506852310308003813109553880667577377865389564717896389534185232653150483378920491196129081297064201781131881051109067971700953543573300050632603723213419348153919362663940575258414073193730390068412235718772718743672945767450839845410972596547519757288113527983064871708093686064866605436705541738182814498373865611640625026815876663013634493335478237699576579005456556470869990575062690034547973280602250531753468661552855327125219534740374181770010638966262022420584576716299430977835465003713124252628033298293471813067717201912379829206562012548476712319111660131283168239786682671799357010002718805794189823001624517881777869537767650605809200914949533050693256299134681031446438163532484410759241653935815701982809598745659743862874465723677892914074259535272080575117765765273344610257035607731213892359904740804910451057396430328900653633571030884136110952797639830267062935679744374499421321493749468027475987646645996971425928967870825048807264495476824464502551684067577169068454656029870749225167296376940468057276102970648698550874020689441407726125483824796382100324959328380741526348328074408119923816150858208408491486850490704655453687136055634522530587956672698799236278552627414178777884938863494790847716456333907505874432693382429716958115031703506498357979169182303409007779832808213962028713215084219921407351368824946741311539273516676266588092446340036258418005866016307177493946563033387098821416380543374040154131491374428676416094079291873122547475234186826718207053704616559233053035539537789232641540666844285014469179351439851436362296096453198015447373420995295986368392439942084922249411936943628994065681137370195538749797518122206451672602310739905351641643347590877425344385025854376643761808206880317005822658619971985727909696958248510832432469772076875472282630341895677923225333035614235605371479972875366198023168006743344285304918702070818006581767820474734185628662583415443339699317408192417847712843119020457984935301214319931095742239455432822711607453664103011931750813401466237968952839360436104515508678256259483467556750228916711530230919899861670430320345357752704095104920793285208758374830938167132964137703905821119050293425881379559711877287740241651909867509194325074636602791200258643271196698045833090160827405611747537606148602230376861196494426154799138961824089588095375735074522650689193652216045443051912172680832922336511354871365934870373783001780581516033912790896931324916381863557838111789629809275622812543119775273053048768744964375950519962671740245152308756141696605600657562907932933507217302027429462514486783961788205636922477301905643423708815240302422563347879829858345470430717955027100296576188770152722123317287645593486918336045817293934398046630634700671526015138043561852943976741090926554161928649707789843967284603016276940045028598400107035403186546735973234462038627870691809195975963028168668772787323745202822422862748627783813212057413539240950554274717810427827341332990618248585413570306393546835713526827684831405762343408310688604919957564247772511721401417673187012073143025256915844181967509803581335201970562908399704603018066821781613441385934690403919159436554599492141147511508890505668127270652246039189092148383973558332463170437867299201769474482764558579845359402349082426529371702338899340787707892422867330721991137658762317462951573590763292610735229945916100206231449317952841755372056160279435051623629095172914121241783437061756125118183266218684821346319966113936145883476059430785993042311214062967161625370596226557751617195428175416452971188703325473086043035246443170574517003668551998657817556900956861404551685304225283300445561823041628667857612785819963268158250842234480903859064259768159032410785518834251421965208826932381382451457297269373946551954969216479662693288521700722815084761772967609054454500223582214951465989323314690255541071315586315116009322609242265690121414542680886704108977518565046753175701004185238231083409149964551938073223751112796010712286700399176473084808298598769005581903583356725955124274857877887394757650404112042193646766535699650250412473580134261518191998318560616714723254126235550828238192567079060725495950687086185386879008829538928915758292982935560996052296785983273506365316961433236963103928533021745043035546384590545301171463366143622816395415573797852497649228877230119736233589499383129123199560936208111289972926224461702505090121227841567396177451607636291428482927188687922078258692312517954836930814714638474243230009222368850099548838176095505265863976431305957666262012342996598196019060653652479757064946683162134477718074626302913761416693220513751290626639079966212971380485913135117085653243946044004730356307447461203557763754341157988599513214155533714278782032349560915019166841166274287060652716203864527771909740702556016754021574829317966256001362599398174029586437609758524954364261408381283489738744746093003618296036728249979139138397062298933823939214523023033920537973319927282301943611199406346585168804791785069302835544730211333239052926465382698443149092280576817292233427943342569007149420680597723309931312152571650959521638094081907111316056097587417552400062811843619143542754203097791398124271504911237887011599126853415188932503917430277862244290471487897006037234040900677123666767751398754334976872664239287069838244211321324628438393893184102350420322673286625526599911080644051246655504333482462074301845460403559145350886067994299271416459937566078431464992905740635573973948786061799225326755699973564886854707732416681049676016571343195777709808339443728609517945648457762707818867819053196683199392961153457593769629963808722788336552214408978365638072207441707855207697918729496043973540133334392920174238990282119201305703482728124742057845901657395083993116330011941812265924321426166656820699430490321052077194463584370042970165915799041591556813468245106010587326823135867802223589648291836372007702625192059962233039407874567545587309020290094330490526561302408497102172276122071538164098920850711955924385633846948035989188160838069411551569881406756315244649068399832814315679005540605900955358816993740254758051915292626748017401417350464486196685607738348891574573566116410489825912208405446409141633674699537943940197923002763696813946180365841871665035222129596257979883490644936821867046651933402771881842503675681886002328728975837346211319968393503013966151547680960072486667183119424938039761494432532949681251265363000523349337031414359645919025891407622319643543214907849609220699631395018161961773599554190455029264908482543807411204056434520614734039842778470487062544206913593154592427519515638624243079663585066950704102036311155581021155612478175064239684800134124984873836518456165776726478329161540840690189104772126911084170762271397947739881942994422479505934959236079096903883370803482652985397195144965667492587588766533843520672828448647849166295037884016617618866014338925176812664528583501898640035971529481463235414282621593513958953363285475997478096832919093077996147487162671040445407399254921475350102217780251269239681687325305050131880183773765997253193003926104470712896269244633941028187682352764898688312580522585727184542499123729473870897486912189381875880254486434932647173450900071141173418523900681760819307635261842713746580632254941172275715572857602547285294022867330578146949892650850792557519880874532175911776342508261780366209160246903176562690077634646629853603743701426835399261547761355376514350149838940848442293626253169561237497274723731888743175418959347847485153827790033924641885335188865485308117292780256506042160366447264251523238248296094103340796124336430322117665975508706587302219708964329119409138627488108899518917422603961938156448838018709192039438331365415583716874624950644529078861148556739473950726509643859960896825711903762365427420178831514995624729792141023951630287831312705912735299992511099742283567488952435420559543991899827144268536712157309372027084656057349628314332025921666271046142134611566263414381233179112399045850811796293602817571688681930104361841416289403862503547464198264179735806262699862454565693578245225368883976765201483086016527980412269214168305625363503022510301082167019475739456474916093495313971438122867439263883328474280892546569981935864103533679744984900179847102054389252627634346205935905665846038349202959897408792193669814346218033838992921979788299642418129983353522476296184847857009629548231060029802669927904674663686655476385537978334310916092809326250051463265419825606534574502754106835664965434570060912179694606445737231770333295428996399787530089199667286858252492654671096398769370724613771546267975976308060871112459604827649643162156744997299790104442987203232046198363691646666784570247917017331967804833224032570558673662348366548094465595611526858194938954175991332580866149060739353123899612341375368416326256150055877042267705302378855925453897065125424876724381386249637402418008864520868881579685972179202830735689963057775425577631890269351224863343646344486256525125318767457431682289465285001121006425812076448984060268507953626489155452698107978304943646507931995013154611544570217765069579284629482953661342689931313385537260166528488592234954600133438100515069553113006799499677639570822007117042045207319520439964464066724198454262417452025578506056616659293589095276738836539069895543088947078168675107506393453118980643932263579849924585267476396573271637122133262537638740322244788644396788020488274233454645581576946015470473297283918838422754714021986980931822280497740546435478123950301722254463652887292542526342501695701655720730881104522206557435998509105177364709543785608432847453669663575229740137626110000831925775106956307245998343219940173219513281692039648929523340641061343946247409558224736392008377137249090721327538855250623283806963155609648488803754502734459146539517379063515490530795396117800449132874072105247061181180323246148809897523860232878607689355492119757296243910265547661851604059345140835491356074598869787849765691053879105775898394105692475937327247582944544291093927520723041569965351370097200379495673611335938190854259591684242501712915260544140721745304516937238080362162350026321360741334342106920800980539708684884850825109434149900522322919694125349170092794307564522695963855122443537100931551659356488743851771856356584372439840439649722643749970966667631363483108276610505376166550656416310536473659152302937216098338348817990375828363919861106693011869666053657386187492867023396690537808384289018491870146698251102720962512981909269900608058648561941290400400440442024249046481649869114684323670690965182948622499615341506475057795151038464687497267465675893862497024063350777128058404474139615606498774109416783211403711311448391525447117148660925721182642677191781101306278761179732176541086904245288156340366589567958203685832935322973181287088419072564372050030209866282413842185858463559267403576135657798693680172113718743077684303867029005926181216519778302523569576978372810904789761356663759035305624336678973041703375410808535307947165995050465597019568256730028016454665991503132689991045108355257068940183734583324966483218005033487129264590900109042966588346627213752200931925293217275554662340018531691915813874206020635077051826030404195496514030137759019350638452783622718670515193469278399940496145071626639764511495794266192150175337478919019610632392022993616018871639097504311587325129815192749641800004051318639237764115185980800600902909167440948048832010560820862902009832799624674266864710544958364116514557039080405823245765476036678989615346678739379941202387090906287638534510128510318567800841457390348875636702756292367400506758299128721539632401259451161371718208284080956538372180779985378895673657613571375244276974239484082158064426395379356572151349725007684534915065454397923829896741402519382797822352975572321193636132266150056152432678675919721366295858280015709722809150402732442665429032524679733766645124540450695411386097651091039557463390428468640741098970694110070757408062892024486153283789171738845971917195290776253754588962842967307335558482792304246424229203245783937091735360462786537757701144907216427718069508730499653735426765993384228105772951027985473342344063067905496058524987746438018769578611094905976162354889605968087126771393794947918705509042484512235214507030213942625045866712957940425571050827659941698484309205130966491361581726562793542146932159255642627096980438480588138376120583824839959506338256886238886049650765270978244346682452579461753980032069255716156187563125644883558427694926824899772215757155597391370811894160912356927094431834665732151696966070791992225229498035707952079485301950007686119007219813091581411969860584164679182203700920430854588756049892771668281989916283547917322560509339543946898198147532852327274209426438095515177723596701997475319943109645522625802497302861274409283347415181776934350125318380967477096915282621856768434843410882176549274335923615035941019761286809442951670455802578940105632582373356377156673843641161365348200033279254610256074241687257019764672981456627907913099497339566121675350826521725136169298827120088263077446819338315118159190903078565696624102848002208923424009585394141140707034820219051311986261392095536023478586946316326161689951449809515975119258085643545388860950898489478933093183346088146157259772991715619254177286547360410102084985880766874768491190256144576051102734464406090143369170653516324370915237291887652785325609643983792079955451305077604479537746442770454946869193150426943421050521466572909868416293563774684964415198574413843016776267507827232174187962618807811036419460293193206697250801771608527221823464995031352028207586051709341967537884415481128427119980347217772010174708501044192032952939822132007951686514767671123773886532984284178548237856382314074643062880051088994733451086527670961275191051504021183950043958399102648846096968863068339435781928735195190350960327310143640225274143852305773367375680436366751786928810019416305570819846538242796569798569256418103593257461736349086589495200780746134623661119564534024763496472057745095799421324364568586479237372538211243150745472231788993983249044930762791189426190426250741597552495854128150808511345324825709256463670284599588359109293747461961141107947750407494830063018539207695361176717136429404032605865432889880505620755125988597306426863602513560056955061762323891945155258806390296913310417334815985330669849523772492002626057179879310816233891207021608568419515661611171213986770737260576078377063602076177082609941919898459456376336032541614707813169345506461307529259307180018572388633033447478900962631114554675764591508205447845424552350431744169673686483425041153172111113635376513245373529146007876386800848043695588592593223466839700714849035406089096103314403111564635886730913568115211787321962471408185227445004468312594731507106378670378532601576212303932001538834093210272819131729236436521582100888922533435326176783509476046540078970942715964565328872752721215891300552159141894756724877753632067326303115179912123058952694522191693593667895602522161105731173389191980268375670605725007178070071170109837713276609360480349389952250821893214941838174875167892075286779452076971858738206069970697601628008453507425856466316060456528230348586008436459132325683094976344434332841586988800216844289167482868589948872709132756031645667296593206671438484404813214391051717135798093216875908247813675070208831590220597059799063604808656782026215247889819522203467712051794121450611806027406591654498386695751204834318687321975837212570359773658298129848175803054712800188613687478397823798958995980499021368225369616486281434546830465121171826683167579391588424469520138307447051186421647306844843772347047051181686878333223213589440006287140391011690162251121140298760675349951214995489258067346349126583580366843502208640337639727476952069399401172662073410067072664573682536624691424124869230097008746951571457593581129702727601523654684129654333410137140122888526063930677580375061368071270432495939790078996716183811405787596288645668207883494358313282653059793016951863440404034305463671114786002175767297555213583377469816679299643681197751310008082221821468278240828132972611530917374988722933829980895042277254203358699737405959930919440946546983163651268371970704757242099083895438559915198830521843223535429329883774406064473136555754404875909331832727545812558375224937191250962040967566512891255873868781025245522116636071119286206861012222294100346753718097065258132436492411080315497667778414936637911702616061910884278180336987163773174470185339210081403574823184983688179912625448595102240055785090124929985135227331822545337571561296754961000730916842533851860759128976525919069003036810333680366978692569002706883352659748860470567590186351483898567244698528158049241249236015335512065639343777787572943038004848375070412450752094771789569875953944957427109965392900138285249786473108944459490809133372459926193686853922282095716467932277439881292159191103251728451170855881519270366022874703290320508847840904518800506765603138078911400841727787396412638263401042834528628461969572272774586135936660643124851936403791426147812242836097031961724744401830137390082752684388853145869111876105091724310110187815483316821095992930996864078388743612041910930782142547909316768199503265409018005115287695359385371663456558552910175665043432214207845654261966788425703310560923925826786715512950157895333816932494341626224701024402090375736352515712101020873660425667309321789027773760133021315952565833368518342190886683579841429337327429894082678473977198909412860125679423110135966772545378894999344906437341180667747840250997218387128243149029303805461104384608782884603205034228179586564432549548536785843951696834699858395304800567539968315041422360515551604460181335429114944662479076726898786972389819563552612585066729070147120251581937592539270594670404592418200809316261933716901794014754756279869305853025770772547511613254159995829653055381848215222615557853832339893850748848738501305806548814493830121471262796411509821365772438150885370643020837642619376666858385149471809018871803666475690601041977039661369148078759904788294213714712114654071766930095798397428524177003478188910864893341018339969961373756273423000587618712200794945636126403964920682042258435910322654508166200540520505475205597254127903652255867099589264346535664104671884433473408413577466674409690833018601225984707147486169098070004800287742254524378952180951989278459432211805476553190219595622133698826051296971231824548755370058233707195240412730278641807624450221604847849361550588768284754244731538674008310620364881138408285835783526135317356852109014123760987473373727785567717014901531424589735154405182754476592355646552505195037873148710474952328838863860135871108611048557036611915871349542088278320155764344751096053408165178413529010133088398875806275982607433624566311559489791321219943569494075556269416613758138385076615551438269688108848602760011470742792440328097927120127703535103018854349982441476037252520270260935774803771587848515370083274044663535324516403836536816960093674355355656359795708033885225176071865366487975163287523218489120319299585400741107802534167460398548950379825104143224018448400405206661234859501983447031976351948597625825040204915139092561901891042688274890314944579401662531332656157676843525719743625823880651297036003636343437162356592474183065914096965164294390791464152102657261826388814827505855845025684091907045049751566509551669103977262017581391068499451625533679407114566966643505757013150525948915476303601989050437854146800105344094020518156685064924714800001518514117917827040860250362031886438259096900309421383652007594290731333924567180023561167034993370900980023449823970979326309725717209565577603134861407964319410397722616337562726313052287757228396229385141196545273053448881561321031697671449361285657242467910844307998122852094043661512278561430070806575046013498226960708905663629467258268503001391756671704181179836969346701567960874906002623075772285569213310202596590167307195072741653450188389897755510439575265920720889679325461833011307818745497452432926937901192180313530043291227717796151255317682744515854263970627946975562066725443950855135538949221991473663266605512298286654720832162923060628861761064584316548496458353390100336519812384277769709947282426674246342027648860877104280383630994069779682534899685070373833544113685592425753035989917138505050929290870906775178104888493121482855476225758673486672684704973631682966976863993074598555881843941289960814713439959854982417317326271854846656505394199822106811318175846218650297004479418089959033098551002272994662661910644498401762169185588855332840836254066124462085380635291028319368734582971239727678334822186294441561475625784927580004169599612178243428901304251789585726943399442886634131107251706186284668861963110785243636806727744628721194452651673245159667658848372608266491441563929400050563965188498221197797020791384480603687734290693913903110263372154369814129497358559245798952627809992447546240001898207752051908239561901100949124029910936613504194635368942523966415346205382489550007020525476642027807806352222796210530720507551451740581175330378261208393991782627950740414584303273959899999995689468963634399319629357914873302980127909263594669518918802477084331811489884262484165087943710485524134400573626294023765577627226902730750173034047980304597817332533479164236835336308453578077974223924317238416853187156814437920133566171432623758284217849667467115451731822499332482057220210082166023313511502104055435471303442024457844876233801399258651291247681260359053909307289533494812179429479551825798873033251352479284092495505193989082033284089401579685703983796257056814710213867449249762875322284603857806849515078173017593444226549705545067393882928309370586178437430536956016325179288019130689217605047238758641767605638932474048039526784243260811465664278611246332224843472616378643674284156602188593033775156032741083355973080080815234399286883598804325898162215954227405026923690069192260864023632928725374335269527563160713833816718355816579586122654811086862958924941603015011160282378332909343710314794244887494930500220768814102296881366827723880938464532531322678573912582747655481275182081142631272661333030023049764695676381866269367124732432982795167021681109763267091167858463925286356039009832395443385477739349945740413543334205963181878558896450425642640067149542807088542110998043463854746112863589995694891728555548329579598242864197074160653632028390639227359021618193980332242309782465471378251991274147495873688341066993294747260379384679212694859627235284570343331647049860626149109042511212493754486106075063204939167612723222978201133692507058725116197068881877036864329161036240530931403977782265768852086475660167560904491355828001100789850147513908833160429012611567097943831388614915601981638514198499916768694133822894178175022643789735723984086691244772540855182203678776170100216687340768968362079963781144214868655981652368736725053226873978723368957400495003629222628849607674274858985724679225519155381753016687355528047281830553860787556553845110464506881030973010854769022959494278091120197550307916806318601476016729662484134477627275856532783634730432108527484290988090846390875564123276543856794967339555719171407671302817726444780311836875785948715578302502897863671439752198765949950771753693350126162901671096312900610767827743035359416953055403526185524333194244162844711292098207019160904064155693714363000083645709643093863172568798197341112881111493850888349745003955824909855165880093177702015602324646693374325502106058464557212903026805317114577804310709629197805194670690140354908590907339315405913976841385373162725332157137853525481493258865832345265465357143486080372651780392564638666171118830039275199847348741674408322825519693792172680338803349729087070899247252969761428746952904448721248298549544760416860050721473098728855667797854119247593266752638667379141165860555119483438446721015787635788815526250357527999791261579162935743308060193735429858220335673313740676432490720320780155549664110464483943334771707370542485740916757141626174693268854530049976748808904169142936568820196296381151633984878397961367973389085024782764264231836998094954544503621071863379981269102765846095099592624367132904254277549311438513600335332304633230373682960346065252995910405270334172263384030270521409731044751095789718066378286157801211763696623269234381380286691837510823816246533008863326438069306750651629851057888735915036516437510560954706055894141190648575724387748422462521418008860366865669332779015195331926388830361427742468129385734787251509591318232771608177461603827673013870217155211149416117168375037238739835609952572629679426025450747739453413919602486063318019809442700924486585587264200166339914040762972669588600606432855237799343977653323440348922378974888062790122202833012596850148729309037421942182503339887166534938325514544917203448620432759357867873344556193253071334102379915205231262314170877139498834839856821159652639403877908531256071695986962495668225821870133272274185402307713614752155519663498384321578841251798161449637393661076493235033206326621032662814563381531244891018017810255514331091923953356094993787127835457450670170734329245943721320096540213482698160810800583435972498618477688871790516978304556909533419621602121297993768821881438722847226065294260039332847993370025011451022231164113898166222199033459637802466742484714348257305911239730663991583365092560962558080415834617193196647857384889309816694260601177229042214938089105446772156449836274602157230295977060767271456327873172035037095614264012350946713917258830678961458075297230008616070709272087854669873034346308469413375251552464713951449635852761816346151362497121908453007975349723232298063755421664800035980070618938089400621716787550651058081641808155078544776480574060102370968958325273676678847715694321598255581467774264224890916942356178528813988811088925752418763320806726254338275427880841426756926124932929810954269630994008559494916264369396046688563328577317909995541813303061856919247650007023380331236180764833761313654970136516630543351027092313908268151126497743385593486267693198002641318185010053677795401250994374692188500084613048163935893204283363288319084361578993395301108728284611429366784613400790081184929436973733782371903607284341551726571780676550303702623512373939296230827743586767829103913381237499144753794540832612871198037786771377526094306415811079587402920850876979066091611732686920306458744453241916216551415098358495162120043812108889628711761254495685952473136007790105137129372416478982006723973836426805327916338473980166285927119809518191520137668303544765839169982433312851663457409484104241560728000638540658659371718996299748935269473412359523014880108966853042173101026937906152784842923229019902412978358500420130591203232130779113796108157233911767250372856717948732786638656067825770323385365519683762499917777934069661882892284684463519639964304759910624038139968016746524100616541758849466208316581067583151950394221448911412633989594602902832251887585759905254843651932110656625248738778647907965318474277410795134645078744137139711556047407372293814342005087777711767540495133385444289410557184514976696207989292501898198238623480111244730873192601485392484540480208814008843964477934313071292689041309453092421359739698943757999396400847055858553129762860037132964797653975820403545821528637513946269603211402227181407999539544783612103544895611043103315517809202441213019438750945585984463819065506168288345347401734038015401107767463485445029181988855279429804137498852197551117349423174853532787053058844466290332878410649119982083302646110852951910710586288360981978556100247246364448971324636284183705819316581110430343738162776857886261126918276611829815648225175352211025155815596653384062875361776600937623194494605936163754063693818172297990674867147965872679328472562537311204406370207061170565375628748272506171681449884879518327325617888785866787348273647900058505188393292162538036428730178661215400123997178673268837686975381630765330768957065304681561334698631247954797138421579195781498885846260969895919102752184715528388600963317068272957987608727761296809024688860895586979374668893835963156421195813297069051044225266221350192768784180064150733313524949445993867040966905473456029862909374298399206226661937813187643472525231934329340472892411049593853928340640786004716037824658554245181403906516162949260252268923734470112593273607139784112662704497970422118006144080133861649934418867237569778544372492157469871579979359005419171722611747154431545511878753870846619955643098946391017663973919630628240302503952904963765891748763241741022610754327690099742979349769982669079613393531457890673786058310179251613844005731481657945202362363583375271034962668156522799376900105027817621968238835229618032429806403762855758156448046646613130897614636789001172012551710489235041442574553376004485950613800814421958934896478822693109398528545302243292281472882515517504258370333907185027014272500466984322543454926577459447829621815877110963114531304179893631467496386067257421678837780944759953049857315183597479070926579382440479743268744918409423057445008426162686370894550944940847412481488698362035703612645072800404835230319902525277216553313236099871682292474496634719394857440437062805675599089680920732912354127925532594909607262023056703363427947520717763015290801819350364948596349357104187994608068866306177194934529592807700608150219410257516957082167864804127271125718444093126282916217074549933520752872296265926810539580981376243168017031407683812088426173749126862844068255880739365672198611034579906188881522005255096681000834874263644900936464572039171464562314002311947108675788723894380388819762706921342778537061940224165942917019630200001078163794541359960577457708718806843939099499810746690701605379940828163406647255178210788554822539026330749545493013098879466887567949810343959438832662162059881802311922913172482954903213188519638693844137485537135218065277571270610015312086345226292566376083208802967874259963653086783084329700954839989522920924519996328102407650912554050198496297627412539361870576720578196818342245673487147556407097800162714804347610183803681633982114765495888668595321533878770116059508120564159681177906854416816357048777632187143174259233038242345797302064577572191190833120902973110822218446933065388232846258492645001586918847370996927177465986591012618576960574360516939409898770678212394613962575568036745715437910737803610334437448218833061872170382103828276473243618566146080207932003283195544434986589330513145196677277905217575048208925362295792048986618669721816829665279070290856358256351483699234727924581151726539381439286116872930736505118379020013027932567931585440518318884988275590458122885093749265934565676143504689030323249219947750797429221102348370807267626001693256046372826214177022491491804859576124160625676154475082274854584234206403108021203169707730099044005223319048724391744982681513386970834078936034531073246468360781689114965572860714824524866863314446263974254257304060389494789620696858933439500106411627649968430590885252023876814977808831839803001430919611640500236299890470022055891103056933970283270410055856041317653111130092264430494076957373690033431769570541649862199870189228933848205530492025590358770845283344636075926686596395524200699302931621901421834818376805764685851862886897553051176527948505951615291416578565723007081344817922216332392485551724223220569121228982321061850826876839441795945294953065936019548620645096481324360546928581040056157547493144531174184654084223890011472899349329073440617786458505103744461261275516068625829903987566826327774691400385744926331911329653566162312868651715631459912738643936638112951940082728353498134911279236519338334392999967551947847770643559476738314975154368904972277691453013188617895751628149980044214812669441431959684457574958626612460996277646899017527497359984720486681945103800557997697214604195632655650477771527104230351786378352798129097700647709363721364664701508348879042851656936889258096389218646399372839426777917256703355972238737912564002559107619139215367168379150829712886952471297051898850869855134432756840352615041995191694323835634683961210576831906924763607324131553467361783563880776507345724720180683810055075323369488143087855325400698767673348491188122486303385554614534690894138878259761364812706030291441252952684849241140962283753606363829763101298826474394571263516049825819256380071600006062201416971433754371141885598116610178846847259129110314172968406946326610408980382178570985266070607451103086975815400803259263906953463032732579916024701975208661252596326707112834022464984657389675314954033988509541361920809863417343549890287756279971142840988203152621776626047858932141817898486632894103719889539983000814125198812026128346402413742830080545076781041723449865704998558055020542224787560108744085153002266993845738920723055498827888408791001696965031730966503428107584093601458860672596488013187497411135338574550377155238085003779988775943834982315273683742671752456939397317022129275508429100255582673139136720658443812235234654318897909372973564541966168271172693655082251952623912783048110962792051575040465684344105866701948471444568440167552268001239461985751245990289959289571024067964575289841226428082627642918805644769532739031366381431191480757937059698115927516802713358060177189322352853444937075992636493636267664576751549357488834500528766782053509705757091265109098252294963418048868535596108891350471353669333958488207423319164623376791168377602163440675487413577273252423590286412200498356946730677271305086993516484539213949370195536581585916740006167491021926235683532549076888963232059087372714262451869610796694077370207847645469735396452704992877299523991224116127011657964489893686484652730605906954868045235467749642729773688158265150112035516747364886799549984426231720252048095143026490438891032345375956624120093632806491264294025634823947005288230960391434958706240312755041493306611375641944553410223214075108736864773333126788677119731291215542399696230677040139074806114759106922606306205227672231984122455091706141238003551242333234342731362483256804694943331597133830115456585174676724823081582310293892455586921977121542866424893017726727927007505254336402283967784397594948703671851281299588740547479976067270726963854998415137199198596179554710386052911504713796722835153384123261499749762906365692461736616839387541969937351645825267375261586529281828864360380929322989127197879364400571752026661572786484060560603369271968017809005647039550473210175075031395182805062246031695819226039773916855790749629814959096431184664349892378904751841659050142812060823315310198232244525250440431931281629853028767892456733433272305739775759469933568172960301687362170339526744306364602344058292249626752941943260035382275655646964437154122775396575395603085593373743490726129051115143914399727390603214161753533095910433408320978675285187861961467427545886668076691486362315774058863693292628909016460658766900824638929050116234547642758825368757203237982136274504686014918718588414477247748452301072946949564207284102683217002701161043632694685189093877042931130139455465118160561788509415260483245265211850414983906872275185279046989685524915385064833244214384660653488737531565202349475018562986462756450963816856502651542356595916867402580587986811507958221477059521622103821572611589831645125450601183475608313539652143222147623052457210668796981766727159992951612741821106832302153803939905436698732744599070165322290619630522540794747470823372482757265460443535326247942777901628296049134765402607355370679718812273860831556717943310541637735088935720827643107246880740438006869019240212041633809913197753115477000179663125276005128940928684198720269128309685152151400250581525387140215001954372707391864597676671026795694318919915107477247823293151845392288272978249141647693224010668337375171734746821319420303667595295668072379737697079927614888716421109884548559791495272861757346366064333383828898292177157819600134379225459752666441440248016026606550034737396189175992122612774505139474619310681520190684269220825491484603328212033290910544380237391068473662988433588511414831330231823900544198677084223725722911352666485343213252500499298158919389322447134839941161798808012879991976967684083160044578406266942442091226489528257669909078486634600599178675447081764908942014828968042490272411089125683685559606299286096099049335093470306670012068256890937812797616733324841276288109635618435836994321447633104595599747362468771864777814748763402932527211502007891015715173306806407490434733891241661625459742946908126628179524642468553997228372734945746477019895112503967440371867019419175739201691704323542535517320096016918163836462040285738997530477052373870294215972264888200406266313806405595310219750709951029174405001599419547484294436101932281407473286077007649731135235006679232060193693391212011308843707615662951435450570962859160679363139259385043031539152630939863323522426673404016129607855743156287772197472889647508089149710041339586842395897075022991600404581633298273547816048456302942241213456309631186079299441074818823347958945656687115119810469397152600837865086495893270008091149475471242375322502588675245504974549775845009576425962477196448833837560269500145959886083651270027698626438714924511328080927455826759986626638717096118056455224398425813497157681373185727853599829211341384181935026508105256584160797202599069777348870403355108067426130105915490502711162907894850052633416862345500454666502301747180676942880640427964940018806663202643500592709522434912490991903783279145519154481748690644214705623940538695805526848875612952409524623829151801008567722572908520643464980176144013175955961959572362028402488236547466764772189319023336584606198847453672929772467333635156379266325483387434005777647791337345853578629434360335072360631294612510867499996240657553477521307401712617890698485626807252523888742588135888399911301899978068782063129000913063372275026268954769770398374511987378516750304434473751020867049486848061477893184265476325841982026725403632400930889764415055187024886113543572847962295392040117015311087288024831014104682234427375099436724461832728552289464412155516075427363581761081185405553730627772285379994233320905140893619290388972773058436128038493876425058648759222525319167456727318835614717227033458902733259965633223543323173444720474342749386650539056201214953401687887974086549138102871417420886784045929369203054220278474629267210033535985646432629626533667476760203289064692513504147083161332751420425875693833424416628794072732090993689822999337091284706415819290059115325919774341378337258779836149704976842881256822143620070720131422665408231671524792684661118194389227811109159200604217741519850583718319637038963331992917874887138157479683730355492032803241339065430930109831206243537072178734300027235333540670755373032715118015703443272397070196790666176501420665020017545452244331580051339554954622926543830167022534931897191143238136378551654002379701593839102595801926268646304828990196961129353150455167389178580202963729299548125752121107064670953462360733907411877886158692250693525431180453519595129835179598788030209575633792917474381025385084092943855742776170289380579803792629757728992196922037884762322441714850366180630916505065975162387453723695384315939211620741323736992079529116131798610373539677926267833387616723427433851116022050577390293097525551399760337915705867164920046485252440960260726329370144858848569879135210241433894776451622693578161378460076904020291437436512324055571059378826513093116691227371772015074113092676497712341765449056861055033770153151893407246843449979665478607919001012007383418963477749347907291693804085269301242509010629761579828237102248845502363172986155897841087080924607518694244342830356909223241300023265952670464718742003929357187758222229361015500252141181486095137445998611567159334203347880699655671061823326277401268742935829548677940808252484497857904470981565919061757983730114102333913252928633688199033346307045625721135521106872434375202523029245153611033800103428893064338738715031284629106211157451359044153476591781233623846925452851683807686035423566128678948957391949380483445333728040053714043311918780273413944829381379524751077809641795881754505310130161770150124092595908363275400838050996174210506457826827543645329792415594714458374410002092078326428233909207837241762330189470502043895840855395887819835835569984705784119568293801872071900053826228903728851525634368233511587015390704493459539074866021974978711234907791776395573042411651712645303628534494093683364723909213470713430602436126756729701947646259742177985624417938097191501329605667139848913384525689877617614768484960603244020386882356004438667845233601688169319376220721212305122262980694455448877613015923167536240527353041048811970970124136660261058703171803649807254921166832552376895540339087335103577230728951381742930502414667765160203521407645015492325683076495077050183868068890186014475984505097048628191427724928267233824054826887237197481295285613781445525248718289662954379948524350197836808646692200235248122179660957858541329085027502442870687566442218050527680288104578744729844174124643773865866299953148517973327616915500586839724743354120150733611189809272242208432415399424362536908359806519130183265034305694133129194720857993526864339100864645933456374348166721438354864216691547892314410873364414446187844283500762080448161223099935670043194702376733365164200270945317075947237683460375000951888074979274762676627127216252140231995320841414529597179377285963423072490110276263008175992295202422455002160135368519178200420611211919745214735686761371989465980004023404225528790014528858103177834850762264513877498450530704060052480412047498480393885146439069777848651544150294547640618882253345141869993772188614281629648924575641599284475230609955198848113783543364221030637084848868042544471239514874833019793757882324098122989100364368611140496373863154035100424235059546606541090023241963726925439842206183675398507369560269338848730594711885772244295922243022462701518064136212112696458870799161889546838976286744114169043631922227936027343894770861962900892500114805060417688009356902340210203963795119291597903511061270864868372550179226637414130242211878644154009726630787529723996731434311100487078646674232827239354782789230412186626739010417604660328556491161456398185306917148824013134220917395564912991577724692915147468696204787822752446004650974855558137431240182172558223267857215628416846047905144818814594484909336167708368194052660633702154308741354712456625250789651665074094532425451874506692073151027169185563803753472481928995660766640896328678835239283050145313498376828884645470819520570491083414493835513171166708486302950333067556706416919012227262311097108974549324376702610716264724110397257294408077740663242490620931582656125422762027013549051857136735201990549002543806404042911825743912651782811006875564365488792810051341558238393011955543618773420972746635461624937315754318459154387520698841948077448717430935450102249064810469702946096011911444082658438426297769581938056684264508039679807953105192409366366959756490105251398702454675659878603786280753924039012229030536218626790093144422144213648793761062504952515447707456449802061250714145247562845032105880175795193101605912103763518395942569059459400732890515634380613929723705242107082330725436913059755564669205233967733276334604819295200946779384874952440276759364256948422979440440927132312827033043182013364532977436826448885738349954568001192203065942790675017072181102086622626316735541194495990935886078438456881960365921149714125603905423679573380510169584076047857943929595524660756938223978018291962172202667619826848547115159045829140307075387359172722585229336168886716030721351044839176570628323309804069300865495421330838376351415688124361779011980818681060795345562639108986292812627817580050159984945495665269471154204101834510943585433141324507308846591230959080283549135607045163726689351612613059531408234670871237308065117092165778575755677596444533832013546212156196752400587377754597272449503626591003487312394289368065610159250148913075004249904077112510617941645838927280985470648790981477884698328552209869984573880161345594280016290697450836474276640395538147155192029491783067612316034616100711257892028141804830889775043044399976869065195515941982980164589148053360196908760938602737112628004885370721282767510449877356885806244336045766282046505364164576697965030710165500208171416833471492359753859612226998864282200164909222219141562307478795228698549806568086930236751323579872522043219171589723344143396617087218552829765950748804651931523801576026129400878313158972814270140424734951522430783093947219968221892363440756071451836863223625793229501218241931340306142550685861336462445134010426454382019659552901337141284022664303253166789055750654436513115686889890052888767929485029917557811326590719824381276464558564556137454266947463556962493246002825230782312523163137331091333211481440175065760232911302709943033717778453509105665527367265087058996654362946877120012719265776080653953980698702084020827202879165393189842427112644309493046403357695461722816242407260313314241308070652735235318518124478218337671958730648800385950015129177619105002128185466110328506487152571654013500254517406780115710050818249616091439353630268918486723957012402535948729776211050473728019193699598106533499747765434612791581630457830236739055858087840788526679085472878257062526326282982854263510196643357206174127246750173322856910135390235250747386002563552406823143087024260442628985437002222867557355591827795034372792132451944326099648274518347614678725381679130345065910730152257752211082387116396497034851122724578445620878778637715251689380986628299514730468523140421352579449828163251174095110104659581518142941625721091124687233237873708735039381960739645394535172587383797263320001526093465003161749193052799625765858801096398312607411693036867272206617939716725169853507550995892641932036518297905551654782615790931325391976726398976425203880716189869989944880383823212298408586950460326596658538223579342799993114225662617945649234561282336001302463451221076126438287903430597300004133836859102612250836870557490869622937381206023056851382435766904352462868295677426346809389249411804923383894729058449979971857501755077133396791078190577320044011303126889712584517249452750837847147087931826346767411269214810539775278921851594374936567970335064953015832587189725697709838917805237655687205540312540005579519346641588257743328450762849544167199680941215943411476054909556781142554682872156443478105837195409147571911466440110341741438129119798872666670793210312896406896231680220393088374255642910265451563317488381322797003154777848756734115820696728535165486516581018290976068780721712276465533634820930494355807270077011266264070373440122564445524016239394425266132841240272775322056299967844742808466935650606807895709683812010103047624403359577930681255621333411805598742035910532046598574627341976411613391615564735099502196064069338044309447824774506318865970252720877277189385260821052626371866653130910183664696057587924932850094790818464993141780508627761015007824063376488837561650285420646981848776478313437843770511295411481041524920703642592552376884913622055937378911239929334870683240795185010646444589455400035390092194774109434342444598474345750146887348928318747052525874387186465794975400146836977405047462382299629963070524129177569368561063156425174704495096753790467534268382642015136494005599096991137571910961064865721926813262353050853261703612345574360246438888417207633307876515517709686218927351683758980178670791179867230641923680673659763071238120246244658585013764518811596371373786239347051137561735636724158462686541276499775808650430050792308563015966237488007172430119740425675936452857053930000815113124037926780173283960335747312082669717288514041064331405513460275685725673202686888454268828126103504359536413310096162690513480003229870174629672875854308679805452175917689124025380836039440697279727409183201704043959581664891289368028770332511117533033292642995938895173428515633587044019047394930968671354609594351819296063386706822419028039433319402606757297328666521494885214332114404853785428720465376241218366446571392414244185129319370336910624492274171176364230397425609578075550125842869274408059745790413903080220806326390845618565819071578890835587035004750569374251375189418259719588155154952200341544461201031639385135160961540299979019186301160734896177249496036661676650633367523503353600655676315866696294378161542963689439503651298355348776790824767924257864772560365324428300453060312873847303259140876188718623697457396750959906741410365783364231937097461560882818263075776641955262835783609066140521214612815153090660274213517805954547756318840347667405179165029117557444308743509895983032609041276645062275604566694838149826478172859119338208207701691923935175966059264718934532188298936151016068584752899464372106173639089636442642088219979385287856134572986866005910269313423384174752119880215378840653520238396787025361126478164308247618060090974934491803352864094072153991183038312618601099422388706235799717197606771585203120075760458339386636398365536692228701789787354125278456015864814836730297132267993479682405640187489617580964023909409254315095865078061743865517741691886096667545109600303298268887815146019168888936801310183600604145124766536793023743748919204032469985720015383349877262337159726663030968673441002754385054592394399701175507876705403279986473901655704026884451233611848780542752566932268524538314474222827422427891674147792555013068551186226706344002649719192403079438231283755454212307171016996198810081302751147937481257778709814417065751125388192233788964297181271274813983048536792923303302139093227439305659193810547913877631843988869260530453738942337758799667198000068303712780291309179997530354552446040087079050646881713897540021759126772132317615722296167236987558052231210018181213005851313878818946233303586414849216374595930662706302552158079130651153560726950052554835854825945205571643416080362023145239736396751966327386383064822884990619185598656990083443447082627497357062810326264974035760934985260578048365646365997580876871346334221839462878529732881223590837231509089387875162870187700771078147499159076153405007438622271221526647618463541740436376442561280475108271423521198845725110172403234997718764133231119067305428379931921463788203523050544275286223440280063689280508658734073352094667713473148360807651040917196666899137170661430326525680646579000180541174120189002483343617758983821625604397102892050943270441062193478645878685147140171510907726840329196226659805368067344681052313232516367169856204521951626586192784897251065784509971023492548230137608782760471210224406703020854694161949685768080562601796746298968526746714988148461773670189990479565228292928103269151337846364891997234305052803407957361477477394169154148062623427539123645021719627766844725523372328087059824052624172238486927847523776230874891147868669175869624812829813367131873516120804145389761873532624337912476171236656725256715908878003983400307820700420741941221566334257463367821890355536670068077480023119202225551697737986144453223403270927013942665357445720643682036279729062379242272317997692918960573902217565386907858752509901229203079017859275451020536593816931758634065252948687517662483609455181139679348461688914165113931767095485330661682960485679047150850703554207075223105074228143795563129264990542958481787674828979042101656200345247881278720017073073421721952848684078562663688829443054758249807561643358852543398192089675408807029156161732467036301926715784171194960366100895931803511541244662422658957326009852681371012677931227019700093964773099918441529110141762371814548343388500721342953344474531516868254654629339615491091402973143877046983287284108884879766725037203509029193837760269842978547239684191576499733619872057402382773256626532435703110294398187971903382383791779854844418970927080931906993031313242373776038744423201767748613318522320065535212343205178113445697988628409513032577594173038746540517188464236763683374536636818365019621868002463727334715847867065523330808538895970909966394540300599872446298997878070198325803211226646547888099393955563710679533198125967111956424542526001410728922111203606468010981302208506579686536861657402057509020008937970924295038253141109800752133926439780975906109750347975112592612447145728191291205466468647068607168320533068086925880593529708333099647597080239664191508135548058836206197612857537862953187322656028776742740410513568309606248028921431628041220789713591918434866663443586873978904099383499126472558321433806714530341740518625850811904130442868936995465253720583072347836426989838643943115595415801066572289127362619057431000786463737218890279466430374277062420640281717406577352450612742426695899268453652185662364468373596048366887220465229222523996192665230749846240668322438475533095492678672108927661037241072693506537455285536163968060155688507084247327001060320571420007862566689284637796232689297155461980093191652678354592470133319167881597075383479575545958239179027954496055106643188511373251060149695755431175176560682558697982742489201992097569488102696597843384218812232194602510000938532952814118963730456703856700011897743366731131189507687810565979985305232506340650769633554824165200225897424456099743982920351463981122355874000169031673253380836453367717443309479306087516932011390363591434390198458940498938848595390042733157089406470548887410160541332155641646692549907562888515980755878620125513453485695449101930831066174818530967099763012309754500580442521169266978064406634723407161946331177309362101874441540095688993693047958575866064559249062243512059333266987445313099564841305501240704590578300574873007174814670357117038223895235360587969266568640174722232704553541814525173107315890539735428067922688712141729985063414086202345470488065359986089605639558233245413853470707421756953938737214579826551239755891537588347656247467637960775836663442383097896463592081929467041710004129551712842840996182536212696017449840857895020690730120541522362707619792764378634115140721207312049339350187403586933620435853342811671292608292594594513015116392742631564356477246730010377171307720202563038953826760374515491692618669318198333940892607521777750643902164551135715457467677764393682250950751425759907279477131498067317986842832613560914622837584151861329953127019516152790577765840853904662041172996552399036003491278922106812072156516153922845758888117335176288948643372157948776266289042695012074378490656697359789033752939433381680722021052039627555481263748263212617130244815953201477948751504834962773891756431487889985530772223531087671613137341985704399609829753875468032551682004154823746199533587552274542763347498330176575651554154699869928022429911874815711514208473138618120231355749752768405732658146459039111591268190844485850146665301622682253316945673509713635054908418228435173497439068142804289331344521833705658548865054098036539307848614102553310104704705878464580949167051127244744690281109742113742456123885267713617497166504898751171638055412739165970289491200846994787862891980853370187722923985718277520112174362900506899195965928845091396066112738383949041577432146869540018550288866940963725403996588485920941779782724067306493355582738008757780189676662598373119104669286340926333380015073287833493050314138575335340027180746253856384190787924250109529132564953235091883873545780689071282328951610055468906208791994450173925637653534583785888902127260094039918070869754741237196803679527339124254469528017608976817048347537110951436557239503372647390744202064989821090680331296458097820143457967474624058935174986373891977858994314090586013981858169639576378736606272231384804778440474193293998198388130820317129550821534843331299469146066731704636440131442653177063768053629241718304350160312842216728772218109612197481140184742199200460424234752918884190160977079209137370847758775896067744081513869864966073779309624710563582586780574794842820403287237322611244823682358639418075037111331972874110708891970639066117989872744823611506623164055651826215154449025952334992009709303572514004240891971886226617610456864038348016397017998046280047301970894255539085400310062463976613882312155142230505764519072240443986612666179972743030783935879058020176876544994505848618948908493951531896904311791404920942414703938655957608552581409008404969368906886283758122555551275233911444892673433522615046124040571451541640158262031812608995556837876028603774749935716242460265289804632815051995551258071374209640411946638136083628893231990593929384297065460408761863273299852650111435382674525990989516405195693785993422047798528891287087902476698920143380550711182608372291903873600766349517880701088830371204804373174067611813663350027234918816479562111537537964530141101723512851290690711857730081903539411001672758019936442632093807612782178024144178253208441297813905167417080978129506999968870130831798667649124009610476254831384834190064225761151994013307799755274758357947600976067606142105710564720614529918748572020353657981645133099600382790450397775682489197645070497283959273885834227275244426228456350117181764944983458337193712491534120493910946868166362376736074378985419815331114518128811818289302055001074822711986124792067035362439897701754933041826136609182628302880322384880499622679370855023229272347696423830226957900177003649091152164190228452855234446074804849985959307256739375556776408109868438030572635108462059983199048152909019182851677188233863186890375988448554657655786082357957275636304254704586542116722486837817909167716881423131256889796111423771989549561487929000179155927633804151464584957961894766040147565484492136801333599399200912274101816715007470165430432680008347852186403300969168141317011948387691481976079272348591510922387352928173163864087448436014571644929914283398457808809127568902041613674111064933214078404441190327717484598584286631279548473740199026938304429206280072177174221863475130978849268207954078705422398026535724429804284231726183888827350295744861887704625866359691094650793237840943042494599016994835479055034063462145198461225973693981222023951534767323976904747635310052079625376620263352009975090335865001423958146335256701426503679502127279357516506211243103662954356309758382892105632680941755109935002070964370660046790254454735559467582268779027036508147352885803777983651514416675448100206439643268175013354328754497246541492557954056482251896089339675392397029093286540247894368711269735705263696343314576069100093330760794152839170250570488336054262506679563909624388855076110539312483752014892332072618575094721299125018249715508658055177252301860500415099544741202484603204498400853842259020385457736191135707232957451520907311819293879707991741836983346292403757372431536496179605941460597142507524558196808960361677469350612397561604847066129625369352284794308887936549765308383384555781173714612191092714809115612471732625658923283271706711704771829819571024545941080335297241148415323747141214620158788322491684277283891231848507565054481348757494759377395342461774366478978662403736952213322425582759878717997011214375399316257256526255760260157708982368159301193143938924044274451320545889745443659864102117529504397491025729546452460011893008280017200788208562519664440814108557396530567602691195808830012467308765786972017588633722463470578487446329709458131342350653806668771846242077989305802329769632939425845423247089479685120473874373825815577152187093200191423687404422554082891705065462760211848277989820373076684384966982928727357819798714329912099095966254495904630023573607276694496711578511424235892160553016880979749451765059859998718264296275412482845115154761821556098328448813506253330550654207080038413842215769735493799169145674652425541366904283081677775995355629963005916000158178606066693594611565402651644363956754291500909237295094677466047276128826622334292399896850473860929109025519784281911602854426219371136946580407254673683831880667362627683783874132958464090580286752015079410856613290147492542266247875866219148539899349442135039007427678664447405130230126482144266859874965226646671188034985465420035650079083548954838815118112284481231379799506913518910538127958118911389205755040993529686205679549591242573124775129730605407536925232846681578279170550516062109228686334756220220144894936801211544125488204286339060205762213500158194302134180994115274318058059693320318566988930472282376856498812062991563111721446715162388769535973828853427957660109409713417229708108566258955200859834193723213543072958543639977322391636600387154334633363330566810851720268330036537022358129563642558070663435041804668853708973962014184075321723058590883242472835249597847037149217052018356570660981411515035962459745800415311156188162358539012812965188655108172435338989668071629745433259710177352426790924695754243577745943853475790695727270928006955525670990751253282150930592762890983496357000134305226756593816010399945128349436116131885059041942789618428244155011678217792969508724704706832205699006983039239719974706949749370421913666202356657970017635589947571057634614759314732017638052223422859465074461198147446595232476413215525805597322731805343996755150755177530598718531752610840112429611993779654458728279234269002559946396029897812560790988287148160121554491522943351058825979105803834167485197027987308445561103857112954492227032416028751063352651737215532068741314295142090984070317201490353503729491392375833294263058587017431855442711599535537969027279688485562907392175073800275864261363048443707323565985456702584370574772325087340703893267449763162654480083604282466883525292194452335143214133784447755851084676511849358524860896086159749578393021087386195235272722254292462785278943867393160973781485026482191410733913186460960915480758203938542848524937705426715072468689054242831658175426318536379663118816268170565963759691404372309810624243061959723582494944567932189792181987951445976598528760345172050995452662409318682469253956225889392547926069651199652729412446989791427793724789547187259624524895194364871638792917751548150666898910058662496442350504265544881506669440158496650487921435993591772682568370401488620216547603420316533672700272927508544485039761169016633493252317295215266873706545755616856994534684502419004306636080882156238650681957393312081881711531331675854219445802538187628909154018155516004895921086050796091673495585209722741685887021184356933554874759123421545410367575090735589645049205007339604807569208832639742102785021279076384671242866627216329881498102000168175095604106303073139143853873651331626268315873065909496134880529038416956082716158352227184411644677390747201831706267492961610110508370844568742872538842732933603936080021662125734193956985652760680342659529118888073318033324067971169395568401983042537283076918916725367223039073788491407224132053118933439061954409719168879269126687783046321538380460807977127361269658382004515275914664073275022412836219874743452696299529222258895510097071060115765782234380870043040231029601408011855897812018314790013997304586795247980625779955991170691483967711498511187979911482234293543091447652133195013508562170993939383397784340395438492206628863919790673542745540346141061456307379986716002350459111053809901994049625753287182092626328546488945718013248653982824796302998981812138688480992226224643831301459407825389639169284309361553206216150343188317891989208364789096270922621143546749219781129420410550524228145793828167225893614361143570006496491995360810982248106357558190077658464450708034494226324823434356237247584549786358587387885270158042585230208911550649467569633119875444875862523538581179630863976118009718429875213335111478300107270711833767286135614614626878370955650071341581971078588196870204467155432071728049018578978564650193773269220647137076756309268362602307143043583380000139179446431548412304400809765844281992397442563852716047225780423125209713295113872506604738060665991359671062999085755639230580193138626838772140054310589729223880946446387883502530186308728732155678619997574598384616647655945472064868748535122967454366614585344454242170783177980066052888734165963068330700980421086632512481163652275455439542576948496869417741576371372279669811854379103230542886930639752958207955894159978687883318594229415311051426210652420562335158680649846702081909536644555602729495563729127118352393755505887233173846153780822814329975214456154198452977018610519575153407545536355614853905017518111735332511068900669104510192234887030142402245242384332766699368829956964431197060078419197150723658266366976067999386956382329511045472929754342425392340730530519491155814157688976557391955125667240777925647111695596262884351216478378089745785748205952315134102739769550218502118461081864802801398701007897774149823327518962563383348897584522193747967248673448430776505957970924163174365959120984877850479543281253924937182568428511588703767540088443330103673274066085820982427467118079846183192449793249057002692883382420008339593397781449235254727275464239763243452576959485443243778640862405827354962431151285225481420911287009528812108048032578186966688823706038189259124018779810442717608842482976393609138655718397958730057537832585374081554594874776146682221424544368471990124511111610860036612376440507404729585671363400383357944087586131420980804714995536732350304248465430723183066491471167018726320223299853418756835263233241245424167082707260122380758372021086468465478343870789990151335382182668158713335133536206243502889456383057103078162416130166093455681960268925475168090447326268123642672920447873097244726821087918215245182844773847824202433222592393001853637495378062015143774881999873412914135424000647493824890807785539402189973891763654638999287997201276527825267915847632572819128683777291644775655413583178656915411275492689625578167288302434932458475653477803222018598345959762944163612183025888753934448105194989583013523399445909485939831527180246356775709627270399209260160132643918868715304778314977010721643940756706970586659971501850835046134388849125694837113375045455132919013638882649004338674085955202043766793180584693171049507627789187763069856929285413028193011191944919361941028400732959043066100173675412823243019891192450844336623616825874773909216454842603654737977028001775391774676968732154679197305052436588281292828724726035823530063985222909288612095072920960809526206688094584332023352244363557346945549020778539244864320601932267385908558839895667570314020430654815711377665950395816360976387341628112693762118858459298172580589563132192220061427330300118377207158809310115438971560751972714067529684870421281852967240091185781036655161957522768532173935066232943601735564387092698173480246461860592615385214044551819737443064685214174082588500796856645317765809037720631112326852729382309101591848807055174579372443793692314202869857737242115509073915846265091064007982051613855002540724210456400006356564773923481674957582546790063702526546975477468521346105115527332561698088036757952184246178139652817300301910841379432542395526189180016193497114003652363203507694597441685926895439615788250775395778685697630373965458115698809730400229124258768520695399529438070388267204659202557863538558464119673264333746272138878221286913898299890626016437810733491166304048756480967037355122450044249794122591807395697813739746036908964559042940420873319502610400191386876488652116527771933069059836574324368325891373738743052025597151050507229313436228175737666231413069378908639155572310180256139775809290501191137991791495296986785532712158754950719480377981523898857843072615542018434157784332730067252780506837658684716086403041733331323677029802918896628460281302191012255350812982894885144340592687541873736542401784617548763547511863105685633069747105339721502902011651508558831860041196198590310292302880752021312733195418543464725958590234531564214193705388695840715794888139949212131206533571392660099128441601576775903914547507143987475630922123371445929320090074836408102896968311847227023103973078606492907123080203161005987240140173551589975632113681309601248786366101355549741260701131358351701891242972228877870602806342169786704113644878992624023521171209819240512246233776909828808275256408114360693390014446874388125687172724545742473381732289577813779327782428304354752708086623108546435630994042727780931186334592793352817259137970690263844075108799287693861058996949392235367347601910709526299807174174070130386491115833697000838918175393697578726945782681345206694351402328137862050089147591383768927969385580330302781501242820539504562597409686874810233843876660668211769941349424054719465104788684592452262495958740668042651537591529027503975431008645303902559422439158384134129677142811265644071533677281372240446734790386132620717476309160916812312419388264258597321494428848515125621091371697223339501898811500634278338075402609241809582819779627357725656147724664728180735958047740580504214834763307628274528547380937323237345590313485731791949148844831627633502678396586951944801169880648269848580223539768704201584403822894752596517486363934119488994687668317232689709769607151370655807249226803997697611865266951835378973150130711468887508028472701266855790191351238259800078594588716907457098093150384240926774536468855338853250125410715928479412593670362454680284377161181659111629411013727726467815276427943518860259538746494131384904315424736727744216968589312151106215969573557071082901836579479438922782167771488090416932705955119930556056971334430085656500632058487207214522143769997318527408017095973752738204430250741860097727302720583690977623017842851962090131357684804750894234075484315007860340990712304687714746658416786706336819736190639275619759553590425609260686730456082193584487950313545813479288258559547001711528447546473371947458698118347404473428996250590393987805227659176609381359719846578289665163897084163317258480315959557722204881971419081465087701461322440159802661652841447583056124279370714817924440959447192480144301026372274723807116006772372574576556838775949499676959727145245298955778145219370341615371930565579108909648209452863845063342692310814432942032009485886920808302605707683217806839094581491937293237094719373088933128650514732165947232114112709181234446528777606210393719016495468451512943887224728404063437022017701704979751930583888598767462399663075388145260211878573218415764384891967995375707063298249380045980024204967032115624071753237596963015575433943669932416573507186384756663595928418888114350010164066961773708376790238124680092440677296047695764920919849520620835620664961963744559025880106651561838631229716077264416611594391263829763877021263509228435823525058829139519214244544051058452334615257035432591988210048754732209888308092317104051414369895520375217632457715677846249058377816674375585755830905905965977329706263408568863453633813226228682004383217045066482309400145730665519446784870986862830275758596001400004123761139614519288125795778410419509964455616116072727969697240946306700836258054443604095350665765165847522525361611676077208229144047883121079473591059194363399158484188572101070634161886164501280673767141233732586497348554320675995258162785639462559024595910107309334516242035596500740437080515855328919926976168899099412735982086635307979803590201532514445761521615110121191252164778244132600672519288637880977354004810683978963963503252670000122849819200650167749700084310362643029101039958125461366187738670584342859307081209047947039448551496084713118728257434670323687658192080838020943973770379280340755597367088153819086642436380817547995148892236132768113126745553851033266702785258118811646686057739647564910408766365530888738999940762426147409858264880737392943459920069026047852885013826498804733838669714528972718779186197456927049322113974751525374194610374618175407746960209951684956093857573015593588407392103489184515992185059062929949149889070860541893835421779475425457217141516666357150124678901894596229362692371530291229091402792234162433537877196025359421304154388938177489074511778454961326346879147227271216896206604047587553211585962064679131681507425690296380327412144584467196363880329990957993992096873062887782862931490641280171664038608258468621903329828355371266224382830302129271536193698157650984501086274959458005540340943728607694535333887493073504983997738873675854514751511628916322646271189779009785875363322240209458140441999765499046866490060383882956819806200742699877997752607428147621782238215060639973960708707467326768903898322348551031981351414724112253101187254403247714084499978475754573799389461317642068979590844684762831249242142929539120446839790746860742276291439042928686692685403394869591481247357732869030032798057958103439236745477386316053922335463664366434589043272781137892552180013469474589864918951932666797621129325851898329497683684264005559332589296133742381826923144291001965705401203563453751591218035450261405635034915792364631054031068736122915039542991626080196577463319734584803341830862753099130563568149164409540446277228177965277379976689862703888725506698501231582252444464074720213824554239796314023835353738646207927803516753376990002323485268582550959570824249893108516873312867787491974901635031331297902113338715582800611149517466251824742051406246958988499661636483801387884971414464676080967041421699008122784198765393319010918861473629259302465419699881596141997821363155152223627389284568266091046713561460435683353341470977757882167766869097074862868027835454990682777423603690777447414527490982137862051631026611233550719668934910450828254201463331829046510484054272991886335485470610866926361021190763483439404867677725680997398067841028742948131632340525691212936952429897102763526112820942396893122686476091325489645388095169029075398362058722072226428482783171505779664107376103023887811275735823470171615411885452873537403060928401235592606907857452756934966544525203456322874353242855057515050953192831422809353059151452575645854681223139414271028675731420275864058020011358187479524757594697815597422107595576203041030672150406358918152248489650410704636177710642871146237218827638035234917030319447580487038489131837935049853270740884251902479738779749971990589885174528554731343943940318035085891051752626555911650065375567656775728842950194236538624290028646638007767405884734162303731681963005951334079622652099200026231926794967963433238546199147717877572405779480571069152298725052747549434134582647769100044929612427403126068252624555009453139772148159658895098250654411892237395111117060248683122804843764113144724761675894161861286953880088653861079558652375335425085958076392545767706527175580050734837070143207466326632829757887535076395756774833115362682115584028547822938617609374474243366857031139088839346667771640520619163789541865960751705417060912546713479664801884525674344448842235078517764119222040606711630640011638882433784136717523247779046247652612370751368458506691089101711068392119992815254682228168721184649256005055236872134868421086164373132005922012602183140961063930558284050929217703904628365610295498172642929372892395041840569720002828725603547540674948302677424850238704196019903411878082258043271514275912084163577704738404284984062799246647750799267690307972432752941311969762314820695513793650195789250519354464903969163301083687218528623521263794174394573952626177667173760458701777151696591668985943463887708055598077940793606415420922950606925974069518464199295120707982332609583914824205643268998698399214471247937909834367118007003027593321066634607950018006890744764876927601532842176641956599326209375891665639498388736363444832531270275841436866616990226686558492895466371468522366322493414318445625316154809625018197561745115010907946566339712555878670633395104802861712395377683504196346241590266306630303947520572801807066767587013682111585480766429709407298108363998504083429997655350906589470048139585261114436194650704442803107270211075841228649234135712377689577736860036825389983305169805170445428090455312072718389800378241861600159818589664137626555296481950411726306934399680346105944524745373135597570503954891344049376786411052424514349298275947671683214361548343944073381381967650692148769317796821062457882967285589880736882195793853058182314283001803075289665949654057485969364742028414286691353903692866845409685103613008100680602742340577326512516184581326691827702654051390626067819088346639660711374062856377313767957618629505587098103152422506220597634906536442111967728648349160542213217737391988799494636792973636000070968820064256188185858159546270087077841332720836420607935910773391421263242903344065500629184267721651032749391816779790932085102277991814806228100725784898205030992884987046713202636255607865843721464537837063908360550689892966371159462441058182264321170029242714901923301698855793113777724769702240182093873084481712330382271121319447233975667836288937031906582991184576425178914854552605871370836507383796811491356233148917258652538969472826120231822125150756268091951933010433119683343864158446009070254096773064444390933486562257483983021519249273433293603074179329645657253380264673168607600310410208711207179132540604636375809713586075827696102069748661128827300395321899412588895116001701732236088312664312493421613178048347957762696714767176156071385937439192677981549221600622514313135075996770792032104483237964121013438739437244897283946998822879226936847565390255527922967055098396670222965140840958366424412087687978568438063611765994298332885991848184594331657736702086994369301275314073229376174808046565864596040716702876888565467906239590632033538265924500245361324289615652939487087443557778836717051383808464729457018848726931713741501448293901484985658103728000466274139491003923020509413325791525373957397073497285403535710694213587827544482026274486788667919107022307972822900442142709042172742347831527338070887603371499856668132916258105424390694631877014776325097409015222330573259890337207660908306309929818277151646463440215242910073160753799676215027506614866582900690094861104596011471917753464327875243313607038157445605860008059604501230437647914256298056768104795161694975421570591017406157395266396129027839999843693965396243544144192744908231056100054124561168203152133947470865737284467889896769885057299468553262605209788765298421747664605923520485739615882722724081071839361404820041927373429779176037110459826127369010395047065186568174931331891997715420309844528422235608067399883948784652620174881985135567709489169824488823327242236300873057850531755525862599403707662418973412708812753209406153342408512339465997365476795671989115741534554707216954335821054491206282676303546658761164335383681534470481962287843842413972286304890314334076643946034907417635633486297821787221257980684474781233960891211468963618112064414377705117454662863117654341801273404351319529935720787005523104758630894551972281479257977315755386016583792758923109927320324738482904353588114270023607086963179664624405394256033280137119004032216827383732654483575608966956147182404609683500382120671817851133996056736617323939115726776540944201353413274872207916742688615556623341414487875379582060370834046050362717323095790350908428853826218705407254080333502598087226470937804442811873182029845143151580091708204304818996392427632347170845270518245167733772977312684272250284743375468674760834004700948737954659478839235680764623366263502056476562459615968119240868797597046913018795638494888270871006697689925972022734795629308483620069867379691599180400172784761931169376252844351933907832323094557528577273677565163547794570839326189039866957917947168132123970369390812631491585398273097186785292114430227401594037241763984363212781746804195759281353393011677205385591038022985538434735415443264364447793662707428054380628647922837670796221948447942557750322700527338445399993762474240741514045691924847210215570095614638882444171981526862263300161482257232494320443338077596654576802695654488262163382616879189101544391959306960817989838176086645279803200784758318135721104756157185585040195477833590074514135605866182406670074315319393549452367231408413473068219376401791607496985538564980949324520914998969938300185650633891701187351136890554824098261495806101768767074385336258323795603773636643202806567181137313316661962929161837757445308039179932910019655302966848268411198517300332454749491161930912763491558563690739326563515441945050551980539872588203423902062577864237515154940907073110458294376027451458125144323325297634159035884119474890339326789247423147720714615252196003790968120702929573925600972268563813675587916051539280518623679828270333562364535305025129484074059993391065901661310063499310714086904481644641352629581245351404034411855238657807323441861090734624970408336623567290622778375391394325135991532035980734650682298740179322502877759972270023928283073940345939621067693599066727536467234390092114588810062161366566549554577798336988661492363805658453318952138612996464699516358812306620811117220292517765831110868415221696866385434324217638978301462133077380650782221498431057342930605183814319927396937106669589659005461201557283343229887440359967292305863999956309721679098929303086793502738886660906792064174317563254593021417661335366479663351914995222506506517882147968985455412567331598815378379835488424264324049950791799906114427170456656972651620661539572504674905577389940612308148048479723547854648083673353295846483187654783989434539045859857146577210215137783528987934233290317908837965796797869481766020532583621858928827293406243419918506716154862927623080082639403942638948945294000663248723298585448417869206329328815052203393350525493511759192707233363295660657580370637922713757557852159043465861657694876325993989919089320788656693324139970226984039629134960484608609930048650986170021620614907803257252001367466061111194039571499820350371701910904258003532337711472009717218172429093094389296302909326816401637839765408510027049373726666299718963835566749717761543007018824788291245394997890567551085609573969324758831344109753378483922455178837013750071392214538043307832420418800256973470492956963530352300262589266008863324121938374920572677663433866165474528391494081585278965968501400502789558962471031461627270269541568569911894068968966799594412395452783699071808131382139294053687117692743723122893981321691331629832686253124785562330586114654310873432721529897565737009849998333584943387538773558917490038129566180454457125499971744233658097434370992856879872347650795924354243110887307823981585917338744594096122943855314486850261708811063121814864860470804275932654442733250483352372233250555722736244500107287508229619955063845596403544236852315374280113773709074935475634526119423751646564790508589121753088503410623258399714608675220131833039980343409563208245891700618029390903781075233588612756934760105074262983885368015509661334599923430327987110784742326790769836337959732808699549559374443019630745115135981072317638129162675745706424852302556561660558207108348143093490479439201107271097739714890982784114070044920243188567925376171710802150271519453528005222699238893693204828385328729123694936342690203310099842671608501986247324437653354174717026609921737251518128359800919401740258959631432305369458461472584499607230409311111187462313463647444164848898799999954142622719434607696133645938160659714821336244254740576928896361336200693266402033894930948469090498426892809412452202508938924252349739901617186526884367877312655885699945748622639006141498058877284125842395951233230706086053333619988690436568338528368994916266574556813377918109229080098504568946189677582276953867452097520537204136792869773041465128902496401654581496623785558640120402198732606090443203777503474947048701705743622381642313090537582343773759427398454902762633587832402331877921977277067019323356138734435601941986769794428271103262196620799237059856497620277399389991033719585025769483169337835016212084382376549790308373609243964997147419583588408959509683349482449557538065406503452184055809497597105209438384709574245587481666936957877523629180310214874484075568760422395433348516729836971252998384553427601861325843320731386540453235015635544126066561367184570772486173336215035001512211674579158203831128990578261945443178017405303482060111717407949055900825606793528095732804489065554412058093882137663107407219645093743776926943029282836057863191132145403991223402566146405548016941824118206915261533119135208941688062484147186575877094708722527128609374944489620532817631280510861230791278973445729043648344582116687421431300542853607972739099955850818798266862758605156766618342469345752596658941194986306566509552322371197488774842839208474546132183177447465995113738494244869373150962355282231429413995127234151025742930567369142236675722701720815386424289436176968517267405213824555647245282326717658682691739739633209565410567535006799948979079557532022830894213576672398980757688844117741873644945115833788443333879868141568417548866142629502132042492507388048475827882043856434997895954207732183719823193841612681982705435858835211713472558415525367882920498530505995908833674771300945157696479686638354141514446590314417305160486153041405545276819765549937113113582063163751324110451389629215528673405949628256265795690108341259545530506689896203282962531315286153350351542707895540020948256250718261270196022600057967458251933193979215675373356090744813512403889798087948868466229245036029600673099271124401219192508615146967676956896603522242719686451833393961704183259437458471965897395520790513942578420399877279945991281593452541675359854518100419758798858601802667100232329321470436537441871198847266213680241124106426962788463403030810358973916964379412287850604245813451165466772013315934112077180292194825554349492980734133758544387415382899504158931388890477664551838624171614196157507562544108642018281095132535285244055612443753623313937894636926562028625713342947533274993589954190634808403808343020592322725372014170754289762031203717707993859344003139975526108912503091828582656466421301845897886422907985620172071787294398483926636777181086589024681514117602134483587946488308538872507333372456922450896112865232318534286494220921860864453015357712508905595032089163733421071241792054674810825547525904067017865337710875836093962670773903838642961725649600900600726616018732711210798812279795236552889585545868533956741990537379039252436426729743284389660969005261044643467976897306105286270083838558824963560059778293825238826762910059569995663682565780568068268918976279996051041428536579516625649466490338053168909549641377044127763066734756280736178594417493354434814197016858064880228665396798966452472305100707657237076109582344146484777778443264680033957154185375434966676377538251156873053287955225218970413972208377840050844401172347190197694512733521602830615931593538287552265798120320418909738796608123852624393824998870592543595395981016305532989734477731229214501003484659037203867333361314303767655534519174958809311406750414320438534393792929046573128066077265278611253204487608080873181313454097186481979860690136380177817950150618363662737991237257768385269949020851638901385227072588718997878817138746049089029371426237495679676893421943349036623297000378109408337856687736558907216630030576273051644714736764810083842216376105605225693943758865147130789321651680029143420277941072449453601402718547853890011904381774200150733933657755350398455334698736178918850416646380436594063300497136878297117129627896838838605203825344051328295430465022312010740484845487930747147619391512934122564933222513235065604776094837666864420503274223062003058385345011302065968243921338752541556798550642461760475451227535339794452554743059557976719273658899435484044656462682923156721031027112425682817005816916406657602884560684415655615438835734105307104037541579819747092977916554357296477389420558158212850415562772010183301207598170214818957039447408217106021775858062018466301071313565787732080065562004151353113446625891826572852452296121148163015657195821377545474148796644180372348933825653896344129370262413569498728737768842188036552807466779402497445611519416384756678099328213607689241644092727289036948836045949582210582135541890480456779160429857924386582862249515310566383692770966674776813510369516410320182370679624853976808156252749237995558383756912077000954621798328810926198163500068693350723684168705168450452836423959688492309947143577508730740531916513429496047317078087488528479744913958491002199980980228980644178603921183048769140933321328680780465735409438395814598537473759589944717825031508790947407981588478979830505516421989343122964592081437359521702261037891235472934700984354341146297245456234419053502871376184388421066579716203518568127690698033902400301543440958118543797511872267178577417046625305258760438532958004520037025420467001067284672291991552088380785172706037942650913677690672724912927821455943471424298242155482847654388942917410105885641697259035557436147672443083329802501253127206592872040159029657549736903316872244074566016747875468654122194909280588443021283698733771670122974943341087110630112041801565835303143959687541599025690832802766789573251744410092545670578282445010996128465647090610205557269943080591304442124501682609306956793558134867901195914088406185387582448273922902663991981325122268580120428538458696492854162882132363002555443799209413729671407331198941530659479585486752435554987169350567012931246646698021003789486527228108242733666850245047356422741708209979820884550943515780760728222186353567728000953461648617221689100354602508561453528111348897141596902039171796814549895143654361122512598907655935304973330538200302944742060899770927325907850829385430801787834661440127882683528347650749003942827415038378250942104303154730658170919423954003686689344140663214392881342314920789790442516384490661400162814590134486546454024637619231595460408260386794919544479486442954051152010283140301816965919033863714587105827929949405698019468702153463516300627544125592812390922638816841869241704725251639580555293847905117115706030911319399943892280552604853718485715008224983868694136615580956325331722390013524893389017105845615096117414301113021923303712680892323735901573487976705959358527815107612673782207687584547435460470339534245124972286212810092778522119428484806420556109673329661833379082323111828206771109172169542645769153978603954989605599684926851757734967789494828545112672103804280187590139785065133507696569648653359521240457404350958378172026546498402497070550769111803094840679212836084614905776613496658315887172035639331820043146568708299670327677222821975123606135026429568378525122633264769329140978190830533733400634156157583240514558463608354643211693400877146645928374656682564583086758992064785417053285338318922724847525158688059330227239281406976786752468663754603448221864891288918860802183239165838414621696412994383248998170391776992888043139900043712397843812201744808767073726487981321376981207966015686886647596248930261055009012245909602659204036403575751881633360263451585688694749640064153596670564923862352284344249704885823930765754513362616059538419642427458621340627000182677243899501538845322079689204683239179169597670237552448079053394002854302591770998923707027992450322934483717662220972957917875771786257149479245058522130665395319963352743543634777555269420046195500297113923920443720687541639357533315509771790972265090190743882653662789594852253462107323145814401554107096297730464695590312151825073075705517964728425436813937955540146815719447584479158045219842938382226933598454774765657219710212309978370151428261018935673619519414934060881682384719501342994585122623444956683689879646429636539141339057787504851524130888597622810082902294617189114019680147455143290827153175594264630054610931434349245323176167421284869876696710780616514896115424202825460983825194578922005424960146766242102955269251324034244507667392813755492609769636944597682679360058323755414292244173697327964895444712906176489507515529504910255766618747396833551758181542081945095493360029639697016600439021367370646149299981707402955338019475949467513168689654170844048632534438337959175569182037678069713075335902759268639241489259650260728764539582196211833017764220068367141243488635613686816334938287728406869646035397086773460802970005735907957019658641291501786299324813646261756022686187627752022344277352776192807991513216400209201345812681353900386741451524234817636956642941591375988154154998902869539013655206912791825752227173888410066298996424600840888907114942898171134412860483426656100470506432491437056465043485750053783862704555463456071910560412346887831261585443418556419774490028725985231780714340636776331132245111087621703575317375035611868012236537166872033256363778006736396797867538005452097090097323968506319531133068484592436654881689114610888733284804746758691509459539064930461750174351560607752935796039635449402353865839962825756010007329559813600385494447810778085764919783272805963523636097615880458781577074369406680217366557513175599613686003487657080999476185172302746172926835987175137720568305252165948868808861278784864725914966821818484445099053443021181931559670040753414286664813988372852026717174570002664083130946142878893633321293209636562093587481258693478044644438170163439048410995417941942511654991248796569021318009892471066960350053613831940959454137026770876948378975387716317081499268450899299673750276883359904316247930767346889550004560173827765879773974144038105143802466329140332859222425668421603304955042377008234661593293522082607760636731077576114723364587507682803362178562293470381887766453719029821211645895495677034432167514314597016813376231446587316468139051132938082688199632576072119474569121682149757003824086892624215478361272236831803377653702642730456724554825221973734972823935818868413825299899657458931502560678155642449143974471977310536045870699595290210127528696346222823146843013488283986642644249573484291282615982805040907410856803583369990552523521659167227441536420850180729127240715494520874779515860451408201230871649584028863984521114771236707976507732342305483237615072418321131219537538065701404557961916109400058042344711522311486455262825000700056701610839500680458785115020315447992836753867433722901835232587562152739872317079985202780893864442805851421342279189073010379042954138823384793308941997101269667847255249380763218528528857587731980459029631300981725417928925126827560183652953616318781942409422006125847465260021801321021857006347801051458344480843601850113139206074517687375314161053747288300782813405690454064144071040870683705274295503076610362544240596546749191598225635116343874194091024654098981393014141391565145937943819370659646268782760457949753153330272852575306266575974436185931678184204183814795040731574425713996371992046111115027379266435884889736835511330227718037151233036432878147140496170804900044903132191832968150377266023626567395700622052999973682015592827349265948108343874535445060460504789917049241281023644193013969940036559629702961715910188512004548252149867890575707133210262284760111119515335937049635502352252418018862593073512622575036444567086744519055189179540540279734248428621212432493170801327021587821536199012714890040641412608533086553418276863697215385647739044040698154273149250658625365337158991023567869517534137463186327734421245505732907060073443532008412638687943504767800884553794567264640278992423835788681312782718238625573805181501399738835208536858811391404683487108493452113748665660074812581567499692207679417323529867830412252741914495328990363290795496565962932329043100509312777466614135177792135393484368773762774419541562029422136126509840192484301708751399982078897827107715746171194227722784795042194625662262962305386441518863658523083722537957252355827063579663847317933231241070818505394343912158632560642242289415790156161094891296955553760460180995322382243684374075713566962887781532765939101566007930597706812857906660465819834612720125339758687925834155886581289364965711755960267526218162481325026911904855622823989630335783361873852666636417981898554028594538954447847067772050614204083005845585760162004163285428067520050803925074417231732637996125665855906969379479837047698315406550097057232920078673586291559341716722908976545945566572475486017949759543710532954018922498153983757124860042493782321216735865953538415111152661401313786385740506139841087368491716631723963149569937259359486419843934629012364335547233251149056891137225044515586174814037374360943678977394139415761266156613560065989229452993378621312145868754314564002872011857159396390313174585485520793242656602422116308808623168307624496129628920176171145289095211488882900871592817177012071185629171752529931857593604070506838051601186867738016495230313967406807910818156932427968804624731026471001355673372347260338960489482510127339334399529551037543879324480424671911845802301558936421336575891584512536396423268906068847453150988860346361728138278805196051858054918922179418834405974744901535906510729796016653690989602257433356853921515217991859501003042139917615675914285996431941661967357209911875142097879628311842058589431375345194591478917424289306154297891473590498194397471111502563533009494347954770003296845587781384378312752215707403148933704536759031850196960691744852695287906007158768844329698876601318913487292950735539988094106025179425018374875694451222103230178998770924479270915606970252282324152869124598935635645885774913806107493027912546104933616417481605495346910916028825850991176455228668783894517184329980886507170074408115476003617173265311573705359423866264907976532463121446382082970504271256357658487940692126994165767919238956905742873784377927353568483730879817730947474492975317784148073219464311543488922329755071443232045538570692234329304358716274904014582336057875816245008669166658659822552270518531841541020089197267840849930880115401294706893464566637550415374627348146427530063204604026235522156795810982691157093729184980052846446610654707862635765516899232137359458715181545431386170455703518751326776560855975435104479278899979882005336422641824656500375923404113376970250501722251965167960547133979295110268913891494670147499066307727412852769671634478419700903471809354084020438185887168100771655007462798807917357617602647693583415295974252045296237073328195924223214789170997193710916772975434396445861275952170635207152426992138997905893366757770263565045830904073214091433940314954616716477773610792318348339071993093054257991161600799172744538017440054883624051779474967776051406482158150858038737594651690860963903369182243610129185206405298384772313390181098930472519346815435138303211527431760694888100466130863391153761281877047514207407717307136421275091348652387067045070298294221828443272485662494857779667462600745509208589990778045965145978332436143022636189838967496193030811344022197567867909839685418259755123721855255649009564452157651144214475177432294055497997197051547055433012220594619670315957443892036954512452134696552981511104243858372596373793156476082804962375943928056366770092840042661418079458077048089819220191050029061921642865460141950011560793419661226415155609380600811399555976665097926976575943575650275316726060052501379567798484733314481187325067314668648619850724316364449494196133412937095691334242857202275691289531485294310199147528560527808197204336605635537357605684266734074144231660946107825672138425235988702691884602697465758610610839142191002129861349769204334095445034878159246126908161287948306606487221844501035777336729658622689347942390457065745846747428635247648755339220762700720717335511269710431001441915501726477463125155599049821118733691520418831576605071481008009732664403628049794187288726980652365102363441370132757231543839210690377103269301827593616186770510995802107858261313896934522811808126800114405130238341718473930531323643427578941349311975583390248358848365650481558670532299110739573808110773023063996943519437925908368101859313605188316018768263093066027953130692968086589970391533400234256634281384929228112999115820391591434737690817906629030323011501898132205818361263845237396112153434333554937073820125975216348587203962326778113962927233694392167086436415050606622194487140622340827723462755909225284713227695656092573309721433903904763703677276635082785935842131832991438796173542581786823291088727181290779020940036971396578603792833408417649671155749415793312904984343937401376768863087693974603018423176647119904614288008496333764707944603142484243783314865429834861026649813310513259867397548528403849292350307439911559851155364316436132944142235328629216683745400433184692798121299201997015449278744317462596747085376061972999810064624927956399534472225200115937077644398434928735112506836072360268582049942526200469834871697745839102294420979991198898833138288392607274710983421295222683783546421762442321093568072835105463188853697307120867744069656974352859060598287240871986261235088837902217507643021841936034714020813607828381624900165356093401330824095773214297396445600748443319632248105120556399174593639772992856873880381232738931519467941497125250125982194866517703833366142770305273020548999498261931980431755273806362324197570948398932738575599473815440741218309267799052555391648812623399000356904227891750389074148149349248301604427574394959711870375090560187072425106747756349462093608877969057215151937036939553111677737511057465623111685886431752868991070399031159008735866669609556668368320136990257386648144312659573781848651654789509888791389886709440043368810400755812369251490542719516501239054682764502174325541136751705128927884900848225712029114844645210136379892523006082256431820822981189632593647982015487483976804489839394543793865591772075934691131276907386963813464158568240015622094779104244463773430963915278289767821792944306058514201899979630526850740910253185181183114457404703578391915335467489281154537484153307739586746528854235474465409831062648554342154368019821596092694219170494723470621958392905388840072730973001986177982564117751341668848513216845186813822238053175890515536667775444260043853261648139081206184388320462313085878397853494597496839232196368552212532631245556370856933521509901607437376422701989241731436111642068353881005627845427659699798211762220056631968391005447557339795493357208949250745052889446496378253262488419939976506669631924819161144966078291402123505880345571940420545676605092004228849560716775776151613208303788302209989508657768999726001273011320738755544979994748461975728664874614924564592120714720864918100749244259053084381552570085015848647330671914240481020614633107063249884371008179134325502589245872832237700648208268852928477999065349862886769089820234355504385737209023755757949196944398189149401885447441695601812288676995648428830907999986451085277482475101970818723992602397797695703831433222858521061825563146479400050036434671104774973577805775229020489878841282969518155840835380169052086166103054394685716004771965415898489191451994398389961211529609974152638632381687508336322995941343409634166288584135229781892875505168733133343644910959997256807657963319273295978470439310128353499638759082894221483677530164278469089963995393851856135284420328637613901640357634045455281849038089899313141709759073981807561463753122441555223265588957536154400817767010869635432766846910423679641241610246027674231187256760589788397682886461984256202199443402894046390789435466809042164508771737516343621569608416013967073366971257075026268529380603226463868552463761750363877302620717419098119635037881604086502958125826074776800343390981856471372564679336845811659359304830900858113322252880745567324238492528971311150279710161503703370490753472830791874013056082175187018856238171144588058846315312611597047868831022236332545562904419802218763174865690780134748624569866223359618645549913770972536870536334091070870176273657957708039615646580796274599767718230151232536321343689554482077137901282836279120686376843320433893151088726552788304499148494353367105894881117610588415711906289651293497877496752006904885905253500900338768831474880301233066579399329458026020799056287099020923943679316841218112241157064644304730318620104397047258667605488683574790538284637062527398432046201594407391072493381194610188908391277931715564903143316221859096744302661158837265420154527384240640861572782249512049135602263924737516014975601202462385239567657834987441824688488066074696537871497184565895638130123287003402819653811097136201439141062755508080122635973006785081958030327961699422155903073684658189546679945169017154973029022990851913421773560289298341966681044268215647903649507357494754712316922303641665208646025643729676669440150983966036334710306743226457210084368522340454977454123507171615098768275069377241802269335583362986349888585084311190457410038330494937656297083704265743441440817551522234439381197059686303080904429213047446250542849383932973611238749996022366832509187280362691200356574536869036435387368472674208336038500238321895395538289084470758883172112555731393591118222128364685990220528402616661862552107701477234256820092059281460620997968658166244059437950468332332078297917808382346695279618673159971732091026074996112697071228150377768088402882759760187607870099908528519774607227678713430406570345503923009877716815757891938529387021851977028178382629159926767445063413815453799651429726316982343002505456459576951947660307956197157781657506332252573076356431465449146628787213148520345117285246896274957475594151595736542674354808958249564861500576266105077432475256205439528340908819230547223344856835919183302376107063587203706944110145174967110987886360607429306251133086963851442401659354826502858568920787564767907242613184262265994693269981728403667139204288138895577506517728690648455475551263615069593400553336772249064370238196105487603746848291668922032810385063440998577836853704230597648648091500101724871442478607495725470916605900655815027175788346131610848394557975987537035202014398916394225652532577107248648794819425041777787945832194717142887948982126378895628939184499889474222784314807045498809802333096256936328647351176242602219687178451659421749291312724580657214304878194005311470547634576599569586263371175852576460618484622566462630770770558035264609386072014759341514973954695485709101888130300217678940875821496589808969292858555908333290454522256452216046965283996488335649035041031327383004425683013110859775733673830649831737290396243775831078107539658027841605585220085883203532855614508070252257819585552581861490601624579148300469275317273127754384862874578969012967371369952441414837464214243029160546074057573498834469803153793987120601466650608608500762683561067223050229157511323133662640397368285537799022075331366349713451852360093053909697380138686058333000159040439802325592753803098507209331836935581199272974671459059999127364861899494349655788279485707993364413859715789032895379144858220196675959706901275902067267337802204312697294942912465889446310438872294851437409489557159065156402206795373457311695917123580882822097616640091149957625660529444136714517785915700794283458112062830113257723219963515950853363530509582457731341333986600986225485672432584906973909278673358683110635879610364987703199896124076504502232797560417969539858359317948547042021685378896113269169915867010018780954854221663924743151424987324102688017523021375280999044062820695252291421180919782592321136695462399514334097627132143905001651651767549339991158071617037263262947525145054463791077224751655741847803889566199183299360281045961963540185828475347940303152445193389406370645241260311070357758329568084691213744655240474076978178017031784444976675664577797183235745495056671488519681083779041266644382813825654531123999361796339180149717422297355506938060152270107783594690509753743703879755374964086632129044394389740628357729909513191017274076401039749917363624443657492145933765056449147145769171197045611309986516769507555439975592292167038860242916093042131045324242111867505628555505959011828792492092134749642728767165724296754277462117412142996673672785632817488118210985043545454191079113805605041356357340803181782191913302627277891518645892351177385264533038473698196103920027117344759084498285235398731028810041493860617295941942350445290086179819793366774639221955214430205796099980655173672405021459296581432373426206205498353631854888295498991144373459495306543585335516296960790605713719173675074851556944610420523161913420268791740584606398231222661893191576633313583896352414914485571223556526557609478215056636017569813645595984321976222083285567180929722514186944852901900923258212656345457592622499542808341563465575211383179515221453337333407195161239661078071761386562925051864751185183048856563213271589482193841809747700639694905284118370756419882889781199077373137742659669304509541998215412118175663808815222735440946236359479110894405562543878037056901326395265888623845062497477034841762688321324226891841472254892915429833479428032965626679473612383635079063909337975253370532897886644974880908649978793456059796359065661303988242425521524979208529123524616172795348000988691776386258024977887208359958757980492665474358851480936784254105931484059105422534941166468240548658400428554906644317519473293283367113870936160979767511394377382370946067539395539748008638983971559091345263666869766387425937843449022166886454552499924748698798304172419221871058125306805023039766574569887804276564645344278604110648757052189090711147748596567304599365742135353620030579609714196864419964777973308145236988324449157948339458902099981292987132347510426049400232314717372343370740387693857293610975882168292290055089564285019904751717994692470526013415861293126735184462268221115709486585390886748152168556700416095092260786371966993159080463380408595262943437100819512498811825445105759122943292094112591444767343363919891903022447582325937407451722743926011067181070613116326042909704544557788237652132756023074248056418752210723959681263946115212605743211686337491459216477988514107167967888659499304522856624356166087152648942975826516026756194899281443079546976719139506948243393319013777733753541015102376541589760665597171197760840928180309192409176387121971264708233851152110703050536268989990058725363550368964481622213495399855784548861555258486568959626021622268895013106891748119881866478382456280218505935791604487461028274372775315759942445928583205132299126038339597357640766883981024318778725527284628783168844070525227188138311803353977623628893589739126279269036029558869708371159866810560525489468086611722231889069578433853577042216611145230151896880598524607341280547065822889398853634997519067757683634003193311653526494836843548378302461190059595218468201903480828655573652168625336222704693611116585917479532096411796674638120355034507487493659499426368201260048476319400867965584118079490637572584827145033588152078842545734173782748820038235913935572642096570255767300680729482458572650038807545911257268478948016142537970290267361639652111517118988301429695717106740410185724962935089350986132953447307576364957942422081490003494767984105813185824958252514465890259771498638787862583759619316550449370054756627008797453229770843482378398213803209179445640407998630411889376859619178643169305530788870521858363273584896257711714580807327828259653809810380820089864332271012033672400137314437044361658801488567454097335477012474858648736974030743284883796786322163596698854135963789904596357615874991357496180875878323171712749613222125088318207165164968987194575907338736047374882977907927037105275841120800744285606682208886644917085360655888424900461802025901335437899570015734200506586138328550036670249766385035127071016678530178429889917029131215927251290377139846119792982553952438927214806217820607497945131505829197236135533392136738411465356029012923217229566141246668804429152353722270958580436216364758783491562597671478546802810642404660540194597132572358831591453362199550042293902221773703650385711366490240900484580001694849533299073521821328895676306175768559831085533031343196626747990618876174000948757570928677329836384286643872565924219915051529725144899806766474926786049311107055666173489050522304606922469899589227608718853189392833262485557078719216578107643189774522710088107504174548801884487530071261464612544764968996060926370400906804036623243164317833177792596573955883097068452880912008938952683037128741499453906523469454168788397795554023633838806229322716269346226739164963017175420860054172047831504173127547917772911599582814030820375128482125397613097451916266679999621221884406197268195476271813681489543078358677779103744329432207993903623556526272166326415697430729877835823653854743502046882339785741123688156417426488467198971497455636234506535509672569866770773553591021185349682851773179512586592828626668093431913200392649063543388497993582583130599102513648979718490816137646747980899427123679579257289481582374127536836374823867408337926492044552948348802684784970377374074225090310345011507692092156614501433724836412283230847932504814240944349419544194575171355464059143299188633868979433537089483577320354238979165405876396947696638171703006197992230499630013380609522178938819973832418219564144653953250540001931340696129463558131912501571185663041895014862846703992498062750582610113095250650209392855420047187922837363654949752103056506954433623824213568648595826677299665315136000383966107874187759636275928047342627359553402466187384678930767739871528269698665909822849379114453879796310447795305059377071552863816746723877969631134164446399207491829754439686473084785404169242982456480902854791602793737032558952011132747079995821436446387827167621279195720238190338887395392775731290841538446355676506889564888642159348125109237803170137703195047625296585011653169727449968108801340063378652988595520112779570912271895292500514973548244157388122148090600393308741123308830460655400027486230166019972559466865200006582752429368040878368491551476817069817455730526466473964468366095186944002477779700841834036993301729870611243457114641871075240261441793832582839875370867033559685983133454056701576360616962910084896800136140202111288427291601419212622954024781646313577197089500948017809063936539777825575772643845605389010191411185169766363618265677074397915513475666456306803169179122691041337997400715379258409295102820863243699121969064368085588319992461095398531195394172705705116968408204050912334130728964666860653468177312353370576128508455507787250001826075451593350847511012843264714612802951539548438274529267314456729737268697403920067152412710594927593824036108485692861466784424016019874962715713970078114394782902437733265292400841511531209167819128032010541839526832259799704693075932628987989299942652369356077273955370503458693677234952429606240821113604212089154069951881276428037472532057360556569869229140905249125286366285118206474012571461128751469573000742990260961588477762901343558628593654317843296637197371433327963777062629007400998404307976216763077510014286602649816826962766393104979895113213086723795580520698750029053888494231338000780561966876920097142295597594961734598852023429152139820100983191328756225659146961239357828116441075798856365318551483937444204245389710901542967497660632445018501704008234845649281421510633498476194459233557137978615730012830078895272170591803999406923030699595682308936586626368708061956283685418717822908790589975055873683326814486650889378395017425488346913077080556157825971433732107159782994805034648955880074389459401909319031332783170428292550588742178927765354057198925497321927125836573506208096293477514999513198847881248018431727001548277849035343735270811378135715852614759714640510367474865622886988978863602294465337178311382070498549564581460256245359959996729791291459862838598631194827083353896415478169657454471356391708252266394975551181612682644135111633456931485422628583123235833263535020187350690204315424750456578990854249486102755639064272646690070598223227703978758695415248177284868445499387742353460297177078983880020004200281738202255382027233218998453091929577794245658935444947632477408548535941207163239209745328796056331821924739084155287329689944798927822276892699655547914567151401676005074379027463245209809690886406183411704476025813141687630359010380375821481363327051345166491803083178994016358101884124719975529842525730671565911664581241871333429029908981626550719556568633377258513661980927931470571209843369616335295830831702119846353744474657355537623839318790116708428013430788560991080370008009152621454242085471901881778125019063751275857509653908461104903082988677855584541615669585908051773145841532945099706029147620708716888004681575911563072264332552608804193550739935142853358972111780796918880220878057889125439217893389935420857901280694437910919874626700282889540337927128667835913545919074084236451390296371960356582509187745242231807243721529039330504567342393459563077984331120527892874716402257798577650881614927536833575621597686422065522534720435679554335267224355911352461784764906527477910088433543190709796421226731818784103878530295935753023418335735147905843112076037712273305075772509711293603025277934207368908282851937363588049592941504491694627078765601625143528294732419068606475844893877795440826080225862578930777191917899591073849306001815723612804060466096345621026868031137594510799883278073295791168777556119018245199198686809314413021370398968161115661412733036921269034337314609070065635512312997399138838163797738075808377481290541632958933682765471555636598022197634044962041229666367812085454724881940317042772279222556594106266896343070554609387050296704906539881764311090525301950748089437639840082598688619341811495978430371849511044011283196931874990534905410859556959626983217853494513947375205247005863371537195095984260662039747946600216407930173592552557523444040129577398059304398101033070668325798723607881752164009071073312650605366602717681721045713362622172122520935092644664195423527054695422410927316733246691899963358847085726434012461122246283919323817707526419799697224675461283245091149349434841912449283218465289547478492916748564632767039221333418682642914343544042155574409573875171563781826747711139349812778079469849207224928515384736014422409152632869888359964193478460086694214149908566770748867188323960392545174265398891032354446951441738924158587307936302573976330277215697431899138786892626115501168188902912646282712605858841673899296559333681637674724082992415680236612518084040288975843773331079386057899946762225604186200248070289320004283716825732131827000641227021708033760099704028697507945167579572209898070736218403857942045366665520838219391539174750296677494690724548980734096573540483098728791726934821433461164216346776401155814741375768471492157969279679912386242013349294306071940482012118747495072380269578260193127672715962525495056239329336406451596121978085082056287653759451619459187994397045857250844425767765729776215621246624662568392153501483659461985495799762321260229882130119691905420417130406775576680512215196484287068398758124785671373979782340510166985390363466315734007887155068151427732351638998926929317187359445006679095809582907813083721601603069882104942318578620778965800131316571959038207327155067278462609937135217841712905994422800055770342064103391102518407843028151391633399724596330098876220561842771892747415575269139374081798756618842257928462448802352890081438374715241674301997418879727845291865701180817138620241948245116834905961914712158884476947233909066020255021450607633742278631946290320596367882073164404734054320513043084313418387803724575580871953127007701210786543246349293691139606793233610122563060703330463954981257623025591043047829615560846657966951673672156068630829614134251169800584942758060326950479326175894595996344486034311884791296522739335832127159489742983958746562843449645272524495270149217498888949313523410164242774102487789643150198319241400185145816451138481587942420920330521614707132425946085350355972852993435786843285595232147128209003021603283420030244116951789201034279771623439794100737080838953873562287833632908686910721895867167019706363619201055966656924414374764777788223110962543215199536025240332759756610496019137774878508481591294132661803306240422312445691746976680157691743591525607883441801350694619313356637587558929044102772207863795298295490721538961735262329803050651899229969714267796621604451217924315937682009429281123718380886779174134470609724759383896904567651083149474825009921352125422139668403677022194341833295010866835496091623074483569419220044171571698624066707544579469640520193034620810835386710093830433836584116788114591268985413615883534417509346765153130018995257985779142629365067302807981047801744924686066859441689736867911418073357775732955734927227293007676268433602332918508126644074264008272850146269376447063277746279544322020579551715598945996816183168706692474049810210187468945236377338867046675229127096180850099598197847322038236171995506422684030202909163856987542230125939340821088338867337247188353666787559098632705143370737199333188351377000538013368077039073719911874081544847261232427947519852086218353853104568892858559961917000690180515669881257175144890536280302391074159219145590231287049115884867028920041231188895570740633620042178260576894711058657553600722899173943133343752298005096746096594416032554901357784754582312862013391630524287753848385923390681996186067918439822956847552895047587065455541916472937582500555939143765265408288588937490172688966753846495694765095458846007225178620824443795584166648897695775263162474984962857389772764074554289675827392365229286601030158075025414532298570036719653469651275531186961726945895988571052972581971626762921589605344732898399921705402050501328099680544149541215538841497343750743369080528320515003807326383982382398960034904916338668932717541718928280305477871512530007581614347166858927408463345567433073592956683602951081317344022718354378977303268541045398644956448949051479905515041278881072287407782810722279663947527839500467642569334973331642073727792653509850121984233506011734207353724108215233338073684849533697535582290630554228183898250290799632600740128287791156398418450137065792760851237281991981533479146289217557882422533081303562744951373266191594270787597839678366297993268647812168708692487777500694514115275761225022871575140730837247504081706482774288048631031765811161143569662192540479710624648822824656077440500785714749141020034187475042296104903121844208282905791396537910665121479570136647801856255476526118394463094533627238620478928696221789071017982470488680226190148120538006514245938557285744574478225738823418412018594690851583191433026311284754295616743555697900242197802901644067381665486008691008405574338058413851658471335158145133921297331989331780389997504505394604275655295801558642121489079196981745947192608636149274770971322688728699726513618018564254747351601544889468384944932631583265732946451080687341275975824676402501255287222591892154435286175623602853422088487853943395834552730781051254082930581918445450067846960491167583633680901323601510383908472652628427213044237161414742909938716212489984323479497704924006208828273389145667590086087171008287464488855834025556880950217437617504406213284578141833462412814236839129659780501646142540034658271136152927843019867160801472937814515129204030059718315166065920545151415107684602908716611733760259963976825420494244181839162134553458525054189283398700173946939960171544487639435701371718006884093233893877043875629382273878087387725073279495854372003572050215991686297937010389903195954010480649579889964702001966212739233288149241767038290093415418562409056442710105239289582002494686331384101857757285838720476262139219401577394505815850354424442428051917014862661676552482131491024874715665294310851655977431381979727559685359016758057998951033215378981347786702690284361687270735490567499166328016011818147483571890150896126605992896774935677642439618331012048427067369684977402593966817751929266164101690829720529210133787606610678643230738421624040724412721770178446762172646141891420057559700659516703540446987095081183296388736367463955889328168746863037983610782206715182903336618543512687498309871674774028455729190910316173012787493930398584797315677781622597673177750604284530812002827522333177417749881635535114902693744751199993653102152585396207296257258222589185190401816740540400461546147992359212165050529948137068669065307589414461540462171815520622861077870184797334577348233200631053675139147050631910302808801136013150169352212752142025524904663810812701686488830898689993489095813971383200893701823880804030844872205196274890267170583444211452665120352423626039976778437183478217834841333102692232431702146522758176265545468065381430419968179446908971785976168654739457481630723500103949105725769714089950959643015774537564659309140314680001964061264646239836019831149152429446334964318745730452573264549560821092748824274692549091186665756150678650794440910326354712077247585856313464781911658361886149145738766110650424883746960303652813019125176249542709658741397532083356998745404897425970803443056492917102919309464064396057197327096314974400508938973110450945745793232843301987729731288098993122941358923215091077116191848016209141020632338982618351260985519248577432029322646335540999236030593038828461932812536406839011617394134684972102477717276364622627056990635440402033511312788194761347445464039362058680781629019913800329696221678989064744076753921089917037929643502730697712533114712117108260029047753124385704624165529821020926223992978447737861753599878519567800242243855758946922552901918035324481053966649185537430819371021736498450950269571247462665587904340644527733803357712805874136630252501448889911435822585495558447052920668971154236170815719590157106108163465914356552560861847239354355399173493726867097205830458237730421363892428249302854380784774601769216930955407172993459724111350752551780004497641468654126398152641571809152980665362849190974201715215340939458502578131627601020096166907213272786358531460506060758819494279605689128213984969585948949517958473085589770192943286822148579313625085956293442021016594816143861348146468553376284944899109353551744455202306128821286284237924414931384814825522377215615694750145289536421925942145927268860283254060970444241271458403537642700113990996095221330484138242754192483613688764872830012639427940950777677738063958589065346366001708486854946808161721855140604024770766620443624550917998924769565895005663260104253523447792295191071406259093645601622879311951701448430782467162880357045796531928178718082178750671472207930258572080247619038433936523091270272827954012659901024478298463279235740874791897109152899418862144418578403494367561842214272323073642024333448607476226436032242412069023441118242907111344547021963234762416129294438608355153434387994213679185128224431017626241181762995065362718746051580959901889438816989449416956928400961713206806982013058952239871117920926806999441274131528985550189541042081547808758779528045324084480097540475169649486838052891771696044870615147710260039144298465690897745844293122618302694802398057699220858841255576928574515230960484395949941201968037174707862857851288398604679244278215788305944681118010058684193866087406977472943326176075701366821627658397376125756122490283007140489282411810127033715717790569461495435700533949256867871762911176266641623310315455869074437215231301989962638180118499755785331464988669532205262751761471929723222102180438449383863013587584308432285963526766262197033244844523140178519702085381767351746662636445401915962413796979039167747682535480819316686008878900568050951684306062485974488712354939662781224116993950024824309930011116496173800528993237051808427529164080827694500851250467099147939335507427193036504742019955810564615361239055017638084653655335933440205552425409356770961526335049625125643950632809469076574967416511271606195059646947176378443465574874124637306037559755051462355659131111765589203153723757785355206342660460502717176178168360368548070441819335311042161847882589817139848000969891646340410677673270328437080721667866925334549792671235339872924658576157018829459396780312684081926613874621038360140120720402925181201545021726072413271617503610262206149250233707869309894427346239355039951017900054178045876527779939148709820098958524027521015045116676192218847931307080029160583599963147227886655751566383966023701010186283128009962426489916791012257824654213479907326043112888822394271969198340652721034329091605038222260636995971859204832394585567993375550057895423932830968150360894183342170910471443663536619999667638870518308371424622343477467674892594851792971415749629269237935313507817266497878551879988240310048760998088118946443653371523005058679169790316371093432454681971960838030613487534140538879327747817079152006537068122870402497541404222482506825513680451016453315016438033102609742949301996379271609469647070486683443856310625914397062004784538386978588138811115958198421003179568959868775604463029925389939715020873221641364742009100883577531958172510391574408166006494265857149251696303369311744416211363575464422588827596661766372675738290928432126965454679568329373546908463078309443946416466882207274512262261256397412220141253972614932286591512542763825797673872063136331452441980782549355936387521060909185843601166068544636197849463973434156305059651396088521979146287116087393195098604658815454076057413389716802861841979215377943850020222784680579325869179370783688214637717491990525422324661747686627727350939183422660868006127094812455451309542653457445060255188532197371998224917523080783080660773493898081216027875092485754621504920755271664376039522371122647054343462717956786660100623237213637017881560847476942806607968547143757382977805487647329605505737786522009500353042976599747951370251983023404646079863243614120979277186053258338621011764713731237436790146180302797436429030004153161813441304004443978127825670523908965540828820782236540373621226451870120883129043437887107413546706224918780038605264126631225180126875853636333540033377663187562562588537301696113146905608429091445903591763042909242187786164307367815700050900440868150326667026974522799255563958907644765785767940921423528283056433402557054682050155346595182260561229038764045111272637311974681058762066832546174195229654103012588738668954982212692137719118287335299478645458059690049336240291479064362563311158161241945088829776140138690110110895932296146649207780384861967110370051991125857974862668237144758331429488564608972584684104092058839188438205638256466415506142800037043711905059433812009495350851473576444162794629319542218937212583872926196377037039878680768846100749375792164904839131348243535422874284377256316595724092121538714930431685326741490373633542604856779881588579571263648582480464825243152056645857327682374114970082404496841057629861287160097463953604753626364484389304900044155386637702844282695351182525112585214276575465894431871012394364431002962524012326110933860237070407172348289194420712668323828757408326948651385103853799759913048413568748357418030417270216491366339243059847270282627526457434487189471816171065622930171217576508981913305415860442177252155813309849702479494372072516986958494386850128657827272687462270371101736075792130833351768458158029743283056529587082824007488994738734802193912289205040434518044883078822045619134765937731162176796352955121368374096421945366669018208755387186163769577547170671495141556350742379417437825208150355122585939731324290921473365295625788844094861615789626098431099245170477039331201421184239932770006766065409244730730983557444668670797170970329835484031200641690448740749914630106201861500907797567074394921669909152472750219227790180414745641618856792129402419973144540118024446071439200681850482723119355730687993694839408996727798053856290379271450745499985881344132842905619379939762573031564290756220647378328418441643621766037173877908121112587976985052927996482816821190367498773786461094984959093247651176797474007829189784178185502561214039472630969047148077557399001216590924621197778518821213673114370845509431920902703409240507723176070029540919367543110015537329803761968141735837166843194901367493823133116577928245081776989948019689557623507613995379478070228935228268934872234913337422069064564235407806882175768835921634386431263746388056033808288759916851903991818607671635749629143340782300058825279028169083648012838623179887611031498900884041676799925395761847428683327729470650479339294300331564934535819055459455946349858909328753660595002812634524845436906095605186302120546878066884944598700050922955030125366030841934931904378491179297338878097136802470288132717416843643104193452989814441471107896790972939018872179061366857778836387342776552235480227640562866304263239344878381746079371841734206367203927102347330502281246334866642196197837998662663904265879703785821549168236886307423292526447463030975142380174651111219208753575219477416686385968311642135009364399914237312290599245652519117163672372937801641182310779024689614797167919138372975314238933155143987981091963106591898163865967050025502071959608797465645492537503625304660390397004006336437853950326357288255607620940348613588483912206478450588727812682220955646550488604310847636487776573965933667934369573033008786617673314104533535801814566915752020191756169987353590468131712774144502423545470505445011819460965555047449329877240304309150079794521152434144296237365575960208845890016529290284355947444891109271864716020040623210833340014123319050653763356025818097599241356004210025358508996400391009216447070463507689259130957452652129514175684459922112182509228393834143382616388544920250358457827469398246510390117222950155687010814613567763922796772461468978164228367989969593922666805621380615081220604596072999648916174014135271832926023039523199895424427722745857589031781331672795406061032676677869156092804191055946737670578745191111426265415733121877906994268264397450981903711431465079373892264378927255689335809702488351648302439145145115886495784660500564858637477571610012685804230472007056561452853282776905372730479043765651986072719985222556267863818431527712687615183573176463193288375786245894245118238472439407472507623171463480993750704773665759109581975218340612187769659120380733279433946796026829633041459848553953112508467256471419296577797568735752670526933848698034211371407071947001393521313594585031759531311759267434606553041319665584386726143527624155447917071782726061863086263655128759247270293797491322461085635555567335729246616522652053350554715827941385963545531501041481321897957725522753201407493528179649828615484168435275203432738047115571628501092685413170156378438550381715755498052663134093678078321248015743354586048395559822828987142177274711362615513264335317868976603038064044455070362135341205962835919677175123749788411500959720741869481764765276429261877757618380985012330967331873012940387497690814210278845492825860918577420934216753815126600713638085696884954576641394296160721228111239064540548500646404568933911539295657745558566802917772074314833074530822171429682916166979731932903453441626617261276775148115870408506032940651574656675432408357930794401086829268046106718336498527547029852543103039126430789547041737486812517248090075599347264102661795710749261002980026513297031545809230248951550764203047151664424368447887690082192915147501948566255575739173304455867132435521211120915184463458953348294459538184445358636735534483872013792639564268294368176050713054195056269046974915638212795650373768153852174462258352627660848990946208080193212725440117682484060381861525782108834189677530488960411511005712492287648179633805112928751664791936203960518120382121070115195043520402218457447652855539018092362287774640699658701905530182158092812427537466348767511330824416715760183344819129719286940471289648974305482112343479402666140870444484915210471281313648803433879151343694666848184422834103894794513826351391350973243929460381561927414013138462157242324897386356110685490931873439627283485262572262827887036628292789149617553896131735995143388833953328095850782487514990761750286070972087379035571355758985150800314906461599182232496192266949487401458110438329369904301286297940018800501238550390379876145743073629294868587446137849085890371766509730349017042220310186989338555930726492606647629198224492402789774682259535127077566916668829135241363973490747382717504303262171470700565307506964008411826362653594111479417533253796640085344372848116301672954566215478159554032792817707172437991759369368190385904903166983362448827276707806297127847722667413071232059521567314625463881937819040239500731856887631635209502984829476471046498246031146503183757802483419879382556725424328961177536413063899191825354663067500729693744472038929226115243714517894529599605856495217026872204346054113777567383085512881067702009643080382408288238803983036385929219400578412211012571978678969257397646491523598500427925163940939006602486105320264493229406428208299892218816056493820995608306538178997298427099154011988549738239552777188940194023107379186551361243696257293948049280203267144859184808199932357639800855235442507735788039693661846142868441123417124645531898890824128826474975489828197968853959129302899934920989127997455576477994024388452726462723979673549495633413309321762766687481675069514044056771641133355482248834153981407009930289903537860350235113000790585770810789557782459497895404383455330619434735513308467736439731604074188967358687523374789648693034266296783993155737598743563330413401405632488608282248826420941141712217423118439896485058434763047768996851123375235005184018931836218108790677458245782103425806617636814208181487642215245850671642731725746627770424149829031418495981475950160785932876245187069518821630720971345423735284159056997624870614311154031638179110139558891402231931715048734647981382623297201904197432711083663608196712554509511304722016325539602908566898222278400730205435162097480593880633269794631980570007914822767553165036291486632194907799677160370531498673871065851783865491673609618832709141698015292734684056872534348730160685275416799146780738197749534168448070932106927856134575627840238027563600240274606155863702421520168694139338234823044629468443954560127504030569466815488156911022703395037457552617737282567533381253965244518742806158443932606001472576046271597823273186364654772097007949345434019289887037301446220884778886805743628647332776294573127453542499574519049209281303637437407893412870499681812363438971545652910152762357788478073252893894078981154597918292025518446074382544418025404263790761618199195211287554352261973502462222339788654413634030391915865541912436415833545545467476949642296947410538938403543692317291869679371721999133515676099379555212484596476481099674760505777246913642845397545007301036621951828427552544946470200446470404037235109896627009672417805109754069621772563341411328200078929131745347771099146292287623884790162259158782600076332422018298601489729361160387941903877574505276834432705881937697780693050065458710354325132829216356777159542679757351548333684127901799458284057922489000753580141765337227622301002668767048552700525389831451995742351147621283283588807756038092857456612897315015893669288849572795380336888621728936507923593617895717249052076683561776731178583398316458311529391410626902545565870484650617418460345039945315088174919127774823515155189794399607828485768178807800818576910273149854380680600726934359720228292053795226955804085519267174361885558365569784227460726315860667694441187335156118326803626650003685007192398281007483804912191212657723875734279527717809393454012811548104072697255892775640665155465840057994471695884870410717738192263482545642087348303243284069895560005582257343454729057504052505589548425370338276871411080902272298742173139584079349271761941583490948646528789513121507925289726043952566952718869389058734350073497673489964962439248921748204086327935435715749577860219006010992888412107211422500193253924831178663085896597470366514530067526185232924401465548734869380237339782794128826593900630472918443281099677645136139254307949267513811440671493661951473237776897002761848280197649839446164133565557595919604653287673860940575055588869978734753785740021221714407092588681469779651891621568069722103377654047684885893217417553770588900154136397203223195794309934591266398281604366408920070019038165561648283111502711785569661888800551555003412537981621676520069001927790334063058448879701086294579540293751302813872628515712837470985874477936763099439838231973177173225659880452194572832490655773411506164652755421738347574875320476197594471267889724673517895114880231351101759668265614736703420576343821183539608560490942300509787868940613708622765405906010919755650525183290577708982603392370249324426038269107398679870296362898588322591395058925564099419207985955281759926564855208487318609653604903600065769746688787312615969873809959122632733813264548983717614961582486030464596606452491860375170460187780560779315345831125572818609558402176568636051648022380222004702701797577037436470345443948658781149102001085523425981134700468235016334358756918669037615724297705912640810434913608965917841726351400433919969835677084320130940328885459897803240442337405667207153492100056182847697894362528858177667630646179316431092318145044925540406579841645240689309808839487607043354405275789531297868381137869314109780427785798293738349761833780141778859910431363516301431908519885968183865594875884285863050551751815461745389280118424731929808003737603371128367070744096940748047702710080167308488643956074605789394911319407554442230208946735075928958000614231034888586961554651823317051434705074193756786614174257125124500931837785283378976894703591428115029216643257629510712571415728617908703411362081526866167822149718063622837593352800834811838553611074453414922571523089652423671487910728102233117285899871898742084224043944474230850591131412048634142424013357904930135963317224420387203526324542854597638463802226928962887876118415801148430038982846269624677648066492355142103803562376424352980600616215350681381952715403733852741950637692196440419289850937747665784342090756167087681923475892814749953265702577008361647346323885789879486372147847782057223823698813327963805321528149838971136650648305020426626993983153126500144740018259095071498882574851477490720340766055312014827799215527131262677529175892327400402482211265404040305408625454271709864169910938110418641606259138438627561430293402940312955462319364686067305551805875079298071648538815264312539610333948450461565870393837526133264971648893559189388203241320764916043223902216305609623391344532556487743911749248070094369363466105500708113118367838939435421802033502924132641430700074693889385947476753316756143691169627559408241805183781421478997144398711449841717959733206603840727847590711871972461318035752512196235882935711517420369730397196282782529121963934593784955793820203226779722325584486308127701439642010420467035626308786910852050001920781566032255850196295252299340529671104513319660977685926081751162357651954085421819347290477704294894555355353865297636499397427911442259614112235696664214452600809515818693716919629252404488303079812888191920418296518585819287029693653128668413794218789656681908456897165940959306943911397570841645295086627760644900295219238893127592293238788853712847729032300596714035489655720636782389031191855416887495624031332916353936263824457160333173585454038989772240407584869897645588294277645058729597528466206115528492036604322810406413936265357611875445568991463601436587900590100323979747837466925033614497326384656980282571410824685957340653706211543434960645656081157733595524354539032082154634855066123399639947057399745054371602451236176592796862531511140871991040511778279269060035705375897512694777759470490600683651085470766591094031934253327692435011813313061727410100388186837814674951199880315358407583659491898586913472670972837065109120486743816447455600826393914486070630280954633970401889632438541656061107961144533428518128365927209115650454471355741664027216155292263340181808856471882582829688719027841513635681860221083572936325562404969237682359272687104136475351097922359664107017508461725314994590480654399599540364237535499055848923167478575974208776827970483789977294090314619408862145664135396919739621341243368481476860092993185719670135729829872506677383665683985000132622071423709621308255585516917042706358857732265169124374506806898713072683692141473386979090189088035915458082090526519151661341927423580051030459022405400116475129371145855766094099296918405102411099758583070154554659296474826418110825114618873812900323524000479962862216411874459354410779639161019010268511436509433143553702429202838203026806508452731958334427984776022382487733091243516857230500028024716320919504192454169473933751388844960257623568837604929770161767618935728104635895226404598726509611232751850683096207441295989088639982452531422906634981753182252831637849064608659467297542604020005942754586157988036131530303588883830247283115046210642570446198156663631065540820721079707213822581162749544398992086218656004898877569801940580982328159304738095908445257919573225725109358212536434720916734079010693582105054229577573433583999905356256754911667734214416686278728494909676681243890725543740471378603570935418304359629755459359299016701977491385833159829127197553920985602415425423932637881224141438558646182361095488918168300766867271737785946456227196988307206440230809863816092085495683875528536063177623580154984259524550914015058592089743310989451697135988933299722740714791890232278487530980763070476195681088060531064355279340574416963977519495607983829968776047447114965109401037667852895299184510124069473500419158287093886332386550655926584510947898837471784977901658407153524676536643658378387980576893172944994857311593364081530127004976810824299866995772511950699471689076453121613663369773118878015017159115966989239546097237744567439833605485673923770869731540181356073882561027581136681769490537972001870058749264611254270982539707645512199302920374079023809634845361052011382393893386814220695471918151983953056631449491238624257288543333405462535008446965049308980596582466179712288437347557857429944615620360941848659400532149886157215568202566458781616637178025974661721649873616833185365726400215295977057837455237300322839703316580840766597700550698198448486923827463357974844052491843437784898663762897321554263063611657624788584506043645426389528444246586945228803785846246013255681350975109600617472234411436212307590205010429199360087962420862554175012580064627960649165857183501594841236576120096027415925826855740750869664820968595461831547872704978654667614055887453087555787739139246480841718782078775796488426501193210445153315098346153091273728170305344952049071248305845664752444689347859000039537757588544767769624950588236188126536278808225704847680301209677506511938846808591816355813767890470369808358081589853858119004674441789007321074474313188331596960628754506553044485249009005899751510650957135611759193086856565233844942891873673347837046039725474053138749434914958649705004991577058382005250757335992482694258897404288785232414009924174511870238869204047972073443042223560463832536872869200881858322469936070426516538822638577410894365959963606482949797978280536946444173189751333624284524777228101618221955072555885247499393284281864018882284348047488645328099719989771469891070422681756718054275910070606582381366360026527096464847753636046469588978015749031426216017045666301918483025128867450544235019270099916342818958809143518728738746956417255479085101099232579867665209963373129230450375728213309749761417021949567016899160132875790963628312884437869899506976621919660389210565013114760128725379922525858785689516774385648677013395016012105948222025385712152816178424991599620729896416935988036430481002957198929497874756574029647624865199780726794694933828759438158790944518222118279689450044786010853791980086876233848128276788845059415932533126030826061441087703228156088310071264886322415304051404746363645717665194765453189737301738647039832414104994916010104747472523378417992271249866707358654102551621728148680998426183895345004797522971347260500561595679059652562513140191116497687788478137794577008527917347896760199343799659162207562461483046773915940944676095191691200846811035564462934994116898216560820804193936694482125344312689480991261459658260374146500674650350508671574178209453795066488721232145916386630219294155365135206319139894250009701717602024977961195672371520697576110331412867691172904186552289742010680234723119318190495732807169348642898069517207471907179201913857864953216952637805460940160528071061521235135394103902980517432356637922087080053614245445715187621047929168425680586285627913107251024773811266607647031076673951582670748366795896838930908006818303340670703576344496835280958448003447922375362798314525056962146897254603370148690443697839918858473707756287516962144477383095568327665723600963624301715142577192769968063906841178173855326759561513387370146172296413660135794963498422133964719430323052166828748365121833784052040451046401000329539462857733172948535228114448562791142882828933951571594515719340534902111489141765042981397196216842087057640616067497626622166333893168278684177165829837689565890130707862966251230505141871575958933132388362041036314828281343010401865706884248653004313178909649949069014426564297395209984712866197131189020182545042343092582659113490699613997557559222058545360299597086736623259675528988497373619739133387667827793995080937847860193695812408145745341037410362895599919611698537505161265409224639137066095474359840370941827366905958615002920834111866210685464649247969633520057765355174248925318392120181073263931173587830519991849841552864529502729925441561498206517616299492918554201311493623647354262947178517237658913545355604646896898690470882914832756026644775715180168744545193069974145923557039076046852219634265183500126419589444068394432901139465536920188923564296847764688198249691874897238447788922367337353012014781380442586051431102737384737182366367139772671310464338663345534985055222158288525291448634280630025182142273706488226161958056403064909511255439712265833246654592590829876519025523342595902791251390464944045986153375187203533041278226096160651688431258983343473633923174405585132776608555415992157844070188182340024293043762371263408194950035956085205468779149038451705083777770196932537304279245394971872966744487814228106407248340258516724803548615516344690293380156109854657522430893113570069268490586308918812151406977732524226887769508969286139318471544771988451199498173785409050371201952383527818049249184649706218666254251261439113548282363481022122322806403554298908925578187767137106907302410906629097795581024814727735736364938422973955373849170528353165037994578030308949964777412658566649980801619407551299665095894974233239160917366372504050258312799981901742620316441067009942895423743082343508409284702375424343169088185430732333615416688888125495869800436252549942655814419587569750067015855793552412190167267856946024070260903870626203038590142911830948188622562270044926059799213128608808232914174870018970485211135123233072109198981616046788839491901918018197444615027582416416443952636273225775577752829418514730852270711954767667747118000116898945984625612478370294337411755243514554493985249426904088269802337333493161276543047615480961406686467088591830655496154138859777290053180931959048166644705538802766445155549273672105750460355761265115233185199073780524037635119034042631905074463961926162990125151323651985232382552206209428031125131153408805330129316939410939905228381401973838132777139625008233442736890731765957320596741115105578809858579061538302932715207472391298736832534455920109660477084253684610405181375549254634636258515985513401895469770343546041324872831148034254455499012525662825249621849229836585965343863779128824820347651763588794828893165447130162708897249577282391622092838509142078391397078247942792726409715208954327694988430607463154209484444694308903190853522008029701704823597160703329301373354628792886412779492572287217647810232975094923053060186739769474083142314586099372503997109805481029639924572501334281747997140295354254427535560295309814831235262188372772444114011973981623238476932931536011391041041277233431694781662436552027753031654890145689917690277465602058412117656952430293653409156191745422297504764661057440916148707630207585749045325683274454930327153080249499097510100905975298027661772916613063719043520731713089748582870663915336525544763494139641351955688634545971371828171778510387560939555176551999119110309980893301914753270344682683911885461661530068688025196363564623801812634047142213180923983576047450688698413927351030514232144693726440940013979927913779238420521743393535048332422805615176519395607859768461426393090329836472851927808394340939630901629624618463739651326183678286309837781106788560702248340918084464522373179477360806319954227224783278541505458800802996506602701291841187501109077710736107247131142984955676761855243983419812989680821381741198269377557795182399995828455474840801032502618549002912216272733507356088539172075320324985265934338839730079809266112673311346265906671710711839681920928759140908444919559643852533796436179581864329714330932786865199035414427837977106896489378702089979387248084079055580647001970755390928699833230688181256593573790651507446693411108301269028748111951918678133456423092201313262722966030302102750694523648964584984026944359480547123577579091986410147003231841886863591707933726693679470156873840826596953376220873591526774734508124664847460108835666492409716949549842660724625267245003567049384453679997177588316279028865127018418746363475773430003597678395689716038038055903375024313062719873977327378931613291875082063825976763380319876915006735347960410729079103126917282930377218275138533826075751909650307135374464629840863202593844974402841284274358467996680458262524267199967439932163496873437175501088028701582164155211301046252101610047396269006867411303234286518980264799773884637070501447466270911749561163858084354593385422033582684042309081176644117283815524583060260609299161731300074646033168039627427272748851577699327116691783018525208096854088384638972171634251535129786516299555437943554682116794749937803549713987921663271800477717709955180367739816498471104883555220320778892637085617835113149627382946637931078192935638905885619160799715229903614006712896230744560991038235802795488188718304763411324631041272206569403806584372216016236587481839653178412764513273850528590182551443302596015412142787466174260364735862926681897289857588994992692999661241336128037259040820475130339744724172749298035644655624865378473973858560786158134628344234108183684948890644280716594982772095893138830410043199518048483303304749891605419036238147205987259912508503879253299718095878783737982043274388464389402993553486238072641466799232057320559738098997550696420657977420858703028537488079151093989015161019910695795225208193416166259155592639727107631357359833711517037930180918601458000077206914315301739447922251064484158283149591490108227211827450382004267906870292308127699277969313543516527800078979587710662243438422893224046835917135519018218065398178592817621532131880589317719341482737709029512894153979613332407159906991581223098460878287961002125265511449452325256201104067235283314539719318601726941420582745009204541022078679493134210402606715297425121054322291135366229978664731908174601755790186780739658611999517918176415188066894413959498721381200270498009282952852876131974916469693337744533184157912745080750225932147813412082893608399819761319483972827598051225250873620143481050055437828531944029161674964985779042580137685841092291383114428375642490371086043639887098541318292473929501493496009752305094086781772849598208451938812473567344132839672762287077265093445436860953764400663528607790898539326968212900116404152492553615098331232004262645064387052604688330421979163324853279990726108137085479252032753827804549229792733082129539657233393041258867531192245131619429439031485342538103648801036112304844150592772560848721474202103869084574263012285081052178636888484066391067782924309843915377619522203662323181710736852732000513040701773463399173883712785279733281117422858939062632821066559700251681097731378376182772061139876609926932157174555042745739731552488893884182882521507924698468180522644732976932333551137109509289661640605746453649107890099629961342089787784193805030788536054871033769060812855780028968070461421051422718940944000029272634813128276362600755201026588545876156748494319660266054927214675115377461970062380598585440007479581829234533996836364061694158515419530531937332538970933842879468576523834671003899559521716650527549742164429078253387069469421802586419019096372807716350038908834866424052737017730026994764188536067590030299440252680255843233538489158018297590223261879524576275364298862598738503685181337345690015972913304246499931934847932615811316388775899573144848659328969236039763744986053555847606108825710980913990684760180639292667358771618510837317538077479963046888241895760481578039390191581559294111325024218504256937547553173099094278876993514617875627096613730623300747280620608062293959682939316923004124557795839045616613154066661957110447811602930033398751106639800485233407716742013169547675985414839286760510894457002691405608758788620556634299539143685544999133661389455009091526694946914396771652426918548278672090054572369618835682968287808737350894251351227024234464022630476229139616911909657486045207333548916884218510271553733683132022740137417476494624286354158668776301720833928558940706964819892105022888547689455738343170076556725488150863209688369265609204535883854721589167836210802054098011620796189746044898786000274270949094242731957263344553457907739283156468879883975355628760722907720274342544433362582620906035203559161465635296763181630093454975702791825993449541941728115203490155650716962643506325470293688026619340989136230415237793337879105687124345320539187095823398783893024022480903198926566803695504501869243348100969115707802295147547425129674717339615681413880544994826482727162293699788871623976521818579528796307801513495888764330195322976502043679579967825292754266359449288943153462191761617365817339810117270064591326652724071689698744555449390756614696525822177545503139050156247525660972080081582357146875854168768468617109747979031004368476273339772009088476190816420589694285060383330949398832907096666904781076116121537899841233041575947363867880547294817944648932656933376823061537039313728391453565680595806897387883302177572850199693001082970231064909276663683069978596197783459910438484032001868028961340396338792898987631088715313868135046963564550662040912158567452548566829785786925884983295863876379873638211570505667252078223924067290556186509095213024996171386968060161174736171326059134518765550030976327471877808730452541303455668636848187346609603695414549171022823791967678438352588918505494144040612726818547748152386718360064989566017277619224908996408894397995514196331122215954751872915529369004806775013039254566596887040387026254871523341831620762012650049142232962771223722875116424278759277755072249230637459839308397524392752470452612230632168323950946606758785208670288176474152696463237433823794721131899507338794392221971427757707845014142415590118624489161575403896783154285526921007556540753912575395459387587927050421634426416794370310663718714946149353089459133207615545984659228112730022903733611158709196833687827221883823815737748930727459885665919011317692573204634686993421039017241217231729108814992267164263406146407366039891059028891665836605604079450691378128991319441949120531057135315658367656606349344589459708712184310363317768883709769648597437352193284447576116183127386319772559382967757081046903186577109236127837532222424109764909446264883757854009104732277549055371799273927220116225697595610540171591670360935471645264520721236572481954982601346802275820886970545554635713212370697078629197115838419797288031681214879236098613903425268783617194146946407996312285377266571461943033091808784133372117936797839715036981240595563093893595764637508943360252745078152501782543357040414833359392378741420812766151360122212499822128595357465679758967186925512441320742434172415922659936732919870227613715029289549405456190455268558162570558190587242320789238205578008945461292618954874030363881611114615533330685772822703417505608361077673991751822425759810483105429245212653594012632001454301992055524500868516568234323343662253548736813237325316667266928748493000965225039762485310291125296730448258372253717379423393959181049464743326483027369853559269325506724358827521215761387997571733202939701809787623600220229782342400194186988392529043917141646715611911605418766681162535097859740800932465412116205484070302341732217843018128617015388927981571409239984369063829798870532744491182527395632144705454777103539243468832469179771915339483685892791238632568266794833149135701222518646041622869403376740183717458602128569901614200599341318631413778576374724314841856749193924093195306998975111609853903693045238168096736419104172239182717145063516097786202223384329614770677990415570186305416370081682350388454163481850729908468060519442071194616847615892284865164813230348049194231580714018993790705422183404629914596605055207854143645097636267499393398594658857540440233370403470476613331186528745879026681817535798353635036163588172968295022974356976259577090372081739154626878284102930014698563339216340856775300757156598684777845388618855306729179309256575160217808406701267886239884467481023030834538028309356423939215244453560483899622531424441319533166494592836627085824200028788480201126092433215203602582278585228940979555342873060350054016067670408272226038467868948187819572249646913525494193487094972266595301942330913740215463187013682311233810705273636569052335763931476725993700840587263621836734959370972272523546935561505801088883174226591621451567748627175649774660057457962747886248675912747344909277740386357565247451791671887720864737181735327054913990970251463543344778763160879156575375652646590995575081594422606833242528125116042960578564998811308416476698454721542787140901475636022552577044014145393668172732031934117505870029929294283998391655935644269271973312427695599030883362111596472239847787110722862729009094730737773405805276443724658981601618834250231821564952810448011795699435290588466459002559309482557886667213051259844268332535618127789907626969502448624883842786683013098614646658462970773926177213525042367479740567505720542650962351647243703256448136728495894144270141001043883309931865143372526856901773512004137607674604500382245555277524403829583705583214059778047526013513287463050887208784126477411450138465022941201599268868420164943070682837191224504639234212967372847749599165737851528863612345208458967997496920290805031451423433194319588403010927075619803266720054962815130990386265907248991512029688496515593256761659905243892097672653537020746631950818145380916431612579603258421256292230797110971399938915601487920159561495671091208666526799360711773574947906530271267240302878526293265923751250811854906364999613703912872698771859059479492846816818016421391601121965326494361370789695064019912943246350812271116075245969577116596542178553884816490250387867817332292996048856381006217518062274813927866243031247972334677009644332261341988372348182991589112581812046079972707186758378160081847871768616066934067323228602248971815640336802821816381751948906240500307489766019898246389763598478654603394019334690597434592899001555417229094696620781776050199854042568961238012240415865912065111832897629806728676197461181079541626904170706134795599536711761311136748396354545688265299498391104569144139838513087743047131458194906526159024811264584359074409627298683128363588462208049071147841503713145285045727890434717909057579779457584010172932248239421792592628976983426439193718609854693644710575973002547056543813453253172415297886124567884665837455368180655237703019938405577132311662728140932738024022087431757788715066747026915007748540679093015022404417897266616934693096311793958222872808552943693606649155200580554890197072903012555994048300829189663597177728060600095810382108156329774411995694093958794054479823407469990295156319547455209260734877033299308317900371274706097893831650503438282281406105189659666568603670381971850849769164242189297393375270040295120391428544786112406521924882823760491266053323520092071413343344191088719792007056504025710735809599355579766446716333757008909074619404317314683501837093813153193758369680431731745641813976308457030909449382391589926680488492827367433062135671139981562361543623653004690898412571393206428661532609914986322648398575843243816942655769714029503804848826320456863873520273100434369651147003115993301319227934041371351423918469553502177948131369109554584553893353306133512734099897004985362176714036343784873915144787664677385618033109110809872725646452646538583458938325268713561397667164163945891918316806157812693342148712336862701194565745031135839586728871862521907235656874824568410484188250230305159592792634163883258283007969025956726342774951856116531423009685982475019017692410541831812984463707619532364123307822294928427161451936338186306065332087434479646849702535080182581777138811031989974842727608750454357585965450364529114233014918371497498108049556359583606199923553759544927185842806868083638248772661690957794396141375985889298933714712086901523499845703470514269687726795362928231903929902959023818381942177913448317538749872268209565012916017309267809127691471432409334032982254146958167043570323261996130508410881741779827545373710180507045833269858495094672339560486591712701730329375812038590208267887009817729551821236226706079807466041545620110248009656587626153633834095807120626721010014436818746293932207643673644343490410409897033477486265818458823600073514236161293864696652878321286693520453828303443518357068639221263347924468517545884022422155499138491796725714497301961479547359269134834290655100220949773668493934703470369058557975909144980746465212134496023463858104501808173590562952494148673533987079575066914327483361397598510688368150518052011120562382974015466838461872404559996786587307725459637316103010077089360995881136594311655853952544630302833835284699545629870674525100589729314891283768463638543282064701317864034449780204416475182752511358672562829478976082749796250697482956844529462275087742395755303898236380836247473288051278021592405224330524626173249139558363524402990454357525197031155330044435485313839068498260975932747581182444371186467114569244328334438196740443791791742614041126651310838156009453975695763323542121029315698288487597095472461952402629720529080588455292903474912464773109490209933605401822313048438340920270881494726336803120724667900660202055520461413441678168379884156381079469728248744042830410749826627915257920138367825091954242606215905219991009889649574920773305478622625598885459495342717402152469955260840699192386971284047570375983600818990063021675020135276013629719980805776280648747212694776452910965610562927842849134285461266614460849637951151102060857014455858127583211404767285010914925631653763094209175469062491905770427310335755428535926093151620429497530220588111641112477764737691861587761429766626353811517957201247639843961266827519236185415692582507943473323368412304653417074706283608107241175146110545212869307128056874642579226927913205304346105976044943604695689947242471982941541351923170022217361679232079293870418624745254878938094303733169999482100641058504019021336211359681110751305483406622156973145478976302725384976361802715434210086236768117719204155856736544679790845334567559886277789638290710699659551023620103945979915886743526939437090694636093045144255449946666166464642072545051189186064358515712364320045393819246576756951081890265370924470782044418546225118290796119959928603378750380233169048540297755414844745112986661509247288467358348188476741167674110894892574278634689811696359277599632361121758618537371991781428061243520042239731773010223658545052008293815699514625147410915658595306132583029981506167688226271220390358713662323270209185021061989157592480925974793556780294936523089089407666928747250082024243923639900421045157402985744369717003285257631744044365802094201775982194174928744815167535074391074473061455418385599016861345110022218852363511791872708077270844981744972464017647353954749596060761306759165610799504585235392703103645112626990374389784928559920061472136464844948234566089466582937569850086291440251761499094195885412091191880028109282915462226376234914586179129005312360599771092780992822349723729984618415908100541630387839704277174507820352725482707956596431523508160433443040599897500916448352839306806327189540574149019329443878314170660259694886547112059697170051985035305770920768477286048034059626120934430891307538472417913125588924982889194904436287922817152134944704768321217560071096174109852455663463302881372717454210983332144547043266630007567747187427107735834542919576580723451259672024240477018999561931115005739190859276964967678737334170267328628591506257414942273299286905728889759474363952025790293346008972425881435810758600038713612021076745115280675260594312893082825523853895669688460494432917233117653236761507687346657519990812242089423033479166519780980115424492140883267787460287430809086886118890593056186903563562852027656481578944447565502362412532347267173138459220870749159881811775050036761926960103492073182851466501523641693448454992149454193991332129217265193243540380174635491886723253516844693208246641829376340888674903138747723022443475871566671783072594582671147370433739522385666124669084353615346395854119388685164884755136519148564174740594303540250628171110266042118302752656225645816750617405343401689768789991102840663741436275080497545074873401973199639686212689659421537314593634952291940893775979441135893836651129899140975401869012202990380895531759999153887059846909586787694427480297192589468738228579816300578690809681571292753070651804000298084909185015432213171497666830275019954586890451060647007853587332315403181021073400163438922437964478615152185365135864662829317425142321189157129729767383729763138310918922473408214485049078903367036584918219893744817548626388954095357866033740464654922543663031166934669784217705733289883622800484005395579537140618933682074010651507868780773145584824422940889636866833180886014429608365480680168617647123202256460116068413079409208400294992879745508905180378624149384443641805275867930521772282506488206527260044393017386741157296003462017355702447455767425221392495134601068321589731532471819203421314650743771503967767525602537541603292349018320140589723505431273475991138865971654485536457312111149589686687860023818762097938308213463503441664471974331339231479236655334944728529270248622497360826560889064759501888610789518938800764825461750862664557597624315412113893920126292595815033028093008257990269340658609801445867836250887399554824947160329768155741911574026620760542977189747879258585493318292711813550755764644056710828900983138365726477039909944168787334068338814959368218145356462118734198074350014757617662097792494438547436086880987485221702119422871279514554406432152189589494644102537201090497728512951623358302385385867163324218029704918554811478614335231852685474883183934579793372291201534798212763310143262605202893474241074406955232531320597859987110039724194383531563759121282601776495593239165935511057461117708612663966238467709255662624896490776820817205710567870168468777125391051274825817834092090627019257105626946240057121432735906077928085047631107286134026965630586332131146298993084181768019493112782098403386064167871430943414762103638106307804748333721419932200792978917315323860466020804977546837422705100293956559437552160932597930588814107509576400957249145199338436609154882228799003493735985316254191862941076002268182870076328760420567388830760646336239272827636248970297845340820525902596938971949270949410281825613850089078123491722162500551233668223958943171303225881239336327478584648485902771924511570070592838170260869719305132240028436634685916708963679762895117306607806127984059059967486951887991914333388903024534286707187623714788982004759487386363135404166329140373276419982458933449896731325079844964543162339114161190579518575410325283119341131092922907537948031181639464685065293682315500397151907292533316995357391418649398335698658099714135030609152259576061912393078563469353164273219548253404412478332992086497228971384281539992925199884161912026496279218631537541368417234459058406893728498868204657267483906212580382886808246222225687341937785672180083630118536707181518363994056137875090619561712816072113639106019788532416890286817747429933023483263666410505091576040496443510819167281483074693685958789363484658663510027009806548865010107544498489404792120559154026881050543584734573916475913675949153715934920671083912088217657723808384337209837914279896519123431830032215141621565271509316629452045730892375215213226789982903133803957809280664727951565783119243089333769082718698829263186025341473679243887017398719513988515734831217043245275881855732297467589348986821329085492713145641056792065626244769140180026570755219505668785162960997984161066063406295311336632888570556689899551722299312269630615436256161697119559712267456976623117970047288915047703217898236155729222393200131034500031641492001266603139934369137332944034735365790873786060979913882065312776477084721860724126314865400511051069117729641136006866367121574196740094273336648389269725667585604836125943159130993555928996021431900196026170228950531224238382329769756978521657839196812607990032908673248912323215553071955282664826799513662158555919079165346058482846012017787622923813133751707247284831270878621156407758277582965344773129150344515552621860506999140845313000836960711918741963863480973498067683765799301912756639425012984993907185884792227397933046288927910579606537615722748794235356980896758444094012457563695122672528464966111911661996703248977060230292968276012775650305845234751902306970691415336611681846295421135144486480048338248709582214200155422795596507864445134583750662022230047084825347286034639214905666320697228064369955555166074124535864492105225375980149105951977606754640819682139062858435617758188891415975526141479910684850742995479186618858735343621379793706049157136488577027365110900980021720805428890598139537361393219351409058666712378598627402177085198836069552848575329680676155110697435386770018375518135409292277822150723643869449036551135424401579686003587468470821168626672136251091296999880117503780401888103395446330499046224874412421343991924249514678443058638528442069366477192564841109609316805056793995107885234262865327027217815863553295022334555049718333281716271583414408767323063683570275948676524198064709967406812491429170303496077294810869641727738695305272568553462550439947849417174744345066527183408611232771452389864054601296784530343279784215953978901107192915678833936852738451520253774758970171033077548321212717472250008131517054960981151352591935455679186425646326218867939319635717544607777728314695459050341734237655396342662756433416259199453880966544613929617646323670255025044274358214426750097641698731125615353645700991399989375844838447978610983976596092932863257067957974099760479858155253356103258946012797366195893040867054816204088698099691373297277155151461518427462823175753474412367199600219594420188620839888464403173026655105306925972246380113030737922817358969931292898555145277700475073698481343880963419843839626122473048004502093779309492274278589726039329603130636945983349603550072981501335527224783307824035783259735406787994325729879545024315391115967329473699409376842523660255700122013531676418089416019344233108798603102490455822252881899208688630713373653010968869521424921350259018988968684712870305386090231035029801359514643902867591811653702690113691873222573345903214764731108904841739235654337052025155526992366698549465609913131403173898453559588023317318437756844990081100053694684388626849330112149987777668189373960398670798401042025614669675166922784421722874051098175396096091996469922746272345002917495353401670196583320042527496925417872596318015483959012913846939966972606807764382950926445769172449776560882017290302043262194354436672834599433823003149851753936280224657259591883081181622421150588287435558338029706900387013678359839655539488911179333308936276190308894428806019619917148671431969106667829972624277367056844956710761418269101289683845684421782048950551877370804834281812858627010816233484531906941848798074403357054785852607272337967097375878706846027186414440350018141263475913821102819484648265465588371310751680892716029796095992410817238825369710033806312940002962656958337550814875735716185272141901269091712300036537741448196614848176592571484989857623747299496963594653447041460266617696323480168249205154099845218721402290162813984043731410241639542732698685907091733710405997407083145289292355162684735192532798171801916110247239019187357361572686981483173854386908731044259688103883438291568059277829761536895985228052873283953334173391568009703568538675014832849807352894044567758034664280077415673120218245381676490401433842201904734444444244841937998111119154130921803582097555865281171747961225648953632749786217156055290559593924075047169681396935469000372826054236588722605056183649665900346681972209946526064983989591375031052889711292512012118918530173590097447016228141829702761826585606446901678032988883959504666785540726553402598949547021984606169207362504054691755323474526790451336583145473916379717464997475668706008333755985534366231970788567333915621578773168062814195588659388876831651501069249997173622730118050946396338856719283320750863015075643639466280772622789855504546306001031706535877020632440543783185096498480682451327399083394829026431846849352236789507405021848573510063058880269864030212912020504392856263666338924983730851321480849988426081446604896783287548483235927031265463119157787516071331569993549318589075557838136182606744020006235359662252662880912995593861262421354745354912801545861172347642695665941084198235672640121343165749122171709910736880230962944849132647653447717265082612794851337065952220275061074347188341687459857317130525899289053623879828163063393200387503340514939953297285983296137254784352122366450403795268581127468018729938012285188845748958874604288458821065947244063003930246281568209400093401180398699611651210352898595642681254102678165460106988747752565905476085274567337229083562463208898631491458733988550448699864996290785168911266347922227877525517593649278996063774573953007930942065472554991074708007036585731040548490847417729373451466631236963120378525393075220010520865587411149302791154684186044932168717445862203726974942856974605332549186711065508468510289746375825239207264528301285089115086804544467010172007290991390741263124802488233588042167995000319066766912326077611865991766157657674579495510589752075214328040356718868799553913130217242003723253892434465897855919141571006297601594767978426316900444626718654052700654884766847540660495470456653600438865970221436365689255081016716999954167758803797157897730827058551975022255297155886283080850340442238014258776767904943512798136654379720245179167913196897942526705692755562987404156893818177292249788954121451308532442956620100810788359325624703071080167824011419084638809647805613164639322697529746246913498415291634618886173391389203403598879164821254874718844482945932222596442283055741019592861395711191291669085592186046924776368862046651170165132238898552509079653981100374284023340159464656452575848767391220637143303239207976564994500540573372506503068647213285843240101427345910128137928501992032901571156572640252279514768324433270172575994824300404799907320927713315567875344113090219542341651121886645228074525849315111241313967420102343273504240671486387761051890303398509640625186216279263602934585367084239227161802663500581737657916618500505975975400894171549774210848652826244076148684321445398792313535920467215294248066333876367422258217254413996538654146878555890549346148432672335222977980468905286918724957997885098221125017777926254378013388514076290633663535449725194192714727435004119222156844101659045723718287985835464901967700028935446964485453265481169500684558692724317659532457775093389465684864918349427935355589991991227641393258237890198291295504182721498020156462935842422330022660962833192352054294206317507282381456539166216175345954077710780734803762938551664355715927495245231986708525361879625244959204144775457446597738941520980516347059256402269985923537816340636473525704415251183017322171422101800271032307535853592384782535830498293652554634481463100192843089696506983702413749567394273986291461033067917452223619253150814986216271602685351810086875468697012258039798421313896680463947523522278976298714078069236190472688404146922510507616387534689156545924137386620972343776374537914753150818559816221494927234572453161444057726778480963246958483095446068334916048817908642912652231573984576782039066597174968163570502263157798979612446557537627816600372233803053110604078398801765485153866155000992641285215788070521881387687685396866593021217897902638413014799036063598349776054171278602409502283755883628967274613856976196282235627386209684263067296341890519725102678189851487173079511578474149229825542021879389575079019470359684566015887462907352508781952793473209848744757539363133391473692412240934412997165166699237190081830992919327635175187471885896863147104034995904210129111918348836331185389492143764832497823761304725972325946595211345122439401914906531506389827054557709376154475111032407502982918137551107429715405217985162542988286097084020907816065333258483594106020063992581510594979102735031115460222428805507583190913114447216063536914501505867571516176340057135522308118057209848599758690934608764291615310955125839874496596686403173769121132731703798066015606700587492006357899493741733968200290584941439317470953875273367086863105912314684808220935494627078407381186586926706272799190021536989029387126990534251292854413063728930920728561938294650255930092148272722419826869236494570417274190788438546802836017248911386528685776841580349078837958476676267392558757263597690941546216689925510867034508035634605941579526982896590571877384005203568536960344443049080525356388282950482593419087606073681252294977268641034101602575557748514772072534133343312502598998023532355669091792489768526392501760451452577600020830917779649129808207722598708157026587047715069617716154290176930881096820408200994719003943475458256264435108014799664818469314740071667886780907011194539811267250610993528169480079326273910650812841796482767626058850899591142167444182981673190832902687416592695126567166227164734319549675241837956975933764547650101721796806230746673422306521736093299116258872063724204508646605315137905034496324895111640606801399751378171182140984862845966581166453377890186994722439776475242802826477954423448684918667203139542263234006777637999332126843432604094962571119979770660585412616461869118492465910944372943269824223852937826902831314574882869105074218860592128093383909676224692861636884375349514039594438998142531837367345107116917819993319509432495940377734094155982490400601724194387786824922296236779714488316750704444839636425561756388556420834143978454319001645087699869034782899845210028869574741106603608160067403921671803618520663228338011074658949409579826138961982391915193149331576096983020660643115359462105685713371943602461988943661987685558669709064236107993208288652944917436198795612124972694030717617370146186605120191682031208808531144810760759074601509205803988074618315397598322456560752014420631251517980097280302690455661403744727342272302492829439398353527848652975615656271275707905059585931954267902701154892735312081234904714112697115987624744458132163204133163845849640594861810287715412621155917020303216650121120212023758209602621634610410926494822211661823298570108482449031673052563167113133884155417882110598521048151684551954852803579445567200317218781670770120438891135863393387232234345912894030212107799266777459623135423801031950869109483327951525300773760884888259671158935680459120453499968669034775739908280854427226434258554258883616714910682301260779672804050701378696051462818639081484414786153949409442301978408819904084653112339879506030562460175851225770265678699351140309234108400182663831523612357147735325900136435151696387034053057073895567434989103369410377179326731264629706007870873679684263190464404611960608990547899528370897927178455120433579284986799403853559697996797924998192912346498549049174884455393900197924355692734102969841596844527387060714620676748619570533128791842901799595164542205352027324028667523863559430998297148660579699473528550797935162707382700636181858467673620653698381965190189333742797334349681493005683802489138448585517524787782103961421720582396191828478694600303682209439680537706023267029195734518382250066428472147582984861679627326136907586840605303141992981344158451999833343501986525334497703974996340868198220759039194306910205342950722408696777936117352431356479062250192846943296953157865635230944325287769184584588929757508405037188266129389420190563759391354210261025435416413447800922155091325597221783555410445331870239692224655560536227681879305543560094106316380336830780442889315493358534514916016087948950742047498903130102959599087538045376369698766171792546390285568060201558889026895317923645748316537506340527294981782096291892644016612940975963076722543442731713010451962508128194933631117502296929032967746297990650549612386143570079394992166737465991573230663899785127787026929651452981592153952583279737283836322200515618027963993897958746931652222214506524126235183544669801537330721365084462297569320567699340869287501536200648810417429713734828442428672537462554526675551698494481244263934870094602870732450816719124171346921474912862941361891136207757625515612282425361455006006670168455035477799509893103927362321791989394658865071463097200963871216514068118677577752903291030617471866015606387950275375892369417059207643358155085623385610675695386840366461699005229750838321328600893623678048287561274614751780969689886081947002887330235711429824829035247687344988711170714490125411051763019060047222592154394835224260645979541248368822787668643974210443713339566696826078940039361074350636194966407766691481054981874061035865638774592673676619017469127405486724796500212750195314807184584221084700594149408099012680736824652943411974789329659821394061732674926496255988656993290127747502314544120164606337206648539224209616889773974375408306167258497132733774751479956169500020335851558107145652307326097021390133395504052260708125656247496816347500835438551940384160362088710747950555731699615648081527676385555319327617813414782351712431898754382367026324356824776760371357213890453680168166177789234546988740998315244410796895345411029653719745528524285982647945971985073038594208736410770569498081965904450857010773483983166611884375426048368536155735006716482166944354244120671026288177451827569080660537186574947368108111366961279953425683904455967094704217732193806410487829216251657067656068892213360127173707580853245153379536518753645071728711160852312132775526965034327767631042553488984677111778901274475619735148183030741397300734247171033151589514393738086962217462136193721920745006602457686781339903667627585870483126460009846591395596524075076113555571684263561646972691595076724060802152279985182738684025323399034374225832881537519125041604778652801497051677586227187092287814859754016597234264861768381446724192974446641051983479328128689304694730704254620543814132075622391288578330568169491463742076064960091121851676331126199933189004124762872982025623000966933427177428330876834109649210717637309791349261267548697510804881538212617638793958944474358832114106936551698261673405846648926266656964909491797405377994299832261219556056872306170543977523912706765351674677099897408871576188039945437639769226215475794339567707589508215830289009227389316271768555125051669079264120547825599056474008338052038765549106721352409353464928870033828394739590733931311786960587556206713942892561583443042548666022167645349255129239217769121499126194378557459624191956403424144827073728621862083021181031963274304654426557509644200756015332459593654670345125897134657111871254757810074174962466556668193019826613018795577568457323617301863351879899765657410381633687500537974399343372039076023987801226338100879974847632858952058727253337215541871249641058200041638679774680086889153907007409648860942817485623354473327437763042225706122630010456068895562052263933938076068987520938364604341643510388889650457548895831856911693545772487740356837638043820136705194976694877084106024512560654895681250409860190069058780626777061797865896118646648743023740566641800747997766528219589970947106923397478240254793714685767704891238891923747580745343025866833250280697827863149273599118734438522060060022641378770612669528046867314139908936007940794374320416599332535017255468206000118043088310901315712370886197149431191051325367256718180733527075508348401858729080630821018174400952523627946507776919826400551043130684306841757041345547707156731545345160109938640230490159357510229230884427089930302924026495676666048980907183682537492249674459120076460776681141081882003125664734490239095433318060862734883138858778088062309078115927849778753163337171865635305379621728510634948867517967592058219909964619107761686581110095808816837584689592575685478187568542783865964026822248080514382915074394843882164201194204721968583246781728078593227003489590893054427320016999733754965301798867576226923790581357594779695724366098736837496136022819650422349735516080404744661546001791830231430795518783681588543905205451512959173616859458472802874049467870933843215964086007547274983202024727975716607620158458418443800671743624748669485418007564271280322351149918395690417484903784466708195299324893824897126382837307585469068177247937179124571740581177743723645658426884522869288879451109007052936680865303478171674639302549953252683285406987266832115463279456371803460670717391507785068550717893447610348487187924536762294555646219379593754857169788176149007509816737441460617879424437085584673752846403515849515334470187721524370783333689933837938991026745149129795577032711148173815549756676092670905655331828205915378990784489064830405929348176649653476852542745215651762802540053962928666230525798218991449324454997364957025219304859422609667433067911570997093171123775693005250160803635567438682158426122384226191662758397091618359632496600348007993754392539886206581373591888172572649699596636141428113949647854128684171855803477802308026517837597355942901300454784708007419461815939373013066896833718078450217695549800595892385332555735262814056647655989234500887688295003604204929503794383031153141735232720853307965076540198517746218264770510921533731487974885020250886615375979600229658406388164553273818066197684938606364647836418282938381584614512958995162592955007899106305948486348574546118589983850327508339619630332931141796569920032819442102076458629824736488400614318086685203962900858327862805716395162173861639182025700600509066291288749025976437148929392995427472979526882499195908888020775103803710841828900325936268018287839224161199135786411012298388143518009398660683280313091232003497357118716921442659444756252518761721569048781540237470260850113213662858520676829312195158169769242236669854612691094669685454612716050621315570529175381618114184316956576843662673702353042638578645784351800676298123136233771086212994380017246745242330695813734903605183832371467962844182060250163127883340828030326700124952738403722618863069547352690028635127990437247133317904679889870518765755589358615495890665656751600738630805077271335242093823664432149437198408888998564446760661570022703841936130251046374357431526642784367520061063295769906083236961003765914747530498859334458603955690527001402418290178125631579865298362309289543472569951058208660717047048494055736723463497126891038191744872648549505528325116623633932144349152405280202981101765385300305681740951271791227052434796299908630693111187312153124748641652574517306418919079468048466217819202974485139781916119881034256938753898278508127225452030286711994037315420416807530919239431563694055172834746302803991720982771725669829049756980610288207374951761235331868063761497214005584646306914382887922782956034739616782880331706957719665712054750450411156020816004632963556874191010981066443647339306734498211464182644438284808878269398169823835620797217134335886408767478167420248431958261374370491586518370955655451921779438655369033396521313295120416730087080536539842809110858662797679514699878372570822682021741661595490137438073984458198420237098667836571680816562367307034170257476312194900727631645790000424586613868537681736425192905559943019917438745862465778031087172739803569382139979085604809804639970260432494101315156771214978187188554394441428640398941714780709296433904657699237771786630535351338361198176813707458241550790517124466301460990706096942972048569098426193596096420792413229162158733729092860135181014609457386544744935169345797296416098382349080650957001929978972438057124153834289257664014427134218270578348285419961502595998691069745265091250754764976440054020344478889137954390226606311283379115262901245369655150334554267985331978133700259021163892838513290588688665745198772858959616238839598442413908879865429875206551948206708384777557557454929319603738151214870513504615311086596574453118341307071493158724623444326242032956684418835134172205240427602714199155999404025018894188106248432880085992132710561235429860963466635088447367672172558885300506664350145903606019802811757783296483137179450294494492168204193601381772696458746700040056265447068167101749285887322808082005581602853026897645053365884212114598898609621809478192901015295598206207938790637518889730724262314155792897812715691451468513681745341086916318693459357165146334252563013920098175771266481005141708606130258399277455992849995879645013186390552917379767624093376954950208412896284062744745372622337984013465478624167040708307653216852972843679445937362907954029238202201669634828041858776354116272083770853739646079890832085058750461111355283871897974402479246595661591286645516605239896885508912659405860724978071252418640693604886777618062773372800031549821408236739770352279106440964978051072616176302929039580354354685422594643694268132713226473098085295054034708977179434846450952490609224764278378860430156562982893268758092033616456567908362738828600608879056086993319138976105609529677095249504530971778158567089321242297527144280670543173595361362166304834184381638868746677368809571036185351890024101374963357503972184718565832074508801230096979724428537469383432070055684136677846960318669038357819604576721967475419072384472994321468750396458804150341823858952794592441427697870834331053193632222130133028770795492992561268881372043917449102653445173487746978608235595758361835843248804505289667570096489746078642120110111435754521311844470511777413881021451296550467166503540623500549640792093134013728593134163434629160107926776784646896626082998366351564606323480478217075810247433000119254287068498121390115034813603515745521133938159569879790763109074919074161044616910906765008983848596201193995667625422063806487676656771739753759311827390028935804146393780893195330527816427361273640470422986435448514597068472981669654308840552905785232309636012335572649497195975555229720570177291063709524723059685692441099515030917428862802018257846733300986505015422254325096238319058623021091042746053236962045274039832425034598646099701733626234904172521688717989602727640790880851699830769615588034442847087344047140191735230487828403906134945151305044306441735283004667173463556511493700648471323649906960078012149527549689883311681404762723094553925693546260876110015437931461349394334860588379335759644798486428454095178741755783774331960238939953211348104910847421856855230873503526034262316049632227552018701577495062775160140937286642384494683300514280058472037343813017365826061998005262514985417509325878833543311200325690227901332543973291103755082887385860128745032843203298293396043169958687858320269438483971039874097869704938413931465681438557813148950203504635604541899514228361770236611047472262563807677384978998630019509798676503196314373992375709759792953551543480381740538672113059869140267467167856409193293789668448767654599119318892108918380589835205331560181884246182241430999527231819404148755798881965159099071874295323118408328086937723175734945117464323593248678468428817345796247487233654804448748525178447543384170089300899890741467246949362061071781696272447947636174718623824367512343812228190234167116381009998776217043732260549537326060462506334740880735256408734540306034422817533378151609900764304455406630245060135543342529379754968200799736056546420952001602543797997861204251186970998005521783345657499275215496400003825966448774535088355455210866139050026800027851050985415945676671662667209977247684723271327447674721927918837060376254074419974137522908885495077046812576837695416344990710237923447892651199566188669865058001867592685643359366608868329287242159692615253018088508410432447808449972662986204538322716048399559351619316645784109371066032325850472249920416678923911177334896623496080832554567423267372278906973683136268809915387484764530372079889576342717167919624573059560597969033248337509989298268931046008232307950580364668841136824058167652939149416858408883144101921063430446406453167087405663194050590352642392445770408502935883678632438230207475404549729242712410451907356989191440564748241757836395394723207255407873751580910820257096494667763531762512268928173618055289526290530519424091344122249240557615564681964976637382241858503014429382687241086255411894754651410926990529393219678451982933204736812768686596914902241854265772216443172061308853800675395056277765618540236883665993233834516404871829389922839628981408190003933782762379933301176445738578718439752128354231431469380790036348998344094315888134057059607289377956034812528322869665893151046633118587960398664694312766311571698124328281644130793217691130083302335156273035055939160615978497849249464150065589703311111823610371446993405246837814830047118544877550392317644693022451575110203516609553142565179105395298322228255487395690222584454580043726137764867492966306580693196577556965168496422605768088309826532819237567562320966035776440418454324081297014007227143603835909235671630430697552734815638475498589368697538289461978566867800584704336450410951254433164290017726111795249995389234200341572104192633418893796558045498904618409455605568923216938014676041049467896611111802168400803170976087089194803350106382505963537018804508372743581756742470006064873134163328279742701094810053922348914118449408561017709389906568751897062198867923158883887183877574600480213583251965152788143268490765527745206017162387836631776435063839029131165313068857127305342908738047494322481332072814531248002504663313440179674902485675273370196484617747694118597542051429547824336012906742389365944255676475368894402070165452437819935958457333513355629009802649754368660089878604112395387062803599075630590459816446761570489154746649368101470363905575046093890552995175204415769177008630280209856570750442965447354597977178664727105909706154031531223405598331901719925821744710881053686254091682443690347535501097831746266368819060958899933568050033214619243987699399930783765920290383361409944512306310907872882748966084846959856264444009495109512788577260283602804385373225090199863113650884052268456293959924035149161574252208382140554870689153946843627398845702427903007053789160343188327184227694949739381615631286633755093006431982712107106104380184774649832491470151581630748033731205494108163784698975366589081092803547060610278514812745527508832959384067400527216471457137137947528735326304784761678211584345037320481615978865772468818460594837859881062966727964634951813504080663117443715911125117257433890605330434808997189513139442488898850141414490969071534907733619513868052748034267092235508646622532633788541244724562671751379781001972217804760423827566519106708040091206988397853124228441824989550846499825389612277892260051696669855739429860361796911688807097004227631842933167041554431351545319148140105737647185276626810132499445099589191415802943349721673844852248743039227589320271259370495269896805788002199817976454660833775909950038216193867682354530316254387584836734031267223807662506697995839019580978134697661306916170424146469801676426813608765612070693251488956504831730809102029322075670187736172621196975647861397898045595712598004781760595186629530145025394146523983096965701401000506355449652131957778667102483039430029832473174821024951071129548782204413973627190945358642965641665594677992060909693754275303439516343635752276363892165374788549452515437078385323172135752559539356480950445016731379775210521198308120158508178043920614775667878365289112662387987489200534418776914589193959341304383648578783442206360441967684992784676723886473090751067327211154616578728935427675033344159498300705776401410480202467684232444814021058934089650136539640291126529931751405991158327621447712597167872947930539176980391443440186638276267675931034173509097386189905134458315380525124057615966729825420661449974371757907728792234623780925287798647081606155005572691370691386747899480822402196339429802375820249016732078730729508512752639393130595803500791314696994245594531314725305370585277139058122980837915579967837400080987143834568889314827819016209726095963441640475600136115729442690642387692214730798211252397453568958421369827075989576817828504163758260572544011422661132439752776795844850233646260320169560418461320550751386247934565617866756218778388608180742701389071268530983554624068133788740905519382790285986270669432869815229949245486633030763343411901595674989773914315575979617720353612182299842587792426529288537875770711939051828750173510937417727509849921783599867997778724756491598815601930513242317085025627099886098301047275025510054201280582963889400193350475491814800462190991914269093510916706870554207430597227546013001198152779268963990011283358410355116332877117232820959981511073628405839130311665270333664582621213156716260607251164126758328235706551128678133582931564800665890198216746873471232464595342924789435088523085550705140569129954997766906258874522424807920401436677329499958623569477871384811196196534473777216839041564933404438978215950004097209949369173938533935897225196721821131816709794791540306833965572003147775975628786930094659781552602705269392309132311045990952925954533781274643820291789837436367995285237785330113919440649937240890206922749338845944888356556066955055295729164723744123573673838222872642636932528937425944613685087283357151922880020445438443093874714837561814953821360615953712490316438068531491402674060327600926789927132886937708633403281207359632084268269808283096033170403078857882410724533077919322186791365965278931310374334821407125876237129941172203236288141581813167034761988759887343335544193465613226106416272304538990073127023610625560812474826715764377846142090953790363926596981767464945470321390451356266695362417982430641730786656546771983546836498402964107261669877910982650125258318707708104351009359218870510517068144151813792226490345297090058877180838209699784652271252154399061232947027162054184079122629288502889643675030721934674000657013829248686942101439750564924114046097116001234187167547692331735221407982320757989750271595750515814272602887966022440258438758627140413523769845933620151611502661431941682658710726158668048977455277816658116074084371296327902805549628182936192426338958724737788539569720269258519480162169223540669262633325985903353578277694656954705552288761452727245645748679370718055749901198708932436911669502425297883841841007919861101054482928862159838419670680859384749092589759085487304462226902521473812428038989398824995228545433537557943010826513009296427162806985680105632822056034159887761882450681325804296833016614764866603590152770800386147506891778416712928654105899764939632618182625258069545050744011218002880909876643525572872428489986979399288094571295441755645624006631413675387698452560664136828948748914733275848784171937878985309064487498995456365026902813901716699498256746569955751351983492883102697877857671614945846180572347123420904311431249794762645285135512694804721646492176925371007871441911464166390202297558350145770834679331490757598986253881678434372567495399283541779353523608874855153271596965997632926553514049078324156287777728141002120723883365397278508351676753215879286131269176640525162471528908200747735183096928185819998026448987591318076654961926060752627751036998946692950033997684038272863660787479466398935545280407817495479573502083923905605462379508654520908568065758465452849563317423538245113441770090353648118319957745443403048357184562902705397897423909301368593306473427142463809677759355056424841280905332078827439222806286299098888638152142412787570389170271051123037341773462302432689770260907807477299812377555754654779711827089551447298010427131681351085046281379793905308762786465876518551598641243862559910839031198948316327718687982882782752634319341437275537764759099982201893359564263854017605595629381496666184436601279141258479920840469903553786703494757466792908653126406784555692363768934695750084458540460616436306851174442423023999228189079846840892056826223856929847648455171170126681511362592902790737387549360067401782770167253027007810983153790078730892462257162975267179891250509915310143784162885857849695117191431924674263007227471815128361015668246260852578117191984845135823418574880845937258806142461630649677369148790667177042611941041449870601455547005143374385387944776106674067349395768726718621985289229831009264476744618208482969780337438588704509888629311863308840639303823892655704091526254594553882115021871488389881342903925504132948394046244140721351811437754642857756463512152436600474009485169332128527216138734865654144903431741204088732908363680850049209785682118453945140411061191265692202311675117887204398748933979595219694857491603363107645032945466103407895303132863096266197748753976205388631366692691910243327278049079784983594999144786234939816807059835373586995365530238893045689791115829848519680821901195618782193237636500571848772894105978104023706544936806952889854223003092782390917176873203908620605491378395043586145383726814384601381145303270105240984779372175948225823546150631745686267025325491229769797696694822837740900016759730754603029991109400293855899832603814817201136093497571879096359358267298723899513588677981876064759158049807911753322975828741527402289014509047718965091071303881827411136952086286166789772442079232263749636764597959041835133406033198534221370031616532163885042342835898627062418238701645161273023363426190463151482398420602170208184110036136447173929989785455431158914877170782189801769058942041520363112333187479383771704190509128373533416689316084017515738257792070009367728019784729014112689070828174190922125842702430893695508828309204866585236466435445935874313604710304099204984264870617711056614058038377526614862003526280597266203720426938160987075317495771762965903056241070556488147228014741986944292369815371093005500244007707946741085968092706530054991161639385005160689458524721123699605934755641004854692495523891046966297306240567528722933752692471867652736907224813616363092480498423647511925245047291415509404147587631556644375555843863401225887528082704408051735782994132211880801567742548567274336018107890515044560448404568868332632293630362421205538524004997236785774628204007618938177365615855761962528128153229741284314748863062822557956539679563321863722211753767902959979799826146529240053707973537452523969502552107646800173019102712246853479847035839661830826952274415554490770584945342650049923031868203153230078396027188551940560916335010285744287625682814890712686659628419958588521522726783175765716588699790063985892448589071267021244849505232602735457678722592970929643078988286733975164446127193688290644481782215098513156624910475040516844560943290426466515460763078458920487472579041093164308975785072965477825576791683926324890588903612846883493126755752827475946130921963631425773022297849552499900901615923579243511921911893221941673640629776480388208503318849162921705629033502525159552336436007986152575922234091742819917750452761868445495118448974389205069125703857990649815571436100264181106916192684486565789640979999988678531459983831876852376032513474925381974431150476896406523823460970315731440010738155225524185892176959326202309564461922295664877367556259705337859757384820949916029307223482796614823440421378549830272372526654983184221843869676337526704983659146368516360245400509052847603448911132454120421842050203426773392007075991420492737750155199157905144840425924782534789332463849555048375997311032506963994020822754706370209086054685387935910096514508163735859724775976496994996971938898372732446083236057665956112784127937374806831605993907664386766100115492758037073449975817638375468287354660460619424553395842455212780457851272627753972547933739897194501976975196227933324178335948297666620629608540759755796230948227412585147031347899091117541130785887618015614219098966541239652725748565662897891651112697604723357994340322405018893707241881213845453146640397750739909287144289553426546530650930272482053625082129840687749662270069535871943320446316518485373187747039637682973676829334476537807797396803871445848984759603797386944213928190922986532628023869152421319607991049449940202205631997796218856254572628900257254916861296422494475117009210434758885144229942392860777220366135484122868717320763292962097961234433472194576593704747257227268133527091834222674456090178700610674581378532345014199939671459068242482259628922487608362258975378978406605395440789998050646254180199952443584147846183083590102621054241817392451751396078058811577280515669675880687420575599766589765568297252555973242796874258214980602517147273669967184837352886225363203703689679071803468142994468631938590751085188273353635447265599239166795387216198626382942207150034207152330154661991693323889859709185138487551212825183316684843034382141708293583992274407270806346541965786902764607716662913888173666286677392709582720410436749655144453615973437601204203268395018922525742731309788514706188968876248233346594949105519609664691576475649506251570064180306936185010231662067868085537829266233417134594296089324370044952728051475655292104181764300930581830080221253996777729612693488119272609772823247337520762012993127594166930237076368987859115596448593212130108901306777915652503482688281791795401299010062032693443139519875983077010548254794211397043501471205339109172352666780224877627498255435307532365377102843742754701445557045622350341887717557556071449751334342356892899244185849636175045399485711315159201094600042568546044341138892592106616191168930137204463981601008138110825191291676028400567370662958502147635421555896103657573346207728150181063758182091942291097453447760076411368339016904188574779472510043439368111043296285307464840611841970437559837959997563543705930314879359340325914617936447788929374135677665528458392729513903407837339315540390684093993870840363567193891847378090859521883348805885730968798907780237107598332859363430616309788499744816550933729974334891514395073855572285747374570828757535935161992046313716402574933277884806402227673828523562222290211395933155064943698271369210984727816908044436776550468261323811886260025116228436479783412458273451972374402736501821304313365853316849451972717960905146739727672961971349975760688767688183362606820740286802700584439170481353004383128389461918548076559424175927674592035689383288016984609980994492417703989118685333241332769422088506386984608705433077284246327953356920746696226257958895472239053391731813302116349326262336033744015136327412449290443264783608202009655389005573304885972624447465121968354621168668263221459831476488848330830618062161664391903240647347508530194253641649100592469552623633958287968298690795555603040077819024595457484151609961724176836226340368005899203213971357221315056188842046904655080771183711494282716911763101956073801160290437426290534112807186699076852541015960165996637579326669909906969641961223588475960217052723721845883972950067184657539923963493568985109351032095690907973443948706506733285738848767926997451664626479314953657794859902567425800097856999733298784357586285682599302292633833265021231841181690156287652756951927998824292461059930938487436229670791249372414163624888329470702401352465582427302101618966735089002147845250968043650230462387581735266834844883912939650444458640573714113056466725286657393487560269334581664294559954751805473301359531363238107043479174854189080790395608876694242094764392323862973849472319528423254641842916320966532231689422946771402762079879470371356962024804793195060234545752165851960499189229993441934770024084713509598392358192645886287714424273228448729850679692081249703896532102111000175927624033764617226232041864146544436315510159815186279403436499345984640029212192547929775335510443278056171784836311359584420793075509050656604857614128162279157819121216514945648803718904299090658383920412994138933764500699331722815574512578416433548278057604776940954838770869940024612973684159959562981014176119167053265170364935689362969991519998706562258847494607884766921911432649635848726025608699371355886250847223195070131648135406452361881137011697761331896870461039198015817339167980390602486943244346460327802265448198988424133658432291711537167455016052026543451792748113641363741811335433312703610380224027649589945825996802596436925540991849700639051742505702231283203180838649919573979719540371174809892578911011363483588863242547993821960542832869321127447038705959945203344245959952789961795931779272760112073642322823656006120816991715116375521391455607839796101462698646149712227128714267441093966810972652292304126185333132712202056858719265122048359038861149365452277609142678835058218865589259029471336857413288492082465516909821353535990134379277195681977909423155906060357325612293835288501490098339021596201462964248721918710073576662267206823832240572114769812703692331807216666519669851175887505490108885479779311857699748798338235514729086388037968638470283249045344731045276692039932145314422766314894741002205885934297809876751203462387120138028778604745138864828397407749058854124098219032384616908135291865724806400549133747697127712130591119818918859690350156267280540115858492750801834671573318022897417579496524778178253810723524720239618178398167663761511001731468210712049118151344425554402263414247417317596178609438802588182026882876622796525338078546169143187323764786595306959723777584028920749479160273482266862727146089374788365597613578653406530296374721617314420141809089907570809964834399804847601603443787721599651016903318323518075423127865654201123660495401858327187042693867380187238551547342081347176095535121220100095320713208841089257333599542196966386033486125778835965567044087147898099860225016020303053047263106301100264036089870549249714205484144796573952299738786585878320776201447778956837781683645745585931500223582548239261950498288142043920412864697042938527850062338604466374323913691033101150164399378699965669474281873628377216575652005646254949523940743553936520333688041256215669230112238919787515009937582253172494252528734319098277215757160273039339492453308975215608305481896002239264478777797102531693357890824004885425154733402915296703166351576940900774570339987173379702653801138607523910271710724227278955735493657954512026178524132188738520049383243635416115079119569118880334917235217809295304864445537690339267131341917319577109445796699980524490297557488096874856801715308122562874466415514657268438698109932982830956872953152273998773476635732068185436187741288652542340442966075396303636736052540689663783325271032567899061524368124622281165661914294980602205475740723028682454909305651596319911514020679234018857297614635623351289372088675905196879991862593786896339838932820691934120670127026875209349610550858054915071952093796988915231261457260272110867592680429513020213471628815823275267632305565011692199816161489553048705550964669277821537278484107331568806652777578735170263900510173546568428605930724721041908346877379408465215612851244035255106184856231548602482724247951080838518309035410884385203883317464387393752840564940243015073389781954647457614133472350330673374604927284765152928438092006199243357080798028659975226000129764023799080793870137131231067047625521663024475698380690029302735689629566014008220627474780590767637628872025822512971146261937028078954352729992559212672893414527841252939911509978293508729635362626051249965917838339274495354061149872744633040813049750182054442958642051385513822744488858703743709086625531914833485938001304805506496631777986070146296233849192625260645073219748139630488445467536633967220158864216963047467409483808418738267019759388451231716905811422405546853486986829927903951384689399171389354908745330055355734604230914729920295819039811290561591213203794986472541542694826882790184847654168793739997326627340948027414072454347628635553066609378547559321587434026609202239759063693152047936352825044477449538326822804736985014541014699248296795426123882367832243890592243883501741794533093930070746085085574404864122613597251773050304277675713484662077628635321147384271425901376836125908895445307598988226311356603319926418709611985363302572794754906475555399783573841967645746107227882692593110945848064167460841671345783207520166735684606214899854177627929551293040643829091735017938696997169488863695107198983865844096747866883625884536030717319542547590666156400445313375576915001469082853042778354802322710276015611517074963364046623713852383732084373283552863872687254695120065617241844445609159763755190249582190555509881006046975309261637247634069713657502151378195163474530385291381314081533299983979139955902194841997688691713426661552972819804036262739541310585388882785715027632124925080328789098479044391707037455927157293245579990579988663807817107143502640048534680783894506427957161593761360642506200930366016890414320037474881848154417421909785568521968566792618083155244876455210705331944684449927325975090073024902218430325917883591613050380712864306957691295401463468009230622306810050105516525154947925100402310296692627735668977454437941307998212359030620919786210575175283620736591504248529397052435621295172917559787649827140292534109075929090409269160583442012039115427573479132625473970197035762784740806898997611541288312346666680859839034831739143096857678835023890207253754271970383003910466887486217627285479481279458655647482000392263746773333343511087621179377785961550269313702182646605624980191926923671621196624467011974670871570533269046965809776272709997576546331384331590232162264589078187048693464214186755382886882454798280436052478052627214541004813248199303164095733603980366980423047790175885758289637370629032865415144775609119250682987092888510524574127462631564729267391337186008123873215066185220297026239103462002247676405838973312771857192498200016444141306838923244076637961511323304024720630814389660289044651819525784451958451307795317443477424740714007843170651502095202569719056507810093379725362834113755043462740752775504789270390428816487853395061399895448962132718349864345730988369860242546176797284661227822067441330405968168790169369399432521160226898063740037832029718610515865142502121147487606321031719054982536887113478173642371514180321638108402699190661737689363725068709072601048823359214922260696574424232306842157423761278242757493892703716896979492000093176028731171440439252463274901085326956678753805013309334161551561803558463898245224193061521230360693839961103040708678998947638457694891955612097621154458490930342779077108806456630565670014258980297406019630624701897807639320944302522063701782726596084381017234418624206164121500327733928722339849117953149707529373964421847620214668397493136994872946630772948387639457284538937247615745912247101815181427066402430704587698332020365025140643911311783542990492232743814645390637638526870667922039942545875937575872753861193247262708692559490618075776465942789780595465817640493283535046563035684045470678999234003909833433412312743795851300918727335352235723576071515753472339400593596491726903177100207433706284524105676306258490550106106213590463556127655045856629928990162006078271357355225957679310692256952679848665328765007776862496511771328344939924712857386023798197255846758169634480115751003129172332113630393164640790172464832681215488954501684726453627490750960568630900722312026628297683882759747862275688974884254038072831225891172326702388012252170577379427738201515230072577378886763986473346153694651853513701091472951882400955501722878356246392628623853266543974860610918695186672915437636016800400177750338219787368909444117211722982168489379346451932048761864277058114386062236818867838256250134845324328068053654733834693115101430726933592839111028213110181598318684669888211903516276660805631534149576007350965328144306623851925304377736993652014588644702468336716468016705314457519455394110291485229602582398936579364362614738480197950739180418570514136894958758808724002937125855001947390759657362583505451568204643289134716848335962854338486381199754721284201334137319353278232210328104938812761432934214256231617213990756457545671575759013720871412045736196676907751070495879571156085828885981880464722601046174555144030532474475372022906584176607031807278147367048387460731156063339411056495015583421949280649901385600167342953806649384527996626113745160112002142368639465781363219529824490364587076446480515038697667154457163832641505891241974063629794571523973513721769223307755099449784452425537984978852952614822578789369925589874206735826097311860404646692149493525024418886187269277667063694306937125575438913283529726922658780469670097523972314705086503092244212868644044724320173976198604731913830208329881531405295534955397805882678930860580620779080328044799309958763079506034708294518187134805855644200179043049878912568572507965599435672379035796630817803704595255809730245608513973127900614259479132414257797957119468292007093830251143010539227454676554587641655177456405794987433740276452815810762429776636496451327451674835275139377911004232204916240359707032087704525059675621266543773659851725450529431914707651049934926580711513051775472194167638198354256489626786244684754864249940044339421006995991189777040360848814718741860371251743385498585656811990031407615419698869308880035905224823414437884171091797172688005304900335114887590654449461776965521021894329353873978419738410961099585203653883687216682071748127130375716524141457293098636313768035119481561398266096994869726997763979387958435731384412048311316664107067791214225322756368800470907491441270850052966642781978370995248466633442347779433103311047663370401718915636082012418127993959194082157251982508238922589629879730054761096518853304143429118012111645270748853304945390637933389253978413746238941185126984414881831607921593358715229409991210456433833649993021729137953201721734720012549119214510291432514866855725783692501258819983613957245866559727630744178006231992658203062204179670939593637566010200597150228331898502743278900340858976311395960781398973076820889093388382053436432483345623022551631138742696334482214679725476539089102744802535287341428025142823584853890311305290673337911709824927537179330783616815665791998123955813027188170136374423802885221288913654289565523115050193551811061651616631503074461668782719774376721687559421571141386522328114562081383800647529962406988264030112852154823916891368576198988482721583772012426573288626092346326266686290617256500826946399789217429604624218061861694274299811710014095248731011408395149630429137645129790801376643743250388072329504020390414281334877612554275435354900692732237760034918022977239965161155415242998101776139509864943811933565902034129085350678089398330355498068503397193023268077881480956777700400316130903432885869561305265738870393842360406214148686098510115953829749496645269305870632773088324372791684378611070136647935792852224337020278773993675512720446070461688335474700512440601710180202825518782711255814614458902214604226062707601766773147104938220660075223777059535929709190529711842092451929725298194964567710987797346914143894297462244856470245870877759166552500103103866836945048459879019251973943884323375802648308691196449118387060681550298410604058515585907611490603024304443219629304131021082026245069908240476615483832464980124092194489968630237343806447040855380492988602813799159332137440845592764500229460643159596790765383653081898886156164596645815429745946240086194106858208207055229018561119687343037701861118949400109531763797780364694805587354818914370345409844148491283049858986321798132912822453186597497163920091693125462180911010288801981099873544437152684480206970966620997409835950676831470801655352586373504485484830832103942667107319506709635301477267038536718306139172011835572253355149853674146366207221043432714359886996980148179582388070460716846767768374521731180056585987529065952544514429651313127611877189610035061603746605331404815752199771560651853145800229217523137145058272025689021296980272512795824786463822649867805928645074898787122557375933263601201268775745887589671650924332485788941261411976191379653226770936545859638578766293504862600710385461531608748504685656743502834887574689642449870939386184387656523731917146617667098261921978150015930607813087385664414209110339013422998038749876648912607975047357668955297663806300925761697890897140776722147778427664876903185588083623416415649456443377201977492374250270639802647699181651343014911014798427676337027924299294612718547188289341623293585130471625157003909522027893023775715115727442826119411581645710131216003922748645266633305990529513039472696999231163291878832143341405130123877949710722388146080323623799716598947137720140810484154327229641669370825507780912516854850795289512619498373569843343168891759200536764223235573700976356413850108790901644875164476369957850295731390325645902504953532892932560032982126864216687170129233886738844842819501738776553045697913405763472089186366794727350988119873793673869820139082346520408157117470452755512731097959389779155401448636731291302443190818694755742109782578795934651744321036586339577530840665537990165149796029682477516028191566744236867043321155022655552411759205963200202978473603481442361993503404740071787287968387159656156855300274382284106733742803517820854186393421489881215813686700452272645653616106501960043682622751916276856100320987869246572806005239714778581733008265896926410853910333979263929789263219830402839585956469242821011066273984086289586231746918339872269034582418765219491154307039145818055900884340294438246103759437620906625912393672857029820869574483850561541516981447964179287499464277353614208981886263200962848980558946150194618975062894270036913302837903307541955625121437414910831691592402572724735394945217997306190870804052590794173844577007061610394272364654112740801103639405781959605344410314453361543927705685822362034755834474882255266254618946959182668701510878766939435739874500938894919309445718062205277559061311841081342959503312606683813554722999551163500187843551342522733864856134348204569848034397444492566681823800494374126188487872626310255339241180256598700720051702842284805618976851099867610940641866066758328515466236761036866640203708600456145502447794532018638361073100682615966484696371959897450014580481199658301998513832090067302311341224885737292700881376165424704146973621491564560194510508863333187969073137189542953704655276693054010140470202676166589389234266388630959343941358155507331235644421357295154091456484746163718734815643484097901468384641230096874646768481808527195416196924424084264167377965475927257898454899388038366077451881480553138553971099889998164270513385064834695484959784164801236483952580437734572426362856487317435637685811899418783323113015830245554758686419810702445165276833338283504391474957986653301442257996579097565617542919031482891140929691168608060084871743132737820549441243343547351051567682421454449162156439012082848153911119638314158502940659071156377060978165251299788822360539804638450002375750576957552024428852377898588235220364772372585071431969104184696288868406415603631249737067216510744354940183276764356557366780134109732093536492863212250102208365805066762469495168936541105433134301462299958502538172641132412257857386861435594215628667880681584884441319205261316232079944950673163620638614078545067483975890639769749803998666124490188013607617719350626476198528099252325618777731289366267709910158240711311386305421023088455876906396060993252520686150747084824892035778043131890648271969081081035566671969147743772812989512022314111133450104073777067960484140628759881348493248577784672341758431234857148239070310255450209626344963050190238142577018401403793966024492773995290654770204713754830908001945941815308316529560036398239134227939409509678329933894465794589306222847797230231197397974539975757549898892437902058232040984131516298512414204235704152032973111844091244853397297997285513117113410205533755900885391382236681071296183057027898887871881193886529228911986969513233074756946365969180566355011570910558484787711187511312691775496406622913421036715842636517551688659236168705913220198127175961434465793390096805207733162810767210494029703612165438399884676992350558868809693901792158380980247957677968808822354569818304025612187442241166115607795877522842096697935674365257236433211082755443698358930486443343031345965559737990474242885338553017413582134017438164097827556778324802942891545419046623578128223903629352101854576379895426792273529274223662535200292242432938901225529093412663312405547147624032706450148264924729163194393513727797598103203323904779485606611417245553529627347451661737356217308158573073111303540382545849969896966899614944936881976355787261777817119957424802224029959905306112707267471233266082347053402223559391411214807111733134017939641037709865803470359831478210028226523276604980532590775920171790437758932173864488280274037564767785373341795679002277144104480413862642905473498734406257604253204151747035408750957927706234827756556876330556633541006318095947599713308190542799376070660417496038853876492874755494781242767332254157359740228737028236527662446844948643779470970266758282155772232404029839777540190880901702641407603823219720998659655906764812110014488302443097669819344672244421442878388089440558177841108115985384083891656067628839876865820002537893619456889084436699087280723468732159610316051270284506699725237197987569351520160590161233260636259182875194059332250371026602640840727580591580315028793325470044452151823731588562873544636371224655522531600440523477048594681182466273955483685061077030595588427371154042217590107850470998173467829658027792128452942208244085766440908519676812899956564008503999202332735981561594789521687309150199566184553859287077200730452017868669619630310611679622544035723082747667328378917114974254976044360882025569487929174060467839449976906110343729290458909702493867870076716582504845796526122440066581433728342178832605401267358547046692344988954112205811764474793488884118768368604429818522716856835518088199174853262004384056922911354668526840227307989728850727219891714833932224454350339423068814789359175514674248626140053953293915852153702217791972404917955850467051054444862814866704533302723966389766408009047166976674959120846488134068836155534422508580965026385421152991753767831369613643623748819340704848543452943687617420865747394354881799437461263919860233781851349825943810984134649584594121695075571313003680389381853415747726719455295510268997564741427180601169459369027705239022244660743398220616409569601102526782197705775785957087763898021965540141052110494080550726424357752651762657902282539740749066267183471406876676325845221748807337549963222059366477037645794636823505733147719680449802088926332507476046936384063136833554273441785776530493073665206730808694094838062391929916857932713620914927047402884055381882895097025804528794953743583414032626276999913884965613911875442119938050682087444416730420891196988590299237441431699756429520175461500518872473691913715896170083252967833778326106669705206630611732331773017769028786776443085144695595072762425396459078236287788283213489905209166328829475699637123891973332314363521155816589669839192624626046116413753579009089310375355715271790313326765403005976866663989508499021776186860020360644633838931615078415764318248437440988111310689012222588701159672463875619809962604700782394758655025162086567337867632861492322371333354354584741952795847912315208301270434936051782829792087201636494864235485588648257607219442167100875957621352701750655816197449853883483946305624395335901298359685945484165563263747429194252545713782736522375691004421968339530144640441104377215817949187650063271702793954195284063901311538006305118476681864611516127173885131845751686519803657064271128453692811803473246322329327192172199861164445607366504308124136411361781481294769507691987326134077438858640685929416574209093080067691603517646482751019640208802001644068979325273816985872580193623811943358411244112790414004257275552106283833782771492703839971982774788225964704164690823696598574005993280867908487985702457882559557178134162121896524178650548666142411336018311639862908764557190308028000631513795678737130230704779281740609526238227918611416861448062728377876167258655436335165217618470718963114588645551263912796116344358980415105393724246219460504494691128654110707928984899818276094102141454280263118177554381099428219922245469753573212810719792647011868586502423000374038127622198466555771466394907733594421408427197605344179789756363435661034374072132316490105536757851027970247577704940108315243789854230654212208154045399345676980096237029148504717198461010864673606858437612308503437893786406793477435303305508762677486455733385655375446755022576363664896214678083890768681739918238506049097858070869320467892553606288135847186185792132577900962376315584673087043159903641163896788546012390710998725230128407330993351139686448128786165549565056497948087341099842860392922011574954082147130059645624061873640944387498047088796703094014059223967864404660425796838913718282448275359579737913552854115109133954671152490871359853049626061363168332814511075835983223137682068584532330894250048510126537489870878753999817765664992502248891051414967747239916640192208811043969766019926201653381097919029053551872076440514180026952997941477738182305185974497144031326406447246636561829952125065873806068043945662710631233586107541500812446596713958047421156799995592929551739591484752818947873176494026085922094760987653762226860458992568574679497268229778483355181775270700475765245243978381292747995618949216635295574464580429446144103176569794286401503268988228417388298642408206818524454026800074647826481179190006232084589694615877790562148385919964715891406464836370361285908203870309581729664561080559362870434337551367137033476907990446665908141090658621147529589034799325146225240076993370860658050777265378482096553193051770671354654900065749654492541771709611561615370558001168028301683044958196589806782251898072701205938555095260434570915532070455418481930958501619403436379444137196498186464969800163587067709820144751516487861996551546819084089295220503207691390630621144038246092559771303395080512110466210512607021065317828698337578867007877491399688571035477164189767798830929128586335037165644155993937308437100452791647758315201853822874194294779414976097285571045226118036800210520283189881076070984995611159743870267086970284082861211555540744223561216107495823566256529145831449290985173771735005119424307563272241145061101233384703574668661161512848298827818752039559925621789065176835661755709660000840291157248516135061121699473793968334430436776999513208381613071216128878098835532868889889714765947869470304501399153833390333425145339562532408677836171541643447737235785527438385487709290241780662777904564164301137749117106894575032841544228482877843522680829307030592664353543842742878884248026723294527778721255431247887350146571032391454034048590399105471856216127333878469773635816477864203320413694159415402201559451571849749225431613455593857971033153100299770819049821902677657111008232452625506948761545958742042670335399846768193148829098634527889288496617104433228065516332038308275437088085686935238755105517988295277324710044491013666454355423013973949195987379631024346489893950226093511441321850843979617168400255946183320380016240710699204018489073357337376711159165551681943133071372907725759219718415667301655044258397687086167263401241041929751127525875750030093180119710059064062298108597540707210787647707492628310955034533152001252566843685068536589255823691414359736362334899214265847174065000705900071991227678591300502787806017169894517020706638142061001109192903898514353822507849455846567680488466619743367355432001584451573439478266434308371608964647862634817978921111764150343021027664083206233336439510465507413284866853763128664430097137182098999052859165854072915218437709992245400566260345781874765951876885604550580184210279887580233878616972049522226411223945455003049580294030973164786162299478472440927477394460860858604518403461995079199387255661168287431551321414470666346397500710373042346835207136307210040535442656967899436857690727275398842293347097031880617156291320833092149065624467287388649165083777848811052744764550332709015984019082433008512989515096943573832622834440825826467365843859311122675256388797073681343090150964494543640214350002561122026903756024105652738851669068502827456491462885175786359812179339842112289787362487227796896218138595694735482646033823852218980648953570255496987982584796981308254824655758594940499704321339311911954339800494796719275260695949198748130428076431085539323367878622935047742652936940642181782200267298085647805793978264977190508533917513893584775859671262033708387596448154627975798597211365802102596839142307907782373510718742327649385708243990769458065278007493093745046960790411467700602026934037272686899421448141774005257617136436176946131793006555562245051024778510325852031386380059858764814078783660213583278887087096096659620877181979103660877557831057422659239134693800117775803366049461439983686844073836676043098901402374186542981154967703412439414233517223634566062722274331292446390136006835580259983462559648419672948218869402142406260067797470530392496804419720981366850521197887621212192396759231514949006503236425572898327422858514089418644952347175225326200991988409892135913559893718359976677134528731542321507859695396139080398768634223946033606305776619677337614442407094231897221739749163194280952041650731554812688529839690611744992006566279134251097336492115354833617324583662821012776683770040051965425541221210231950308347798931886623860810970172242077815003698435093795837745472415595531526905454640436478807295122287854882113431067444573073292728353809656689137431214669956004535940567726701825451615392296394596749041343224987971928128150576174107288923514776955914844368702778364466982527478956350844917531735716486228099713656644437853518790286709958839290273830118809299214078547727717618112551406842365695736731425429740028244946845760806874692769071190523290829392076770514659635344913542772050731199457122311246429195787697020922221287673104906096112810219868760676738822741280771236350731451884776356297996557340153227768140606277322319437327486268475091774635683078209465507170714328124727426579734543714901422004407521310454434488647650608437173754449972856937318235029963723647058295779052827933585294573387768269647445460034885801701157767296339088300492655633887424824908934723131178330554030542096150795989300665218460952438655019330714169634633543079783381973821713602672223545913093840223944956967691266987094752116896686143087120762485754645715078848975632529831611789804762889798201090966054880308517142410299359088746569392152409514761047004290910420061088840940548538676594249116767938837622323244129090166929680954674593718585906769030957566294627407535157883995639876295586842193539795784279334689991288666703032744931165252714690339896984955115371653570489232107629634002264729297597826207665684251016778222359543784554576088382681925824318783786655731779052025925848632795323962189721040009443443596987014526748565303189141897924014386054722592936377578797607647818218502492980826664708934164385252587999285453425716438195099600586264883874183340929318120002181240304190839063088324323513252700498026432472585105375757596065171762664589454266516548141093492374758289341573193267209046729357122129859451388370469123595096615747849542319545734268843960579529927407609354152401940855485163863415825879254849056854362451949729841462403973128035258491006309113077584551598201352067668653869372847059289368013168781841603518424474198010692513686343888559737585897220094906021818887823733326391777611469421036939430165231900545014433847999832140132634186393982749595840301933787117616044071637826393614791745531644387865154223781628612632136489769072481504522317716086557471292572987944486344529446604598207102622655243499669138448859939177447544311352988579137921916616183937049005189987480678995874394823141063001833526583417524734658281478141899082811144885461859807630505677747472214692764689540753998282689446288804506610687052715120419932519563748260414518931700770663315263345541012084219445776691020020838786495363092284035793676072360017782499368704339984052630882395852940772343367256172300379114211262944576902694789517770602125066145538189471872346166307417170103263982244908192551465188606949463069140707320398132598937131202656905240655928251830302671081309664542214472893496273883846842619682903136579848253143932476182322574484744213647600504699690850181839914477818067604378041495113611383940870903247626004343558942947670665215196762410720208257957033581418674348513557693370098388288137765707476746536689049564966335296752818231580242155885899742378268277039738543015464758832084409686117939125035204450777842437110821524255020909841686438607470371873719741095086410468088168271066721962507826265039633878866052826476893712950381855421733598876444651457877120188927645864614695742558682306479545654729852239663421117915642873240554988076586954537241218867192503492275521921432935351036385725274259623404346711368675038124015026733068707664623154557620895609687129622564175032257474328653591347187120084142849016510874762100302955807477429602648458783829124610450633216588913989270662081394708243340305833849871162779052163738038003255018927493284558995684177667231079692729058097033560212616153073636377432735751918238106259094051793103380465997693547221625896904687469474974077457733291418355499533331310020547160487015938927158465216283346102877850052208564935183484036425441862738465557122385104467707624840417304682281788115677964435283734650647374387442199438021942640650909937626643900362023177853233365402785210566803150437158172663425513269792876905994678375030943583052989236919640432327388896860142224091368101133106615981780798060763024531321898920644866566043725555147546905282212354915405999897265177301457508735853422866944313446257664330054762703474530333934678591299987055820851044845149093370740167478450671135822641222609870676119274080268552723414093879623555773563619864954040533273448195584931687334006996332778713972695199717997156032717876427931181977534227865173616218385504626405745985239720975632895916783864054491291060933601060166146582895762982307484480906138369198582414611705147368517373605564108624568718788170875427173219523452033266969608693295151017079046269411076846958521781626989647944059163944302138322834965978594724533593224619416184104494108879468069277060767291103167582650889241333613978379902673698400249299969248781609208101426559441305068950513134093846139752732157591433722378931814169125302119889939528069815169941091929806164403366709200569788586684286867218372267355943758811737177714431476331495983993247098656770658776388207277231686744993961852341122697633811303833927180291935158522441428715682924196943038052231674959010066303677649841654368946164352263883839423332893473678258020591246353379842438910623547037939181398150508020417566100604910131681071613178466087898725593945053880159988006810988000115004311960341885891855658268127151763784047672343422901862537506575864393736507655883374818131071969601187704460729424697867297302519079106048148110562789531153804392030244286793434720148474225134789895458380124268358672125695913413820841561624758232403930277702732228703729268823343128900447013408518392742475633296294747851529645071782524459915675256006708693477903949939125485913531862784407407863994296163323011936728225332743217301135709047476602893895026812611229618611733276226329095188823849713462375593959681284426525643151771921614122405855916195926243822915095903653925741770960714292578529411266217284671657716629711011033186681372464167235491639377024269105384579174285282634488722491251805741928960188654861006685502037872436486386780763606958736033955864744507388395569285419670711145382966327361393552220904579748062693703384425255445373317362085189909288952124724775424159904114730482707998914468154226782549247198902803184278788304100340504257721753906109446050346275842345872066725487451982433681108983087341784838342014479948954520073559144885422907064642091762960873579656856833148981707953611668008267935738480359394987749736600756557768981600513400284407362391465644068120925957346297454414348662103822078829691861019060407039151041081522025944896412096567102411051883946991141856787609896398678286087300500404828445247881359573987693627801869849153621492582460375795693500291790807415214488710112607323081747407961046306480645284262345181194041298537493489362316146715822121565445880488822262762106916369333499045989388447124241578332490434922828812263995288053262718855343534608950097736176602125715685228262101756172869829320531205377958755507742010812822041904757070910835929831341695663491090685863378380966642509018000694973254704876680312522545007413494985802845600148792133168637025065370887174245650748849662026900271817572690650442062892911415376750842218308847541472805888812694858232014256314946666598582800384417798391436239791784219306249285756246552042170894591665085597783017669278046058397303143273397630381636490236740199162051682581205389263071689808890922641035830359259441157363105652652638930854685848142315139424058360536814359723704061838626287326183356462969721043908987853455793436638423218642040711925920689197623303412537945287324090490221218626812356325582433331694356729511773102091178652098816151417829282963070282743749332453435074535864402853392637857927007102247912453417839901007373376966738153913863078897690473461355717677608169458768127780289490039920041571940172595711986758861175752030126803749359290788232926444823477788134460424469166368268037955565958704696579498502131593215170539445796592429153230202805475462959608426118605905406418615405080988231116684038887751498537730395532918990633326597708024994286347869583729649411503327917078591591559121893069383889629176066911888780460932449305763108571628453657227443129623375848283711952398224509532225000857439616806910288978085826489492869135982559072608739070532587770434495053185318395324301472885430303150184129570113629946283061745828033107139635641420559046364582183013257850810374794057060505116115265912794463991880382691563670304915362351155945114627461493128911619071810876663180968759732843704501010280026054998536197891346309017605471024042119271255907215989365855528766465119034996504226675706528107797495758661456384060584171335852223321313292878194673125448052039438039280816538258939814006189024001875251178800989093052602999310007923127150885897401024337684444447227432708984252544650300749222923508148334727926489075751448298583801599595123792173017755518504844575147491734792505509866248904597710993980430084176151145753764292526159035787230619252554766587398537927703463537127314241024825829428993754307341906578550171869032170538597625026860126621392756374023138944419023148653205786482074570627032896278500757836597643765183321095359545089942763052850018856648578605186622203351330054257089181725243146893098704453051275783787885482244457406978330978459611463375290070243512795797580004482747015328984320191821094609802297273067002223215638330153574664382211730126652333936444397958943943612527028520483146806023349227539772560095053874092427304910004011827819969048744095388739256679819473540820682095845852800521145650957377818908230288558186859837143904449064220725028341532903995168515351265249077086967365945827041380500195802811958243925501103268274767195231980843552964820795919608648674712798764954304199508395764690273644161441896167243180752758924366430928131717372584838182447520770404435757359394516756132728046946139362770579960064019765514998830657072934391066728141675130039864257593193742290515757604845331225043407799282801597024774142979327124097203629205841709376166670545202024733623698058220909161883314762292695739442316237585022091925410072200448398550841151722322509848116597298158259281865008924071811118407933896012926184506536471015018800624498988260371231854293856639579700956815502497042647675812903177515879383166342040790200075900354724881397882686985627821243983880423904161638320515895006286176465953151663342186443268052977660360521805323075252425897772770286807016760097144068261698364766927431992853152686242009149827015656136764186618471576161033204751575708145955171368707394578789686059555305673027908487418283728562142430468213021591074306213219751734384822756758951713324221677529888736971344675372957820996083519532892358977089754473063854214591893141916789022381724194046233000646072233156265556807431752143837889157317621329524431230080842574252244843223602963411962765844478887749351952424103098962371815087960605552597310728166824157885307700073936107301996854818512824504784690595924916934152804223046060449292979580916421018044378425941117643602467912256400989906108544157130584635233880688586281883146545526933712682683291295720521041793426333091448647143716664219300586320632292845023098324004383033045515791044240356339025199890492561658897482745908509642766893124837955887088790461486609493442507125389757380898985599110178674497750353567175922442401784566781288965404549913600983801620644825824144258933152452607811207269173010436729698955004027275853395437233044261108564377713056755463945947435391779337296407868189772893127007899700238027703524193851204128687946402716548283631638809591567262541875159872281639754227817042409430484692730985319862791519639982294105895965074193806193482858947561462831116455607374145726521145188950708874073340837167497113112085245112721969414379457707387760553847698464056434565331140882714470928549563638515590030989372266486304049164045313597458961519082724883312331001663955206092543313057807720208574874006070943027815289650371298700450638803388669935742191549200384033040631640839160749621067195657670987739625375963341706296583150292670421182742525699202597532407395047818276365839803848304665186608202528033467272098938822369341766236043682709496714124577307937574693607618734814058561845103597199061453417910725697777135315676888423714440674947781179830073057730667675351826130651586780819105034021523106975128957864608845086026164077712171488625618718357278425694183554515357431513530948740815781519950404892166573424448402981697790566822426535980835802459649604974182752441503877400652459392079856398848245001635831293054644239327104577025489549353346383038233755490970091686923998858233361656517744651897950375516803410413020148607470386717671336797568283394597536692081915229708689624733034770264066169587948096083277857706526198227444836211253452742869596539510374383314294965990762433845468821262623981957002572663021382630793533190972156579715316488303783909230945776769835596394285071015594672719781185403562335698298460953238900247300979577251228875639396622538679633137265828715419351340923155975735385837553992242284293782443219030048553682620031089312534089079609237543071402219223501088869532426727046738664415368145894486058394998582119035542299032808813250764262931281040243066131528826047999553613637415441587017068743156387665230827178805984156864816042115303109893534036749982778200424325587195109229766901108225475595948761112025367387186450317291431779141044219130354735130724611900349976242028935914575830238643311449506838803077022534552846888602398533627878257120048958242188339815949100995235042527800570052399135305297575117953981495219552015394995188361965899789634309707193940869176068808337978435544540968862254718057700371831436591965789563373093888279963671444591305743884606641387613031185324907623070014463312625988043599491001476136093017614244407364162821687267454435878942988216065878228186898081732248400411435387158422736949230967632778732107275557430449393388770122572227451054746072554141101403651223531409906040752152529740255952164648040970846070324925605848728072260692205232943238442832225217802707906186770423374554933355474014135656067142902777976825177350046835335779982899653533115630782539502342231487988028142439131346850255992915571400188099570008077087533081591464054574891796556693050856162250483445620939480285381772966650213374500188071582831253581673330983171842787461900481927452423525923423848924826727320077620488729983644277779636573932175652470702042883446621582863011721771681580610522603656868563861073649294505791179691636133277995818103518576721920310145029648355893254933023663542569666923416459918009742642199028166081262947683638736816844497917523847213032727299533469563980941644430300209549023527468130027822102131925204381666509458367733593505346971477690731261459747221600783210947105655229768874630726870436600070221443191811288971194664738447023848917420987034151917839558785166209476140622527594455933895881357459972060375507440407251363233902457547507919969612776584080140233730383273536953668656578605531884833818682201244619723600241191096939746222250767316409200724703008812484621450039457182250185349663800741887520709714767685039273381616873218899724022924022548313193761239072550165901221034002347314065466164590859343976616968245411681625463790922221726875146912761660568363240449718463824788157058762268226202249172034395179017342613519759012709411427246011178912511038558678172744025652239929607589290433435978857451828338834550275301826127977805965058474283905580214696419987741436730265948357131748100760567835083561393760313547337798120721989739956170567356759683801624240793563992471463162454594043748765974161402148725451339098985871394702931445365084000334462150674962150281123344070693443361095825062352849721427352395565801116367467778849376443944369459848809108640095328597766853662113796031260878382974881105285807941706784288342571946010454489074033243463950549474728779700973146764296566704106314117372955213283494005523456578850366178461284248825015596678730085672563483280139146277689101673892059144714306729952128961420007402060746846851199835506713174219809563334910448938364935393973290806454579074553630845298647111723575895434113935367994907156291919076749140235797127600927797731046730528301607052726247742156374514269230149300406169119676901034914070828898900530882992655652983534645050174659894202996804985562310938424625372286718554286768693010897973420167216670679495082099224643677743700644698155977164632123906435815533579767727900962644203296574746247445348252093725439872714463850877180441262369491497912643890061255410168917281139538866668844034215576747403438843738341643639603789074826071717456428223372636795914706350135633696025787366410980698666935323478106741212316393562478128628445785907871765593416694339436185703482671080500547333574256946482939689493652279229194179516322992335317085824891626000497940823764964946422904848866020497375131786771912086265052257787487027884658997841861839759346116192553434387229210698571862769803646407756939394073282315236707151400594574334387367466962578450713710461013369365598164934214646942630531784459849266561996685021677222257191022233403483447760746081798141077347515289123600728511609713744310489282506288636108020232515180525428946456780126422096412042873012008753241234777936226639356953540432901855323628886107348170707619779416542076290387779319786103954642830995760015144588140720541510951792246789325445190725360504756197110522711432575504686670300705993397114717374841638713053448189414142542399475715739407416036768942555650653951892772539460166637656924878992094580237087751583431512367082819642149694864772649215894458361069993348169877128219317327952847337970476631640399345749329631869492825979231879066317511286859930228998394747446898462466959364452791791318604435513824871613640900437662640787782100776274035027326059745176496429548401875794608871966177432341686043988059595284363045486346523181025897908315878270445813551579837624943881876923613228972485850512626210742671052446166355868978522207644861136402320389534187333994337830196582970356051649097838846759716309923801484568685873324229906753847704964103586708329337076615918236615987896617150826453460627581387097123525458111465912753306191154611937267610996166178436564830180754940969519689157295214803770459045121441658666529161405481097032024212024927614761941546247749983773139679096281466820642832038432309968338955997604555584122469544248518715931529966094240456650598932106468078425518584069299695779970551774720809676239521139201269642606604688912039161824842607104871764831792579178413169263177740586838360349712629489809770492178636632206625545267243200293354481421731584648218639443179656074484902235366377839317503060786039296691961082766173723987007353629323238052104648894722365210129124016548631634363049192064848176405644922573143630182036356218274539850836242748201846813231382628402487950275193730763526033412771903581784309258956814526287686441715137914539630552993565060535951009884919776238055169518418335151982828846048948106284850762337282128893051863741879807751070534446440810587649678829358853627126432797677870852881548945212434305443255131761575744965164075511725717913951353447371123414211642237678994246633731712753666436257639417963991167128450153221772640408123654250331873357225196533802176281041927583337845549833768911190374625316306901051179356514430629444719894727542932419995989176652935577563225488298603038156289834087250295012083128856039239945395533272136194616510002975061019444607937061754240279751885474462667921900181320242320770652210520507457057169187090100125888576676596602757327190811614062309182646352232826650298409588648254203722250046335198136231301561068858090426789541213490502113611774466189594390446583133611194068785156601176855038564101720637278723445458903367543058067020285871113907460755358223950930183888569704816477235292104583690442833575868064919802130212680211344895688760933504609953376586544511433510021823734302309958143928621367457031476520973461683829563368056087265279727739733597285664856199928400556823795506133226542568948911302713975263397503642055145035449224218850893944781421512794753214743929121047798532257248160757847764167492793339067720730470751251996943394465955731666529486131337386886998212369770409916547543171794128076457898150814190582133791649754753461196739225237849080259793352934525636878338598335924876582368108089899300031651479925578869470221555188598794120677062807082018800904261970115039628137306012505997975507183310890474071459361231510428659262608052901750601154481780254880098918980507857588380658946753834754012319630557782156666499121471975681489432964668735111785543837867446182151843625708182731671046179646652295980423381280983316632045588988461945919341554947405740218430235108521320241208388183118524736246770321442070083714817796205140890820664257173955743794103665734030881193823936542537035181326765942384448391875595809003062710126901310534580731679368364329759546927537821749373035359991302156397535462274855318488921627283687628852452068264260039082066790935262405774028574149619149705929960711040383597892045173125294237131902284399800270428359524800391684334019802293628000832697506908207006406111330443889890120735830338435313355055327918495215928118400299178145558305947129567490112666519752942416999642302374734485950314769972293958065887985492120927092721313287813672326150907361270390691902260892823165364203886841371622319736274533557639176860741027466735324781238384616022178691477865639573059250069269943316030210715290322805987739406296000486204747425777632625680280274738910244744336173227247974079910906989698486345246844873526989576875206499420461747015621745435836126171419604375804453812371763406473443715771043374974026310034817833174211362133604353722097364590436898208390545442902458299358995973513153585704094568162918130152766446591455042134355823788774578554849474207345858161419344992783669213181489988699874969925429375099871384000744138071879039308092663313953281252474368329856688306764413377365615662420845015585730156968064912052487240556646985424919112038023422194934421375684448191159298205956766627388118980359000537207565903913932459737458446908882887249648056865504697244507116797376300418241501030731519734964451311186778515167428684537338239677968984236074600214330925988718745454380715302978503939244178465200344814600905844485843280906226661463334651824282263248951944077994582460440066022059864912914979672144936479331005397351423967982117919155150980847266075167085710578935689291357496750402744375262443907551423100935238791501835334224994329524999574010127663484589389728650409777976579027583046538914021961699443873028575436673188718558386877495210954108358143877255506875414591733409879915138656508296018517407836224081579699970284500248685962053461342741547825223291296728616625323253872648738461598111806270998110833161289340999181305541136853093343264077972730064236265356561006214452331330734779399750088013143120778743399571657559002093084758002554335258128853598659433533451295787329242388548593108158884585832438839035043959891366486299398173515076808881093706440482317627027529206029595679262063621354337760773282546886036862694475658088473277166542151383559760339832152345478321352339186876658842568374024008229597490235729858541844325636145286133960452585440342328061647419026082195812234638222445942022663215794211018112233835864655418204837956805713961278104005193768271343378316667922196645872889568732200082422239088449665141807039005450569830523987024039408906745577453539669117901945658311709761044535479008024062856241010680621073620062094684100453212031408366291779929937749674280309413044504998323099742409117324496249367304302228410974876989848094787610496590564443784005240172198468825422499808576360335511934298391031957345038999734768314687683190057319142592059588969141028365391403258510382664367793839521377710299695141388461707937691711078473054593754130442564310527693388601631773222582798546061011793293756496635745631952686184622902059900323606651837337120628822092396802994671273794765940508267360450926781446216155525902598646807751349724225061617457090086728353680506802351375933272510013991336082808673101818407919351832968637732832463273411623350005670636612191377472006738115999637482297773743502995609020288874984159879481807576159571739219266647572304799674727695233923807361912928395649922594526940673578969553423610416910652057993528154161402341013705217642384995846983005033381094268852704405882011956292229626312809742501733993930054066363777755272668525349856517947735850698316611204043931036221372505522103848741714603586088050844971885633521911836037154521907633989528777466282825321782260386464313419593250170340177554527107490634960385787150227098489666755144816399618691715840645256427484571046778007184947016067801674134020487511642874876036416554408084050815336241457592947981745610233912344549608396280585604027666718931871324736658477124421937735922676409383449607012560742726252488112938464811721233663921689191102922197322249795934469621263198349043964136223108601218274337896801666667810072197306619974144043425745931777379078268179607175054511044138540399848301226732790223444123278231714524475500000801865210047191989282142262118571862910975154583586526074666654146959110097632056625234173683036816237000422043070720383488405934365147460390003925408430220803740347328149678023902733754646414946042650992910390943851800589970433739071410414989561554972782276593868484021516167453934775927694018671112976840838217860895549104460349016554003616447279267226735541810199278576693438918906196564658474086486045389070126343297041769077644768295904979120741512642174208636926544582128247994737709480631286964028162532114161073460209465214136772710406310566340731814912172495957884868953834874702850595571828269950899848435599972521324400833264382897893397398109858329048829734512545816007911315344278353915339559427749085786706502228218448839938812527630225466034525485032563248941517387825829607573585196810360961817903207038932210205316450358239145318210218483348740920059397188169224997572497586823885522873892075330200162882650289682355470909733864052154508877259026437797352319916545378876571796571489179058536152607329469611657974072266335057802335151036249727617334643235351441264901883417278437168403130478627558863721389795501313557068896287332503906706315775885269064976218856854865462200010359544368226472637770996473933162455952134484460085019778137795227572152584154848737776427824524789164287767542025140914686130456444736709457236047857448792797037960496477798128501947264965215505732981828897298929190992294620235682030900869897793721293537869368380904010348773271460252531447789236037293477913399338575632942518461302449680550846997783414900938389528491355557805683061472275322927164566268868067869004021470302088353517846353610897882457639943021385901078100300112572916513349675581544437197942176881799918781782663776896747062301926529317619820681604675246022721608665114107814955928204362316383236010023616789341835408021080279757773134722508876132099880816042097952626086702461910790370212818703238453417618677843224711529827794793048523303336287993546770116820608002637065845501012544060861091536145609866669735279659708081633372636533087079111184387666703982452662909953015330040750265991015374156170100092317221977036301429212054037063060780294768097590329845923103629838398365174303117270554711465310867305957997581254419852208937693697274768646126991111975469675828894199911446285769683017517072398225075597275314419115935244573513980031599576092514549338944848163244767349689260064114295825446709210961750824627164548520323474875758739861023798211986892733604183510811111842263641197132936329774750357791712520614437819180492086127292555242497007430364428345854951028859677185505324031120739970424921597150542368100644096476303758569011539298447027904089055557759892387165418011765436760672886318364515673223909642194708102071170116173868190426388160093376358892202923114818981212370662107782632710246121945062341607101625450738872637217751059185407326220814890670909720438922196288969388250043840567751074986221236783433706540200116096867748286552140593219350716268678637587101028527578683655884770291279856674113414086135304161473736228630896064837342567312204553288291152791727614369016256346451580375502723587768266810277935773116721929898004902759041710513374833328342853780319222435498480576145063269848716486969699687982875681305876233539654568437125223504818575683360409302437938534068317048597058475884511721506811424541565108971623832750851044843513597699885320612768827337859632648847025727659052453133539378222150895081370187171347971884909236802655911283312798171634979579232654190938631367009939068443590537091094004850449683820745543131494686872620886966758558436303153989508772310184715721228305456841991101378983429360577060320944370661054229039058445201578322254498837631159735730792601592739772009654234508009011824004654283158941217132667992474181609873013873500491964164604391750058267162854492629445083241858260055759292173136106811722064735373034456055186850020010216104160479283891396507936325851030890618028282255407243031868813217328470342830942258468100829925916856131088445675212923453472799650185703194861303119713650688324635155441969591515091384893591765572431349774533171926914980724189089846621114181233330216723377504916717026445514368513923560038547896182268134745087333293249250942546111021344565530158737335969814629406013980372363420717434472608479940100172431407547385352843839170865981134931074109113777396990483214927879799917239787543393827816879263146959678032782339585803160867320893432405051707223560049277336763803352735864770057297849835839259786055531816862022388756903291850596004152667779257320533420297996190082584730604147537234508563558075187660329782635318462302041108742375940202998849736303924476003897047214666534056636321253132035628784380093901958534094326665185208192720850105237136376295422486204764436181073889365430563245339964045847247846177291666314807229358773962155963289842462119267115812236908933934288946534705067403362129528964661486138970356411216363499799234816904286776893944724551079100500446945073222039535626604572118090298743893382667332534555917371067685553719614495611148371368081999528033633093107664028089357965198228085423502177181516755501678929755407666444764302891442247294631797698900285538937387547553947578897022132351847807855160789801268603799558549761933574140477735498072375041548522505820318694860523999083860777654849949378933891383448165627479727692287506454416771048719773404172914172997971095079567651970660046106888738769630614036215149369328781516847605364930429837531782561369985613586254362938590922838715818892683268714751192143594064965835681630567771176920730981712604285857026320789906972617974699012357609763796174911513073486011533212558042358725477983022445164174752040709924804703035329381076287933196706270274290456722822136524676001741817481716283239438662124666661011351849675862797268820950718546468880376594664323052891143417061580732453327862309849955428017465048119451952215164354857069752102240711567675762595795426752454320021215032352307491267226914855965200740255108675298049542419300799004497544237968278263121836913942920436336314525034525808418955938800614874086528036177853667752942893731877942920924074591481441571983192480622201627400846650887671264836131909408687435013361739242847474248959374251239173437662326564625406100073284028167735600515740859942033350326217651509845341445968488570222562296356812929544632172170537669058900406815183745747291716600803054832604774954174901772134363019601290578739055922483611346462802879216749459363139917378886046431756659588950849596865948033179798688562068364681136132387570717904124670471329733615752859034329248432360531479722586771654949749972001909675962458895903990019999095301010945043625532122570002180261599970895186073598823271391684354285544769023932253647489942416987411691119958384292483868840013017780972364306900972045335383611728876381823384532686817839634563782098417377363987016838018754778707069884782692716424515195990736623078197963087053902514665394874111683908409082575434551779201423032125025002836633272593631162174121404057406157420436436823370549545617397196487727803357109329690438411690305330696679495642667874648292488389245886348618301473429947361466840895785015668184669584755769497753853255988953261000773313122584674160523242613680720722125608663919212020883192787207068409324149362688246893521815700414699101808289954683272838780314515734216138352278355840306120053497263558460401006992139098939266434855531109295817443421327371722055216112985844923468974543679401450180072671057191775874336259773133003241689498956786860095048387423043709119427606712494303364715803473669390853887680478075094510859977754762299902814385425328337682181187109323980191142582120241672694537195956978369203690306391178429385993477678148084897997377214031597829261736465945379851836678656851883092874149344392856158371728623820467927366777873132284743856567428672322980119572073081419061829350714508335059313154970180403565395585218002193397223288398352631616057084941347238811554908940341865393893839808598487357522837424820567617855290023490358790053534960612373982434466350288038193624383420274093935081967027515002424931302151405730548878996120136534038555046431553604429073066551489550581490486887832950795888927605194222804900687647952306452641269842065608657006233060073106391369926490703244282283649044852741444624828409702258352684707462210329681043579025045061070572518969067880707914941340196178417460660103793492509395976670214635626007380947829170649954583254508211729335602054416856659734043263058691013521827960060971664924487457748108414751020958308427632722584687703641386385726466284702081313210595296842458508066871802160107115550519508284286326133799608300154523971795618406339677712334618149515112169375848079304145869413511560413712136364768427627526191947980102228213599308042680742027661450165965057619382327938409507318179643106694478859754451854157084545090937158802559435312742030441645593643025070164612447860917227860207662997139258473953519915699254849584069564517978802242594338237205142255911755980278411239166709365612952991892972788798310376279788060766055525710687535392446236511405467423830465695027141272359021523097242453340161088173745091831495602312280952264397439110568734444992654054157261101550609563905965321592339124764700956445876809647748578515999562273692271904502186716981913848460696312163360826104927784972028647426187049591619665573124071044728139056901959502141146969065891789093939915095981595555055216489928021077573997052103146259949549986102890473497293353720994713224223604955275500685051429205321106699718192264357312853908413158082907861149505242986535491967682235222460032390888407884058071718215804121389075616883236396087936824280473840320256466366264487229822236469843601986195572650621654912418449251403862589299881629176034196625389619803240537083169775996771576296495880309097615056350443997741445507703075177621395266547256592993520890203878082207630208428059092697494893111193329554864372025912110197579264759099925253841044242590519421064792914920796796506306589446541733667554015825036826577537596253950677253887876944434437041237808576398341930838679453062380841492361355151294413166320409010259102138022561657996276602316997644296099903495169271274763669441782198968425561479327740295975016470990327192743016387944359271095373700266671707548644988483300745227889504439488119225701047451552949701057638749812125451955304467603970563638638239687983480105425357826302858467427233050138224754324581729684038735133984860616662204192898513479626371378843992781275750180132013195467587766794036426580983939194032560772461042359840375226028438237579359769146421940846962238732839952113215791666202725842126597703804435110822216344357208198660108501208497898514818441030024419115588518366778698438966366756563553235705312939028721102607674588161104286585117830664279366827961846668302015939146973410690274543484490414609483123309992698131038715166801944883577870354958710102760593794425457526971823236653265428996294175954186798461807632237566169802278472955705098470650909710751786376152688343606458568716259255436831793963022748768562451240492351492070873530746359972445333653386529102228620584675166908862954344167084489547573444834280087891205657736891443270820373301122259283811266075519249305316426695135265018931133701076325007082618465522374316626989856295654404911531241462424948555922148864178935175220932556405485645217737178397853510104258471326445855610031742109472352414524150326760203296686246388180426615462672036850919573686101530143840869373184563316418297942247497648259758460828859604859479298130478864930619878979190406918353868435214366129376637274933481878771685281139288449930857046593151950344568122322337046298540632640848775484473172884218077486577723378247129102067736075736685806326559260147166627164241859747240358220217350190342954754663761078572881275914668831475536797104631541233170140613879111054994313647770693755239323428713580870104800417213810523886509406935373202476428749545982167187712777724667262265244158069534033406556107853703833932410247033252632914920142318428168314343677879619619714810774464198601321399039336698984421498898356190991811154851370108708005456194430222781133643904929371074887459155299382834813661767370195010245843941722006581123702159294116520383332866178739659958999198281847346001821267920090969832173981495902734422159004064280566904196574357270327728914925933625786766532409184265064320194431457474682439068953933242726576583084468532891169834298001128424190233603980429791065794188337033864954789643137345074725159049218916169281814943119492478981908808425849976794708151173084928390742002723407860909185992155199452904275041465386000833441928460117375613393917009843811878911217488404288199795742086358615979871067497256783001899732450393171317693918334738570419258427174863343193111987595638850260671280090919498591622750061982410879487285454081535744825217253453274640888030665693116141452863892459294968038885469383558927731638573084026059749139329788114208216752410856076398133174707835428534149377744241789100359567120737725529966548731540465312497479010659197471813761258377130092490825191495211332262631536083517082567240796663803704919532472099681299790040763091029089910035716750532977498815819066360746790615717864164491840231981783765899140546667287433296038498199620516180433590515497261537472679851900794414910999855182007599700654675632452741050204906836390930598490578860149227250878505848518818536860178245266820311765892855674374595626353177491367547294284516848275023218449071949178994536183552930347568545206154907206403995297725179970380601703375099378668145419246074874489026213469948692273868882054660251972654297867820271483009306038795170483305684770013208064559802485638533577402018392432528844929510689849819076767799745701751425158870563249025590349320204123913068122163530780608836666464967487880782396169592611326514934310447453302272940933199106905070337488940846103008762487738324541248247830567110466198854285203391454237623029977040279468982687610813472584585999374595262371502109079697056147233977717042482505920531280612075923028879912800083024024648015018118459636026385173210821838157633377715460801860926441043391719819287879171514976690775483949498208117020683687957240387764955311496613177332757453021210011106290919936026549369302548646295055197091928065011615682092604499114648046032778411660207591700791612842452636055510255582558181239505174039449662503792708432620917122376239821106337126072514294069133434730638334790924956455286962914749683862357365243399319456803855544380926349969052695812793621691392687090662927225649640431621891536374435783087666004449823410534807266121805654326908658566415080381937738785181029650963605804434423845885675760422248421438117928937938132984750727263281929475952883252888844637092045918817631677107599004134862884814524509456213719371571010115630128150214909803881664192787684387969922259380884885837973899619916405419213365467590871541972760596725016036410063671188743585002549080087251058397438734863323353101052487699780716042086320601644504149561153031881999929519460517500177544918973820447707502538589957252245035513223221578760976453032737726277654580446138528409051716094943677204958149539923922943716581774850064202547779533761343835507543945735696748057592769531499693601528251345793972197910864772318188898669670507588296337398731627932265001508465116420006954882076669394284962506658714636124189970555106384409689723529778924933036973592119830783976608852218430838490118516740790381729330069746145603228192230380852734011061275964362160778561215819837423406147914709220814047995677174281420103169372685759657388315726818407246903894170521443781508095905093559874900656136576175221972753901466246864080947619724588930004969752747429614521991028661043312077725668275795041536976462713650030187035934569834002657083889204319828198052658659450263200559987929147429553743387853592628104947688400038988924651558839412404977931572260777132896255065941893013903990287111516323979323877827129224533593682749701795786351290470082091616630045449378207459262913965417512256236912481947590350458521534251360130485159425724417293841661689982426563732712410272067743796659497809025555880886169595328033545536703341160523835054035704864766155856533289947010671111751935874088250737173383752501990613555908558763645540222556344582577273287452721574926719137240226130969694665520745518321896925092545467698801060930694150271314912903847041085249370754495151022884360150668971286338340837131676015227526955770649113796042189084528951093853835354271862659229866777040788673614467603731613077850421550683168663311420516646900096897558845908011956242593042668004440313737128193839372133131695421628933881173094607314440990917174953613819571481501958463832621762078977072270526988497119905797872434107031356926451327580374939796416766226550158603338830896991176537296373515672654774158848582331409302100487205315829458383733912012897327036948611429241929284155785208838565869583321727104512638865122026186429423847661425431698814281529989733103043893176802325534796237196301047209183598454673292984904697678506631456552841413045707166229494599388588910430463207563105751618159069812138148594773567885295636965168241154066101368581483470739515211524908381891076287732302406114099679476770821355763217051133482016165379814016768921488878572640686848235912509837389769729971553416124395292835026699693323612856446886766389646184521588642404011342973246933029455645046506188926341477600796082515620129906381842230891579355608590497340741291175862325286501734814406560973911290071512271876986671913529135799172637365503678131147692414429270442080473279836379060023292908230502237605748391783633865099316869725384901023609445473496793168531611142650730811253612747819269016230783689807895924584707479823357934280590859218769939962244612517436103157073003872928292387811420529765863494328873048306937034384479011416847179329604434335449453301247233017658878904320846968149697059387684342343287483376848793301196602483951777504557851702657298767007280532867892116296227716582365876319423487276811291821663433461015085078495703241310008593096642437887169220099537883434175410806708271998258672758770902592079347809248962449890614988456065782147266237304924492304274162124233012550073205467371572851526879887793049792519950812792401027828489933757831117539958474183370745528988137496468189460235122153055868052433379763694490066530707664164131820916772602982680491929181769540537850840192819210392786447120710457525967398075431875687857795367996258917002796597822360894292511829535468168030293367532974473132602999551625490065346591973715797322162688313745129848704465196054741573415303801732954223825767067550596951335911710527082446714997215295999071775079938318278794720758570162637302903927289915534038436752899141638772054797097556572339281450590554326091292745605870229643757121614405969053914423431267867583687865769105947148223771038262809468848266381452557505797173915336613073169290007967205993520110124162386588541179159260945103278925192245953973543188432453348726404691192214006932061855779141719318643145501490970548410694120032778544362508143802816678054320276309528013121702573546195486791544365876187765144988464693479717741888214703198733845251721644713844811993428315034397597582297316057670347799334276682764346814339265195114977476976919802195052756341425329251566473885331816712576738067806353777375894447040129976905023014940252516886082789810975685275388829898353419901677280594271590983096272887881699024541885343928035334711323534370836757545949893288224036222574223770796446307462213362710798161826689747813345887964065030148193968310118732777601841089479877470748358901049355976890963853606271625015057986346213596403908882594478618056704611510538889844351468371647741810862727805111827876951066800302961601572455545284391245059222017003718931542910355277217018659689273172354928895126242560046414636068660467076195785678839632715286701057583535441470713771672056909214364358108389387278765864798290216469441671756045519790030312351117059803695578958838588189755401882900957961908332581680479876492457038525371978178605029939491385902916478319591745730151917140395511150180125158072926590460117562504283870115052255981710657116573531989969809969629202979022047129538240510701916694066183129019279568132857405737900134488824867067392166502879894299550420928175100136820318725571653147251623038406440024624636642329245359519088659856835478431998846121532866550052690028083305896727431218145985009034675869793335410355519771190088678799977348310984744388088960673369075816965811164340394232496312814974985756661884482105433140999563335915259049316194747311332189118831711005165441712931626887109308908671271592137594762134088228110738906577762943144412835904690592355762505674815762014050440734284747713001154802093544198889747594145969896005598675410410045492593779038460746152591666169133574747212111273010666815277835719586661987667013727467779101584625020373382702274652584010624039359764444658010293314670860719891972515831387661772195428847184660366036526220446591830425053617653639193296579551922926335153097944517898183796737013663889875042161612685555669576284139618779698316983305872776723470264738629178360465856036509785308815302304242682015510491325436959654645376183468460709575875138214247765621660428332138907443291439172340706861155884318883549716917028783518146799866529043753242022704559778262189261243512539162057700495796098820219199451332919344542811935903678953320354869915709835248018486965286075634155037575757058052166925914587359075858256499048149216135669695673151788520730532362113114479248649627930352504256504308732591500554083188526857943202745359846831836000499340489794612380487299297477649339867219610441243219058016982329667995244422564874515148579312559876711794352627891587223989691565062776617930245290870964041365137023791900797424448830361737230678515766646712824681136993954145612405909508598422040901089882567092694246437258896549420433356450256317500554241343253030334033615162034039252985581317950759166506076946012666413754793378747826123090231083132872863189122302666462532835978678303057991866697368187260930369522382967131366213533544966978609694391650394308246449362905237496480529194585092427471170114347174502086624982599299567427677235524381428866257785977749338572207342528754654603508643182946346734177657333235435607199768016313351708299085774442980286871024412427918937944567047740443278228819788568134845702597101310533547302818821654840268688598170684542701655171424361473107165099041471376660730038530381413599915490448244698735039413376433032882605972876410330282914251134852388167469369650094899330426011131348013211996717001548464017889969167687407605220641652246853637022772362176315557408429568914314991739944610409979001285730367605084037862064660227900592814026396740245148255259328226315162101708599482961626963909169321289182367193141654333527344886925105596407716386994495088787774102401436959453654463212666922396348710563040363473040577904124589781046663365127827478443240417935703837530584809849274534092845833934271477481287361569796092075623669109353413361896507099008818684627626857569064628450495775812858891123800545045056326635064464505847456745995976550529064515665002796902103615939591380806458702628481465561908093292945094154469543844699557430522170655819672020755755492355148209269358820718164778054070631594245989936876340713342307377095463725823663501309267784346586569924914532401518536543500293257224421885506276236753886182922734833552251334027571553321942096388050690684991192646558773614212657594305618678847223901891210963510944357199864857919886984809998056918879492232048762055924910308632997040225662285411657674294309926611331953218150100559143077440416055404952010399179167620967800107920913691229332849222444304278148014724968437413985339187069769401800466215555625742152352475277141602695690208269980143173234377719314393009666257056724661139519897747248118595746291699974525557908836426681518189299648011843174172171760265590895817762311450395322180802909298341754725948693957381224885412690879390877123128309742400609965075933886908854872373342363088336693449560466000871608390278222513530327575060735458266989860228487150701804888075971714844148901726747066458984091237206894978116694464683661680177262485509127073035415679937819332878948095706675969357479749630495888283816691383540454414887931805913933450791401084923408471451017231258051591360412626798841709062155442197049443583940610625526928682292509317957123786187448256948395688927690476619499181500079218746492368102362897282907138115291328702260873441313426266585377100312579372028076665042078393382789549148049214814356729126748860050098395286728047266269190769386636578731767028265296379634946410269758233770024883924860919641020576891023527160023107260835428234876598295601870883501088362035032086072582956748423744466716487882818088984473470137358488272682769142153958725170730716411308220142537426472044694402156836757609619627189216917473842757573564514465365385980831091593645923798590072909489858663473936119601721353234279341930104041668733446912357758593682443673690551422191882501276433529599666517352118487751339606521617633008936378076183459622895476306376825773143196422992112172467461341728223463271810601986127925745620667657313605348563963496040252355947646133099184832738325924397189055967572358444229499538229827844942127946651098508490733977959046299754313081903021670104275289645237562586645101918213387573532858759530097328377329745229126358426981931481380285353672678081280726368249675667349137698290784402203251863503477745837026789769854966185508562603580176289985918224864213444383646802291487945783426159392466577860207508194650977731290913371113044347789596724039696003930839815803533357483211891751899648406875257869466311635294470691870737052074798261620900217270404977374451496052066838442127691960930487290327713804125939063315728589624519567198581484441072474417941908115330480640451131954871957944110153990707888210396373528002411653136015717901710607931613446861636355971650414733224863855834514972259695908152382236154377382952427569470619343574923563518155576381062093884248039952059829177724148532993436448222418030530564216927767345529243059940314754868604196168685787312807426734520898225203493820742713811549692842261461827971204423053323861668517213639188052758807332727061786471255796852561327539102972225631810396908748104379798355058747447797498237625096858731064230408370984225690913249934560571102338281844537129779452685020957383369812256338699924160166027605080924988370334228450617132134708263586218494283004213358514601302831294559831950152069380693476119298928042381117687157073599785823813449086005220256358219070348346902501322141847323302704717259485321743632325136600916012274501104273383731245628202628536234242611010959661283493271244175287091288445823995252232274390247596744186160878796232160434110275782865248569404976486135742627498824756132155561040525861009322196401025631636085552669928581446092042914853324644757655761557320438138577326186082652554750282590512659427274793130802715804629473486657104019609414444223303681110514205107475499980802226257358759162887898182240786664831608194472717669401480092867665706731906854373021826347056962037826129283446620102110495535564024388032014094892220239634464920447262081086662676623339520468622739000925862728359595102590887911096259093708774404545502473854309077829352331402875065375840235438530193283068110320925878061121224827371741194170321356409005496462415857095987947417155810500021483529717719742695926385464944815322131633162646922797258438600698205883024669167605129637258893259836602165216960470023609127572533283975798691718614770139266015993504165478261176902442305296751895980496494504863998489128788068168938238125321867229009693617583431812760195766514523937167647875129966489392534461914926244191066877128638627755648114524111984098896750033756363924713367755095828895493183877245680947048571952474215605858669132364373681371167112991167837280528490134558547491869049070466277510729664876051619272583181585922258028106622142196566318417138376192860351291599290746195778615614888260760285133642771925284687730189730667828285800486078003150141974727495109043620318978490996413026831473565162743061621705508771293548453491087527995560337538905709239073359219469747970951012442722155181107950839450101723413789978758917501631328267600492157760030550418834226003345146564964937767809175429071193885767195939941085674913073101685873295931770998506906335528612630859966004978936807238098836490070155315659691187263015992636910558942051895164303974580532221958328590802955222522371530808800822290492775616479626218427119370680305757846410178153896742682527923949903091353981451656885360477910860418606754054290969660897977145350455915811067610556798385737340672484414705575324374772399906291369402630431679175207476400110540056934066765744514961121773984495147367728281416865238810500496694292447125419466675904803964498243591950693347684542012949742735696531897532280292114791985621115593702151839591308094203569135680707902622945034753227502517761934761900605304642087625030291294784762098239076703024201745089222196633117141491668179623760021911786224265258800010647214455154343748508760000441975149000733767615343881380699857100444487627719086514311687089872622119330244697224638040179376316124195711492450048463527760556637734141452360539373218593683584421633015631396532123225652819338555265036636899184526169967909406662056810120021188883199538613325977889627921484562030884701243515078836135610904141183713797154529455539747109786263431180358493701720896405673549556601629688574382843855596557833036680058863404127768517203664239638511750400639727339015228236268211267735032788166138359826256518821766543251823650161310285447699179227579390934097045021155756324467323330367166566660249042184615929742853564891000360813186058748415301677123123121816573680447973904851867104030120823324046601517754073367955585595956549636704429165874249992327401545911794457921002767798916675355809574595862482539021162203759721048960235874113037943421509997535983197602912983014508082302583967081122490396879044524743918592456035293879783903875076637580169853340779661020581410485708828145034807366003163680435751452649149522419336321584607372563429179571579025772257122826859447846619748023555005038623405314721703102941396897983719817655250501507305054719038724550638028002887750203267488112124097096227124981366102921983993931939483684755811956381492481892922278229148804097394838490735452223870840886397213126776630197698849338896685176312307503106676715567984328312728568430824630026181287218753316705527792905518781152395399668402713439861088545673069251380492967196252240847707594913416589787997417827936024668383324915711866013766878006278603082158576048563292363860873324629276128164218727984053520331299602703361120803413959476768976274316825186602387006911391530696585264718207449169915745902437563430972142149480184668906469954982705041192402994884529263246122831550442478461914488896104908736522742382947545513071805458864537548333542141746635486372110088035283833025753887578863993315361444470054125945222555102837786234598623275203643000102383756559091774700947369131098771668925683411598437762370162209128856408018399447333769723535436451311855350433984863984467414252558608001306410294510409231079220832343587495591290166960118326316862597221646194656113186230866300543239931189100871538533617049291466691676386993967212522812328703071048543224641689364528013367971235756008976609134055401009923222256705423047441898361547900298788397138421112944429981403270059066124346810615079619035870914899608055259599506769903154254220840519434713527017765427320453743437913544252263432378890076035631162344356818528406608926357135520191562182679081044402975376058610710169035311761
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment