623340076248578649886041441170892745050270498680527705762010449808372285005316128755238640871176555835347026816848251160608978041670388289283125948852939248240784826552571973525473729598160640991806765035915463460131628092840937177709106678981047234356653304527019680184876446967322046477469957882659608207898707818307473993151291717452067094612625399999300075112427253323485477966395841620730607391818394956516029027652108845969177084182603163532388347031001802865748491551932122004468740538072089795375050660945327783992294257553973284127005859362869926821472643332654175023909529174998465813974097537057146347449577982189392727954481984148471512995834275120626167926926051838370805573765782206119351095996074983340063857833905487273578780650395095892627401301333790013489045772141599182667613000939395181229970741793866657826794958393185548778293332349044262945637614085514882623193002768575131681846733340810807475878252753807652355920590898503465293441406359072939081825852606522385347769138573843307508934193947107093125877202627014659646234911485646473350420925328735255672180174817213276617431536901575918347612742057145233299855394806269324526419782853875217111217919408675226727392500253414930484174693826301100282631751824241229440598910207420691511690705181530091052014880958190117931709212490595860867287906472106788223620390433451827879674078289197370585665478270757630193630738600444335519787173765250654610913145949986898726657809900973694772101122189327632324159508178076857693415752539752436700179049593179864759586672580084262783456037934455425118955273254289067934729820841099791812525597034828098933679649159535760370541060556793763405644199771376081515293337502549165044573116012621677412138864741576108354445478595004730958181397221940227321448373317912857542425129763661405244315411831402308351902112056336453755775517649595079752757458537308419514391365318977872865738383811171137002350311002888552153401975069536125454702718060503088452229735819908140623982513324022679633838417127126738757762870868948713536171933560642794170275792536928045937851775446092155891414909227310245393895552570378032119407532462050376558195159561777802878220815474319256744007963714937898573950043584943027931090014121558059806608003485426595081106407546322866768533919817623476298674062881392730249112911065770145821681945386008046859509748395194611941171242248077632217198664447285386053065399254644299447179453805688722296263953827916094879924638762783176514052058018178949478276519802459579661861883441108562295409246956552671905404223209041857996641490994629163096921299894389957628801727782909573587307825986494135801333623135487987686729159302319020559484404988755944953508375993586412141840917407081983040573149360199441270290231506978232402243681342715644128325366242523533292523272273943957310732096049134768618661723413502176679110463640837336130253595384112790250823789879635707896034500748548143714157460839806537566944648233530909599339254713675092102754535318752817339235245581679190049742206052981562511823515434377875886815623645748539903614333200169902830398276028646006159420105642010973764056859702820901742904876721343315191332894189080411689572828569556148149049653963764600969405322803927830075382047712162373169550624122129804136325593250062338633999486940956804820195352490884182584798048178873587872274213027945177511219052222999393086812163878382365310730331015844060857500271470898361410253043002246452486446351388939262393691230171383611327201583920996702522423283186778903721432073324711084348829086463399363659789893325501863613041320619382840605559449778151267497767969699333089501864784949527270210575971281111921244813689592630641576037813103808671248403379100952161836068856736331417007463668048899784239755904054186545829374670281194998519192200194265781575182944877332875064738736761482718975434147428199847599302271530254455348713998530837674324957157771179493537978356920878594234961660301399239247497264010998617602153584375762426261663334039978902839252071164675214578382116924792675668542878593114162044273226770969719742683403500335945813922328695013428230020361382991396649354667570848690918741347569020426652837930977143759786403479880111776526060103760071458596086089892056854373751873805686973569194716828556356818488496454143718740381832213236195642685706760620439957084958729142461674702209366066419573263901213535811762901395430124130375217734259337623040707711700814819623988281550369504229166686187717265162953791627148001182859238152196074264652489835179382367015211172588384271412599917930827645987643470790033055502449976275496056822858960301773776974788030421379267749666472465784596159792475260667190509915099688060551239540580667370457995580876496185619921677029718085545707009200294137847722571806176266121128136081782832074540796514354462396497159149567342323001629365013007100173211226175643750449886259996284800620811185974892545288739258723580651707018041053019552743135176131169209222376528488739557766403624407671135121332714992387085983555565616663959023749850807880187686312986238080335641678726836603620458316786053578783978588601782596307627246216449743352857382227087835156837262314590354411863951547733398693856633826898534471922468075091471192330140388474064321937788872353649207846903221771825399188192374044975928494781233302604294909960045684856737148435760355991521273300544569087553344774438073585096903288998148297618026973505400016359817620028304803400964441473235719765039660493702267837417670541748476918318042129895982739924656017261165917766959313368941061779501226384104523352726212436866751871942142889453888026194201142145369572583807409212222093987929335349438216828939285905681016285212128304735888077281144152411970771203769855290515534651411294318407386460771561567319876224572107394691464868671723889070622274140926883844599009228230935619358693008487482143909328407759190621410715293495360953172639762871403637421078600881671834491510555478508708275574984210408132665551699138426964865722606143222155354683388271141697578826716507302475984852501868735000051640272512316675944445560271687884834501237058044518972233891327478882498780416382929429369193656020001358128174887931133761440031817567781707804395880878894155984856446102672916980715689214999534829216652334108034195688472430052197975602562052992518495833752258224484102479108552938952652356386677692794153794493910778216912002119507093697124076499155637484265698537905923941139861605102485039966140343023217057549987653339913503856449983471560770999079997506498989092060140450460622190209118921409718533920057535301818582578964781008466584728936099048364123260117263148451701067995763043799724268578562080512284337169138284245776772311181750205037496645637667332407050839197380653277817514581666398514188614870826719460979117208258960175701654402783479030668583902027864201766760291122397048852631646217330091711228665280139885727071055488677427278117751878452690581420108027508655618878023955732010953507701193481729740642159558388919662901670624663943239833051596738015505179791930089232930991862470322717766018527177336475424819258511902634466510039028638101454712281059703540534254055726036003862013042424415704255330013272451364288187526889370094363622046182199394432449737316221117836797280394491015599480407194697485165715399506317707536412860294366418290646996278224489837856563127285485960952987117683334298627008434887695697302777128241492584114538034269632822336777468847168525757132060735743808303130329049812865914687813573372042615497345607554797569139204821933054599148176132412125767807890651679971696606076902799727041415320256101393114129379789225942611643855650960358770856654875852566001378994742449263301131691431546809866715022908751017003403914916418769369827321211038123071434464285634792546811928397184055325425517323125351193113067955833049784905692668972190223902320142108357088705250498307931020079634737454971229334653917870487873894862335910420794873536310628218186295290925224850954585528564776147656509886534546795109423113531223028741299142611770505122315702165687657361179540403887013109380161020841462678638418432774479363601983951224219016291205599079300372664220425068880097794454876532996842417316455375906285204580250162552129638881788291311246849827047875618669757615353629870995055684125943845675102386470770906651636054336560077428932933017338242747713179753901172707450490849252591459929205321083823016860883948146499304907404423798210473227899000906882845365320395568481771823149050710441833691848126303943292499202586996352882591613819419044355559783192550655258203107101870209299802425235280342611168859188072109486971692581188511742787467676754981650143488898350705679546272719578754912707051601633290950338180247686596154959447895660528833375860390722616354819260769359576061926190921684418265505552693939340698345302862546639631951461255014298808684057146654045854015935633826400617147994240954723732957242208801704850485512485654726781220862578677554224936245605662602776432211445245416365924597371930571668056267469138944536455030520570410794817201361587689034036250019772752669118277209470049035767059015726435778209098395418015616695033667508567488894917609864883059074315319399892901664391529451868347847634368162594974675174014799750489147559458248931312709379528060364719365572708355600413885774448608781658507737814616721618508496706747963141105215127571046386445367418641067058340556665376901817004890681520778804108460880041390321349253877326736373284790581202058827541193247040686128141560359414674852474799554689163308725650762989698423337587133684162056737361529598423924165006001864841010268940611204734022961751014230034680127663675164301321155243044826371275923155697303638826494568884740429116122863412184249205325165092589313484553941141780109122186104547954010626351898696750784185268328664918161965037004635219517775569319056973292047634805871635553172606095045210876388016173944877250363428920562502407004678942493594039324011213594136571305571444545309371767764542501640437452821119790473421060164541838990597285144752568199013769128140452587265545392946473998508258076120568463742647291481411756608889108005714317164960293889240591204138633787853072063024244543219586599289176430077452458858581567700707832513194678902978373498059973682065123388328338988725745721353917478994844943891363642573174758256511974201057528836553912706945413650422574199257862965285317788014700459949282091704659718013011411900932359689594122787257025588807821926936087726537806013245375368879831199000479448596734167519065665001843954027772834212016802469226211756594041341883181597935135813388006254114499099889959743447880615432037714359545259797484145064429329745151738629068632074323741347969836124534939012328297023356896537101127665281935012849255143648062652350610435042943512209594706241104268753436471373483956807900843665609811523070165065688081304740039954345772968986695312717611452224431963728068977298874207837456817572946955407739627951777951916148137424910804517603766223363189018709263791977454018875084277915909010673132565885357570619181683140905289359102997352686600918211616821338389092743643852344593662107619781045554496175531955875585858940988356442432907416400256995142637156335980621760498748523971756952095365081448419581561348579356927415542829655366449308122936123197883427048463508176856357074780179283872297235661636560243171057835941203634146107998666598981255315528879256691967313079191058988870834917981084830664964690448642949422001792738855696899788708838463489215326074410339914127077965751892709744354473963775892354715091693108610315682763785705210496190313080450706131436878298352110990323226363469712821338653785592348401906036758763175387498910290011275979838013013848828394650342806472397207694692788489401965494640610002817378666994941086679668356000298613297992625308713903436388196021928990596248285352358552719295391265259017151961040885331022788215469717931835318237930995798487339828171054318087204652817571377364547260414293558520679256927058876015814728112287239959069889844258886382118649564659895222011846789934787446474511599096897868583679601716523245305733216724601574242451208969829607636708328749728289073452725485062179475248826911917175030822928810063577857169086903339252867767974823745090864310298245479489905999626852185862271297644545961063146568191860889818677319009429962287152301546551150444728488338256720037444854599764773792610475307108939903352073747114746277947438115580556368375672979551097535547746625087373082256652983647904895258915420923212220725223883478035613828965915391618129893851588104785935090443449729634465973057574447931425159393156240734660404634777408866689980880028971479610188343101821153368922168679121109090601682257166495952028092648214977558597681965982875856035946621216802552596796376987214121892434873657339065154756298800985028882451358026752584436386106119840822189748919338583365963177908123221441019832562567957782927271120519642903343660996475156854207904873801398989255764048765168477083076677055846469879589044068679059506952366947788081588235590145605001155151380327593207591181270701923539880013622360106093531648431519703740243129469798343239614780540513780883769756380450793378274893573261573877735752799722619474405615702531719423691144883662512798722767176700661905177311108529948819594764984214149850270007150668920797220822042285143104792860500022016553130926954887952376183307905964342792264823569902755977489334589247145564909787779841404699916634382420308353913045789617281647665033422555785065853439590760330178316676788167358561684331240918239075710205161934519083999292340648734313177284140498825368181504698048170055925901277915881297458963684356163573351077913764619581398984235467464392657658146147831972117322559705573277918230681787317397469120213652930031697404157771603117472298869264847655309686172286424412406334593497705671555681614417865044212173077951220278216978484532931274190559979654621916638706779372723187611697405032841126908195665695382132494356488600111236083585109888856138545905386126187779112534150214177794822741597358600812161843382832076607839410935491665822557401419634632669286664159255660388641425237537072278432655355247951780024318047829746071078022889205683208370048560855662880765026262735444955586713159136328558540702949449113776390187791046576787376044359904379326372946309808024529570456268540924426356570877579474531755544768530649797823586998506539783277613343356931409146597019276731208883934889367739724202083651664255033998642257761699040798092027972245925240419368072502512434355490321769554916710724820313503989077599608418544757397606991319962240546357109092591077755061852189320652500949340322828299863895633143510891239021213604078449604340923176685406612455077936352073980760434621910925770871494326280210343067596842871933181920545232726407622814973869929448383270310128368008054113243230512837968334424326921713401224857172552838305505112165798816275815130190531747218552499288080362109926602371548611744714977793819592588799142973175268927419403535496492817839749539693799195670312027488550448074000241004742439234714664715245083265260217577770011445354697972179971580445399364349974479455602298236733610267320695452621912138522048913392932300555974985756962272001045704068896140629283668841496011816061817635801926769053514817264948407279480645854922240346359142807981083158158316195735483889464241649046350529917010361029604042782079278901423264199930148853209961071469156986765472406814651352971956459431405218907909789382834003747977816012245752592968430757093967180554181232753110643832426474437373719415702904915589799901905557426183975351984583857176567033172635532434733622134485226120030103146587387076045279102245788007965298595971881721013128831078164899488661622300855165967288807054342616319663312213311269703353132449248781056144537771931678144089542428524341368213318194763117333874936708604355290866678300933021692998108115904022698385118117500992081796625505409621254249584900641404624423482391329854869319049162535741972858100502582802154753481212682490714999080001429575281156717938845647646774913453812018871550839966786028113372475589221562728544681802254134049683300428013344070111289375348939304296817061653908176763992899330084863754016745183781090519448162702505118346174976345934849228768307757000659229512067701693002931817974881328860588410971395857938076645816533927823955289908451912729073974840571223135981228957932764042729620686132915133016459650783590385973783526699930724376216364267085728284881804875201163491059364085118409125469184493248395287556623632020617755296569640693932050874116199026836224136042492002192928153606501010188659344071875298401510097044399431207535023756854170735414120517055447475597382293187773996880603374368020383834138784430470914392918218650479542811627787146640093388582750528251257958916256245127350713704359765933849337947429710249760378894245800581546106296176289839915196181755299740695401783778387576273715172435243051051272410405739492214993327226518107624012040417630765042115787122773825454128714460387387722623169406743388293516858085454633675613720917498840834665566423076485993549839847275758290147853342600039244035196218449666713698549673907355787417373313375962049330297165101370544333997001485175550913626794611271059796225869196662552520153010095801156311837124629484669151890478911503637819502929531088239359705183772578783063904003654925740013980921810146742911711639048362105148951007519148455895947126304560101628768422382791029529025784855392893365585310486988288483925252316549342307159208236083548397885984013579212322711142967993028900144428290643693241842329931089450630952295906038698216722519351846119572893866005988928079077394646444562062381366928198121038627179434080342291808970828552724961337085777265498316072442797689412937305021660441764094317055849905825157087263611126103578733393268980000226112581144463826228182329450654901810848247682128483253433836185583002899650463050760562022821862811127465083965020008119753684617300531346054912324830190034411778373066350427454449694198240624420958774712342757572783283694033940461632486284160187388315335465285928489576562721662119207809716411390858779481543369501864254107454442884697393106744111066572790021094959801776943378775892748521859748473883474947302349887752079888773830630495260996438152868247804177577098660648497609401074525775554748390171215715396662238063622185527126052487822571252694989143489430414058206194514517069087699571579038789646792605356890527749291715499862973914148863052360970063568510873283234740568070641399619426574455996631846574522952096856101674715306957102108986978140085122227376838890250112759540673111905307472655428106347137398826395774892684607442209100714580181168866197216846364730285057483096359000396159031632199364675645575051905585456240538467161990769710658493592372976666717124030317464609262624277960962146925279000051425250789929392730367804582418606119518626988987614839471210135263651996028979334718868140701096500483394313441534816109633331307479048489026219907328635748044307274077793775720958515149705015356260857322263703979368273598305940624160444754242372693247583587772434554754114223178017890789947355240944613325419943724545881615761550255193073654552296883809632840084000648485333099605390412387656230370344394503844437306714528168463170756633428337207229102169710397030363650047048567992611664913627787269555979814072282597749974985907883377888186483646174771780549710534894997741779077549576987349842240165233991407202985295264939691747937952963733261179492025121811139439444262546784078873981225911911418298519173065209136046023413697574362435970954922028926828005923599030801979104674038202163381461810495293032512472559743976603131488642926571358750119568490671438093716364214248193631116178581290485717348222997887077710429127962123771673809095532629696753470581687705211856469723583522589465966238678719344827750395088147432417132981272343530073071692185374108319040830563752939794401680666335600538283843061407231930599132987503620783589351688975923046529941405848042865790075762288472607889861493652978952279492694543226804524976377209578963360094867034888463899256529952461898756336534678579063511640000638805685667691813333905406094377234801158354447771338690319270622702879291624963829012330108881322492136640029787146787546399538006331625019718055743702040293252989217653390769913962263690799062377123791894473393851142849388307643858739400241406030786812064404125828257271832907303625788507249720399547100562063036050356500378741659956738606250469285855936233236314428783951945131063269976634456111042769804866311442223297219854202547695744235665540511407488210000134703457326518336341828250859172778250463778836319782589302012700173947565539005762700002481411123293263557609206638294218440210067732673961679682483750859290673567355891244999499289874293079175347499613208703949950787437701188781966778141147202356373360857313486169380991455789561821344052927260943575187828435446380546891092894958867694854605651543490797082208605704906514872599999877020667176240893072291591520413158409766034764707537678435853635271026645810077365308171897702346764295184801725784816916620303106593877154057976585904098266587332166730754778121683827834233116812403521783378634069402836385781737175875852176206483582827935810636331478546138900413780337664001563020707695514498127005825991421033414922380297346726183481510811848478059674811828524357543577389680487709774221967505930139155722882435595168765071807713631280066857586676549182653900344426256617471930839765206923554408610459629847617316426812644042302939798136918899618909008445527955053865964829504481992217397330651053722088916205647741578996745870350369389028883571630816292101146448191654637959711707152951569092888125742084152785819721682899454432567471856697203633044600442019427627424898495544162881257472260274075732344702545872605888010734026192678556907874254519360399683416999381353260513671270507118759621123478199236717172225988812499111765932271115431219964725981202032578805052601568371931692371082193377440350977275445375102170654979890051025152738386283632567346593693383548563627575683598956545626835582392866627298765801294268836513832528592663115265859116669505174189581467871199389361412983142223298218051826997551887534251003102476214259644820155102295027740632992306474187624240875370235046054738081548571070809661755843118022418654047396828904234947336796812007814589751324126989546762669261696601737500860932040301570040624704769525673457650001425043388277299623176547393786803943343582056553013287946423648760961691939167462854075022872809783978817020194319151668277714840084042092287318873343990624673047395550600016379747008882100939824537851059473654941473946013264713771869271097398326538544401309954961200882828569797195322793906783447016815907434086185559638798640435638290645645053817124261983940696972343073693639579580426500108008960305168208581832734354496279959115232494304762632066865507698322567456538336428801455109327751677417436473626455568434078604688223038717386702136147304174714126155714172604793798729926117539680565303546066745772478606059675114846385237195931996437286238565922342567478840554543913226569953312570933686613112300439016056056133649354831983350542676761017536269282530105420934671828659034781977618378750879449957354187004150278770782035083744592066981278376396714758364394088234637764583186454346732986436865937811074995427756550380086017260213819400752308818321667053821053247357634546135818708337014469426856419232966200186712285524509439436286079067845959293633623856589669183115014159732993296086333946217884529724837664435292715653010489942047418131332528351341931111496966628461920525286262297969859508575653913440691815861843117546409207556843336895722772566048877008862567316832412081744793938206697015468565865689641631622072014001887818836502719437123649845858685138096168457623871016699740013160452631788298304228772330837375614353237079580650031843305973181798476600476118168963356041327999372494757626156339684555402907499172344127000145453877536669571849851015467421576487189042107168323571217155351023771442589836721368716300704843683579406999433869396550104928657429580991507774302736003633667242695363810613059552426935150946557868290122325504634090554042688170376903172159778087409521205810826632508568250861349433543932917704278852829954381205227612540205517061694080312045873406145847183946820563462002130479903783119314919562346985381073443521718201266663868054220652016476225639382948557415227275174402790868575588504768172528124590078641711308995171121765901155928273915810097573791572938902376241283288321173412223010412765328556701399192791885550589651170643816305992212394641228127802028510759963718944653043218866150663860314263214176164000982163111611755111767380755531199768387001937052465741604019302339003034729418318772274078397169369463214171111429136281893847254138169218491750676243161482096149969602953907212856080509825173803630909987683004666153843147549950623231641019028484381336423303305664478250304462465121756802136776605827710053537681499084107843513605606267997464983790509084165563556452315839075127771324563732818295719590307324596026645950489149894604054379771296296011113231662360988051070224375756230730235244159740062657624108595022390921544559470719731764814116774736110607509330317070830119317702202690239974053347773019918595182555008260990478848045514734332660743831070131028293327818264068070520329700998449450906353477053400190775319852376475210920316322810808061414802710048149706974496446262491200540890665959911738758738533302018331071457572162374422102065184382072303524979565850394196507958169482249831275007817874582214355688595552787174075896107256643910570640414878789318212518909184438077805140100556516288861575187563607598395461269285015924887177558877917215677930103501403727711271481730913418893163587617858078463039834863364046672178396312128793213318398061468200461722780790400573119560723791813648644798645539407122276680709044746629857592263362708137259214112581207954551973789251347534287302363708519283214220814851728715269529282107438072169279564904755981708899148375805300002918505873080049938231757416341854839926942494597353087985526530702799811040517531254731552653575077932018486122919432068776139929907380979628103852015686125481981294722063476781000305432126929814613054285783932663700354896074517485709941079582245888279811904217659587956759806191753088790927115107672898718795620660988652490112836946539872261678459459358436208398452634357225288340398634757438026822493236180465525905641309742000047732321908082266935461249331462053127547633886478877992709564864787438622818830754035389330192134331862978498361164200553020219396939814242935483689503469474918861003624937006382033102162855729460495180868455857877437262376309900947838138933536587987697313847128294764860675023450414600448388925624432995177766900147969818841276641462167274849091504243587027062344063377120095687055827382028077255555229544868071770226336444816443647008936203941326444995002231071294403576238491928963684344177607289679873751221735743875354074976150163062095661517316242361316990396503208419364796109849686578545145349652883957777016602391661316538009667251358530005330680753879710776955185038993949971397841137966586529331939758733254436593083549138680578459373320883164338114633912896441872132386591639995511432127014707387515599280060061321185570929674116181946890358841858811456424054972998159674579185210159553195214158715400464833406700918644930174529848377785466388896591383637513757359193090391735849889363761552947237725950007618641929777044676903836739247272165849409182097962009035791768346191462470870897853334221546574489269289896668721577870419742468108466485130358202865303013095754736491107481763177821725095324346403932156030224182476026857810362256893916947421930576170971130339999516337482411786003160029571220311221154988206651643911074242680598329917005547589145887364472332842539135132576008403804237385120134881533979450139013703630923597014942316166990769584102045045975070532679540040750274995690125141128173110881672025796001052553779555416325529867243674624740511434622418267009217853766506961613523127442497783536113032413150382943255215991197866701289154188651258804559962176349854974016025900999536714682750916375690409084335558049902032359953742694557641900070873551976088072243664813771103202816469256418485876192961303165779886047532763734951202954248057525930167456181868843851410550411005378837346335108615457304236983111936836689134358686605823917539036306440441856026586798605834258814983405758924937970506278876037434844478574424709698979582439473225292967580612542051112911285248565131117248187962130569947028769627811393331887530879641560911245297656892431834519336264109623949829158862225279505367685709184695326922660712275096437021028362951055303970630306675418254485052736140316179877090674141446386500978480329111211841839476332610551991134779407469008769079282150351284178607252944010267788296766574185243457861090470836320162152240155771659042148841891686657597196503130993542209143054510211503098997956962013155912801273192038503866745873813362356726735508113494302076819142512620837298616666398894291522836335705609022467579076606879387677909730178429070365635340304830403407199285782599399111702392348413254126757422691694610356600865842481284078982738293326560225811286518341166415282963938240994158397095021250660710024965536636592540349252279300702812000156222670577892443144921460254570184070501975235843243027747626034789341693744212730053280600794375738090499145409361954242028844088548330770740867921568879002375283228346116758076384927837144503285544126276677547181447834848329977372398112546947991082467855645680437692288832060025226642857498684849750863845919893440506130937478341237112357357618970147753606779356589261073286360111033301585695339776516878540193983616638773632422174501731681804941900222511664647410946902452153651486161318907322537870963039056054908302196582504114990675816448912980706018235949659892675558075002686449000406211436511572857655193098902153346386925755184919661490510397123982385438626838207206438637363420090472136401340044236289701450865370117931913743111090404997168276830032290503074363958771458167278605938499160296746151929794600563008454138018068714154334208655428852906851379085348428030512193793734920964936088956160202998719563376130101643877428475524653002377055400697151645970074568752015417846666394468532620742998542886323323165112207683343166148458501910715029295789209405607272659140714505179030700512144027733703197283475753607727267822923210673953795847851903735501607385121245527394884761364817149090199730543728693563803425808865866617060480646757505750372043603385263482582176088018552353697164169056847742227743302998666525751202325664950567302754852683126932730998521602854961258646985393308205003356809337369440667957869457850105682437165416365481460796878831671593123727129334775420571277644354022021436982781627530714852147386012530083090964749276000609734034134758530771463528501700352902083267578290433096004735580067577920112598773157396156558658636626052444337045278680075148329798189197784703561624035840662105624066119580938937865896687945717535831293693560098524014057569880311034273990817530428625693219408842608638665475220643469478592479261722608551608391999068568002197330926138641109754264719795746718704702761333703255163726140795824875879945595073134234854032000531802895153887119899166194690989397781315909601277849051415373030019927445298447783063004186494406932808504657205893588606516180183037946659168207622551787622587837650297956784926441033762230996637200030824355779751342679841652841257130849401461779786015081309602211778666939687253404538046443075727321951494650890167910249352072259545324609816270811913005641196050110950248665896364441612189120996163467553897452710510585885098274907569754011318198389572805974546034232776429002293708161308453967967933765773183087186181660447768933459957699712417288872355684149636217808237734093876291809883053382723352724194602149492985105640100586739324116047324338166303545848664406678263680805761758609595519767881087618281538949095386290784635549388940446337031293733025345898030383959456950591389320592176723234931356682743477131975155146606479402503345360773182540057891267369923809075710783400414246554592010500183316321404322565232818907917142438765049481447449658053048670988019121208282117364206714728897997211830716075487616327433793115258950534250908334405479993561585738559104039330388721069220395981578374262414425188247034399284446867864569730063283361790865287482533406254161035115579659702788188722712799980403480537583010047169237225044009096582561848596926606938316452782962775576877579645912426724367261426572490272694033218686560935232331952646933129341244829717575757621580148445071836355110138023626341589246682615834610347379868493132944695209724163062915240981041042570075315170447876928785646110370634604159519435055375402677655097686291783330689787598277323476558499201890103938792679332696734197016311611180674665020391308915608813247195501136799682229568872888638431065289852390456846712900202590167218069311011476117235768384853644327474411313674494621872252747368118825302902530210917832704975196981837653514160615674281530750928209834569365743190215511973624523820720427704193329490697612908466467017648909811131523918047047809911443303188899417995591483296185005236489394710514120390693369889701432538507368267247720654555648074983596128456353549794112902915670476354935523667079914959402345421730400647591958812964984970258463131357857406939121016755070563446799637790442922873558077501880507874480484297015930412991316172270230302773048449067377121388823728981943985750829486389261590099293672698174588352886155275591706112737445508873171596483473100387830917429947575865017815322546006021881176354148452592540596790567855317261997656904227518521052441527273642022364739881589084127195846270832378325443333794775859617970546635409438827295059789308019975011144872569858719102811174384962499993272303689891488040973439933506953039890618120586650627599095761599126617035878344981504505910705946506914065874795359157855262972867899394270753291592195445791525608724430928210024648789590669885580179237295911185933057623160480272215704377688173132186110325849602383776665186441015677164072874752406035006440194863002644501244620991413808292589926103947574545031811015959316191329899262467338890202404092077271812159230289633000907475003982020780829018351834416318762019564397726458884396582912879507663837115802707294046467121688526174432724841851290591196015796865732049448896053071728603541533818296642117335132988329937087904267765291033837892164112641223279731624337839151629172459695585972698665898794161895556008007644858027152554177634621525513288926650686973244841692131614978013098282269226420437312371465726521910120414884060573395750906041447125688173626775185262567705070436402632705894932599440683136455571990782176214939552454195025292667894105752856018600116319601793685132885746544631292156200193122269268803856916375883219363210439603130331067537064728955151584422229069736393733610494080549655777743850480249861684807777700347878550155964047750356175286135825984520219392221235119128003434762743226715032670335416696642486474801701747998912770395756115866404634152556507187037758950758077455482591460462891425742030639302013523681020488895318527742281915267090348275514259549726196217231013455418200833223463000902356170566773055912964813122235782529561636430187606402188170848569689337150748317833949180810774590552937284644969892048109007362555946944341619025164609025310089610322310716190757325155435605242274823054962632569263635927501916755239678870385472150377056665657575759852611761896944326962017364747433736815930434206767946082289979745662831406688621547459521089518274709915157980452522928958057068629995066124979243705926683663509748491612275107097117496505907903640956595023672840326648730352037147165365898541728988455745186123261263309720604312023511905633428501806301342937475405957267275084738172482986345577941122603736471662235765370156338664449201660132946154750465693824187289331880295152066668414698444440248925227706110402257225644620885958093499468233984899170787317587488810063319427694183987921644746405416004389952087737371437670426862196317730430106338983768265339800773593642901804841993666178676316970462115159629653503859086822027235651066981775636808859129376201850974625149335298477582551270002384138242131660412232631548129598620591761677291999594556883784100144452486098099837819939655344177452608018565844993432704857223935269362680778017331975511497017945955247576540452377244603949194938668536634653296017400649696151730129261747110836583003756485087648837324777659389007613178557872943405742094564786632568114760834223874081805194678983721379067041286203048205004937114780693341330615292949274714735779567598146293979426455982825569282039798748411465333909583675104745415562763704070344500936855556422151062863714032355789570834905848341697054474982257919331575767007568734971610186734706953263821560184310377910319199320172235075462092000724180929511456260225131340096978099465557383711510287481088100361710310705363417419870868068316074544025704375042623023341468540215492885793486187900679459922024189598795146387946569022880974408548567790216705936423291903286365241791972421349552979454768662846430431431053726826087999447490750926990546360103112840258796756134417727298598058638683656955207356517449480257222228913228995011414212093011968687657961674664282652942670745814218415350686168420814887681707475227544953748225795791156806712967535630752544728591017173404905175353523967155232340992661473858718125397851392978317088479511774803199824561798497063390100085155596931755427396803581829558744020300498981114441522950748116157731009707451080194131504844184680032033852917219710652338740668214282707642725688686958988599618361686417194841796518426540108510602885745543757731541115192189606121586157684229572606493514287885776014139372742063039200782421405761765174733127178124459606302660552691747825250768717325820851780239669405673719233355601937264327144523395352161284132947711676476917229776310088054140811322972405965081878382078948255512391124311681923224140745378659770667303131457992085709084726316879947101524798267033689034966693716950149536402878611172715173918096317821642492873360355399039177949302077819164413043426069676771802559593056764795610255388806021543775052733359371856396209097945734991062175511715205749964692860578031289799403334766689087159587691107040096026273670168910124362223261179599959932766198809467054129742737116028861772906698973271917180212005331472579004538464737807235229145652159989414662598583708792664518364618070399194261920728222286184224492696487611958732030492572103626154951097062187015141490695100369014217378733680889794790415654598499463450463607972383232128225703461225665750419077136505287154183767534317732070037623062623859276138313512768560283478628194574721524188230672895763127518756786380709248333267799036904837607721486660125358617342452878819780126018150925442462443440260299766360044839455415592859880510254151609144784477345446964495049708631380388829395663829316384197021347981089390479683866243767263372410214274742237510581808467730334454116028301059184888224655919457109495043338403297719417103248293208426724890308192385822996946699957639261085272917404789917965479856308556466632966562441988760628739004450535018996322125064530026342288041019677664347888778378200519243149818812086794663600027905675252145952982002774130719962072509907288451180039479566577909263581501392405168588336088835562201072266363445065980494904808666621910272590399015753953701328756331891087685068576098579689144555148831844396393716370402020322484725011316138950869164589703479445888144409584441922967306857966670348457410779475710530621004491249029551797150498119739253126400427265983273599664582903866177471557756699479365121429691668220518223135980461502359084395554769112984954560151362746658982036608943834247817669026889443206075166564023602344111872651860552570969000917367751701842930954737280886372254363289887600827818546268040081249059203029542757278384218460822897886775305283289213679717379797724027513052458998424716117442566179293773343734710335180332194338162836695646594849833281688149746459067947254633182819578557639291329338573358379245884632545233067524324552919823591108708082443898479236234985878171481547065143233798130164649358628271796407992167768004603953821608153039946177792977375966524301168946009054651840587836221823085973742786057534448974223416221666884082695687579829577908159743169426935326307987522184923351704365092837847308547992871397159540441202099340936102440374074414921082325462938005654404548663014192136001547481808505774951863164395191256430304631086878830084713385865030424758886289965253770429850783826285189689923730574658199216983590245962424944957204351185092953310288834303468667990969841979089766467507888027436751354003621438782930884809784215874248721696381969302070663661376052924601203274495813533955981174847976821089171467973734372676082490826988303545937343439745953773425969285986631691680107089749787051677666602238856142408315889729185336463905300803641107956514269451672568878445291696667959988780841743743075399888020220886628195410816238820495737552898740716736665120200037289861749465192371644690313249960415176451691972024484855284313837158012381568067443833768745707712835319699395519087622667093939773372056221718891723449202640219041485242440427868238902460472420274839430406324156106586703018343961306779910053395944325144336414969446499792927252696711837566678186431643740041192519319737754652107025621961661524162071729271171043955611171982471407900223160585671955601926711945294598036975655099027145666545523561792244411410327627476880411328409833515425823137008427125452049937000279721568549673558228912671848696013631866258886199073208158108576278937816365607906646377420426465392675429379464080143632281407063322214824759831123414911791153643970711057577259915917468661327229195060400748297736161635685726636568848249663223778724278094011453391224339967091005151590709092401689519303674674280068037825561023888748440800369067034941337442248936308317933247447095018695398035425301948120801705140759782849680974041081449190624099282414411164141160219712792234178905659665226048475604044647568770456364902321477197325947649998104594097990259413799175466763379677045429557084881960634663276554460232997747042570004005353477358074043814981998530548117207267905440456280299803669640491779289256764998751916676841828803483250469763507579736870653671287555092263688870681658844127129847733028816803804068229216867650191283484773219174333555207484421086388140165423360634886735809132909304797181054407006285725849388671554408718753493818031596443735353223185526345547280591379248556908948688041821402290102814036728383847238127660244385094131256649187332061674186072505444020980588176526621361780418112964093583308518696926201806812502003729597560277694854293439318506526977922535771398485077801124474600785588012585271438207718286245835981917367688377658992901314635526656116650556221123322355745772794116797099930393782939807529492123532245111903911157572675294949188972461724033974106001333391574632061530077705960762453341922377386736227020179490705847471815104135242606471747385732661423697443378665286043433223246651543563486193371520787362930861840657568760822666360193544500269958998399023087417781380905209585916952208843212644031921844534936578625599367528681858939857131829774977696539590289099678183504291194606103271518559886524912322228133846079659288487447984320447168886019591681306211820084892588128102149711177538579721174530299375891523492570895113863562416851457419149296446564949249385819813674153971982665594275602744544230511216840656677855718352048145082405066978430457281947319344574011670547696903404481213336704670635984236246625051175919019721633905803168372933634080506598098941821542159249181171565066481125526049831231781681246037474298508487346351175789442704309699963930799485815403860373933871587467220492607321291607390396804720623911418578520350151738882133195676476045916206027300933025582863215761913527281104985668890623419542648439261128250492784064520522667120374589118039403309181035705413199698582362646835670251156247748529208011133118712414497156921332923948420962396810639102721897203031446283521581241018831172592002590047255982940422032827669048348794013885008268400531601444898853921192785426956343706815006158556511050629677810726020796866961344883069363802774621377203489256553939316826939958522794775841372837653137336524186224607114049742632512660025810537885260237743634611975817497885103721953188827123836877466312796741819137336978679002860873841773330813511245701129587035651591793005819259027394530804616495677847303715037899647322175538271667265440641207056365642318202752909204624544460012595614511329518043257701050114992957563490439476388112851799204588037358737613124583128258629243882700141670230672011382953333706041238147153145101351850992449513466613431184943474468835300052876682395786508513867817610511355633250282154293573692583953902714669421942086420995242909211535705846581238614754762739813956376953723975748564728938143562199949473478600676754283051517580474436907342238854858306679856700552550899927956434744263755635376282975207772978471392178647818086466214586613418377913821959289985485625160791578401082632241018347508646639596539586451086884102753689893526371737497226302315466670037895543997209436535179241841352364546369585616657461993698542913691812450872734726404802000256347366265446889054076847555051273326901248791936358399269262822139992466147958585925579698952089850799984174093150174749089825947580494684958031532069666563664266601403874538518910314705671448117232553363084173756456006909824048242935671601253888824615922410847434889704022916123654609082421154450871490720308645773121998598130345876066537812960335985498979060308204039040038994028868238504483242401630814398779164984753564294367910996811678244626740817562123799778422729286390719921561148865271353842483991345182676484420261001045492226546443818355434193079074163497209689143085010052976778738638314276853270281126603205089181732642146271842632439006697400655633470469852658488316288122396619106790894504386635044227635433819006163387951416249879925049621910892543155171662426096275443612701962631957223111317426919284594593769175354137796742142790188579899122211512477383728490477948947001337073312086354355245776378577452312755912121847756569513400326375999992390923639174690228794695834188221823765673804259022079813407019943366236015489338189582956553818675090115997523063544635876694952924565570911649518380005625394739652432442266490106232752074723658093609624317308050263310478998049389874153806820392320008645547957333756023578665866459456763096796637060297073968294627521493453115267867790298847074422441622556578206683909137006835384340127364255402355667105640077014996647780168230060510230252050823462290971991643635564317700700620614941925984834693094080578596931356905181665134886528805993453100220610339400230713352199961872024410608982360725099142421742817777563874057901219308389183347533454644674328390049267143131848264286780171894957888525320524643760793468575254945689412183769877278216000984984558558848786849893106240353078666837682754069889495625273060957650876907371022845039435959406937382793657002401645106082356691295710124189251920913429376950898122039103524806892786349527893177395068929105254849029777670222540811030790393421243767282389672879053850466380074800558952353296077543194075148740025445351370280244469733501308847639186675278820194174187397692508533822872325261928932300263919118119262379735315369829239170678718340047959311026676053886531792682004044170237917221645306555961705484522039386829320668528594299190755012233512899471008919978388522467219143478620103631059400494945469144772163445657166704499189295999355943887717186226004952538637092691963827404727528356965935464432729745962794254822612043913283618003987261513021895232956119010333864019735937917605538686463055013213629637492528549744184936664829857493056187011745621285841566244205676523495903121949225084417404215083111060796499073038609260171323567228706681159789185493166729795527320794381557520671097246907374206321397304587423132160567743022613222995599964446538049629722653239733749891828077748620670918012167378405014768597050517605027918678307253568920096498544769325168220798607417776213210372558946337001996363186372312903382928806143681307346919056967886734084425132955738480142338868337247410543172117553399818769596270069487749510398356022337452218172941805014950041678399656916918789408860438740615859174294776667837046358560332044073244115537834394483740951501793585567221800070070441911039054282198568887846210301967403254623073394850263661196788298462947784240572039581772075759015531037381558804217684119405209863452400265301225427093620758529214390513030506915303309283602005596648400799100335676859384434006679764258550480744689114399626573155202482449750930793335614316093061382265603828572094202963246501473024129663682049303517396835510587883031629514845560215066639346055947422112613120862774122307389487415471869991067663976572250865079230548017863169229486434534079307884199226318329719232432748258415977716470517022242886081730521288214248704751789965639839310321437145635067260235466977220490927414231212240438547002986708548860304891430126830597863783451536061774119437920805221230795425290836216823522915224167338927186392220579162083806600036019027176035196309087067397017222240100013172877121522197466499813614039548285999132480528344642822644014084028017244121175830310667316537245225380043255559714258716840631992914935465861644680039086362933625813069438301306319006062248436762047666488314863740542459870946667621756548126648480995381098641205948936300810457411217411546843146878413766009641513994006382494030285489802647080806737754934489471515599712695524483666915243692202212446211954831858434374707478732069152056837684337610901084746153333721971521944221008297603220544251689720209918917426612815694987900958110959669262361314366745699901855616612257333436954932126658319124329210657358502126874750237600588797694426595219632418462015326130753852873010886943964642258726855371236043580939996618457501548932456695236632356549944418139574998752994876407407142189196561890526823161255026775277372821120465595573355482031376249513549736201169560938751331414691689317939524767361267830195397174023607855935775337831459896740059777758506695836622885657631449601166801594717715705503579117903662917878063121954753361627758127532172476040128416785402114358138504594942379367934980532314121341604035911139280776548297548087969362319072925874572863291100409112438449386573803521977607762408744169704392850321651065309553337918091206864526944994380616412483375035487738902033437249622031148745322772839600639770611843808480256076627245827427240849761819228346954499588477672140777283629851272380144984843967226512119405810287186123586153296361827783120120532186605086625653903561907779676135080651275727744255079558894533460849861583192410115345642820596312033271787070060627482616036940471706094340288722298153042016979677695863755388549364875298086916888944664378494957570585397688535373898978846869073652744544284355899654347410351692868206589147363353531406282458650778147585211163237437725956286767792303511496992604760770712135766583588668212126277911161370527342250179611652700741793492298894775638444950996896572401875098303508563649618120727800469138022949462552970773176155919815633983905638416195890935021681463445226431706175040128562697808126999896866753379740762801251274248586661287140568614898079197440398961574967414446748729382845035037756997271383257674803537125751600465971523357849853415878872291124323651369128857801096376302150009672165875774466968745413561450969215053370750551702007831002267042296428451643031130470268247007212660701312557117476171863118229573032587125187452558551690021155082439040190689699327568986386012975994766719528541256145411084851250067795375406151104082342932086379796416321373436600439470162139885094755811315391165517401521443553941271963141441002303400205670678270665418306413617888084958537227500360067001951289030030828047349784273825882380660789115803924851203220439007141817949328701437016297137481080727625864524455010605893629666311927243580381944164597812039582281807558169004304928981330966019071810373437316541779438817373669820922618040904235788312545256634468952735581710975835130197033504431388675646070951583409922428972532982232155038701804637537968711183448031638027439933865548420958631278732560120159541455885791492461582042312653411322784423995677661397997998945047186377421811669552895758271075385553187288660102605731248148380558001801264618745672556271453664021224483612097840949985916942727923642968272459972283978342974073247541387187647049343214182972457044447622651200825750729517797861657606480145518673316185708022098974048905911233354797418488662224722130695372606135121051718663448627131041773330750834694310306397997983688423625520289950138734435276867180760887620368742631582936964760278705490434158664964195612796723828656279911192889156921274866682429964658142627241311426113924435474867088986988164579112492493422951351849209503502641300927363993747231698993410080469922504135632203586379897138077701387595124891460257929642974297340195550250213480928051920442045445998690562548194938202791951951948578226110279967210307540757357177495877610208777676327571240058258637869858108701220886812905629577169308797934364603396705012819081397633342885615128465115326997350299470599911909565320741225685754716424222470131679218089082142470304685054157198934640930247453128189173691822751786413756980840153720977471146003904254329190868594198176716043831272425976901908801944087561816149064781507966414360886832365589640432906948905084324252609851927612358974884325673644900781791608678237374829199934196814757387923759941861317296226559762338239326056658565687836081815720170552289130576261128723740439174288410459786904459089309951392366059531294366970558921713175392250276530812388309784686950612467456974170782516288954393984725482930476956981237207252015476731661251665338708068629833682461216655953701824787864877321196013575580710660875866358782865531035218880757908857481568288540390672413547311432362449874567023975126701476216550453508795565835235925956040070102603195999886674187830646693695673608083781266830695907176383490261098353507209397802009965697083822543847263986011109736384141854239874018839875145403772590543008303193800593105609645803017788764643095204397190041593575639376623670883823640299817263104862918882120621170623513770823417377512389302531900116560035075473706626468867738249234414983411728527603180548155702635113358334884016567159864698630715641493546949899442144583728588387200355680752207768712651619687468196284844410311351693194834349587230088420294654512015417998017509376288548179408316783782950643184467584696555508326664656201095298831666014840799423908488923488420754115835468922376190220037035455333938439270017383990749650234020093325101662058640285472637900379914570411478914188322048917992637050608677206638214236058352098802240966547372738944439959295338535209638988656172389168398119357398540991911941938276483547450140826622278178679040186756641555967105472406271724058042379388498263531299610324577428892413140209116510121458413270836487957549336439328038800283967225384558756887271102885140206468293813109359081857122820932698135385920290816352470422715450279169408289156188823592028971348109316960117914230808825032897080496169838399197175163405480690561352961439809348088367401521766966038561565488966688572203904563931739276809443475249511065152199963418929619911698186386494030989590976429856220387768966640773332748093123730677420076513152573670658938061131997537912472098803668968567124911692286635936819380259448287588441479133673128310201275801809249550132098926947442568203226209241018693158989545784183003435888276978869861089973411483492634815421843702629308043696932107147192069085479476403555272336126027077589801253339574476443109503586804073169476650310035100504288998366428214215377320593805693566008137158616894156979645800679387998981721620469992003722443787034760183718020711262532997360934925180353764782517295196752959848480980236171033755817910756375881214870312975249598651926426237307952534160780438822666460835884153264812261890650154625247453899833170627838049832882111075767708249945075782147275351755355215008653495368185140691013440048114213892563142986945687446755741250245760626583044272490883073783034201195733555351475784932894902614251234021391429088292173849569407055411871056377758983419180020768042306943047678359073315092579761210520508315709507880543651713407947011791416613668755895296073675969030591750355928475901557645183646869014884655631082806990966881373680140504264938565911490548711368075966444882178793409183031863773472109747056842176304972107395837345423021726635309079819360833741733501271167140881595296843289372173422026909395254266743797716525010065810638607814198126156337621345327119692821194226446995555588912891604987032756100772697826565090383084294759853036715716591062123324810423940209127818235468572321021929092033023796928972149246753602206441895668435883927706140613172999526141556009569226388545852251622918553720495764897197275600667234414747285009346119344772885767058298333999453962700629923991099257674469422671668964466807742176900722698071962948085734976398452466829656564350897163060559174835270102154985018820185349904649153732392271734358913295648398831659079658303201977428011921053539158288860255816673837884185416543407418504379116385129181685322307105092427151006948688724620811409534184476028024338711056554254304384935900735858023523130106767119995471603435765109832632365782983044346888756400304434460686993683667825795364566095090608531372693739232854271216854096387566510610658380119563983916738358336475101962207317795116382888132039985043013197676416336344979920629090516780801225644505935325822949940200023474178213860296042110288125610607203965221206150718448205609927847786513882623958070059702047194846094920219088670844401752815440470939694815732040157568252270562773884248268378285455726072146218337128954906697979159967074390070946852885488559103187535406486536948911027858583132328288277942445467412242651338668511642310188979252663382437571843715478407522473751343838884429126717219236833006968670856815774352350174871818834833557584606416454274358414275508832835532370153693285939963598997551226870020687459235627337523952049852623098746841057321320867958455036439427212904497067563896631659261849161746273141410873446257860150074346645059171339836476974811874579458243498641312248555162441526655904260261313150330689339400322750258270001374220878404787231776199904510524609285319407465149562658923901425959493969153999592177677282411754051820135576989618276141524255839079104940246967592323688546404427287503927298356843075158502780835989326739277976748797532105067699256685708697148261629041363128760117413697941972911388823281509462491199943600832570001809132709491825153750656338996133593302445392908222611174209332029247590958605166531439023465430457403110767459665414626244693062870310302691734949878053465169230137435095200565144995259234533704674129712550115589450767893536449078412207963175874597151186064000985236304631218346964191691977721882362193773967015321078772768522820561019853001745787265695307443116857517681275863672067159487670603510529377517489002372543605553006545450512042116620818983744737406960508988907733136043535911458987578973371122089073996623417092822053639160765162699510285442642239954409054527007232390143208495869088738671388205017347047087713473062670916966450864539017685340227411093438761892924501575960266633045982313937775003275225491752217830871483991937014608786034700209349130340073914867134488329287885373000012636631596335529647707638216154515508621966714617278597055881169141754682987715360423561444382346151349316074334964446985984881508241692900786085674491638720109924154101574150262721216341174237556717517977835589901482896554763117198541701899811371364632893888121528230688245715218483289507873368251578187434970799816520237250646059072365446827880949931073180805161239518665650111691931465098565543690205399891744079300838099520988875840592740018561532994384137868761194803024993969391791424064561567762970644130645290474427315000251799071175705233472629973991720561907034350129039382162647573341915496981707225638961748552882113106470056691858499850163061219428142079785933193644097234031378136315430065096676068259285802515868583139332154503850853009417148722640923018259892329434645618386054616720035846913091575305822364101450176750820183113210314978934503400330653441348343448995136207683610003358257971776536644102065779687541007950530844140636610853390517927846324354915897577437403121265600141522924777611534806042272006236820306188575991684860851203159295365679279754486513631374637825452172485701090312963801158976076300805277921402789218024655206635149516820328329195070501466754360459999038135942123113919792171042916966583361592314834311892068760658916765560827536628965052181968659861150085431461273940592156889414294506216242180133537300300938177041486826743841830497716285504330093392015521585209910622182272076079646359304803710325208482305219603672985654896640823366159770676500942873624374746019920974134453179947142471526117811581035173479944188308382811232487729588052618538165279507675961441816591473679124787568073448312748601185119526629134287493100095019188701539454884214512857654384594135839139085631778599527682436225346745232123132025537930037923562014606812745283915307635857177310922512778561371702175533902529912270951408631155557688645645934813516402207673581246569424883947040331294785901436362147934250925970796583972389790764764360475761558504034000787923196095809688467378609566703274835780307096619741224112790063001161674990375128836967725402921041726105230837911672518541844901264610766376166742278493463072829337205172866356120251860365341394796392352068845827679859282250024168072433314019784218054933799982615129773221899926884254959820595905244324501302850016994629291887703998427509584931024789199061623567900110241943871118152582399633887115049715540724144898976974582774116621616659779103172599769835274340237311298437190658920041395975137003704330648650160237921795783232650479649812233108161360300959340609499202243541894528938952349489461363021652898586177985510671438443428193578880937943955943301926427193103208685013395776896446804826545266512760696569130853249176528864972350693808427751626210040412282862936863688186711605834443430328667983878661423394034707804637014851216732704434698073667906802061403418349953794219896164975642513120843448681307868352015100391603941125326775542651900559716169088682822554606932269921525015494152590807773436965870616464121587265047678978158464810940806495667392912653195004045916058448685003136748513027980981910758034770291174723540280158500360919901622759149221918933673335215183227207344389048286127013764943989300001049476194285802539171275836710454866273958952745043989808364990221554558697317735330082502025412041945618050805738355494712496092975545773248802983323745703480960491685258001706087356597053369440452403165732602908644460069188909072042166489867919013431622249172135798030394208603795032913247557714893070675492769290620637493872393823196202677695211007537857743254764628242608790629315801744088301494469223689052606559971913612901277787730303065874946943001928193873449370036017560377207833020464735558469810815517641879806608258120655468263600872920867193245699603402788950790441123934940170679561591672611112036679203596328926033904220662690664055257345666338414646621814871483262842896443087253028820823805154784282828156463248505629750596653923631912902265951096266106636739746160895923029228860008875197048556941089898915013695351399689799590381922275948234711781864451805712777773211674604080765345004124297622294683283724476780390093910329024839744380625258672871975314885216495909329126496336791349119420056485444845135432520244399723376453631038010297248682645039456652080485521789510469684426643364759344306871839580598495675672349131576353292407185185530755436984914853383757601887351878113893488045534082649882205758975919949016809023728139966752289412481207769043719526807779383655327815112104024652548645406978130393818701504936834684190303139340935225309203608519632404472273873828968543155834070455613661670915537956403813636717525386458724452035881400459116218875318436561820544899236958827805712811642302598122316683962601791416847221070112477287116241283674518182951085534515834130090872075141397909308755408341477863844124114215126443743808105089125744317857538756764104185203846582919798350508723334504484239902040007250685524106391047613255057655771109143020481271360284039214455823184529209310577728747603393250707077570971149204246597615524520128067990751703574615856000046569093103522986818681836819657358352469877239264789378002677293142218736932414856866728030631110970505072093703246836784780516219919022038643016283834710097442973644686994494478874752645873256852852274566683530867934516260083511209157852231056677793571335251087884725694385492162039391281652330387270826758760836162183944702257515787078834054186404282988690521407566204971486002938474429878211106050787398156433238558585111884306812088802754802614420614818116282205436858506126530421136639480760681521790037401950836884920915863264290593609735677945928985875520728064127995575596410587135476279519379752424018185491533734104230473758257497111151822401694118090293295712625847323489746580753330225976753614555405861936699104098424832602119332349393323536439987379470955113475607786594937535490573346885315447566960870574680941167427419079572412487475787085824194475404418259913001134309389676995493834182203858362767044554981332243781437627042403394553603981620999590029544969446927548230903974810880602970131082983283223711841763156512759674730067675167061757247327727747497106832893745477565362312943253877944536719154218435314913073607784051992440043911577507232854599015444057693748774905910484496928909382216146092478234097516460905715022304305006347375591112193116627115687273973904486337303944788475892452575246137461350228632103775824929240588802353198267480379441970522200317482001363642732421924471234826446158538606288876009996564185882391357400207469166215148222232542376998296113717364268139839118463493216768870659234933352680673819812787389354239185519865962722304040684692415951557953441225087697840098437666536582715513175955506559588776322104330922562685277478497456147722045877597643138951020926991144474292825761300035712114557903426031566439340584852161763717923210554750426157231031545981881399310011812402162102303236955020720417954362514554702282159246002238898272103181037438923644863933112795234315959200525753009211016712071453841099114721022688236015842583300358496856125653358573758073288503724212564231377443859123945638453008013895065219399519927579160168659676573467256306474205658889999136923877482450943615321914844712224930522506393324204427268541393838489776423239769062641187739666807732127373459643676907609750750357818495197225772242900708219299007522809735692191712533677631109546529168473243559414348955206704863941552897832674343526286204703575793330803090670312260855227007941621245368280961679538628422792693313147813550589756403043307244435516434549504925460733736827763656361019678839426252393731563142590515778519526209286121339426798180202003986140925867754927233137963653016681092069045832623841901847532097336870180417036136783712443567662337871016002972812239577931481652774713949574790343107616950394607785556272785674123147848301573438928207797066500166078434650436572494800035782415799690155455699812860689543522908108697796839189832202986498417787279318772017601397144519319376685533685806527947208342233629439640544211969283905670638542356322882589550768032879507111040581759396590796879541392561977240245555102979955996834160914287951385090234694023621209786693858659383743718351295859844509880745377455013025674360626520463967495460235377594295678310519816704055265791949182287202045408091498122810780126631245884240718663617087509085958733617928801007793365004339965815862070283638316789392167824465185311784446965137579243799393183282266198927707116285938922198285748136576521399778638934947158268520487096711528290772979272387295550778666940336057036878913982169034674605908430389928623810658510715248052864675459799011569345561345208841110313451809075162629707337728807828423639473650792851419539396178198085854453854292313692950713293540547860053485648783428077668055538144751138953694531172364716620770075674816036270694197342540464760391256056954411024442894374816207291534614731465406206083572894531130898722512517216955716622083759119764240268309792654560999789774686537009532067062005890794959522252740441044343760719255422488455922596050214817366349629204725232847958119567027222915707641885999729020902334269307309737996721648107297984042330049196293706606703579895371946040177714611557294392288895205096980679045766141374225651536278803739041786887001292706535353256838136884953031431968624729542885677797393342808621872384346773948611179282659648334949437619326754409140160934866986564096530257531745901922591621284591839577057033869205434080516349555593158968777042851989681045475798287568197193167865082334166181646721940723898122681753415003167644041009057770296763688332298371551093907905856012446254524854550969824762581465232332920954116149994478595407425016626435252942903933610857554508157430752650590414841753801074702555804154896528239945570401852408349434160702475736453056961437837835911368505583468856281184903746449300153829750186318384241540849003718914334970327810769071749768482306748542317501298490525712471712201964941325882966414028617296393672047035848141717674972265977903542562645541312969240397462687824883607098165712422457886360043770290180054280048512908453710374340132066944714524433307379144408813725514187836964843609610851932467286780350398992533373272913784903484986262310060319635724926397386451935799728970818865358694055587387344292553086538991535599781939615354788366859438408624358537797403685986218563822168562479261749989469481996275502271422136556570556984328943535891514018366583105741270454332593030260862980573500632573759436204448670087351473696300300309274593981228713782344822417423191010448888816304923891858826391579575548534713673383268241176266544098081120665093003117307870640093107106638866539825319029373340350480529410722299677020285112388302074924477162903591174641516033187111989882184676903489969491756787833307738795465206042027777071334714035960868804456262149097269742587233440881235520163750308038459533141093358202448970055177049872031451001393022704610746353668878400227406366768228794160010062265532501967702780180177672593004977574700400893955083114119790791101556745762937400982230668676428041214880419545007805419621070355471884271722565885890720658366766348860328991145375001093549207650105058161383464777079563895455074165950751078907766037716811369816713551682415482758892896619503311617807331460475274431225864292701628422097401137347277316721543329234197369788090371341256809845277894053567577496958928342527887541036235284877635337719100096000533068731327914325689790807023902600642867058265373488422959389840631969568393560620896373693305647048900605067930640308509810855352004042151545978431060683270266202244559594757012676250023908456316599354854353671440657039843889243478186487789680473942790913556562440279107018695504944854017634364001125610459220309289197083831832641167836200766389770072602112398500951028950067833369256615694240413402220703199659007631699834304246018353026523350130701025652400531026475113333027803145924402110621601318751723466845670812762502969021669823205816636836421300902702905509886314382611375954049847805813147113538032474100326825082730837761650502749175439969949500595405245005193461439474959727420043656340849807688758699313860677095775895359571391801590191125205298970274072201699982406207233993906462651196770677559500509604229302773292897373111974933129269620856366672999439902983567866027303992020634010907125088910868976836921358887418385380558460873068385018791808761470989328828256267303268053040854599686659193906365518630074355585609565568680591171311443903284379996771772379616197155026608950333743068606772471584562736515953897182962944853460184253676769614968881688963678288323167968877127717757563649677733168647739525199142781383658650147529152773636516241805450648519024795738211985949016999023404136236026317101518100541871689084262749884315806327357149558163643135154860389035532723658271902251431478761580519146723916940444984949825536228612133266953940484111026717392381762325909619308931378756193467871426879970459804879757324237127766889480147253710655296096816776111004468377192423024193732527237459561205324400789576793880204739251671685682696764132772100121811100227395543126916444089697145912711998371885881414331616655835918952453097833609793884761628469101045259837863697601729015835027928124932292820569014522831881706144191554321466947814761019378301513971774227009850818803698547298807567060641948529071995759229356427024929334816259169623918664011229376567865276526507486148406532573568045863884154270073161794666444746739037440215118523271727900539326721149868015661626606794410607022510036104298155896890627055862670460083243524352107308819843296194784059681003854951493164721864997892999996687692344635149723785985787311050446673748567279038784377320650851061331103369145151842018466002941042451719389363320980311102672133101937445163421422322924093791160149935708510388700357290261626925846995129850948312548083608410903615176832716932610542135738555252909863324172660573442526009170359631713252951142848513774667394026982157827881733433984774225551764055531921766678786353686316269958944216152102060399708378111855461376819735018089348160152594947663468725444597985722008424675397209526487968458846061330901646872617156037916704000859125432350166131934752477529611684297508468451136502072396726640844314035795136964971787588253233176865539573894383960436781872323784108549181036364372788433326527213259567673483396395129512865895317911484991316395450037438313524824197987753371611984800161325140379661773299346874660814126635199950340679657540579165843566301483314599402013840413494023128192993109166462045265529407729105250634042022570676257430940663393075238103656177841468413526008163582465655859016813918013734490734601368189278417966583463187854547088243571559684129286393273347440090845358687944361356358005273057966461050200460873495417526101017019799782842039647229813704004744565604647526816806334803253895443388966875134901681611622019246430895756556778668217277457353690450066375403884480994887609578535381814392652843849125109909868640168446442765461448793988710001975126133087965311473788000607919758840277358789139453503425711437608700384794781173619409402841666539881846477957984143402169796575631861766373661228964695190120610011223479982548671808863113854767201553600473541230034105921076200094038234750226516553089835792629557974012831212252796578874199900664192405828530807956709507458249186762956104566991754097246363405205854688641602118601050073643187387198112438295971331377476440821581503690269218074527410162541124990176367215226870245626345835153331235551309105636675924782380875973545445739750806340110816230130660501497649020891677917199195857419150528555539432993685623691517016463321791614535177318247261603336162848671714638596892443360412310109876670886152520888618746387090090573365877846645199346062915296217356715580532398971406355660894623711220529900320920283084405871038122018279491244800422025880868176360410762612591720290692571384790411174272119262454794890602538714629851802298833268890615556481204759735909668239328236290773393738750284451174569175759093451189357150011179815980093674476581080720924088976025115861549093902074597342468922200438724483057338969069139531140364003034632422676163776556643766624983387120167888975532395210601822643687545087904521564440709086875661914332922479416866111431858338522413317422505664783596262286166797164624787685762783566596235849329663073623236788781995722123765471993989505761541409618217178353635752693721510145219195770572106413037199177086485791518392769280431165033684896993271009146255990521299091778111003454413694433001451104652895467328789991134584364663942024522590436957266909303087536244708280019553806565314923404041680422143067543932783471036631037667604260846157653921993959393953233156694866496605196936995098719840732557525253411858271903686682068432484336597010225771728192917264757952483535706290218014640947111528387886131684477529566553366836355867658144498100005351107345302426595752212218941251629450680156314240422977372369209283700033533064272133452508008507228730400163832422461528924940104382821154274103808593190701347155099071541010513066565400401876963906243244204233920502778639571675761118994201304281465976132287735670872831588793643314175087051539421886880033644265538655794677061010716395909849357496950771556863714008112110732229944010260313246805305871552421197971073101622627460265910743472595346760535386525763049885656437362459269676865889739248342436041318823592172030957971630638744199416458122765208386096537859924982145400465377413561061278666157306136967210323974617500354440502976871333816354031643346576029628233524952726849904551141153113562273374800312068255427229942459614439307408070828276398720054272110622918187933205072569585063667693689247839169894745056111763604477843735019341479370166178650248584720349112310877786597148374098463443278620838417687747014894790501436735230501067765594752600824718014878346448521857628642486306724974916846985615520276274085946797447984872036468015235319541495444849371463059273509043131675200744033294638987352033323662317501056039709991874405082169874724644709716606239910205810994111683375323224545833244725394994379134557151683354395634851509723385540082875247447199902878987250685211389230879338582998502789046768219294503962855375881327707338405058794657816139977347399106706849822480128161086565113225671674320333363334533677323486077973170600640878613741601383180104037864913420825097353234118490069900327627232150778721039971948080661903590030953916498915478333053078557797800886872765346749265871480441049041685168798840486077305434233642093849165202709009930368479374255463697246907621664831015830259992163536020810409497305666088033335701672160906292769576416970980810040266032739572583625283899088606272631648301414410326539218485117690189927744149106726384646567841158764493381300424719467195836035781885237551320916179327260975078593392137153006029280928447171347527021126262095742436894725569692228572032975311125275745422424655136961614253628526693214304950283459180310014003049009307752595235254316308423667427161946745079449731854193197848812906963861307231849324904658072888367571356540467935979538779128388694614302135267614867977961080747053962080200218666102123964364852382040019554031025515336674529373248415942881274768757517468533078546217086792898889334174391126556553635373826895089366472875397235205141270717248336700114787233458759140980170706187511401102553936659544839200367212413295864905406772026977916303760330844033246316293002421653345845631836893646148314386574827665652914911152291230449018534369715095372713998672262226134863821311317297687862659407953922836924929292259652187880730468200107038661936731581960609438808862510695949787342299891930490462477377760259748689944939589516207003449228816102575107529042990062132066887927333053874146509537533741497115815880552228519463553797620002874162718693853559840554587847358399381459195789193940333905088905037983828865820122294936773014780332858197839317672922983155563200384077936906853089638403233282090909259155025890485504753305708105636905293763579650468541310520478543523335279371188550902230704195294818634949823570477201596643158100949651988500075555854920966358132902965327588245348219336594339435744411362669304286709052804503596105229914282421421043540704663009554923635535063101523353134435376960663443977478275640970664801546318112961352690328212064653158995623652669972551255618836924448437374019867736543208804619643299511254472242372433060702978598728117707424968420274200607527378924931147987066368906098823490504566271047843609832788964240610846038503811188289854184607410547810434781234620126572174335476793369510314494368950730739580873047224766750871683739242751395398031196237181006714190704766319208594627054352542927954606789590787275468383161684566659345438938248500591251177761866576831852094409372834466806520958525697937472024742928501594076913984358055895650894456771281880092386094843586298761686532842209108080457270563304905729082371744037209113394610215057475415083649851497235002698358156641643481097969690880902764991036066793264308846837132314252473787264542672576580131952938457558123720365521605198972130398702880301765297354206425747328911353862826935028469161937594648241742945446997810730895637751910525547434622900814486608963271198671082417319449514825554238128577130979972444763768012098412532000615203961097044493282475685547289004857228255511269149879200126809510906052007334550778989435183972839796429122459890908740004224890725009731829806247076032232364142950738769703720979598205779212529223365618654897209871788276166718326596023885518313908166123825660135885933182631798707297275343325932396388978152882860201894427410409168717467292381509344907800333751255151988433912697348772495966787418568947326147291762366483401542118537714165807717663493883269378635830795461473695057065600836219122362931577434780855190016978924218817818390402456680338233277275824649323005568804722495908850462394122045182102093237468693950271414791174403963588990011102945302092597294653697229314777708691503282325328569952074697959235393465379044172095134766120547465269185781716603211939125614240349457239564655235998233070287464021146988908527618124025256611637820205338002801684766801068154645073062321508305800790824881058304812896390103158170097233764346745872731128634330620751081458722222677737149533557126410071443449617524815498354994117341171218464975500289481884999863960732054687083033200124338645175799602169358177364618028713658794513503935168892813381089536294781831441439922766251951138497500783320890064453303693489143877700266312261063869175721956090150683678388163305832188398395091000709021782421046336763894474119164985363349443635631797898814098141239267875016276160200571603513819916483025454922014638438701236063664620005480184741066073803357489612004288376067687768245177647601007436069852912293446016064694235846035779647405906962007311543172688353694417421189423663720312335671300111998754876731495829375417510572024079214126161421012643578420130961517822534091886080710717783006182887965098019121810882357215377071319566308217176805003656680097643592325624262940961761122466757679252350822473567929545337712460722099606701994710749382176264044664160198725668946071860716363418086337408576117497871516101952737317306494529062523264749689328581028046178002377962799537264359654956860634322817504685815551709204773409138751158942020227812602544011788208760978445868206030077292348184265552396011557745641561563740271658306642880277724114762370180326932412504858653884392480761240791569295027897122390127173106212143476334455497749416576361664102352795358155836961217955717155301137721327866850710577194274200454603363210706078229574460974749672136386680364394850859262694187506966655819523789557526041985050202581686560550029097764696122095251329105334089656932144300899021536204374703673554727985918888781761419499075772571803991717947667443958762594217541196515044850751919371881543752309475403797519499447290061127523331152356003106799558042509494596280978647805174821292602160986346287562192937566533464309896514087463398250937713729936371218165860407909278210235213597757377249409761301910021977359893732146749429648222555754590790298471002871807041885740259103139888890734765610817983985040471941461052608043591311008410448816192487003679204254394695855763836512159529549047217151733109772837379275326508447283194416298549331325536452157547699845306401255879843105842341587204391774008445640688363378357705211993273583439742444160887926389006180066668224118165338723281277625860749053652881900695716483012356298959363801494832532142831788263509468468286988329696425907887762152837645197789609381905316243771218371264359463082585932362207818025658324943186471392630667603139278258133281727743194275546805297765261500713940501199604846142200613040516815262345148574154128243009917484481764360995329820501510095576964154219862796231924271674987791381887512025106318418947338100613141981407038588861816861302053033790307119019181983460986187206751235597050028698497327730257259711329943850466394887099133098440888074508636574012560544405824321879736573195656704927936484462478371810158375640801024680635348134542244900891471066742527104538936916024956497649570444224831544414533953765486304961061231915968026172665180913054446312062413000344798082382608874241653693155986990542557668946417332828939735115739005374162306847014272301761887133077099179059915040817484646411167350951001866709606299829988817181217489169207726345306566874978380359286471474894585284411800863500751162775104385332435489730715809098186649274020593175326052189310032637433234726604473355884881861619167427028227025709031387633459631747481952711540632768793334565195640402711251451542111714587024906926505043995433487818634562188434100027721924778513378640381086442894338840305317261647539848956056629303726527204298560617540441989508001148657279795700429293243734516066266171008243527114314717184682273346341731504089142784176072062867183566453455412377144281248528038615990593070402762645915803651088366572964914178035292968336894276657551169723083121631209416325703975006585939852285395032690958180456968018197857187789406518823030290985686797181608648472563556396436411671868337571212735123400614233664924572066104119146715703095530918600878919263291419476395769872225518618727650751895699464116284682929901778880416275225893413416854352852712867751871787990760750928846184294987689845927516285544325463547445774561227406280348570585288499279837344918948745088241799176773861065383218244406726822922839647188454713699296597135177598482714994359801039817636716863948073301996982161722091226150570212007740526047394133280236507386925964631880427196375943937591249707663146800527788488889964611651682165113215020134846986970096466587002529149508653369939560392619893561921793620843015431118133606746616368400249340766634465281216705343373882040783336779772364363369088274429752032775068350780087953629743669179267113118768460412828236092002230027854906820026337316671358937132900630658726110075471041288006528659642743657694150106943205874834330034068800393367903296661536223277101396449002321641203663623274421411270537749722526752415751464904044277487340106492614314712180491840500819583675014294379736544487578689974056201558516224402122310566298271353954567937017445752879012996138426021554833810219104851578101722987588084665002655297234474486486665762977854761506154678897784317117240727524963999272507385821997731682576040269576498417200682089111905975839599749450115814325456499332764899892506088784922004370223912674750716452686172992967816812286733924306345229380609642413594798033610713653551346175171092506020604566095671798649781450880139306857948913637285186923410648326092803149254061763896229101908860541878291593399587572626406574503159137004105669362007787463418918993283504937994630265791048400479104047360693214741152210175729789169352421207972829583084075500622029768384329961495454766529170641878529524333574562930008078903716271656003430177367732379704449306848504429158597477961807608938146896472937533348253337515291782153615540600765885618717141756607271985372860588089096209742841666594149242861454925912592133876411146590846104246957348998746167552032197538337604060848346909996305945496601453683537271939331509188791860789091394564736050500275147774767526146662159212106900962357172878332513534305148621951018027360015424416106117314670865934313103205123397259680899549538494212319880500427257561035154381644713136580543235388000378852332525612008351948976041251621755567051220589445835161632989494631941014819844147812507243129811632357080687723388437164587389393466166306605043319819362040577350794678837565306165982913447997533941347039070319905492546927963732141710706771266698860523851204007041722323471206166227147992751920338943279444036946425673148944676938796068798841085283458273706059688937410028329363339183274260937003772807440725523043914422484371808909458498654961786659346720936042256966473856560723392014719461183247051261534901273246699544964845007697816474147361863837452525381794335974525499936344847781335677713959036228640614778403162065436081432764371814448137028198061877675706777910125815889394513925987080567986454307067203059653927213043796071924988322663916384948360779024783916225944026428577900322788443762603382312983495453561185324656376540609715691166674770175982476261733312041379503811052639843545356953484370573009400525136576800893786249262811056035267455284462904066989364192420152790638954006237526716477933207536381750536019725964057541524196640453652116253866884498741437444281727737010363746423077001431191675589297217348145716242521451690206774626160772720649920793428060308062419953183325639346141854467288391334313891850573062002221484887036406840202029451230540938520045653792990117325700573394719293957521765856489335924025968014966860783907165576920870717389402093298194079438018105275235117639778746944763053688744031306905294460237841896481666439840626971056094996504836441171359713757485255003591192633476550182869286370943398575471404595401498310374449797640888499011205412712878256111421081701335626559120860285811377071863363234788101106699545357830511718795687999899099242866473855212918937852934966407999724682689977033842541496661595595023501580285056056453299322768374413746995187429031170157369227793678563609081295283294744946847209673392163844499590266681685972827030460630430561994924232299583326652826521196047341348939740732151373908698593422016246995072977519006701032048308328631311390295507339764671230631501861252630645462442312975549895770757872156358778097797806971022070287051165654494721663668035433850368001217774778202992595698853172814554848636270572323044810583704033072563199202958416757840039858593423122886136400436465688503174249160750439397311472653145958634287190453233147494573467322867633368374255162394931327343111980601339268598627174016906204506493269122900595922971940571594471511425883224957242309649244565017732993245973409705843406877192918602043534348025892133551292408150983567222979307525273859957286125676625878294968416590864068696866173196840275638954894191418670837278482668189972022568917797606314701954224853961671484905830433418580481109334418791528885641583230828260784491634932948047140633554278961285367031786208815643097955281110933877412691867805920551252587265143857651168689990949028487803038901190379682045599050494665726717145039198677149314635301096949578130915574991548640944798452686577437545151533133960872444641447584329582771381104169024184235473576139063918725555071784247584630536930581674415917218773789648916675566789554393284006386804223063550374002373639625232468019850293214648421770853246715221993389041512084521403580763782785447467801407848972192826201195495926315795874093325237351946091410985908483850901200706799737390644821151596107832769173154772993212387904461798924836232547272011306489203573303402553783564691234122038560783365351930137589723712286358376102241636272266285287955771074289944383607235486139671424184868462604472031507950293236516555371763725936216582658067929549114908611878241941395607112302870828166025289836221760623582575691348966029177731038641794621781502037511104528028362679448458278360256680820612830925595437030989819792115819890778405649517519354215832062260352471640677993603429292373295314852751013306810984265455655359866162916356036288622164038357840447984362459415790451468998507220159797792341178734126540883836604416506707195582032145800505417183763681402709383991703417414553938320881111842898916228685576493438117399809337584497970684063341007534074126522827252531663589240268364354200964770215034482679709557430876891158663822074907977507722520653782178993158475025391292483922589919577981934025270531987612086316601978228114434362453106327925692606398858864871194320059319663087947990448598559587833035626272493457297570307451661338371614287560084645399871574326312248028032289158956411327177557363495078716038136284445363894563541898271244527084861022114324304013564272336333988747270412420062529571475461210589196204462319313959456849305630376405942418806447467099051581168580924007355919501540940399403379751915085152881485395501517664526854990462730861378837004755766047097365178209586030893073738242784690604680637311779339871691108510499033444253719155892300923315103898261489217197999304156105144814880543952725293262584355059171189783822655552895499671398802914278313836881480368777840000014473821667188457709435480353841446856751825090430964389371926273467545624984460196174040878304774221131857747136063079562221917553079748903651253202568884196179719962726676034373239758107560013376144308283831957993156422763062126529844711491493295980832701308041711209299106928432986569609625112924882708957727334879385437833393897926357791599941514794920474935285453282601136376273288460170525521021926510624466676133164196628783193711110538775385742667862815569928509280225010420315290022066794376309530847064300520678986083628033647652411854947288020544045912760792007096479238579550029974103188115879933417474424087846376118718608829873827336086633785602038485554445523785734675322598010728846089941463564048348028125499299061270000243287127501309759727478610262329146205739385923536465454234218596900302367626883171467457036947738842855268952151643876443589213065988324493009220827965043786287768638630562110539591816414950972815195757944797201312527215066658413930265876659445458327753711554980153426666255343992889502253654540922152625949713881695843638929555636780345435198821171176014377102495447693448423422112610274513637049714494145328418736834243204940838178585219837183027397985530391638615766149896591671958665781569222240531613651958636874401213814571165145533049145728801439569930003771330572914750685397394093493782809794795029489289391773350987309563689220488351942516644651722839333891762323389925785077158227520654468774680359269682424294859508020642651517241295511433188993179024285330681612997726740097330284624098017810905299951644284152200430400506860613480136831537781264494982233341172723132843394019132712359457462766372601639681577329742540347459549784632011747333329975927228419492848712813941281769961341924172735353159329074877733125974957085705029485816954257109526502930754763527893301667952143038992509040721919145481869845968821253657317432394341950081329029104709930551039760775411304862532196882089123595599878308043086741012384559957379352647422194725104287260013451589849258262871337905322906107583106661828327590134647585849987837700611759158476671956220774255179459102393261032790361414914205876012169816311333634306446720981573745892718629534333373081120434558482051947371602218778796961178341599121068648464924067750522324050332194972675458565208149594041022261417615539267566164107747939128486256375730615160261336234994822038798088186231633269114365675720134777621215311798666631824109480259756131733111720115670846989249305283858232241494616348308595243108977335170600847564088203628528836877018868339704408782557935916490089574908496817858752474149581589053370609777067213130302295989183320264262141925117080299810525561046310018123123010010845627210131332297189110322746707400348112688434442327403888322321595294845205459294897191836500191467871752477583426182146962599286981849485086896298491765511807473380656183527843917773622647010216848813695446320423997244516983742471011018086773373626176571477621296051212339668947234810145942234865519996412399460205518766149590282251854864777155698498388273291822624473024369242914389536196482620138231507539971121929369517860680455729623156940430722309978391562841949017898287429655109129778180244252081533712237432852874765067544627092186407805453872883815390783802340147809493972870247398805099610917414580921209759965774095051709663900015456811884361393314600349516212133313200543602430902623946813465449202601978673053822343753488491596325781873168434624789845452652494407764580595164862469264262522210394768753614129298086940961328258441208258644550896256589041001126783557351045087795777235453601368273058310341862242478397833391286665063489383892085787666783325594113632284858061978336435149676658241329984889778106575051235173169672095017866343111625550730903669489293460767519633367886611668388361676682147113766237125474599339334670829617719711762115017075680349551252647819064965582326130495163129866511989208599660739286044130021617106000003109038594225195255527403507813532276320754863146803002754928482229044452384046729364741456206531325260711587868666853789445397276360956732328701873454982305756812938087805811055301623755809140520767292925859970891986058735145069749413130326344786447565586435866637769423394107089804227525862983990567040366897188899912501795084101338715061203351684091062309167463882837693907367537531763995201467136090805162043105802112299705064549485928451513109055614079733564506439834687665625719879242797278362504745951980261939365950570942990197258776697727338762259912367873643823523414080483502697435272117473255718503999441608492077372627844150006170637208561499419781976639150309160761078952223114316035014137532870718931636933108852256364865811065411623757316179381369276098795448211442875010786200340048587486623003331934602881976039187391444206942204367815331230900278814824737303166483302722893142130864039339287465554336936225361175509040765196705737882525995897353995606509565076958322829696511263633407317979670496815729802464786689349955062838691696656082738428948898299891674441548715759509301722866370811272792541286393551443772903204790699308230221307896667479950607098358631667966373897323560772873388216885725784013860645348154871237825703323442769758282050927816997111430095147182767973215831599568739056792794171372225372393786136972528765149645455786926643471335831464842870005422377798753574602357451421894962501264818641598993864055373981656139025325578094443685840530090459883562310424183414563292689979468845401640675844331374100110264085293429703311564001654232693609308572623984909999035202928680525597174765767586171557677139246024099326422457480274141497773116169778264772647550123555519521716765143416269767469032981325390801248701651967531589159090837232939038848551357955040367502055464991261995673860986594490819502228926181661446139762223844492625277351968253872757659539696935939423086998422132990629429614856631029736905520190959810391147187848003332140577283975796573764291262997094301237165662295991400393449502584557241905430177052031474677505351725103638797658642495030971948614767202492499555752526002466502100638476713216834911054753174978482674556105491213475238937679284466089183248540178827588243627231320767235909120660930592651011803032519039829251819131513528092108672640841662096749054737426243116922212074000466262882446283362394440795472936347113826503442986215773835135007439499807104342215205466887963697038677709086339355029724786175100355673328853599757594138900343725612576680283054659723954290092097282135677936515140627557536751111565693729248862825965179959315782978843317484721386453127764294562604788104096941710819497977473624473432994997082728108175711366015835972122548367518041990246097403391220219331501346491536794881976722575969107200670445894679644536412517525013957580232344893217852509919228395477413122873436848763681840933865521472158667242804944266235945551104829072088494477365627381663177390052586747500393826263242557027485808478297161268468789352819376223420966311610667831713952224535932082272144589308376911342255665548108506402096383538184206452621095337135554465506915247897231759204741944718718056061856937815817959328185587374366221054398922247811208503395790625133005942821730819266064901121647308623571016557317316270703284361255466604463155638047411919050770864467451195920348631043737019958315804592605462313824689220676285275774143704833437559310579588599303339591474380462561917821888571329529830675897832777874372026687830634034777373855463383312350541418354686555680735914166750200559431857073448686342708256254739464040828823550122088454703550228965028216969597479566799576029089142547299163743585608045810852735848135302767876649279397314015215688411678487725484571328121738602100755657862301733309630712669242205368667686200470670103132914642564225990384599627478869495646194524265998359760320371412388608219330011347479285024347059707029779777574905708921270168414440315319232366125586209963103493735583701053800545466993097579154987653926893476615956512811490936195142988546400329289716515665675491281686318631661158070076613180863499077568434986455703466217493862270224142127710136070213304751166598187325365362737616297850569992153599672530741372352398584152428646381618340954356158572777172662834262532840159862288186015950775650900174065301705018007126122065677005862042590413630027356800636588866981420755182170446745670539191327097773698312992882880278348201554094861006454615073947293306799625105609822891860566710185097279346026543755124458025762343810534751120135256839581306511655192293722025130831704693750242731189803930454968481420818117899215841191341147170243683361430297064211432295777047700498317299576250557686170058696677507551055608507265685172292274812837787392651874473116322130030238333386888282549828574456746650211851444585268702000834896017613931122186829239032824747129240327229562540167058480618861618536337431136304152733323809561413420231173373162253233454216856008606062456078332031720418628231867679238659475916178325152750608355257337119007098564349812680689243869075606468654043647717364925279440524387261966970397708076073067257145729371218308650849642816980320155907724069335667375583324971511027487074965405687527276183727220018565736400946593270642369999675588503632375405602911823532155444631359078709181470311719260645985960315843520638038257379626929624692741443382437816711236492315319942215319268719831882681606686884163705554929318739860625743573307481224361699114679875649185292737526737416697875871607783691256059917209057107148601063903902059246584740303195865190403536857323743068649713641784244229666625531759818514173282491430030699612872739833844098597293574577498776881841466054641501649644542372401247601782323639254349859952044223796917460492030887002252196982787276542367535069581398731571211738127456497296970220175219892125319596944956132465332403837564201539593164688627996086041613940935964087211977046330274748873585697382123042841828606206612947479263987386423676948347313892270584925428107620999046432616467669087910852407507395471385564655144135717213243526583874556264134288743444247403704999445819617129341132581483144908207787552147656758095199437022412328095674823357758273018862537020665715246990873873273019063271140729314035313398198723799388928085067521304886333751079097854845866606522857260224994305451653189756491325453122904378995199332081965422487702275017366590522305079183283659182596648542321008864769848942181186652549313791789872374585676115889176968866350278588477878262138406804716346538631046731501797488489298573373877641704046951691992429808361665850020621986487459239127786140548620882947415558664702374757300876228933291230932547633965663768605123547900038868209867566594579128749773977972437599936575498517312032860920456941719434141878063352503870870223573776481516267068287521894337508556305497318229949093650904295626428029866012496291459460018275335931685618220590265324358039750170430593183286247172827364337572889229614731814093376868227166498077114232745131922866347075683192416551690206380859257509082373040121985679428032745523894725848185442765992996369323680606835919670404866466425989202702264261528266157685726716604107316421559145670925442010127445455696195461401705425913880177529987050963781616932979115259477221381007384094282858470411143608792233096456449876000280674144153161079149515778264290169221165768233664315703188814000671470339066561557740937380231220380937306703019472433267875520983044671786955133626974021203880736620483410741729577584781470183648477692794896049106354273399395138788433290297923982651828344474349668667740144476098255525905196050856093946693795495479611487462262325983675923553299982121758450995894383643706135502084399331160349184175494471875759672872403803194354380958259522895022603182935215340711154498241478632878667917500160354158895247383082141719988545145595846138241790583645475376889635382172514974634549902563671270717189410693944918178709263089992116007281525664416872887220879180615269180974808800635998940916040118250083419913425998627691889865807219045590158080145156747242286161136980026294317036676230061691971601119428076229388499437811965238010564982887976046859146857356167470805915678913937927212872974063869151688270377784630910010915658457152587070353725088709484371212938448384995952916983508177651043956428060829562767371750970793997263933818964712418156805428296802106250055180127039066272833333421149014214829239089242394271491815778795374348681722433178070531950208397883045457131315035591745522586798188206664802087848876764682248002057965216558763600488180610352839396143268533640319295464024104313677218616507706308906424720075608875668304747377770482586621260677669524249961030751209948409720352438418654875938030048545151762655378047819819989136040997261434234497082729665526324065808345649109353980279400206079012295965339160313227319185829923834843114714308680291395071671480810344825582461538264313374008442660125966437101985238101329827802229268563516180317359911804873653329886740999711796996882653899811495880377647093593521142564760719784246240591385078427598062316930962912235870126611596638395408769124461311924493876985919781974947817637047808698596840009970120937698487188079284775546805335334833665789146765805565976619813689210402770004490786126744071881344198454660642923887539630361584460268436362596133276967926463866820788827745149222157369016868496913886318956043161222954424005129095115724038358057326462821287244268266861698168058164504216362245341372192944588072923431680379475809549940471348483302331667020860952807488588729174622818582885064944517716401291059135156824861809584917065100859145791829751609401914307198741450792191677706395833215981291217587066335394266425529975713410257196029110047577081129294716952350106491397491433063334986503399752408697256803151937279236759643705007517316450389248507826586595812274723926616347920420781576804794781715172327962105727421350489149703307246564940954880589417503678584019985700040711978644954521765131051481158433997338350300930076242311262215304678392759588557055562932957329934262950715475289581752855718112519689547228644194173838219708636470933141907737237488882041854762626889426256567790754937676218056450167935657943895619698170719037132598833448905272875406484525101036186712063698602221776534662489399008457863525802214289884215901713650422276818524788569135541477918922217781138986030190232147271510410655815520970435868859103544339191085126716553091693091975850123592917795047822485028645721151083599646987207530562167560095936613225304712023407770864301090067248301880499130156423536867832927874941921654897624836132031448294652923853999713385361211996434789622846356480748482878560457955735782553646414458352943930321353784915930813600390055918078984833114098426193892029784585430106382124808007676106571413827850961287731852751838701173303386855558197042661682897889072730164147177273986252656150583194523391192131944961138878060937675458557297392396027274726959891091851329630664467473045210653714523653137757803097192542764212999387504398527295098381896922045392934875551426851919896955723793194931452544264781566023084658495282525930624764165588500182679278067180160773961758484477717588402314732047201470425121239577396833905544029053870477851864457891090127964832343711560257320667407673880009999638384676242106141317743763382694804225549896608028329134928557818243520494969166031096727999223078676266456371903833043463445494403657481094778133692849993556790158403465703723783668189457993640688231217631974524168114725474983674987201702268789135185751973274344601529211697308860670464528378733090080521975762052173565955528016566827573424169885284406380266170896505220854178369129985133226026772176272965598209874730284185743857318579931657464870258466007706858475774296498720862775483438036803779125369228544668904928299230695046006899806041219796087729366791123361776691405967292634236726016154386104883565455552491520035496638571709699422232707661824030012511162115090106639814537497260405894902123185166508861872427118834127205615636103493396672794796559095106514202377112458390012715573846353812423304039121084051473662368962654249050495701937879869758407623582625765712599856921085498698086360380357780440324452397622241987754396124938403802844998706650844822081219232227334593175920876311961182319701605272897760657870743497832505200974720614556750198466700571006059190025079753404593172617373673764324231051743310188721881092768375077586894219989809383149533879851862000569781401149310708585972233751013167193314998394637634822424042047629248605168446709496580155072825889007094502030111733718972969580351114527373663181202894540457627746373258756048275571469315488989053326358547517631978967452196443554467574461024366918870972912645586968977672255432186550704957117656896708623744419296621853385278825162341123904832998632502201324795825889453113644834651520511850214752759866574548807709429221926354776441344389932802979537721994739065653786020648090060620749158976092474504813636436198718527561384301215313499993544945666607527608284569254528142663852916290935854692363994658415501116564867214389862556103960547506751054170340226696176860220957570149247222042355380710938560160443012733951534242656287532615144053409643043269838420820824609978785988458139334829014670678421934940199755577360162659448772481694606924774362922332492448326539560694095598370143965842890834395564949216523132579791946802711191656120031590524466560970412014002613500662461398129889472213696274321570314013898541484945598194859754024615632726375095669056196768708850181705332928824854750402283330802025205646686920655782674060700397326687271696982003054703692962074928993688018911204870369041772267918019689011520521479504385175785333354440759239254495571059415011609007238503811850447876848715050620626207113088723152259821813976157138436629187038040020269367225548990404089369595540086327742237487714432945726122509144538330660756840667623541218709810240866174536303258277207245379325528503666738049034945459185280106278844125038816286685709491318738870650851488565273849436665339539285087098202894603728893321429623779165502891628237795660338319269659170887913205668911225842188210629701089353423405724831384878022566690200912988483840472610404225756741967570520384037867042651469066915936735955487990843759193484282442701255215265502086154800027068698100870925267646676296269641842816973748161514124504559364425211620098002770772430224490133529786760477711569327657326808418633376316895638136069751600871943458904584132626287417323446958801043811133999550676535249965647133887705474747585889903661534665993165702716075393590985434942940130308452566301688789900124412389351478253291996356037848492592430416747519518784823601056716174271153668576326608114856219866803221699597040456634591766567150333085954226311353686139151200329493149496873737082159101561028869581633761210042401313195600690937513978282179862763254920395675371507604663003960898116511361190253314732073760683313392090890056903721667781234673576140403599684211086833730900590790879715730733815206609785749061033499192469158727388998799112635654177796604197886130963207795432193637085580318976213925988873354619404633929750037539603498320316386197794959970198108648490410804128586289056235955647086260396132752481764386973608971477290059034274139937346764191496407790230342808286600693199306946283415471463607313149475703020253000434492090102399184812171287735838778194485491896441732133610734966624761435098912672444396267516785406984722778991788264695513432170194147273305329295667859748075903137282624382746830825118384844910669842916862534591209234807509079134766999470664156097199325887224786664726475490222969751174269094542621304876181596351899326013897844721034112870034759935918694154116159220750338068168895253991255366196396728961240967556222496728876475495474307565328651280632618332240915812004979209156686942382499932706527182926997775596158222040398609274436680250860828857695099328822126389593807400032297343146747220397968175063464519136256687043440943050439325775236767183341739581027716121112609510365197752679964946969831599233420087125887163141957935329889456171712995624332171018239123402970915160116288238978507604307275448381800860683142496200955439811161275224926295498437160797006190669701363200131857080953735845658854840992147463757759201500834068460207048628759377376809525675838488765558342802437892574767885192639262525461632767407978017430739692388868694389422726895307047237397063272722759700044470917164834798817178507555704503653733481973155144294673011974534473084349311082139214717044669729890954501507213365439465053591671984530044016498620404153697962747687896383195032347660491175383669017576752970985319233088843275530978246735969508673044531814200128592436840695761483802226400912001138911445635130052166214741960678369407977410440552821032228734108820727303223036881877079102429859411039078967661008903701266952186216308205247819179499386378242964086684980110607337268964122595815939053003888450022038182467436715606822059651553840740410537473837456949859309004010030957772972291228119989925290990097350426911994227116026457929036618406371711726146038921985860041294989937058935345821527671190447059381637938608833620155108514621758303575119160335829665443217641772734764826309217516388442143614015402801320258005446478299964585678460660698296241629123738999594498810251101462456916760485729587603762977568622022150113618879206143475723962735370806090160500396531742930866640402032024423957076469208634768615079894448807822194216826584147235787735695642370044151654969737864538163046068069211508066247836565008762466508272834764788159495577096676134227243342435629551176182868753856676231292002290124655828894811343659942747327174001392277943733212033437968497969014585277220000314041730959963090925038323809443227709577278657095028919669156474079459611754242941497369415464932291824946628707962669159653249776264406239027694134927086784277980258406530618500427676781579550071141441841507640836896555961546529061779460584696129764498113256842506537661764062604708242986625022697605629253917239480232488577495001478227200700348273511720875996789752681579066547883327685341387718947792262448428249775451720338591839248413663489628709559532583483968960196680987396621212980270650535479478945318640927454132251453619062040729554098888556244372584548395644273433260915570057011877485367736721062907787548310215286170935770959549203717942711016944677573735608789256381027959951846416761989019874202266092730640915758860039538184545118232365931896445761694806336348693106008951885340584829597571373049858760512000812012562652503827688177420177869813836521195249785179734663126809602226798486152632470950414314002214628198715419135211963975148066377218866498238510408123268769088134685146751229968082752900576013645547500547580951404205048024864422678806625187670804279378549238989708656864634854705396032075653553652590480474948325440041549067475953676994176577867410736445414311761353771983684923178838426885488904961073505156924775947486426919715139058250063428072785102249159092588675009321806191254868223584289076659535078719938891810412049755938692053511024283796931394626466753304624032962696452386795851992435941391039049506458959544822347653859694634170034815806572198072018851690461136924060153254323382235342115568142004395440650464582818091699317387074672169879387028686029289600415303599498178588850374474768307363388959470075482298986558120032203933635054674913966990961897211229501603135530943843065510351772328926577917992901134730033076800491097518244188381919613797442707818809946377819868789162971436187881531468422656787217844283594929395778648045848506586045799371228546313797634625758479167224062198802618809042846957487573219250520323294023679744342050968780798404131748446152927167248585107484109679123451905562165051537666040400681734987362554573466442081526547636543581224752589731050411252886370239481838967514654862683218420818459065333543959357011102029069130035585967621311054375185416706032864790663702409395788580138335538062134203807154347798096670319282828176103969282644453411820095555377445496017648553903127092131206751990625434248800261858437314245573787095866225862042045501503155651991995405793339170397613365610999524487690508778979204153264531338118681651719405320060184237345001621799372373418437402460789087680489876800823630139977273073993368875633200516144862252287778948815824353015780861090380567169708378214113811848707640749352474994566409637271291838967129148137561657428036105493595618367140888697299387591904119636387994013346401847835339326766302519008279595740966315946937453441320959581676961051170849646819056261288228389000214818312543047463355614356851099055325404396473561774103884179310363123898761232262472461100579059912006551120200584184827946747822569990276416431142430442309288817388749751049885628597246429070093962787006483462242430041879335877496059299130384239717949374672507523685679307184196201833509849887992170506529087348516787041516647266099164247621346751425822239782215456826735349554230670858611927814797546493473243547616902634381644373678059599934032251510940321434972038194524645196413117066203579573848854059152326465098770752691215093747401569682186827622586076798765242583791277136990829675654164120180894548199488984058676733712111905881407129664949097640487763011084899514382797783015226623043941575077290588087264008205071192002605558119288037525560138743662007499919954547337152587615893159326676611689244875485006501413422853306764149277749610422879392349607426393643843638134475000405420052980032806909783655275954241172632527902999663838348526440901730511764412681285244185272151772423751978236945512776220858629815840454561891571021060435936561238900828678459105475863439637425264026884224723184917609797311720108565504225422311634635264479398491323006838568232438545616970029938210580259980149581923846364322259110984851700436589640750512745918892101718032752217964525753882511230130487115596251452270523391620635062836353075218900397390710570295775795247588618680825266599155057290917077798897898744426867016092678211464344357256219241166474393899345754678166717319040462746494222386899692216265515489527620839155062212937323751056883135383455420539462963425942068293683544739907821538224469086264953706811612153696483144969276421322550612259721476580889886421263909057593949614214445337575602261297865672171429108947522523458657653852916729327994049563005957363569103951446767656294653113149718657899119171227418092212927916146248256065275714089827977762660499401984974179765039825304159987886040753923571382764207600851068294466543261601220821005592874009993410363328867184497782804102582670633699062786532168683111507033290050404897713777784882419585504269540530943187717544299246950449412899729540188887455671201813944393163491198282329589153742837805729817554653792145592931866372869052298205690816238105301088783452806528065359984998471069826610991162939421299609701380472196975610211087163157066625824267347810740650682911472105424849058826925644226677638344801461757576467591259871765299875338752395117660150640498988169593844827856220838657038872374851905223715675663708312571747727683158897445940966557351241551837138558071980221873595272266117674139195114040994492541823630013537455739389074833997593234375264487847098690381865163442062136280288712576287427560279767496690979361574033710658734333005995413552106602646012555547641103056120308600950140668925863231091448230291861022103768660442570446317375359858809138261015085310473398614218121742630319707633081865126169202997974941585205153509017759876245327709790076389948981915712140414159093098454116242210253615995780386486916665594684433116711591474971821236049782898007343450823405584176314160986856892373136888649185709463798064326557211394436239233932936820168924091309218144419824558515121016422227930926984833102833682288623586271239094196473054284391767759611822136826204676695839277037485388924210999385018506928989416538321124848070037522692438394883622839488948626463165680178147420930918147929992713441381143491094167034642141610819116986863769095436910670452359244693656044851497893881866880783486807052750097003145658426301838582184420376222971038560284397326230251361222393582424082817601080290557488023670590661094395133536475822686873356189278648315839344342692763408898091917499404234200723409408739810035987063543342979089362040124319231252691114354775049040992928735134891922464229490583736702178727619380222715976070123301580010955095439774832797191708758724354471936410598837643950767498729064784902240237419180042679028617627579433440484958775504624132504448853416673860416532336199178411190705520411929820580034116361938452202975428637995181146507056904282795066970633243055799900341567641766151163973579133221483407256519291478633546114653179561747334923837739696280215752166585402542503852360756719065641687093452361784763531680340377318581477586595395628736365025546484733639698936959528151771214158777491875190348451111251042933926912162170010896020627791542800043512838524794685509505632779257348439602805509962636979101609430845168376046639766235879028534712653864619412872815020965015781435078474349827639458708907921916050043226725012428680223515427206210459471166805239989883190987372459429971481745236266731630429946431074817826374316443989270060535081258156431790280160274335621349786112504701156671241676008017104759405540601977097176562451547816037382888500410525165213262102788190880822909289578656470386612376198615970848730668950837497466841780662135305395663800299115928866723096294950810594490677921703686766434103180232252166869129723765493566203614688242639264656758768973423648765843138988075887084771767769869434149748190952191046447417209694342327685078291577598408392268063464384615482862155728671099641944255193757418830936574442350928961481047422861785239057651634483113392201839411810438470869071156698352839404735486031965470107712964871352401367243718127808509171055822346660551822145861658226774756688878162426562913285127794501655183532682996706592586867030069150529840008845866379953338546995103874089125119379675482057778999792020361796259455044264858149881260736073643835890609532482583714571164040137518598602288928975009720127388806584782576794940382001083558269319703220028865363507034064152534445075194669078300328772457886173248480249198790803363723028349771651661544071972503430216877023479031741035694384755116971550594317599097250221879634340466236334219921350418615093751128195018013018414420731203632897968208247096606401953522214308831296983313983197580778405243914943751536621230264289228594426777220668210566664928151566386755274336807963280752979808563130584594977228254132061577148857011844939694732093719435883547152235409292262169086081535785073993306391426199003776994911794777726285242796021033769523978143532720026801900626212297040273939240942917420473058165533993822823506990864144316859544552150492544309908915670941873401693335678504876567565232452727518485376812862897013948460173250769284000808865478670282758043456567549093726928690593253755589013476989008041662705838453414580078758811450280439752207891787726356093993785423396318429930959006674103901032945983044385675694882092437144857553347137517793871020342966182604188647954710308680362777555486937939642270752919108207711793181536986792275486397914490941142793828818717702166446463401517149775898862371809144693549019558638274160605486041320129867303550696011048365980177223277164336240784425910573724157606094227060907710711849782571019560013231617699865140199297742119107830254734564553790163125021337282025618882116927072686849553258413626214113868933699618229179344693839024685985623936737211141781106819631499432032762483983820422512305779953309715152191671591643719752967533267291814831416893365914669842168168647888128741421567269247051920515378648935469404253515401799278861021609968880366369044112017466698114007113611065516620100776622105491463148829337774104065950654024677726095426491262264685192163679577341990577490286780290156167022092629189459197626316863678473189745681443675799462806337084118355959056209765114331805120433703180707733778494355477310335854595238381146350552744147810500282016504382010211349463861418972941541545809527176090996390413045525176665555849524262472661209723767052281439781320973040378665389788490445796070152972586358879940441028003588343666473111352354843631316152681708114053454574889548760787966234991277811028606910342056836834843896173146942670055349662957661920490326818779432404624342348904518056206499452974933547504404619941810061613575573254275119096749761261198181002218280484174649126888011034165893362516478942072955793102426323294682102419614725765352088741005631135091413952285932374763679833981181527149689478538466338717228257256372474776588211566634995491902760936133396480060139522225637729963354276018624591719854950945079792832834829531275419477691760966095339680444270981237735576061163450839181258277515034517145023768219395226182029581691050209172041351794780127950801392753863715398809643282348582819881446991054369515647702484975562437726887122526192770794647496933225142430317601300593567687868049760550379935343448613105074557537695203934043231370160561350664370196015247799205093833779260961216057083615888852745586742870398654326264016472441683161300578344443196215743986528075580255681110635250119439420009586972145591452430015548776706840261470083383773644544776274788600492470812078728715825271271692622099973467898048301349312425760167355539405985537243669537482138327122270800406415601279364425714245931620470578916123359473433056766723087850135540135808601538321319199686461845123552782359818614065435505548978629389307370157830809990959965275199327608545015596623080534757063614191420607010031346897300504559011260288673538932217466148740192784672822430223075640004706825720480618324794702511761123802280081148368339167859520166935395408675109248626463181222798079466426393095831612861184387199233096435065504347165765550618720026785674993293750685503489748081425818272284393212239616545586686526785057875730205885924926041916978401306299977083127288117227969139654278219049660275804187524327445902381059308676590762758293714309189971836910888128804188829777524938117536578760052634488351763290566035299175205692319616604910513682630187801466740647089322042608618402004965596136234909197324618283457113380041892806378337466125960147450910571825634646184098907020946629583122920322428476121301816342673134007203453641051089484163156766195115413017512852556948809837615117431259142537253995075728494118081528498669674415931561950351697083767151618374654852122472656102346246726872879980659096330280881108875800993792687255751882866149921128525227551477683668501403120683949986337074534844797551642258646444724593426657691764309494255489578982006403058105802082343910746901362339019126543314413446480973616972915214970651130978546762555277086457701599606286845939888061504598632084872467386772347628734194931294666273671424563861351692282663150484369571024816661582980375943681042612864744349083629236446285144789331170190591541825169927182489796753186006472769379535772578671848789596565326352319897530950061707874534723235303152904106022595355877594942935363886411794912151464887009099263751527259901181907542859560444013825844076258136874467692759248173842801245257305203353724714485058655150851470776129738825285882473079190845669383735695579021370282829779425827395435947594101671435533400792802209902313166662345760078869331616800632051071490612171027713218236328446588765022672404932173942122055721872697925935023762122218357559409317349633509666637551610619585688279137179888065096029422981226786868156293665120389722557177377740963642922024039255428819330148640535562736984835941311846488110813328397059953329859523182558948884325276588009939703773520970237431768332932319653499988597754540930166686513125211831039112993566323773416045172097742049206049604697076271355409666148521227811813617825729212891214793500183613277785772321513164390379403724073144735961512283530849798292208356735057552271935469909063351370497398933182739730954801227787132642522141394716461872633992854374533803965345038041227781350775653669519011142137992180203399116752231855400465310427044806103607164178865337769932432401156374969308303709179174276072218652251863040582690278081562458053624115964710635781325086823489499142544732914448109289846228889560872051367251753853081604366392962009068922651141515575318803027214865651912153377773748833062325381924902365060041110966152716846105790316603573516496351729957832722535129542902182723805216003242407586397885781967091249964702954493236724216015415532985778064871620786293346487732634269460622801874532251695195853765572282269330632517678181264103086993500090598685438689214771766626158754434415876334239492792759346312503352736004987669290604974308625244853508212960410926039148356492049405930830321939349096066810095884948234343245783578661828282835996258398320768664564679631308412758215779242496364101163945791106515763538853160401777000712436136300979456301093784726981708078378798071949743346080812371261153090558500434290408501484830196376738143968823525059076622371326635431472086769588898090364036161227664173669573914017228537204344873552799989555568811245584603604395353390157684862281673999384571060168629182335740023786633411603591481598636106511929297799653229986994159965357739975136240667537780505067861724503682419523795130858158185070732565273929480089815924704084595041507894065072619521489605636768648251384341841349815816517814636288367189703128727459566565786084777360528658875574544274983740084234888831993130952788331217400300867061876769008969291612542374694344912598186820168419731037833198510511965548052112361797669729612828816784339198167502251519072658845827825149165967817662436587394789574479931504017639282685509434598116380374969646298903302058256652353157676047062687350527488980442212301478453222343638346789856530735565448374107364847074473084487629355728461475372966911615245053659618288477219996106194051643910060657035641000829224532794701040965233331375494246921003162582219765995184387525740767741355726318143078279546926625384257598104088329564183549176513668840702060774201897505206062156312444074575388774670910033464891462558866994118257159454023306899657678898799230353488764326510737169198314884308599959994363835082330596469396670263810089537093745028743185400650027047408829086360434322128076992840282289456204131744415893721094341134136841606514235965347215536989127430184456818460600791005788203853262089088817491403938194969295668592779890287884008796331731114782264439099343372405962695296843609622311779796895086843758541248001506823854446522617025845130202820596617393916950358882197401333871959974219325795145788283700943879241217137181997174758401023842199430065065256529545086143498612517176229668426698551012351043971697614403642462461952145715906231476530440482793051909839119050630206317056278212283342330147852015198840915548257959433568380716143991045489961094331170220640240106083837785217587547264131589479064764317849198108086093091037211027793336839769376876525759818825278770407424244155480398199952674826068339749471804356274810187751201642413570349915316891422126518817259873532335080462112266045694920574976164727772195046563820564870877299668063630249886994157445887805097929557958524188876676075709839536205668960639889176485699089804437761044629666473495329599536164744794247291303730018613959683619821897608905723267896480730839421447519156410836672162959513075407270239965978256588520356502043946302233477072042459683353515127532978911851000436719249596490330829333027000805429477849184562806579432310835036310770510773430445306538713438660496938585032609259941483237413776209923855219806837483039191103243614058952275373048526464306900039185419442913982773602696065652582926915767609678837429278518867937415113813155579831664006844637310613255372575178799044630302004708848408802808952355446569931574077674843303837463152003496669878662773577891884685161947935626917786063148812941498932527102921200989968414345363990374037778139214734009980496344985556033701443457434129848847875483049906404800118814289665924788186468773059072009704649484175608885173739673831518711190987061683999031171169419191424649499330493869361231640646624464039358406058731611507656544045719426707287311670163879556238436243563696627445198406360184702827079525488632663749497219151828924622284393849795593404764414603310062361667291397704580019100286468367147054468285168497358022538501821940668990497210589571363862102740415683204494060812202562008907011935987238963361302940998611692154269805543871321526047510724551526203063264238073081132958522526583189090537116735572322424606797052337223226311108682978949997859518420561769042976062095937582911605670884391909564458978490071994688823491988968744118947236755966304480829899952419130715476657519899317296998179541804161378280512417313030069505008689384304253994341077221757472453336471962219912283506197292340872425332092326160583254542697411548847713183531599402585005743523134472862118653956378293895171400214856419396834559640235124934414339236721627011360568751178313049622809022108877579377384919996533971122828934878193312885534388945181750458335388538630615970917440225295107068169090438373953203932444350313371748283792230116047411726824348082308819876701708403912772751018423267799763557154902318210478081426771062086376506891055663293442664949231869702367165168083965285043077391034906063966825994387486473796527630282346745635677160811108688335965055803810281258701650803982017806465033963363110391169046805754425016791008535966715863002538920899178722680393338311464261207614561959447760104536108562566336626051764732368758922414195451000127672272520121010346167699584202224624676733209564391893588967701478511295924996107424558470302698032226622519515458294867507688413923545337024267433699346246525933690916994122721318384813966144270741759425025460540964423284397948291234302441024897284015204083077785699464000078795439383576264891459116501587678284580613266549479635820873155311604835482641963211762316513328906491813427525254658204660331518733598359155035022300497636071241052837689265743201511587405743214001867963942785136256986229495784230673330280230911869461236025952999922890151417345639737133318341372134081643573137486696316919936902598757365314670146780972994090869252028675221184307821354913366742401260876997752267338557381055260343971297871562354107917156112083780820410833200182582816230106364320705226819349426627726115971516307389897224332022520658096466824252434957706406919466946138379479401670354983219637238081616304496079671292461386419808439142721334755641086710134498397780760567595147499419581756711569108253697045259245858305978582817002354893455688552253609556985209633908868580504678317956371320827458044791994756642740721447014188347797074942728140679390151379823407349608665845050655041562203358187684369683099555358555906019495934443256617719198282966786647786953977526378646674122968392668489673503793171775726987532058487997974625778426763980781691605401150119547427457254328200511347581926262515304140955396505560895560320649027144642879239133305167686427905936998037904478166701021529557481112690310539702899066939950055029240833113468049116315168713599384179607063981181856810588028282922598940492649904289459682928405789610131746562657622730371412752949355273399014245863343737676196406480243534863370009685403349310525943535451340797715969018273492212778265343755562741289840377688769217867262727283229141244602862110040864973366593158785571808726779516868198830970115567466902922108724145051447150084537088085037798848669538383673650967233021195180909227360607629385655237286033699015351881139554704621232132612915977320632491082162844787122326482253987248425599762619660264918520961619828691197962102410785788582232991605425649836976587419171409712066748338494048858552720875895707875496986148185075114058750197630496837472612009951569840941865305395930949809167569967542134893480674211316017899975694358903683307266414950369416226081131592333727083903982535919505669992266104339483027806615607306847160930443034233459057320972702661955025402989948945161895836378000003618859243206816001833006680009712057509288237148446479324364653176876061686657313604466515858513055145982054700650855672245646771472928755230563357517123155239868240386644668148335270854004268766773807942032415228254467126841885018592584931138105404575740687645968015127239751023715381474877154525320732869238320871799131538786042771363082981337488800272130629911127263918752883296294911676127981615675567404993378405170616256374385452369319638853987554747170206926183220837138569837338101035676314414371728879171748987389447312827277869824851230311603569980743455559600088525348991573239910927400752514331630089202052878059974147669994293822133755095537480068489961513143608373804723995818102156328616010431572586586621750147586754540623038468802310660410152867288356477091046660309003761572981920687152684976395089380132626749063239385580927393609730947242020941501594891353707693881713555191234488773123208210800197475740271757168334654248432938417874481168382455097521357344085970981297315315632024577918900921418421406875002213051242208102240879239196178758624138587464316141751124501194293803539320853077317409267212874671858819410100580029454892445066490303683403179430449813987929343164720537305625505900839355669897453928687535716796181122387926390679693526815350837042601235346673740138319664126712682200187259261318425583141548643374596499811738243096152393242968959175430371481283959658053268497516635011738385533162519348580426050096134670917434404321928165179414737329997971872493026088825785234468615640077940831534256412290565278452593665968907405007331665099121313971761113267379482364079234234821582848655936446824268015627459829235310439508078003277769219434084104235048539514971755944548029712989683145428209270706775909329980089560068244439369934129205914224872527651965837502882841327986734268926034825503778145541790403214017812989146258088255629800269111280144487732348488113118973492330299062376414661659963697293782443111391804530052736966497844568874783290453453482675071712765445850662986842545924415586650104999452987023514847632715560085986277288730836950805594169935654298411584664655212251157802921252659924414136363037188316708384454680403516346053986646588137239131087505753435950971099300525268013936407748034434167169124267200331832747620297387287272006508833899270112179344412114712999172454157950287175125620909178052089294880175715933450297746784375211276106036979808772768698731045090220321914003981934659457718514927423411606377697351083024659305175849082072762962206073544733572537686961443300985008331566582621495402065288478461681209974899134511415241003582230637998884260801103697977019027080982270663576761305424339239584137948463513376315352140592371991568199401190744256517825356669067743365894184822322208407131934570734915504213317310778200653567466462997629531848191248892236224283741371422512015378613604510169592835818308160448761292151095090011051407858993929888762996336755338331158757475594520000868048300552438578469096712572839981683511117459107658195737933169553404989524647612886683096652454808902030947965459284323231627381813380236591924069067990529291012462203936743694183187854178751533969243658201712296230439038065477436793752002109165430577819150659529655435861617712718096068285117835051611252074084848585330439410679157314874767162516803888832905330182252881186861076566489722918170504835464060890521862949233401828258746868602456575590346007713610165440003956684188780886184265105506864536626982863919593283439313516834548958737721772596406324736209154800467429339629418787899560773207036663326367690325412440332987856879407839858244721288705834823219856639501579869108218820753362877267220874660441809956485058276839833919441512527485207532803432531983457313356526353728817855147031764489692037000235920874266363258843219219655019338242975226568322675198534493113454086038984350177300880132259339905276113625334190605107361725559515325521790419674265057537994818742283920282718923329986016737002916056464793222911048686558427505468955369921945070332365985467955792843912923386903119083250702695995951392692762633790877812131102620874035654354249947765607503603346508126535728079290369572669901374933733117186470017562088817380498409909477600653297106372644722204646318328595724241430280420400819775049887050946428407124154874422912100529817341869410493642336993825286741425203768873257126985409555295837690557727917156124512522907243128092549876545565604048319550588061868559782901110263468075900265025470118317492839903979873350474992317015044988944630552172059000837679314500399669676362018447616922309455292879500691373738518009755472590262952182680203876729756449005864805261098388358708870149139028641830352875452399146725402535592293052652951757996758755731203302258004801787671668545140482050089007896687671397137124560001713076819100359230163838048106372553275073898779841723562578570236468217346003595117908394731493006611400754636871531646295970041410738827439215900014279424789705611963790426187063209438228085413551062912793063321240655946589715202721003468847316801249936844060072820640162635227296874461967541142432216153831102769447647263928494496813463151765558380670481853706189600699727553841210918178138829577745012087336353520414473605665597368313615219913894518861229598355308437875349240596949168051822717596596579871053113636842672470665569080115576123095487001832806172702314844134409258601805067164537799024213819952231716459781301665236875841087205275217618130714038325004945487184823149557951755727705488951880944050308360678188461829288539982984234938136814212349405602858123746410922061281527992047766413922880438301787479337018612995837060452060047095593968437559817654481462843285879376135910446968815545207078242728074319256597556626316855366535588046848444519600215306196478998393172432866524292442200133288083461973606019499866149410858912918867917543382834114219775266191128509526791463027806136336269938140150424421926890359852769687169679802972887161353579745697480881465157939576136878616536441417092300729910590647885030197698955874593830369798519451478306210898125883475248343361553378618409801928128705925910872904711037028071243205330310335230198912792232048778938832725943830657417533549483847813771023652729384325745243450751978385353682955961832729757690293033089262540850233970620531219707625239908879335167676422327273330797512636595460722326231272309211093085759172735153644902940893258068043648464057339258382724450819821853885848049599472424568899918666949853799237233995648387803056246748101954178621227763023584010307433167680633878390731699797619159575767018999075183635328552161045842333068809149807389618686844818448641424668206381360762937251110389043940062577612078367559784616751285712684496776238804278619511570503361788330842376109508470025969229953295800374242607505318449878068416182629663270480341392072109753762397691542001131755007503252721183752415991083857682643735612886636388116163905570788048827768753847957818309188275538865096418301780647835969092143875055815822287194103746996302931230287860320949047958705319665955952164598289221764587898411102248772280171377422732325549454987179776784251763116307601459581549602330961012586437210601460256108023285916527599814373986526417454514674740937583403414824907244972792646527387870007236214692215717891283705042949902205399007086593851967924507975378321056466805761752342528154755231338829322926642643838953779876986243650664672255076904574044631077126021752955472040505758210491324012916086618861949856599077162940304618046655560354978471884100072427699367446386688236297506695475789155198788187461125073568551413284330172377563764657705999099622353414096340848662826333379046947126508130935153614289145201198587324107027483176551009349396716244104079810980677910688354640483322807278643856252937697746794419148592508266995702417651914555505945548042976103731795969969297461872767001960051110729922698619124003620867868369865648084937956087061915426968256349566247753524523213498709670161570629512957910690298034489739657777580334908341783689738925246159473912383456313437378146812413786160302409000293800791862508303600443625461847670341226995507332773439310503031030132507452662395013931338073671077794021914523055737195352151404814472938295737577429433954820585289113409465359931941838522228348550922804688378876256878096601105940422374774655692117407885103254641808047914550096583328783678627283797925027237820322458190688119244258786519613935191967903559338634448283691206319986462345645880189253261359161472497134622321580939951211938077117084813064603813303067449780647314828015498345935642645083239788674818871322131621947172593108791527859650189601112161906170468106246234277423119973596699496058463958968648105716137096583276626787017367356459367980893884804391850095722823138893067040342664229754824408172582872777324450543179646661323140834073821193743789001891222083301664422641213556289245451496985574545086480530851896910968961767464200435158499187268235627975628431085104374667385658576473958530717851773143898570451672639706773290642765920156915005179435328542061398962800265398713275678013909258589603801176901287216940111930941619812740003243885396947417021007715138390271263423600537729540373686168558544639109541944549537587536786291526973321019345819948405614780092413384942079980300840469023347221433597325536287977358418470741963420006194803127087961966410485689472509910658855246299537989377567510434842916801558765023830413542614542416298097873403445632983522267923690417340486402662604658498172943681007354833885535206810308216802529988780523665051627306971731084218844104034332107057166130529065141428634217448393150394531297029420129624232647991119539673561151990078931870073050158202488909751832120751459998988786584868160030438277193988349890519372548436158433194881510138013163704796134901825889948539261171259792911156709072905943007761752486812470564124985041506685404415399450826804323774362282466101104376611400152552706690213607004650703248576410876229192478905538897150521538428389091602434869815708613161748035585778802468126154473944056829043501291518745872013831776620642560126924781763770157613528943523338465607439768398833887805927972008156575806134276996000160925125779123108941583182787851997406618967255603482360820320772168333140894717610193309778220553030911572569202611954737800116527289197536121719100972689369555869635596217407957518305843117932450082650090414061108642767188855506539978272253808063909666091083414180586788877905599250919084350685231975834675958953689514700981833690281008906598782847705868374600666173381052825108353239336610903383137716560504208147963214623299380173405420644476113138345536336952162326492213699073286293187416734616924422560675234130069639605382961107712174709410906706275016647117298845361897325460422358009544098636400559396564682224889311114394976682019454270714187897417541193092314719098807314733721955569337528905748117365415584268101556676052695667994648546664330026850141285234972831092985294837236681976915383892521807528737057427520427786503934733683515913169575199233241801113122632238909890584212145614506542373273677523785959334807101128811662166475065615323331851732160057248598561179820100699163766053123525633764356880831519435552153135182656483984568784962068470214913213068222039209016408073852742867863439922165437941582730956482830297567539910079104538237107383152794960568870761656869718394951831928464269722211224088261430204545280225609924188242495182754503040293471571676453706180692643507864614855327751425663967953893419390023054492191475517055768408630407817364575056233583862063477212777873634713147155685667409736093059152133546657176040328912479200007929765256984806948540186572600419976503107801871761444328930673742188911857718426529642076291656273463696499483114929456227188139342328922710716675442949935799832315124565484713627797347330985081905924186946743221161116681808081920750841993225839293399207332273414329113301012067159151590420051768932644919883457406001624202892430013022527201973582657878735224996179482350394439295657723877100234915392458665808426924344837535270133904188310148476382615871385969922987118213092171632260907546179783329947286911389912350045244698628425503784027211697239715394448578237850007283119477442088834113786408736652310081045544425809764173057004940793348785756602761642131359776600865050193971708395556102876479606800105545701053255920881088376317493310099154323418096384257897146903400795879259929902095329780862222401959853521727307164152052518724996269787094042567993010585594863011082726093390983499781897214913671237287893012347703001586249407960698395599088650561354059426557135877098147009944897587452326142733257543138800257241281004819427187077286180296744279657021721953075273807990840155015051096790268323846872702075045744574774571704472271092337043194784075537955538374553693383314801350723729668722068496088407165873682831325507320017637461290160473871111448884174320688193308450644473868750204929723664590836806298283660937197635130565992785372310186406715373270651485970014120849258497348453083807642222807548112953454247993599750172874275166505445549698000196577245335136523305066842744517273071952880848860688839390352876420677751852439620668542542538745309138744410899864272094923950171927120389505115645624101383647041398686768224435332454046632916070722976531967556446140373844707567967478791550273090749265431703500760753830415898038455709165286804018065871988281243208397546194758062695427665626436086343677048312942862493198534245723684595522714653763516207400609061452897908207320343330908113948361890816616629072687678175201245786145553239447078140695144032871505215090112169299217743774941338314266013359174227496127071337551618660630055555088415396719173887698375115702627074759643448265738381368990081273160515545556756178241986854960575403936325735455144395036715562447631027988608086590626789112659402678613892304788117217244135541671425615877619183007041416502004036521004111188544293212787851067122516374033337787870099087694150105011234061817060244619217711882695410769381871702695664579122607367654928083749064997879105119078143602177177751733428376598760281061968685095753854058156140006144119315041892835318323192229964124977366626158639338647302253429508807824444309810688575700741798059155291210986244117844165205014152341106650184375000026744504005947141206562081726750051696141882871166136239167981304164996344612508994555622904949920401416843550581889277236462985025441874626095442819377975702363659833561920426190364335348804919227679948570061258881169945051116164810746578139916221510852616721617252404373582824354903887283251165773475462119845665394966068942074891267881393546831008672988481197027782462325926073290390802235670588621540701837900956283064517714394612074263822888238953151723440090628622013173768814444038961975431912638593695011079711888977525444663191960318975412468868834566508450481612919766651933027315102833168374675462208112991764967890427163676993645775499039335667901630253078010471045983885390708769888408703116975310518176587656942062868939603355192732928429530503508298369221674650352633090961570679699132440536317764558469251179007678976222159124609025866179713409445600697768969937085005086208607711017063677010655523628806381256104860944756822485549508999588156454990047673513129043780416419181994519440524616021069426491736845683615393502560265032386933982205141286428704880724701638678025024635600845125975881202392513986459743764656190369186598725893882912451052200608354065878666246638746160062952191306848896941206960394083446113461107021763103344089403108263944855418056261773699769038260557105798340159355116868101750422811414287783862392432919087311108478252179839483814133636552560338341026471881465087255477736019397961097394389852595967777538547119345499343479014280269241320173757457441202179920365350970627461254335917662448826973822106348052865254231173576380270624086007873551120492704363398917987372125302489508765079870886532921336325483450942946324325977585080618404932831044852055910922396800156370624298048690180377641346356702019345619196975856658469200444688630773866170623491904025185586676961569425152221182864016747408408834996340574170009809461100937335613764700707318495092431322259653056119806395627609638216921060426589360455345313732641789392238100468305495249133860950137394680511664192769351427468361138205595108612332214347259388972660356916644467935697109526385092271662395138584620649226302004625257868808450220468315514706001994809547604259711676636630142351907738897894758274489369560224097995889933618818725491484737324699913795804642457778802070629787033529984286069232880494622919702037280937530861879442106385843238417518220475275994105620631060312343240359811358673599988238925968768671046229993319159417590063263419604758689118644568929119686748628211703287616790934262244437042063667757078406252899959688747633179140907089146734583756151952453198230273284014621268519040386555464655915779954334278629032524916960309911517921164377949303350161883532159603094605859581193538873951238757761144127522432419303213076098707215012716836731285078732227225994100285839699858875911136993355214907378811396779690407071543169732915500203473594366898303001636034638379717311663611365280293945461325911586435750662517819264982745926310671800771008227571972176881200589372465501857519319550110226890538298017257798920239729054303075236014773144314537868121111195459299692438751073393550797270956189431984465593248416585871543391341934627986619062286646662804871541355648211781947122231287369314757283401592633366518300403511360773243678821429281704068173244591366746071033354382824672296823192275759942227473814307799358038290437481747361685465796930976783405690452645242720281671809624083593957115196610436189122232897802157877739668790543506124752671066532807477391775020396803678032953955716002974454221287810136061665814974104768598349475038293510772112309674377296240657890140286763743614308579461217154459564001509693271964446379951430767022064479642464361115255251863634239380725485553118000616029564566320385492898626706090186329161940729608844476520095403488702163197297742762035307841795204890617167950052851655261036460220016483750158147416994575760207126305900690954493699396605777030422327781290449242862261296885717086036711605756676348884749636329678683911763417531678896499079127877815108009655335043762698939866867861438850162420907732070955677474034462843109402454155354979724777669972093904118008403312933497323530945472810353120169416430771663832041623025171981565104007568823907937515293961469274360502231407527417001232861058509907300274261145813423114579301525216652767491910012559604036371248629081995366410697065029171515585701012899541756028910880989070804607452536410695317651697503254098067314490150718114748999302398456133379137452971975884806759161637626004974747749019361542007239486966268628057842992722981579696336437493559705553614963261800761993359402224197522107342198975644185760239829825609350273778149346788206661281213535752392193735833953584809711950204571366225997734031686862393601768538738327609730846927532793282677005027285486849514992885975221788380677671259998322670676909254450704435894675623779638957766535958894803113370106290486876669883797960066848871121395758639036047224186314078265574259098184675898579360876499969130007332261987791452018042056372517568563306612218923283188343358500079574455399474838227516712870849694238517535042627075438740916166022702885334131058029460187733009808835423716386265739638048003560491046372558474135598546863919640979481633025456325273901507539115728841789756494615003135845015270639169511087203906757093566090834300797441479241189200211165187050596837635247794075314788692823987670696089419764030597333200027230651372562318307553283448849365396585462026627441091339202474011875071463656195749059784261099026170333118039510431930651024757143757502973572840691051252305243441901948423322222856440478530645572718308205047652391669369178917757808186023311267439132115225572490138284322419356221604471960608184070979153353743655093771331131562450105365531591704674679620682066522842831335120094615210693433511932107621514441707395187534369001752635575129142690516419916324533256869604553525427115576359113752906675033724889794063690275810937546665155834455248474896944171300875550243277975148781137823764658027583555519648736176087799104281653531960627732051336441913005721991203424827465072233492973168607549542253875817277900715194622478817690010758728958561755402915996250701416853005808919972371659885526769449847354380858364547635119321436202985636520674766154136987136762756308676997222660215324032910253257445832844354897567485349436599757898130619161491087503138393133178403003326852825724133713765972245141610579458727722900151324714010277801752125744832537927999680149965116858156373120772806128756477705644375975644311744388748640886517635943724508592892814444371381778792998434298627304287170671707069849627873290371301152108826381163616233926389575674771420575377718572178170099645788302301777664138274120878858029021178164218140030531368499559184001103325873144857297126010271261600794880826957160507141277001790382806232615484105464487759169712240049051523747196186771007535533966311682073928290921834129188539726169088839371534512414418186969178980311804078405929373595768606251295376537752792963459151875535294570256486143004842740914988629084120524527898142325436096778301915889981530379809703713968888926523148162075223353290773351026836605904123783076191938373367413351360166111154278437841974495789341280383789648948951381558586829926464383798857340000197779521743442534416590610408155471836407642624557573992620601963398284249651869710561436225765662411458642157480043398516724780352912180793133236461727322426112911964278029223810426060512287000207154729218768299610059197396606280994268359409801989206682193028465839249329200962658247838370965273048431676030401705694585685932274637476284887199546768427569369401269062581502848029528037278613340548355323798285506623357979281452818887524738767978148477703540823323449089579157190974492956497727763330737670504667188023220909269326277878146733887740313463276932323504790845087980875069373703404686695220756299297246546547035057403745637192881888002361896830873053788895263953578411908684544939679697353714884440664896792329072620803614894441330379895987155397745402348976188470781935879874754342994057657150293925577913154480889921758010177777900511543044525565544328893118156231815909964194622683487109728938769822045213949816109199469499121302203965881254434305776352172557981691786209051785871519558680340059149028563034498972876651456786486118960291874589914509406736409581151298532514194834067206939672412862199152214504787734528418361926337566936051378181617092103593813382221902165402923747100970884119927455309227830671907748584079414592511647629377090029094212924480916713650928850309875877924541718195237168198212624795847843215032303522462818243165820779947805597796919071200600515375620587325950793345541535966338087708668679036603064461543155079139726301980650415861240065400224587742133737655612141399429219557236964277307175739771096248863827809106536657831536364633501916393746160823698374403918863174447819325613028434336236228635543518670893455473094545030881461476381059286542047106116534502040019157695922132468874702479176021753341469269455693048309639691347740482756872179369933534666204666873799921971521900487414901779906274385195817098044412840876287333442449340548676295407920545134882900713293378879022298694914318612216364763545294033632352774495902530507063166599401449394172269968221307113680249066718463376357497194362499562754089511037110513747479258418241448024123285322476182192402043216582055786696015702851800613476934139102371890353980903239248669292243080026039885337573298275695121670265088424854617719709667817021559550780678637644791109869971140877479196463931749581811633122854073187594136202210158587123566232924942318512812553607132235788520027389218620137535798145896843853810263143684794458476276613085417040672406180105681564229075591111445556118524782283134337518090051317000762477741861394464927018523904516256869705788326270353824238252630694985771606480939903731411757297878592600422921381187772166775415178386379463476609486832622878993928497503597615905741453768583349173500478161904136095546852261968779134566147405224591368965174838799684755691163880442392912537455532018782221153671239432728577591339221423065797404453975761423630939146231215804231561913268280588441490097263212101951231336603876023115996791167968570198339213685708843813917924320415378852070051917943254512443279990922425203428117691644399892014102046912928864600971786563638730107975016330258291467618071469580232546998050632125931882783247135691827615376159683390087917627026283671017224775345164111715655338316084214167094313948954751636585381912555113461552343544198176841257548602544106435439033376893399694158529437407835511843309286995293004882274257446278102306642474963822774483637844804307775262089963129060537245610741474007466599043909094109976659125564794012740098812435342363663386606616455326939036370126082395841118770386641628247489563882522195186626904067958039605030074127902878244929786480894926591490713208629861819447058744369976836369545447787077514499773388096408126169915100174617357696734432480016102017071068216248098833253460128612375124502490984218741641285935737995255722256990743948676747039229094798373246152736991595654860543714454286565240005460587894287009187645306015210637526352153877600281737261031616878957460161891307201248523443592554048247007696553672313216560493370543391203937637486449604805463162990525238871361908325749227270068925172150964562771381493452206233604029377080849700460921366960159952272415785687230340717800866219106480992501461441145684338711705842913818896236251064851162761638161730548235886047220826364514731846429705106785290709358235958950881363686291115719338978061217460644318709609253881825952356193019316688260338679699103769715647705237958288690022063144323728995832533410051920603569427318994197396749690171274429272347217350257145188547087114692216880815395238094153110287235140388831067335159061231131900378183513554490851939633559616852120131743980186870165067134977876388138881819688302243273506594931091683665462481901649246484603549373348561983597057148397355327443040065461368856319850865026104828561965486070579770838387494116549082971794485702796836692228680827229178395767002226083001665976851362477500488199025296011610966209390290357864787941052700820392631023389604718412163259764054562332986562189288466384794945910161592985004490589766830897897539772321940868005556886662067808600816774996099588465644001732990704735818976327086235115894559066053718661673302190800728509725918457992635972852847770279392774488120947223151955590081074667374838201903665838804846215197975807907412604809421550577832482818285712398504356127333061165549613420369659781652495261564874153174448243821693054240543486552298180144943275776128513494982342595633269776520026542641847011758958664664641818029666871030630453268914846340812538916679926923023507759778521527839466145578510929874963240118693862820475162887942047888895166183390260895265269491439505850584907016268779114089548968840460869129918579609080507628186575967374618057097647469216383640822593957356598250963423905632530443567708178634565833114000114863311743777400540861934285276165951357017988737547317560520221314069616015175054789886972862034575632615288535892986283714813540179695485650708981050291808917172900031469640974488811838010783091999485617990835851314805921112694356415653882280365920011859564960052662054836772291669253812814023295691350684104838539976688210443813735585974276360702581104291275865721284450507854887467147647910341210583602607758474670891013427268543083381380870509774185187093523247766100098366804236522360044077138053393979493800436430668780608298116920086971579377278962893345513961317129225126372509366660318119194659939865387225091252392313997237018980774879630701436461794517057192857519842705965771019177723873161741656149497342577603028092378449481440485160321327248927089234303181845978601838463088284852581466750983300338794530757737583199276055529495315223903087641411111501052822755387012941997733583034533000004752029177061718990356795428995187678329961505762743864520207378627731897934906639933395395157306046031404898581152359398852354152808388719057266107055293289355915939807400423443924641609084898656098979361452492007052313149553551044476504172512413154373730357217877866828656747258801157223907701904789586551206986655957055714902390285908469557590469403435560547290239989369662529212112635448992541001485240249806114397053480613764235001758898035747816171292146810039909036850959223268784470154415125299162428368360992984622089485070481898545316396215629124982305965243147848438835242071735779430569499607607349641418437931283905791001310955232726384647929508748564092733415871857867584841065845736586612572643441715629575639774536059016919209196162690867314787953434357878157065639057072831587107020447298687769870283464592822796481131274966014491277627968363671578064614684590431764435021223193605177399430254986770975369441198137353420310496436399788589871139350055866033113122970772674422460378952485372421043473005644305090110541654764390293264044474925664288762277015905717497889829255975252627944408313724270109703844978671832965183356987133302476804743175889350181895848964126338467042210120729358551584706117842170329061210701548269375999504817439660809274896528641449849103906811154833275277926692651403988081519331484449580315070958726830085263753735248500539812087977890229379705092862784279189006616533875779226728331594172237675177455208718248909834224667476154140397597981690171002160672887371565499537384906629321636454910494446618926082718373186803760058410186957083681549307905941252351404735690903984272712531206449174778313436936110816476544559880478109309263987212065670038941898476370103447406658817928406740238391229607679217666956395238701100483275029656181582237723670622707362761931427232383808911061105674362507163099765574013845873964708256178505075257798208720274119189061579062921354460503768362820165472022267298075697660815517584464773772967327466627367061860644397795265597050080733966558971718008424700328312916222272135703267669474326318939864388197002108332088816564827736871324913062904378605045099776448412520449645551570153825812545838866036394005925240862612490646429828680830123261175860412788983262419151681967709108810146594820272948724897073419113259315616795906542875176902689976675245985588493708036281565230248179530848220018865319334678830573353068583205498410848688438860337743086394927245495531866891282385752091254947094785868619577335447889429964253201186956469329458307383435533839357430103964010266187023308917498761778283526529942948007487818027639742416821832557281742727730640607269269488366686105453788096182489735567603186702501882378588747246787643662713558631856142189704588943448044383378057904114338728809544429416725203537611754530522262954967173638966996428226289188483001511621962949485745076958604463314873192233097678306868582162950778395890521618489350165720498989256710094868723319009912631152062600834702758790017029956981973165480112189742584639755785769359905074494295777963318315428140057175955910988623802171360621931150614048037724546391005733817486545849586509111570880517688142041445972904463077429448167378362806272352498317268310123875201582275186397556668403335633672935555041081711224635939438086105095203459747266919210742395258613404431069406890806435318208785101619575416723499474901759796656365678260517419114091658003036637365518571006685787324535180981663181114653015448872475253973100750361239501558792953185093264079436762743970663737201143116054388417689874775441241720612753448391080495011544024656946652143362991396032699620392372203300786044146661826645565132149012501420910333536844427522288381302526195325215119968224278487003087955304817865382934368941072909116942870588197397838585880966585599718960730706571262220379128083858150679739842848962344789396131965657223916175671155455288137530172717344830904463115166149541264101258477300638544874726643455797723137347125208382721206465392808782703144238055873424112707062514853094628649077452606709648099377163257708900561288371211862879848801253468109768198941802946753662912473280921869363555044141416155620939834607073798650137326339608262992218668986031313829848458063199539115587028803119250608859399705320159424589886522476274944880268140557467879530259845357673139027249089454587274360928854416025530016189739168414362433963815496344053253755895417173000863738949548019284252867366675383725286829998364229990661739152954075395049590553701714274156793576388698666096559933573620666214436343934573790896329097679996149259671881569127027894053106445399482181845134526740304656266170769524098636844752525595600559440901724203859030881547497760290001692270428322755507092903043023640022564678306881380589162866658894831307543249377315465087498690876664817851383631788457197233813768503718476414428884750339736448337017615892546958406636634161403470444055998554004871204623457760071410013891209927977596291599173470884615950435083465852546948995322828444128277453551255879062749414716236389031060290685542403933339467313331242496521843573158654585640664750733628471162848160901067935168320177330356043337190038596103891202264459552030487341981767197931901805791571516643342503364758418975613178078410373591017894755240184162053439404972260594417802594552251394913885000231331714382550057486371474233407737526763449786636257774057398237167448657904801893356211679994594115198549299610865075462179209512601473433738941960405597608633083050900623414324118479252106999283471062989550368168407190643904405782835049329952319355776671312230125302776953234265237670258066321700442056256182830314962231027807637011373153448600664381217697083622230916434467756409125274824725138012945308434554531652748223652640951012808671407413425755471777083889140044948109954704951717036165811981234140877577819317895374702242567971261658147181836059599058200397486270742028747244172251486404042032205373457914038798959129354166284417611255931904803135589789372066346050551439635460835362745007146728484503314095259559980313365149860672754601464257218169511880771039272548939323289150493607264329262599397680875557954451344465800278546699876787621109934392121793733565637822239220146158459190184292171596769283929721358449759988202824280699100541298339652615042623122476515528527761334041720392672009039188758164737190505825334144545177026525448153650506470850895111982998606141987138508014019842889860382338180770979438814048679047652802670546994306590827681810311592814537889495106165010118581942618562102013141364730737845623110548012721721465857346117110452740023438380767826202572975853295579587805613830555528160497059783418998981552831894736437798368888569411283487504628959700771570279614844961999442970042666108374281176258607853804067038572283310768765666029777059200242148757585478338588711614792843996772731504202668387687070158755437477134449597208330241303909776511111319926458143396025225607966749201351306051075970383790149784530297780721861001503868505943187622809630087995921065193134730535599760485862172448952812768673948047515938499475115145769585691111627832939385870106491743820738347062031131435044988804150459403775561384874980072498510681073410947059402183345122064885993430706743334426509360885272918183346671550302431339088216645145469927550378639504469679694707041739849873381404802663014403460654126214984332112801553709767832729599310859788146084605721478781397065378372626093860745671626097934962957140695104322874222469456407400626715652738066341761210424368770525764693355513361450241909793359860184870402426511466601278540624930339819130862218138614902468078744726930872352201609273611238051737953847505193948602438740345377299838493760445850601759393606903490992988672391586520328353092237363979774422750945276432539002625037049981915293534044868496407095281202365639609785615426786462289360984808523641493545913738998128612871577986319960966444980234149320968893421026995825089617492591684788701250881909422813850547935299352103575429812324501864632584631706093871018693194791619843745394848835277119388111719590711358333727190874246161513831875197992073133073340594793795608991070842625422140604939469417447456968418113532501067057255914811693729782916051788118804776283970746429920890899150001018726730686370280547951721677007788738567775907432761952804100337639174522846116064876549073497160840140256281687385857768450712572907592503908830596556254163024522328468859485824061383586435725338907790382297348126210536588099221370788694943185497338763758573642253410984969925913229205745487705927350012946251229400525454851698307895686178702635863623823314233910740470915598641152327241007625597288212737248160328253645064043325636184333577392756240341161356098451764318005679946303352482716286013461960539129566096655848045107775889804326203929801097561161205366447709013623698622620422713711456615351657642567289652621246330796282874811568029797534428429463335083156785462999938641446035108994728744772990938720570939638959354789481717555567880173281603259578312850870067777289797827555966078992352669409563230379587921226626598193820757091533247947522184146715584394597537706535062359239112548686854846667016346288214921312262432360345538986623295581500507985493852093905440799711981951431777329407223149094472667166303046370336322210752179729575627476090617252719461804807711945108952083896272713214203207934362976665989643198038921191166451463078833858149194408636873064041567458750151140241838318807797841650133356908589457997574684483722628624089531405432906215641823437563747437007054011664052451026491313609102989544289739264564348496120422665095185160168269035654431380976807359402366007867518726078319595792636862061209620157025542513423262584451007987719438064487609575275233063559306649733642386976741412307971357038743046575580659916305412821311628082784890139724977408144282614928404710932010348687411400089303349806260884511435796611624601485653774264766492450915253340932887288098897171292338408566013292733160755310884034399378327625019249283840731099382770974500278053724471430451327650507751568486735348430257232124543095840533883072075201063195709597901156087719296097133970793919714616391303595356711289382648355304668690714583657611824386869045146908403864267715180461286736102985773274670624264961728550889439484289586686448303929594166557931925763160277953773688361626863161040373169920779207921747333319412292325236686456781060397670071098699508647786997545503201864319861956236132087305501768630589050641677156701528959678785307876376081267292745957223167430524053276501353310545321704859089969900995435417307921957691024238608761358705343360329679000894707914736855706466367104716459309728199008015174487598125414343074510904437089528237417272841227790300282742304028299498179530779684307354643067069166765577685018766412113944647716897868522283509583468408208542922645713437900603481957938027975467336283378087673699284747688151713596171485997904203668887303831369867071981707017050044406615294736100131741148319322193629356123536472962535458480760034141456945350830974075101577447936726986091556572452048088142821735863062070759968552110054621347978171984865702604089226555320355160141640385527157194757290562125926191825415206570450067588725349173534838426825731047762341638701298531713040602081035341958240846315444241808675375476385564688549176605428351210224950891461132897021857917717139378294063317724095175683171634249391472347255771037247877392931480974031781539356256922049915781750634138321748570277538642197938205826439200329370869842646007491691729755444842818184447650498451498426573458593880233237336826967485255893964102215424695894210223739685154651026151483414237852750910757846803115586841195815299908859008948628350663822139151201340337261148568085826391132999920653039243030978399195122225547372604729018074681345748709870711079175978058037050921335485028926939656714489125119964844685463692953889066199047573955357181355935146650093278328375146954835434615697234652649505802660940635832778282261552131573974476859497692556512730699647667579872068321832959488472838765733202721999640993198716138239493501221684762419856883219409461361239106565571469285197906321477714516806154908586265831355586996523386916480341716839193996036241900733910920321967089908905759657122244289530119045295758697169341061749974028008943710536631942660704607177138254300870870193928259635394956756164604136301960848773935525358529590265797298227654602141935254460698899589592857964423767576633192337252847131086445437570651986270514894939990307168368868147710637073291505313923879757476292574734403370913352854812912365467600572189838251243651366415907801653093067789697233869855939331909708920558319642628608043456167032078501680779987387543320164992971734702537303812449895378044187118888439899025719449021777359071675104242887145260614216299462738503658917280020873201314238879121189629136398516259313682777168512718816017744223760967773170934858123147511736413013476357266601164316054061180033972672832882335999769514344527740252071830797677674534591598715567753384425617348759201663620021126331835976629607182396582254057902078056567378996607137865016488429232624638624951788388682047774863156930372600165967779944326999083838676289094979070841563557681130082132337986706643778386909125813100743105383007959184986626807417257522504639830826886862359482317164212809296536974635703651492612839531406367867236524260422897186516636240192036120571655394267204444678680025139322700094756810305751207538664598029409100123226648412721692224787550530441986538311421734264281503947016439055745433954131778924192638947646168968850953717070666390587965315358674527655431240207665571512910054359761152830870143247556756337229446847548699907842726879469498457376396231013264597961157045523448206826872396746059145499105592147808132172690299086839115690859168090721227110300760440956219566408094399223631246071303234630701055621599179746868308113105789661633391726088274863454210889115594708038993312061734942757843397561301127216832687534644272361963071906954664812115300115345019379612940153364369185384668690779195720204728337110797484252996645929468527188253872765545047997262569246483610139890552877062805642152570147296977036240231110965598432753101173743533863222167562839792991169898103638330938428698811877690807990744295925875761994233857536458078878028470660162276572136876332289070028598409252669862862863501538935923692381963239137360634129001854917906328918929802101124160788005677299523270813811365044299094151446830972124017905664875863712495862184332314425688910047537048520480413240277663298343097908910047077195242525992783994993875953964716526401560369287478006237314706264143183070696868063932907017068090152075754271309253192366095940746513437144423660003498528122729104168286439166140215594796304283199752948298061391439478083353663619898192072699970455358561483039704065611493075128372141135687396498947449559357239902835205803214230576041621603407382658601293663596765027689406429859197432744391006761479813492844017912569654187154880651468801836699024234192293560666156884450850656084814203108145496065106814121417883949145349240906486749753482643648254993120076391305718785614432301315552031411522730916319661228639170077823265443646440521829154747612637950186558874024142401463751359951514509247630375727719750723169070626165928766810925806431240831882094347666373741609281918627935024490183390112041683903861616536437564154007878351332995021786627468648984048918230498881812202299809393567142132728930780595401504986316308472558859364640521806193091072352565094293920023359493888822728432804563906725871178034206521115629914947761285206787343074902900358550492953502468918613069311046280574752739200018433016312910900764712980906446272514054430223949451747633037324164774479356502340510943710073076644469530905977059885540471992277488779247050174562602266005350853743419774649463055980671880658153802180710882068778829179872581886399158788829152065870020906398515170236756462253464773610784929639179551249556729684343525014116299065665227486650019260732708034895295381971848730860869356916422568510631765673618680521825721530273721509051059725648441111477075694635331217361619902222654216023377727935438502167945711962500630546568931182738861235118075037003181686545426743057238389403854241489349681052530687494665605593451247205585482040282669919732161918901949913925704152171820919168619391620100069158470117730642238944324791141329550539905401616181909380262944784416687676133659729469066065146132035824454307120125035369988153291649870494549915551621464993291758728993918555330256651705970837506770709106019024487532723314256963049744681044778038079141074216371063836329290721502535666463378715200924324323034324631422988936015825843466342803738150416114917130886517947373398759883611446262024821595341268468146601224999321637592548552167175651717005674484854434038854587544054498380492393748544369682579398980727603144692441793082228898946319052332024670471391729688217649127526291821611989632910941441835472382202385307463636854854531591801906942945853588148868367879775879471727455584783353520176323862939616359450271218178742763238136897197091970082373562753157632804009529433436642398223057572376377592496657210519454701972034127227714048079765645052767418692215122260651294651619638972008080179657581831278881435222239883667927373340511803115351263742642534050478180430274553214217026234155638093856831388798814845705798876801809707745273412801868137126899522185550399930868299110365638368329483505550923718619426265442844765170867827455221710681706584527262514919345062429293430511549733576802926518753499459941119290677707102487359085238091107849376952807419202801337671712731268815387315606734080576839679673879085847712766036986717086082968674986609289644390137601561337040052280474544979118121266772444971868042857013319846361560790730105323318933284823725616839047863146689726462823906491740153839612774188039209418031835966371596579336123592296133089212983936536138657778261450550754971557324572827117091001828740856644269710264825820134604140794757307084369818261683826942957864004098686022752156615247151261423605603532322963648324760684975877509266400173662607448887282105074984757340502712423091079066142984037785379470889253108106246299811137300044536877295036519828502837908151025260068451679288138013691165279984221287927821223731675903530649352146030292102319457826496622467301444799610992316987294372849488429831835475763012222615445908713967599528085169763081697005922962278532366190060074961887416877670764546243337123677198841917108152210994925919869672177861531231843279016781097752491128517834231723548597866284829410028086833672822329657717011354049369915334802381163433001946058322266693404030491140714279125318242230375808206987380579154632563571779019458843810661730905094176331831637901116529643745341375141394044261614604513420745909557080754004651429958599565879576909671984418930626645289981154163658850514615233904433718891005884042818312099544812914755519637785324430457712430729102532800815005058939249314362748046058326791536419558438026091324687414969379916780074995061042271069042950730713419863357297689541348445748056579870409375934505315093428254688909423062766072222143225399967396797047840046368033117773634236432781312881737490410180187772869111083165097777050481195928165936960734478749462760462019373497855529280451327170917141168543858339807659202658889072596179703457628076433993474166907912282924832333948633481180225757617431842967471292642134335411080723779926960103030306541100794862906255412169507247255427775120750044194037066001893082529191737445259382738630296411725098139460335856975425772595504471962749222365264681735670559013975821353469931916326050310301995384537971460546951208469756740484303952011173284455148412588598086364877598216536889151755966415006670474465603127059192446071326131815678990715989939086531736912270513640636895894119504903769715784818604715525882767451331656749890050859674934767539483835223512910411912530732918845570070417021799010357936720194720800423280110737492843136267069554706783145496059013078727599075957912966806952792501435619158044834552755307369789075609165465693337280412130829565912394286522837978486977403949875081516114415935239718680037402460309286463428074232713738061914509837154914446881455233961870199945191058095482171056201151717896044011928982498120785412504624057019348992376897616789068171829050665066172758455916050288280178839963044706630870493662889760129947941448801888999967735374905275195961602070610886925110482444099160512589644321612715736701729117271617649341818176314772313318566587345589466571065187862906077852436225288920916445520254097193810204104696930021500085190403175402220700012829978855874260835739038681583980868508169351763702646699633150197556468474396012562901872933563753627728044324221477705970255984040374423686890960341163800404512091902678884538222700688579916465543637587221474124591551519191851356293670638220232525142619266477736694373885438689819736790759611879426271506856486146734097050948306283410563653220852327518575085187979256974629016708229087556031989629366267324437088760627244748906694733545398008642370876349573103842302069164742129633915500036342588832876700400613077198545469341567896905147793760948624095147015574744585768654255055595207608603146702521248923288659891010229963943237575795418520633109805563448045805528774984936566446026877086262110913871170818562938804475024848259062621323167353169947868082964036211670005771188436082432677629145317643840058839803475131893590192710314228198930059735294341362448169704133866425777257344034085781462069186721576308689541408759361036675625476842939370426431189042456284766603103830104077119745012702870831784870352833455416447354361598386461522130498384255254549969708792112389475121726812224918213776892898271678737494421744725692521224122689850448543086679140019027700835169360625658106508735520710581485878431003723702482147808445686998938524445484051418024363829911536645829245094062662453369093600092796800983364848063131058485612846788369751618056635876642176959766449555052748182854775734725235407109814422928427546334302232807154755504752811526375233711829684259618228723758783334675048740705529098546151797712851579110197627189551039726175378950365160921569352441134748131838792260331834299795093646565800885299772216129546356366868624257698811622783876089331179231478996888526819020638586106246169412600680044097325060175928320550395066672278752583022729132510008760243535193642819034609147991859258770894213321067665485588288851835014993536526133564840965671031005616131526546858796984452535467082477317884122415729190771330289799497468633845270883037868869029156510372718670431529083950646374404416096978706710307973244899612918091227995408349763432491983565299283928285417020548246315527124542061645437228021762608321726401782927026904679941998969262167924867151672340251960711741198698427684546925103424713518758045570578614491728443815676882725869504699255403951688502528087105731849580911651429748176461883501431584458213460347775625585975118221267337704476939749683673320139196903635257531708344180919135520420413917147513538801934232817714281292465927340099340239414171836016625570305596469725729499612490089230740136079554628999943968651847249264076516474570184587851783196452226707569963734047666394367667203349154609170238869772364249925506086937191332236604186794080549618533287769520979563746292723913233702330357529606407455599873748786321239368500896010297136633562995617129986847954805703044382914588446102139621769512093269617803057678638918235732862558343263979421344228884990393921957772643860579739634894662511565729740657022155685951688337404201337428026883683286862901733309798122363825121223524905429121463215065994074137327241083818532597704439029803879380537611617220299146728875236605955788182329072244177741909508018946685736562747923504271760530929164616615822907419540037903482596829124280057051257833675738444009277461169469204863585966414458745527328464284000552101149320642280742685904636117958475499667013711201876990906459370509113848879983000966198450081083957537283925064341909250676605778240587226984293189284840769120554899311424258050481530587406496314500006696033345086157923154701251600966263935966505251400707160438426894129052636330519114515044864495784177582499005547526567341114432276533965340231959322109005627211825167909752033101635762820961872094389630428691173276601461402943172193851713037414435891334262629259881787989569336921587322350994772613076878611788031086512767336244105612240697403038815775618293191897378692097669282707967173790185564814499758542897877352520798455233637061009422403088068529495932765104406212778986417071116136377512211144927552116718578100838126894769442639423136811930038229099657736645848551229475758385977280615317806986647978654667519174333414998816000314648198768171958925786253286969297202090302210436052352912468883978160759341920669426322777596000466894760909974261512312338086395292808395963624932111419827937348114593690581837125210969252209423579321441222424527355342707917090365781574160759012417929404169271913120034619783115597816283425603567971906786598711276999340068128226059113351218277920607376240105024231772248293943397331651120737055866980453497877951178975485687796501270091962909244487899366199915494575913603016586629788177803280343921458044630486374736868582878564692224570433831456992827011106439698731213858186887897660757669184468718608073737031686292420656381793086526437440630843609292868142925782071333637968074508076310019455673670810270461451550668461058636464626858401857210527219525978017825685654245198741019656009463335993854174811386480143840901752457184744747848566196628862067638347620437890406948752602811958217910284685246808194477926622848298044951469754568663716054741488546712015733298477924084524076060972044811715837955685662966648650537292565461273299172198271497985449817555876550833909183549123253005381892738539204695203393282564739736074562538660585502168490725023790899783817594273738823241654824015258743864871479804200788527911271752826385950448941100111450082240217034241340869863719275408266021756494052748642547377317520986861809083733552119533235842280165848394099634855558750187840197306332680311957140117186159468457437203648018833023103610229555111866985361578151195255998907633223050501799897292255650688772909549429897677413505216920999306676946462200151917482784900164457502733139083995738234498202211200860553964650241871809843366457470605285529088109489665444190370199646303078393310189568599115007571472425096773324929102898374988693953011220272142800707359157626140708078851944678279204797581453002962326592120985575149105362312399548439201279593093222521968140526875199357327581869960049740137628610157173388328827852377293211517704639155754295572319279708786518399171966397440410793611633857401174561849578998500750528635383710605926432725064763914914814597204211398935176743769763806414501168785259180010454051515121512673195775133671760552994240984807559173833042339818846302749236388641310348374134823761218588083269205682915752563009042834906579801268075464905401679712379695493363182407411243888195953220751347527550276545985318818132438060939962898299828632276484622952553205222929263065495381211008196211208777996403798214020707873127076495937389581951808649003885352345187516894017263872129242256922641670762613325785480066439844253669062004455351742816763690763334933814640221645441576992024419337150452382392470685401665171495992548830466640870636141984642803425317804590145436305262681157913177279708070290859846909364781801678838659670102867379595918284229826365425819223923358795230652233516084377934744205279067104848151756264522770517546677976358079236886126436984346687577814355562881628551429393865999788608496332050356756806177826574276069619754974503323887973876183125869051994019972989889062672401587667167935097745160886472240137448692178397502341581033155097878804067700058106042500257044588014554855319434888750627545067648994601038046087588204266374127301702568585273676784936823909592983071842852813666301993554089811208156789121496206898910953326029515805855334587574149414991395889881223464432745922693162616445236230964243152579448339978048634267070646509379780702322917677578607628280482458363741308318643081905753098944934640200419505509367120123657389819114750659996993809523687815540295643678477765907021302538640143391447733893079220549264786482386387218307269393252513200319754813948535004724088049074417757097466393904119420679043679610625205548595421097629178525501427198412190593573361786415539199482669726844793541430038905796231081554904881157124480028020568369907824828416951489247889077161504526552283706672573710197867204682809390826667116683886497966908353978123871144945511385422925236125969572600514278993216881820719034776410719262440161961033555178989107912746814417607059508587859728455558816320741316931687583942192385912930511647174185399684904427888086914323648605659198958173358411980507244863615186081698008777034784205754670679492679985100041876420836451537606044890718733969835490093877389602835001008632986332012376054781143932285475184314350934780172051187042248144738718166574450090167264939798369386478199516637394878453399135763537000213815676967283168991908383322315088490867985981571010944230792740441531122215891138514391772958635907360553195082331758860805369218725901246395540908908250172442322707540402101596528836497690400614990695947904771846993520720047589883955881071228283289270390239910269280324775447601044090979608847900468008782015249084350641569537163545047464619589542216888570398407442498050793902632095013191350450518627777179958736720621734513775031534826271584289891861509630756022522043891067643115373514411965407258650297611216007987778884008312643855274990877066997821212997349227308385197843315794470522013940633097170211838677683542298899057870598771341619285947208550619885318932690406638888247610277729186366868230725987486001535478420584320494997683813244556507919220294471542579290652791981546198201203833700882086825631053221196965556832483124496786155643922209354682092457761770429180449347835963497647039572625074438350349123256535001675452988877783809493706806106930462363043280581974797544899310374330235270343394071570980374106844711383630315294630114975511662003365874231287642241837750598558674188120436205999248440775552267498795306637156818877354272860760179075547295030205624866083784892505317074280624380122358312496196287132694557134841426244015113489452529829270508884823366928657942154963756587399998257001784654725952485262471148300595784917411204223087004197589544551992500051912703876886989397088249991420498036434889297266380546433148966562668022043081663211060586458948283409193267191528686926342530835686479438073078742454994636149950232839444881359827058216245934791615098603038258522382557671066789668101631048599056426628353040520374157826817461030607209758642023974367106782663228876908930709467511479409173144782586592891197867882113210148816718447575893636886934015326774474425374837240736370959986968084597859848249561009854728918919924563866610652971733966233412755835755068083575683899900639413484395413883603468246593071990006876289715618283432034280091087445963997096069107793529801505299582573914684108200878948275501821309056484973933422620660881305850753803594173978052701592598580416416559187821030506496123624396187470314006420586840954217358879652992502877107964436550110071846075040814883294753414401564977880222159693622255252830497856891971256895166560333565416466255400603184444373480674460264411882987662556788659651357512047685661255419630470857261854541015732186265899280616217529840747883143644459997337380485775410825576631152087736405683118130661228577468819089908668185448913940237347575299983181115195550153779581236646709251884596783285357467505228784825357404477730182561556474236747008092636402727111012431352347148547472309555342184152126644908384047693741925149749036947430730551013590318891909297076275699652845462749657234554324160060891564392916636159480684347381034575950563038895089583884074663338345281050687043510085203583669631395001206118004807076825172412737945221783319897338260420728430429591638479878048700699050826860620488925437853354827079196221629792681981504501798109119118300333995025842777006937148296262055109106606702109494469451043601421716544299149131761501614570144313279681333219386995742941180329681567508761839104400378917780442714579677368668563479242611404571973080704314755354093068660079665669951129204997432320152088124647511525408819238224210410516970323801870806363804242431904832831149399966073357750155116713620530145406083869415855927252580705482211540275996958155486472404508689272564181183104162733682260532473655158999161473283109948046318796225638910537704408379217078995944073036797056332565805351891675765854562821785681273591615865239604805180348324235484208578492110456628106242453686354390647113696733206815394839735783251541972538244612697928577782943310555021388532383264681976656837404636703920986927897895424419519268191671110521839771723099529607878653632709497986449799756292786610657902484578964258127177627530504083801507920592038472042790182191931128321499787051711844154485109493162175883337077495687701453448709757685262196678885625718931538050893040787419265516210770751218653195050304296612234373015698677430890371578637116899037097759762183621195144841340238304267867344179649867855523482706974705293093531530931096572591999796496808962141633423833366681416692604218705892648660354679579402864139917068643487852023100364309183313940469593089537661106188846649866315069567925818765761435976205000636284048779578765700452297590099634141781110861729545776579779235394721436474610037042554184117229919054499933615080338622402968857220314257944457260276545492237656066241694579545940047394238070759879201267409281135649812956255856267903265138273379235753268801041755300240181266718453582204859106502443681886236058174948886280169127626454645067317937668012187689594906354946523465388532253876827047574138287093534392598774209840153883229575417583536510907746403104593983513515218832666223752381454997296824616443094415934960332568218970897333319025419985893473346798891273669874092281195075092558120930973366178123863126342298191343227746126475783655570954285339633603321789472715246386683378726735426465760544132691983156114182131200046558838773625082176556845606607475362848479455194231112152231581257391868996526945851947201044073625667482033880066682136257803805202645791417185480441039624775924975724282343720596633144505291857247948755456324155943507211006362519029497727986510338295436669641388806865464213080303910874130313049178414558014955868117487123521725016876439447001766626450876045185085800016205672022724964581578028606220779859720211945461407541832247955903121143218068270583064240643614867746799940692105300268650218199055954462917551079589125894249308134539887197900522388770821078602560506134532974011511923419802285971537105907800108953444757893285435796439245805510866352015647642960725150758279159255754287653119060421897535019801741773735829310735744231932990416754774776691120028966466832216786077780923535304442234819723071375912652048404309762552678034508486497413263300058385645744993213039867310501900094759008131031786676476388887812085679503459102911855931458579060439369166405621636238455347186614212393231660185448595347399774403017594046780573749327541805004134503740582442629388998060028407035793570343140645554784017303708849038860903447702866163344453024672231997326289350118780920358162930651500829352446891240789027070584080232708103041862231761320461617560843896497418705185351574704474029288857577724010177418660496201582192757202496964847679138546152658176070849762759988706241338397119943843165835038428048205328133074195812771573257058904812575175409666999904039911636500300242167431958563478360608931122357412426504287595637204433490937531564923498691241714236035295456834832599650203596285613253689935884970850887098723175145293629751435520279120061620217350728836484884780064148717597872935655208155206939179534644694308921049627042798420192101900662872544644295847110721792016055847436058038565728300830922184787568521364292367366251610186943631145456532926326774231741907983988180816781584945166950051375424413809865044754003392053711570646717483470066853811790148322566743062076472828805008169762120599610274219840684431602157179752839958754915402395801692951390929395425201021982910284657430816172565485955370887708180951314425084050912811414489195882912981719836080800403888553374360566353380587093970176248020804231677967605815607653183988501031827857785743591641455269870948545156533940677561682407786185240855946659435422569398257402434698832057735369508299533142469214400632680502284265670204789517394757932750946722876959115374906465038988874156382521300321391259783286498150066241067161551973422232991854903433261765786163087697842514334552728207726347638340638877632300081348228866453896425461217713818975095514535166857091191554966825095802239974544529544487183978114983086468772478910554548113028255829391173498077914369279786537373841154829858165861219469149878867469408846060718863955263354064373415313194415208858202380226483741725700999168681564409216083298640233338936168418605040381664295265707628708830479643630006213686995728295685272890272434272212879431368879561508540128870265469066616895057027965658289011065445878386064213676989299916244396651369812284649407876258123734201125942039241568774907424255674026913264943392263247102855350929943200482750217969313169550004800331546962320713981575103153150532562215835155694193062138316424634363119632821559390471563301370873000883120779968268161797938776945132368025082012928861095766792466347753552667038289324482397765110281712446398232698072703080850830884032771467882785024758950055856421186303993941821280718294104310353907651714698274473135198580918155738068949924024208955268255630111582091804895220514368420447245818979191810997834882166974393411620703341189318031650737647583262236165439241413699884599817317803864534134216857489022642947822640556655041704880220870415011507875365225481671829793512651827689813674169567651240299641644187920735202160364494536269992632097440355258734143580788670385649427955745708586368743891656073426689637687333199102698331679760409275686759268926753888277072159393500158077977404080658791520873400228290492514213176233627597443587895595384937610121140274183616012639094982653754936697034484288532782022104891279406756790098979359855784541904116842255488053528996731546802742699363400532887105895965145578208978385708593061962351453889522034320975091105381608321237840047067160680869617249103461358525556757949513011340536335413550779547202134778027881021915366630674178764886721374189369955507826041158445787811865811351091319144750402086601034363873771488137422479559372551781816791996643131586288094101118546622981094992163453746214708040260236147202970310168022620166903069631136363517160107124311106914831696544528866557194620582738332450917931476441766447564139322213517395922911436081158995394847327443204349807532443027474048985638824809989699268883242090575886195322484219470848783016386027055943441309435230789320102947058863488209342808415995845094287825178481707132682784976528147665062748851066328427433000638633954362646996170774031361598344211465923918778247332862412487810927045814962109203839400722123004093694853647864564665939278788448381847782965358382372655092304742209901714747523040437054393990717903750834202462324466370013259081767647434824893025209216284608094087313289871213323435186137076725110630567355134768508094382907033370782432933205044526068694366948357132752140945626264350388876572836497495029472143302440865633897372251416969743575537882074521287008582176752056864855972578518231587135272301610588358409383441252802215905626135492512899227751832270341171260588580582388808702823858994527572753824851373041475113806906170422901118187374902507903412213263256536247963963990895476194023814416308007468029019493479091972088759181623755157110690039887376702857312918099731284032462241602989005846662586562084023149743395300338076583387973994779748602508370075166926950696345751237812216551531361279647037930041241007143042703991381714799946967704210805263413508758805536718480374505580285968823998329922162155383502896406065477388250061081891670369058825870092773248171348358070492395391144135130041072376096293904374342089628391599545143272777533967095876605225956786015737945993689270178388031764635841649805591394753811581227062069293793723067211493741581889912818742349682083623100673750956028139746690652870207269417048624449443408552365992814853864817134754162681546038680791736708942365159440338017953518324259192392819888062473835108361552906534105726103981378367731660472088774155177074566409079925841256597433803586362064091215183765887938652894502133336192546115073810243404676948989208043320966146535762497252049408420304960151079802185579670292673702880530444572145356050052078575348772856929915428251682459959262777212716354371516659835905676356077770603642836697803218890802293349903786411002411527563999264421977477448500884153413691483101812625458169540622833138275315188465096218233464703403651102768700131280121454093198344833582355421694956528562484899058215685510952017035275990495906503856493470812831062650438673688460757864358577746655519900137230359907767916975228565390245813500460330246265102388562545596326200421289073871109800781360791372547944546132849809241493120659707307218250494953479497451459705037785202620290974514276278094125617445209382057217418116549631447060484776673131757949631353768767383345797978412301625417289198935137896537173528355248391202364199937996529866170700153823570712974129784391885996742853771900076579828433667071874766152889662586846311441662428011769824186296110154603595534203921608668344233869099750197298841888025121266316573809561634274715612693975782973475815463808132809600640421165676035492162946377408271898208680228978799575062415641225708715096211770212931818880136633927919221100684924586079593391241624586231108201716094000875540663000557957116529014476603331865197714257577715340589256259734844493238187999510441306386284601707400372787628013655805976731695239696262577037817871699832029604428209250972375316109131318320198250176147123042493276352474687173723305914976446949118690513600849766891184106042895944335812103647365653387695769045786392147796294037823989086661057532293357646708493305805297725993314627493724384799695223774800811600005400099439705226760133806869770056245850081135416688001257574751222200901965004222783123867719415542904055216162305919981112066507344277341812593193701269219852770686534031962116406179000814381855732835879573101410763924160289545637537928606784732778729907974028104574860069881676076904111782572910249122896786781150737122013989733349702241575715943948961088616641916983169804803912401892680882205963099447861956676122088115305524402268810380492002295174096028392118285228166336637812643472091593497314622511078839609172931846157995641522091926978197876529449949206388538867295928508077267214534557632939605867062337518623679918680876892035679357917674664365640734783855941207412967563126024885114312119185570023866881603663711006801166338163289619279726353053614991520750433456005906063591392892688896513105602446384531056909213247810177771952073263913060375282472835520725258397338732208371928139599454874952935609810526317675321099445443461121101175459710480901032913115920262477207577440515479929993839797420297227839382407513989778770771165028825703182410516213238334477639917001964691187215201010987815440186269315683961038890868754622248501337592261047951904299797200802631270710793491569518717121413076647625139141538983798536174937193871872889639807096442469265712053110233611909792404428853788522966783402486075508577907326981726985742057831739096919768118280208904247426170453422022293617185856301878978083502526193857385936692515915996509430658907809940166808223746923758438900273174130417326473810358921512007628456902078386559088797742521220571521042536762284106294257626748210250294638706779921425608898174642081910573457779196169425695822592685047811728142049248582301954168980475278163104728919388241571176222377183441990775601830579894534078921415978481343802904500436403477437356747395871577985811359342676607629803018478205689753132222216633281694948934598211702109521307660527198247077642473903976345831664496966310404847134176508457859942845190040853007990271905261925270201491191704179884236800279691868882226123873944324564491832335405699628977549741892988869107152151387331023281199406226230295832176852993552681071125464384554610959714341498181551884614541643986772986116369442988263135561040202657533737149111430007495244431762886062422923721783881278566192526148995390912505738089343918023119345077030483708884826206810348253358095747053061029739348164227476428120014350756633303621012258287998203217398173758041498902015444797212578568460814075012431591444361650354767035082987599632827857985127982664866527598406615055813659417927627945683850293363925181744742928674155220297065814747099483341069425392933120207728290151115986270826232798528705612295449289174698870763414536709777426144799555322000971473450809549601130998806387066228390882352744123901548614317522906851009581072536583800994434886182214382626449542383085813385157667830411280199093024086951072590891017789075628750338134560248523236207042214564851652236784341110146946745920120085814178558925259786591876786263388169589195888862123160623357582092594158318298856292598323098425924193848117333373624038234261970129822862767641991873931061293733022814364216026709567787676965950477533870048467582195565910207108572902627577762012422839740445773589181064425725754544862282703278104379528648622360788759876232767234816633359098364396117227400397387986152424493992287111194609361240803346832483481398658587638432556717347676111757514358912351995718654639258105631070873762172848992860168832218183461360746234153157427179646758939635197093515169753118977636004441281799373768887745987665489791991586072431177012000198257047825675220702013775307774057528919183096686404274633462591646187816185449078608075318622967309703767641595970431725627848541789187051501533687599187036967954253056746167661862664667830173504434755487349075863626432293211202948997617012470323410240306325912309322842462697934864130911794498353957639911351240332700099475187187650844875858955039700347861507392389797978820306741242793114053412899741300425752371457349641430162181310617089137768044778288553087486199452633360574768080108288244579816122502306645414963734862516175104650961014107165122317910753359735706449007386880281220750091091577166775102348522697867345455453393284019895226012705960903542632949731912778996739492735707408296202072980467581784434552264983854039251820970077036642735173778736557852158925164632892426575605519757962560617442606406981323679261554240797955483029341318568967886334257484846120494737742427963629437788921798456210865103697497530463143684421574855127943913953391522046200424987241814707899716135506564156370449432929610597257836017703028716078257153978976084370823823092402691030301369102743975416189595208125880529290504192462649612352259492525437156063153268219121449697945119311446833026420075564938958729128984694115986038726037418789903906988738564736492189302283897558470440762433293403640259449924501494316113210169284634869603037162049512967803049105117361089941633909389508655865170198333305828330003951019547524201812419798604666031765765945366808268672902115841605142672662538490733407300136327990045622052033923324811079607658973482522163972171419998951702448272841406013866983142302414669869834756854775981605796713079972080497589717928893115399175239335964016022842454826213781908766505035901560526121294261709676290861430419283870419454504225792824555217209509190474852215294299067548193141605752352798600928031504709861704999611904515991790259420068488147419432573290033532253731703104467244081914432793885884676129669845117642115816960305735758038930808826213499018114385611321897120672460987874959898179007435036750018513824168425809641581156741923328173876897194015350108923768364026253572156760252738039820025847053407846091879334550743896970752809560163628741373403494876171684509358066311432170527322527599200898844013478671859140782307814312397566641225546799608581913076603764836749242480216470495043310778437755518201531595830732662684625907246967152436956283280731733092089021829276010763301158505021970529122507752701332511923746410058101362255856297266877622163089721492924526271888271837743831216131705503069601006639989667947482210269542686495284679528699898504132833541444298380101761004447215730630984228206856102595582115717615712112434706537082454793944386327880741897767357315920245633654654713008855989351721757674479550354063271981892785557809140247431589563124305031566672947582426458543704905454871882854968584125865681949265196110517785401254911363005178106175520189476449135769883484244364058793135980033142997495582093965047009404886147656766835027904335366953605715391837193661185937672305875289135424536211333331107387249806443942101908447264859032010916611093312321176952382524804458621200857192216014110912981580981021066092196895963741865371819046175640444422131316562016279717986633502802758168202335604663303413257183514780551871719920384094217605622578055661260068744812548542192599282102930995837857022507288087970706785184886055922340594088473941418698178931380507728040481580091396600196496172020570338429804523042457076321299688115414642896101628301622198834904071022222707577941230049309128847287223682696086704300707970641056386787673711417572635611150221963200602733902357159018681337303266146579446912151982652449290072703068514453839916474974726466122085418260346757455079727443972569307472389617621103031326229259319984145945713238025634498172551126470356263491459495516057550099993882295966429911719334714929259672904952081365002192826202284697381379599842305601430468256668527561682341868748456704019592577288176249811537231480973242498791790678326360002057465816683526736919405733354196610133273196645172767533341057434861062857266073142639518647502708322965947249619441449981066986724890985874249419270194873220871532104932342397254598195945597064406140020691470089166642130338464991099548814997571120366549951393985353272195260034695480052931751866743561511219405800897588104716296659192216596966167617671896931265970890805675411676522794226473222665514074479686583924555275212252815448752603885521485938671602539130384016020577529946538621848820984645034084299914481230686021308754368366202044527146867726935295673580312767267922262997181515865426832554137797498494439232935838900711418403970611048995941169780250069530802182503134594050225451685797370222838824931942663108033563626785413519488202758180300770996549646484424807523981507784706989518561052645675494357959949839417024782262789355622385171399080228476313662393749387339453833404987765518924466825020806919017788873221017192436856903335906168468316369284941861118186695214383210382651473227986593573587286661557273503532802762892242098116539963411064203464797073954030562472367360269897257284253631116686798732855722593631633217843383393183006163553147694670799509231113549812780896894339978709051047007538391395499948173895944516841748147354858134187699432159288327378634405354973821046685411082171137080740548384712062245686745360403604325546829941462693271754221122040635852092316742715036138826439459715974726143426121836723176755780084526093721195697891399055049868524264887783497418801877350509872180228675867103731498839090968314104429373462008620530251788497116813750533211925040408499228708851095922463346998805432002047572815049093795823391337310892726965944666958867823775362529473650549515706840468085152294470049712320966493197298339917040545768171299177837482909500163727826530051500647778741130440568628196208938447265367902653154671871486902266603919826520658070818754193454010753165325179692940598174105659327237661758094273530809250136524747654178800919720118516392667719850598372997133491674283568538740093803204863105539452172363731637721767077941514502764878298212865278566741276506964173912506931303372132728840712894411591254538486793620446207116733671422808483517210910917282479102000001799016766084773624505146088117806447637425518534571058970005253955685270097606290698418698408352641452463599080090882685256031280625972039375014184692858495917895172023438617779320391228445536175749791898234928119797937603075132320466852398612878505790347191532969461144718329672635609520035303987447699779080448170695889604351296139886390340341269404248309798980765029061639772087972227205002175599656861728339820866337929409943536779686223191913223432869973623467448432582940070240927718820922057493567213030685820203200067705162037265406076700212748408758974433848544526736522033049544683554359729634786242174837214950390970768042415717401532197169064059753062013458754727176121850345428349560671108272527168595092416495128326241585075932553326348142562414886093012660700672379003509001419259129936875993510929560587024770658443477103356264579181701249984906757662326868365963867495698870136880387702720864700703765573167199369420982495034412148471156383245509448072033754660286073971663256764364349085173637814764934159627647733565556041409344021219092781704288510950084372273803803253185368681113804064487669339062292778674657151401487440245871453750914751113118301462267966261614298662992136647559704415767588059413211078761348932440514988807889910325694236981497982439112177382486707447647790352491439170354519473355681585028344092096741541938514819866593202743572781899263706057304692501992992496032103480919247828285240575146793344397006778796790608762985702108850378615136846726132318419909428166489497228098642043861796870280968000816474815446294844737023088133933205366953781342960555271695747571429876436856066622313986237658064732953039621690245708694296478427301088179721980843747357132718474780080905916125077129269289288739637018366489666408529766168951251314976462440981650337199810217734256896468753322418224676602936714224010917810549064337386802793128153465645647887987468591713058937678101484071034232278465140448570523491555732615532376198423358582201159047615430663796997679724227863075931146346845126921748579714394800961843605365448423920123344461622806819032291201522859686755689280849019145357309362718091377423639364463567284525769949197052353714213030937066519277604006131123305771485575902555477608652609169235666941143374861046006884875976429052495293886988705724820867988109589170972044604161424079665675499164639233902619661359077157524072841804219343497487682182568426572273405485722866106063497154296195831953442035597846496680489810692981873297289102034205959161153725484857133821943716952987705603368445224501887571733957580352045550025664493331935999641035535407254854012592927417448267681998920525164674401236517384665846556414501592248836196126667009494485429341909891856836229204332866123249729479704958662957531812137639292203432611186553522361676651234833486318379785957510762305005125540426659294061600236194997499503409479506438181317926429154846415892569301903008506097108672776159005406659235149881902260575672601031765958299723293059195797010235946730530234211203955809674366746243623903673667683266299245062848494206479583074388818400845261431698677088483510614347348968583536448854568249160436617894265392634527020196849962559872128653790838152375143795905838380118856122623883177592902257786217065838238448207048123277104683454134885754940325741153404439583066778217906913096056031556399609642097649023493740034708076530286344452095011761789279405237526241460768426920653808788435305570158811862837790482109909190164528671478647121949201193847046164025294802627009834528314957537023593156503328060066127910235083430583961993455248081356224546709509907631905696519470847706137553237905235559461512634622942678147629418549701422817957613686718536213829651165054024010605483755463802496472592432176704779748615954397327137054674620253481452754443288159526378073838089037322748771179134042648201700375859971535958595631672245908608183715701649719503746257864356052619042202631463498047397478623262594344420975438105067068360725804795856961999609337948947478014057212260821825046976228888487716739513198323095194545582194695740898914869441145268447968845443202239354669739608090100744882745295788058870471420278004966852706946610391241974371563248389569636542495872984383094611360651870717445271956900949961531355242938028898871458450810062852408530547952544783275805379492193095331359972391414648622303338378836632661203689093047805805210313335671219607238593585916444815755076385528431797372747578080451350226289000922550652669691010989327737809425367637501810136624152962573874402346817658976463175161593888970466185423644265419671305614585844694212079923722537264744646250612589149347595410034378548079818538243396568867131680339428131488365328443700751858168138517250495530540727010220694975038940379323596832394161457318302013263225263356637766010603916668552466551521238547920627847170617071829158717098021422027677016282433483754969171842786119102052679832570974908525916393262407711972243192506576239400582760022228606107295415318624592346793479982167317508261436994235015253712788602666741894645074443145661627072241853780110279419641325959492280864352413323629858099945244414185147643096423112842024338724461812474393444581907874499738152239368363106890021324457405759256826271322307923984907676099260222728755384419728073518929405384826653828578153716283724957762134406993783713614867548769122606194391932904849057663354220883611287501808457494303113951465659270488340643525746188784948886244601722950155876049020444839051969074673446630524140617811744822332493843347811379963711331559877193144410679426689897641154565335988561763127356203864381130100022706841207472237404318084087498777155773650798283608254438708596344148867760345408156735169867739263992024482096079204748865378539414149533385574321741551822262215051576802515150734723875697412011537983297970144556879691598978370011119914033456686196064723661211161804280287135377424322435121552543460184258782306273746341828295954911891908962397485463642795483773146216242978972758043718005078262416547195664902742182838463337322467613180678160398941400920984013815321497397297008721855459968666623034133939684377902410239703153032185428765973083134600773530590092503263000320619216850893806319973360801814589140235082918280257717933638355556240955921663487176682138120588007511101593189697818659282904635760660801539834971194482810213409259859442753247364039470572993232708099173006521922762689734877488912946798030017781356822518673514478534284893482165350149861548114807273331640776179410292879764497849860123267242228829212845238128726575250254702570222935114370553631884473565144222030368824222718992902575437291910315875427204615840179925499736787096780864132787431606607132806471276463593347409975811494215876188317663731466728527654192656829234675593117932117118722445739068441536554673564205844676068835315285990108611230237608235992407755087716285358313081682814222570867523106434003977402462920020551991956569018161457765570764909388048555781286174135668781673213951862249895391968828183260276237051412787749221439816498644877201097771401089375045802538114866880973028251107545011914575849542269376261398178928666018687670218457743546966197817635360437158050166429845397576998987924205767466251415984530693806456286198412810187702412187652804576638083775104093667606717531783971941596407577036165337594606319398603735284738721572302166438039922948731321128259851648329353612528027986192079530144891081120952811199970202388278215896854597281516209003090921904336066828571225952949008477806197888317089506573809093302737623558935939123571235641093160260154593480625855563732502052470800927358624944746730910899808340827736081180976333308600948717237123547331977543485144960729389773212747093837731237523372136587802056162436848872948340708631848494136772786427373860200348971776469384749762305858274207188855277598623903926378993895695493679053591253784684080327076381345984097737353222547583641473603088003499170770399504191779482279185835157150714795932550628826157365092231001602768509862579553115575623416377494218368198406471447394598545004472469207436834928836239783142808241967424191660422349286863852629052144380904366911166799492176204615773758866461295927435946997506994647817394828777842251003524410948420396904563809797865045611462680302304277799076515470784853056501264173196606847252387104335516766333588229358145269861700724563003625933073871377966182033834023217391730470856466655237787167125678683984770401759312640526917548708710254806823817162668465246337757763611078768731431358742034582149560183023271154691101696182369066256763833680978651714061672407488895779234536894104377148086076922010714111777123576952626634462826700653502905324477328095344436326466860290860864190849459492695705126612776314055786804433233017272027481256198407864402825728026906496421842144912787669596123353068804512825533011249467364077366074128979645602844869852979832755537459710373700652591933538760448927159882256113711136259765430561871444847597834268741732642698020077312423280354154923621073097694796341019342360898056480101014680321141195682659001420857310761374910113648602071341060113578460081999366326645618453194068963519664860357764802261660231261218747594019549959290360003530906778032690151670889002094724152244158870097362752044279680739404895460702624873578294757156340613567243234771288850900682565572619647778429899254071276176929709393703508958225418682528749479957921593925624534167129498350795517960793625696979043067391259398911617184522613839684166878368282618225034994498152469070637373735327538833348557430284557235512677680195658831600704994265637357183007039309833092656369984549964049288517916541314123803424292937472688097446927748469196698919138867128424597876596878773019287203831944741383980723150356711332100196126108579401998170092090104251517153379058369646829311643337441983692773944172951453154147936583004598627057346769066386535280953144656998169384943844494185585549321215454895510063275656403869989050226256137127970384163265934464538862778948449491738341843919488480932805485750094682721619682864329952853174929743663195907915915031518936960366496446195802484552559864774034057596123990460139406077115174222654592190797493294625289864180604491040288356688408924533519924316916015890342455946720236499250368647298510123984595737021964129176581901733431102180812250243845867162081467199579663057618553419081871931553495063756389854762912757749125005828772941343187131125145397942310081427821892374686202445356748377899258723830217848643425185504845599092725648809798654199896338294239635868358159731983632289529183106062600327161796069639735865327947232311673600978837174004741720329511376574138484641223601028911456086870355738938981733221873531564984244330198589609669109544631532125057336619137278416812466783337023195701599747855757588689697159544216371795552140521615161992193101174105610218060867861898515299684945748048015293474531216619929714670942850320887950268324646342669835023113683009713845465774344351870192554980317052613325297166528077510600224096133629024079140322477335025011645274880505026501340205023910096305527510683456638542688615004683752281445708410591750563938441618879211253686202874062088550729297523255642796595760960139172719739515406975474296117921252483597329944240889601519304093233163645110484462825186034194723134293951593436431773205264318180815241063362551384986576904805622480626749276491435459213242387819577116043201192818237638979549737646618707794759554529676895552686074295782653452963104668012289475804651804390268293858688765645244689840262331453520837350761322342408613102533718112005940335673350726318530003090828125063016947772802999449485271818433486024217881253392145878110241339369355732774202559729944117615455725092126391265933359800019717421181399363189606571805741395713331724065181841086022026702678655242683310175749960932252101703564746284846175745622869560726874034851261337522876551068517996592614312291794519049154198487252326105391574440199491762154876365824719417784050628242072416926304769351144788968046810434573911079931015764294937775690738905060872798127333882032040032998636162079618335982108226282799880611411571703638526855789794869736124840706385364480199915237957751818694633772939422292928744847051975779794832245900233114490381216286979835947996573715443055698425080950846852212284622281520083175436763109207197300473975037651893306588242897903949181173727427393847060087725710009012520216454181665071944808399164088682490665297348171454570012970839961752721258697385573743197193023212248900988738398938747946499049330973300590712648245270451016022316442073636920615797706921708552716480630105787735122696041491917735387369793523165180162855668501017646981577876290751209125305922631307520826668547724919774526217987286771468620517124072752952695983456144506338175485421250476222699164598115513305771136232221723294957945836203663955576467959324017798284224025512658204655382741842887190587234019723536264853868037460602402187273871815251466139710294618570791469286758167287644253848410104609604088682537383778199918330684635137628206494531491406762611214988803585147341817795742392484755947667608730503936704432877127112732400679182771724963639975343949978739329577149242362838898529601142181533922566225484149789305340848803720336673055778816883045465244272175271878299390278390282074882506273471448252719768733590279150958149204077255623543938099045618995633557543926618565657813493797333908848706383479797065934437105623029753307976997395331042058675522845523558184913394825754385347833860925153933924716913553769339736730887321619451219755964598803835016620755245272129987691346155428481072370360058952614159920755264163222578655322603869530965147320768238922592818750423329851830917829526414192324901911431146026434116596289755595469092528834561815151228735406591604640607443807632496700459386368475529405851343005230367863131810032547938403793357613923139053578599328169833987249326104258219137249328422868836662816362118163511404125273528144222035747417465288845654759771150144281983090734766586169672603680430243260391504279383418969824843196627345178755154938557172734620056080725684600956160754291353717923515330937144747134226143268452784796101062537375754994279928744435119971562244064176772140319295433404199020813741626257187444550897375783431309590985567517976943054470283985018951817362867638510963266134476526741116003679331316036538240465000873242095267558683726307606847368184897037043583260394271546154359663813774500208270101299620496295083898852951292282372102486762009002820535696088305466309522629532060589005698370003034996622703836482430195987298512106595734811500599653320191678958483470127912271642700022372608850832537029726539275768770590211470276207662652934172399592025019895590038875151160190556614137785633684271948359705461967015949171463700533894214323483704752121685317171354348836673652614718213600988467683634814031822484274372483405934819741949705180994341382043029511008262726777802382163483911694995841412764982602787618010944279049484616972989096892693133817596374442284231299777687523338644807343937413000162053931870076939795738546061773015995251397476490062428826028301823219006688356500883513871755448159015045414238416875213193164258147431272832066235981099364823413586524922746587436545351285313742918840774327171174591717216022598422897657725385268349554093547685636310949994209996582765017078853911780388373449511282173020108474265752809683535806348490855861242309775353103162490545471741123498068196306370282910439086523811406153408573628495611968410933870555626750251753901059377641481230816135859205620093619706567577632948049221256953369855389476663900333171685375911570805582871019686232418727169850439863917402847918001969703357486642419729735942090507004028869301938713095504818390624814181022278373244475584723037963200344861447965803389314092308988848442963881740239876155769203683023711382367405312602437908291367678105579485716721907048619539726817805702973181844252289054666579895075968432506281246498808398838728077894337683242835129726647298182759888365389994997493420363432897410201506637812354835761548656682963783670432279059383781825596352614237929587234898883987910166845986718722588841504216752254926304684698305642227209211738344620990386653939594850013545181309236806841592855532682613617095852232058985363797039654660831267541796918049000351084633616812480679506974661509082784505581326822595829636412944647346705943511826391892714361540873872056813039502538151840039854860727866124325216736747568796835029591142736606164420316566219423670265732875514130800840868295922220121069166483459493727081739974998848069185641634818028107412909212226397739720894809189270576785743919873944208543370459444368402534118267212063210301828164695180930664430372907459759602883270454713210855444218929676140182969576361253146559067285795211593564194082624769314873694374348807593002361589207244069012489396233388162294574711958551767785240984947141122895988285257756017675787735974636569859840822318104807979073381399153245166203868079539728054913226049284907598197795781075703104183413206330854318631590540057021789908113633324555825826256240984396413494328848100964518094266963652319024631327604415843244255797903791326801409760486889679834185296258779593820434251883343117561849253437315179291634596097469957573785607949914055944206157882903212437975420209274217548981075534592315909310569788631762347001880867751065735131524175251970180804494308156969797584038096550302296163607007969782050750133001000312003172169395518583334216317278954049281561616175932352938824682872942161769389449173308216658680886932515293291666101158543467230916393433853245992942200915535014622167911699290485258011972281115087103572537900626989945313801821234756146760345965526109043211307335597611618222739377964801441918379320572709598696662199595981453945049043277412442673369123686071946116241252275269831603056555208467109332994645795706745127826099037215862762434994714450855098482149732860618971589952097781476541960546942104676516713011594165559346021376059620008456393556197561889384596619898790942013850005514788325020683988522520890339500904925259548861155792721686924875060526019010715658827845562739209681933387317052502401818212882334629578630391831652505389980466876954994563586839398800203030613906837385302196632137863346630710288866566086386212678088420349993221644364610407226944939245290411449025872978010206345777828076551445578754084776132674098684519911654575148527229165117808368004746203569154273108989008356582025595229683172063766792253998265436491337772553755401774208441963369025127717538735169285930385601324619335784852606575369178289027396346812087817637017539188221481415659098359718759224502711912990825449903027338842574375077131486311274238390961702108843193175060594161951215607430631195212911628075310763250297307719708408998192595004830672165632120271138707526704985645027539800760556616605907191230741059572346560364372332558836993594134425969860237637203898782169673354071595326408283303289756140103186844168976947776508064851394891218942020874211254787328071966088757982810986540371938983867013205967993278736384149146339364928627993723019767861304313715387611887752719043002988459625949060890228099503034184533729507219940109727592010633267831804309652476315763946053460378912456259576964033281884035583156557073088544870565192866958396134095610229466588310883582181707182819753847404580349399947048518974608473232550045663938626703839155228762137082494883896389976057750257761050024754027045311943980216616489292088159080405556002635284180390401486600684795860788951610530212458543804439072535039463302861457431543263481766355192638619151880806358207792304139279402080633974369545026943926963548302836756714387318476886880908151667489170396367205421344492677921947838677850452108340923829949171940704798720535093982575577031385524912059822761448248858003473863738848390642279507580991823057136967296682962172051925999295981160254061522768032649440180897953237708369447295393892260092581587202008136351685013489818712325004169104546007466422264097918190789178922323064904356282654411811276205598014856012442465464140109590793765054272751300906995924908541664241488937364640911844835389894379390756152335285186242018499250097625967131390770841972974240249384563985998813688664099995664211924431160890694890799758747595047353118051536653911489979318542095051442748141376828740694202642231767448369556263743283096641940100245884489368585458534812677218982022276075830836408137897784258048735159283275447479849728874137946425609483428116091754468128813683907990843435949695844847307784855546505233682279925323789457958581715364440375072721971507715738078108061705017285609549546742975508073463582644119913326282835323364893306497650418069513858225663432764443796814827036060976017053650461084820606068377815480631534126715386465225896568211099473782941932239204324342242811988700019970260844722312849180741398557779476901767326497790364659543182246981055076342040294316491470401840494278150705927848558962985904190190484353500201013199668535055344009415524536528016834261172500697177101587872303858604616920255625692068083778933211814505663715463166458982667735336731205108871687535481521344175243803907213220270832562075556353895992951677881195931344447959801766563251192553040586812791061803020853849621770801586075162931290576611148908672351202893073275983849091937557398542669489400708653863778168203012113118924574774486905346080960745688245113956097708809942599713718602353308759222380255466956101605190988767128639227652960633851339444846439630027641388344865282380712450688496686922487261595959642315624340226875821901150317016669038686275583992655570306443037451703330546955871679878544273915705338859566362706621951971436642847322177290599862919885867109097194513197226851063483756886439926534313134354539588748752996833442033877819914872089055877685708107245706821592388867296359017123276745457427087163523329757299637579309544003919156417257791919955304783872196976619952199713525849766451251902000021791017837375043325397348740423952935224942069421749130992176697252569493650589574484527186230133537781734435082573285725707778535156750386958372570831140484392066303994922108330112517753894674728313494341145731836078690800879700116730427686883969867013908663920385344496674992152933176480072479686040119953486931598253118783577065318568784595702142335050863886717532479912500206388547023122544771418938424496083395749917160973004986526139591604879553237959241393671368865803568566392192710110103549493679633853295695734927156190931152132657766887785072374480221232669055479492984776619903415974168820743972672266596761397935584682997334824480744996764257321422699101440639880246780452340139334544806396377770707483882771305463899111994089175664660798915027059346524217117046163236083466146667009122044536694963679665183813633374808797069942812567541923242844266521892688051649895585929860642542625135431832521158327386642626391441376757470449462326673719164840834684681571095233712970444548082174342013445373474467421223804474712981955490062080548577190998311952923928743892298602601765387167316262955463119016699133118022344666659993162947628500324278748440168450239963487996534664031054652596529110152589331953216751063052272831754730191434345657961928765178766894179587052471673308805678522107350683970907721369387488193829170177486318993908548268293920169985810794852957863414107890700963297176894722824491080766909342787942986475755262271335997290118363865264635241466984000624195257155669657840046540728092228912097158699131880487828909984696886420580382874462196497928817596670925653600813885202303470741653689823968375402444828046971123389804733704718065761589581400324717907438467458067722332887176662604761267070972545939734305602653733016365311593243572893558691404436793679041461101328813733603890947269547974014585599576326070773640669957568731829466806029597515522416425521058859840538537115044838249231964681912924130679639961568260038070519913962144269521021471856137144554288717063796277031506273128008553886801724517580020182842195598904668880745674331272738680292301354174001692100193739420124858604394782767646025032718950565658206003898886751253940937407543153498327205730926507551160309725079642837318809983493149822587810084103224343000738293598610623549085049284416685694739180815365429401645569529422049980213423959693439644399492714839907278226646275452140071762439486398999601323052339800757392395486854044264354293654662761392979181045673254417113510080697347342349386605965135503864120425573607075355241819986184693241637633928493400909200808115591179026623621498458750146263666858421503935249358851573538297584898170459677663775620816096931903921294083462975581846783482356624127726439621255350851640958156347492674993336445438603730214857393219048426358595118273696137540260667729592348678724687626397768804595131696738975452765420826521233600517680409895009185810082075873223772450452624165404045664242264598747745342289798701158880923735510689174007669685377293130978410640341786234438537638372592720873033181450735854490479011730298812286008983239556140747115731377707475440037048057368980400867814479181960764440375959895049407175035020209307427901859796366549238275924964743291506637225898765853217835242072035089409951115447554012749948863458407390082512340186369169437231501755182701110636917825556128264329507831692359641544084153251258328501219171481987330387880231939851385827270022422521310694742577729745687217012760523776898753581583839723354464570627397868691078343005536735275520534122270812952072858323976603600754290125979193107589204105833480887084337262408865676237794107546444507383370181897217290493823340142572152214506759398539829481112942498211925731455560144990930925565044024929311153440531355050356673343590043230989300085619746962250657077218245824858045563507568842928365913299226098467254682047956867635561491765143850386397483783770902355698002053116044900128720790191895983050999436131238636684076718120144371926875289873295570927760437339780584221175003547217409921635476832192575019648281777782850202774076741539219837348601073154170736145013720644015085266812240766176876845190305251926580311421580896774443199018167432276182040293532793881959191528493275074732851972397238955768114862080278251863825375107386383454624392049590076998701215796529798337114776301148466637423353468495302606086315966739075338622602118639154748839871977321956828659863997736368048966158065632387084555092227307883750059707598082410696471474894631060207296632603497991640442478333994700966045703409347563885456198572447730331077991810766463774168406739291930168377780701919671073214337276227905775079855800385107847931686382541150423187955786949038411955017810521253369177156357466968104481074664798161286576453034956849354926016823315357142539414872506832791348467687215157136769320971560641340271283749509399529767724707658940725463054139994584542360371311262859569763742911964098215957334625828833352623301503708649162080878870977263094520696950620677956657270440213215122173463498170848822342772071149981300726478939168539601733169337244853451613146956382009554164517240684353524162753680289768618371258542591610117984134381931143988926356458753906114658270591455489260867264034002691238454266165532757829881431972437458961427307666373389051022399763213298776122354168841996266254606114676856959911715076786969681822952515961823297037041078500537645039649114509139379252986166907865239363785842573224541591075722203249679556367677003740599335951238499425181479780272901839872979905654793403100094182495179601269660945472463863873851102663225391034356415089288752501302082458669704957657217688111233829481182931423642468787327008324168746902886920679781200020490995172243717209362182474109100259582046790541054293468762415163426517895769656223246363446962413804002117017280887203604725549156247019738425444217211697731630646822223378699089818004468045135191979358916805955297781723360970865448110492241723275987208617893347837285883451395903187310634653596791300450110802397727452496272390532503459557376429929619305626110268942400870529462717982943020223166911066071221683620876342249312036661193412717877202054618232320122838012250594478397293156259635723595550732284120751613194932865709668705843775965220221518467759698856106934017048671817024215017473973769143182591554291882530470851342065866101947709434127744988727642462371194521453712389128738305638919537134648905099747081418277357777094977375438763135627909087832833250183960581484634048835312702321661327346185497239910547975386688509718517211450670683777809524503415862914121749508317647884796570041340966638917731608088026105551828254710452648814861379831089440711260808332509473945000793366883854157668685536967868894254535664895404829967494677895196295188127586895156069035806462580534757139503044918335939955054297214424792343689168429684593461537393287980645068747144877335992895776392635387962242547958439949133660371480776906106650372422194999072216177215691740586706985888389194560500261289033250562542101123832501178393956772120387795391804926270719219934610634365325935050438395448787622028439627526868741985903264312912383765396858900943060505182326920551017492985635941566691994974379462261698894674576233197484712681344021298018545288603588144035983367064030751307605289028793828953202647031424162657611430791318134614025661642374402108494445592979016701117318757340279762829936897449635137590425870865768693316024076628436223418381317789772479642715596338252904630417448779760970630740338052313273424026443520182893999048826493996611706967490874010089299400214527841782173612253185702708441652542101934395913279252903059931090317222341789661750335895621983969810142667486994677847581197140465639968204281567711772757490391966430609541934095161500562637999992699940122934732174110795251754271633669954787418431701235145619447804587831965804564268747950677000291400729732789889630036354636918844043071110409632807879148477599651231968279308286054422358774136273313863915184227294148712554907500694436777192311658802691313440667700901295296008719842944199333089584888988262184178368063089985310854184176441541916864433882433375521391509461227579582419097229039613821847543586382297022567572913273424344876672094294849071237083878253463524547442020659606796105075188248065393033872822243731450660154835553211305695280293077372246074586056825167208611711672878273585971389269932887117461244963213198755233677575214349181072216997174625617759663156035610069220702744998206185818799876977125879694671964998959832943490805330216023179621540588300213158856552839553302593167145547068100352720546487603375722700947378081139731973428223590923537283080017637331043789702898025117313008196834027082628186262000371825862968496282750075287224431810217377836111730846815758041354213244853556115395317463880117867876376988946096249308334161089513469842131960510783393401899658197327464975786617630493440760077080848054094898743164380047171026298837810618128992507846613504615986405164256714644771985390609639620051924079588964113909622526340352013087943713308915731317160595225333438827716729597736874513395169627560915800481465403898448230547339689111157666340190695774552727811344190923121446704689759190067332743806978735643764492300290394851138235653531734077189866192552482779688083357448253599687668274544332635562345242608848912553728072989582154610443465918481925680936167937551743649465640724705606069479972599703189059486798901123394967051389761748976989857885049797002580392661589764582668792283712247746460556126425171755686021858111567203000336572277013645224349998954030281156563810041957344305457483572296499048229691284044568311109273402965978904130355334980906308358167298251003386532690797592889475404542973716289710643487593328915025212048422104523083533400432171571931297918493972928854636843092710573579264729829916970527177329700192137407433246222124875878148511000277769530209640276602371180479828935596725049067809576082512546766884576895693524063229470993361671979597852372641119341742093739643409961191135353228917643617291160746272491282623206354505148650972177491093626219577096771565831189429176799408453855172759954808215969035096212626679641376878414658897753650514492142780041658858401168734277052342021914793377586724948805260907016129914639110680997610621175213594905974966665876334948786910782427356063451425887634882370840417624094673979688527759479135114148183713068792845139653565401569428950633267881202068733661848220308188516204318928447893307114547422654153015073241351811876805495041195631781236088686451042720560119638584216063581874180657212295430733283982366695833353871522493696730450754746102415434179277877818728957286321191252002983307708275022669337195975069067050228855103222917471577020073576995739207907337816730368872314782653006834571448659603307659433326618461697726614989022350492113215184968144891097582923475254841144368316089092391866866212446394727421763644391359610278769269186124649727018810836802481416862778433746608088865180458807591916905639043853736516979820799796818502314758623889547549560724076406931303215430928248405155909904696862213424730632262683201344626667297737119731117972223071715482625672140237277113200864998399425147366344946778497932682911518544705753938274391375612777889684337757108534199831360376462011207494757574021570688667772389061499458435471198968287067259820163231746282349027308488186425381597324121154150392157853980926798865445351280726809815561751176269256610615450963330483059594683708451261891320488200741310133107829464764272213484112482879278836703489141564218077881981818073902328567374564576183444809598762708451138663273187177933313460748894790612123340033550958069367668943154165147825533249948622088934936423103149470353604959811407124571105399821679074241584372198234727001549307035774874101903947800946622678763024446756047347294707165034497900459091682482076966564494575267816618910330339191517797969555224880681434072774527815104173587368310820670052858729702942876751527948713820679720389092235523649768183922001999644347419249942769402947443783537280628964634735579875923687120148977263905802310012971692368964880787664507386006730841332389087546393933874986531459289390548117719664553097312900309125887373836549768250838750522292498345352596163784104571717899478754184063275181169321481340461069784202245796484152397749698609158646430759684656079848532445315029394212026669301941619764122525510039481179935691106260485829443417641504462260418375829268214650801559418894036283445901830731275087674073674574454770710171324439793928068627808168572638921432143749872490076829701958321365117446970040079385583119146130203073521496893487682954227704306857996832308429273919387540027602103338199160008562899175662639056270471403611655493590541589314301708954431668769068993105370041547997641522564679183594832450634292574033390167242124711179983908770809263827923209687716802224275171687898494531312262684195639212329884222005235687674766853803729596392697264116394331557586207960265430653390427600936069535256533131522849017920263912960940186720195080860862387764447229105609811668636895961787520282173348961906513543574364616241222397989016195826691970068677703366623882110507518721354987060570848730895782766660362711859795864722311703637311174731706101805598532923226582755534189328464202599571371769162896100742931181350910098627704178818742577642182056238299793904245849890620985816831915627711769403191778418411266903772454268449363796983880978635019777885952985269686654640154493684960137474942152598561287783211111657404296229842888110120164511342036380342930866975225117256955554994224968715630348563579970813430474147302511965241598009657531958378139878425687046597498010871576221804470469816967768107515856146668364589567953971744562713443775167408898430487816958920124077111614018979475747598938729636708606193092444854773459806114936031263423852961386762157009031542946306368315563850130081783680032290289470562693506158933965800626756656634867710680473515064730602616220063081417319084028305067833280146561418928004412212154684340103167352657593418706052084349289024388581309918855816258796762294267976240949212431587196598555819302475764296486241364880622588973708545199480113202321534464634623419248470328665953073503988024849838953253928655331697665544186699407139233938690738501782551501098298598524927644710855764929297549230270168576067818907074506074215225761857397075575110604230350040540360133520866374754307076705809391529889589362468242621835681740281624276215371565403844274359242501928670345048248335285188629553134233914250419010086676161568160775437141295354544093763885783654352683185055295598670571813336416653636444251923526737621056125392876966934547188893588119907819463717276413323217269518962479486736138558131652805891471564495820266628187183012095131465764346638757136557865334586672263458858777784134964559859208883667412133459553441469493507304776711933574716218548870891114740885794282978025163398802882125757529657105955681983579926659624342951083885788312131908454270358875987252020815810889913366015493779689746300453223690658308741760109585146684750502427028569344017371906873656734360163877585039829060300472978023085922159763398958097324664252080208213255598057301659101469900099332121789573244856170188245875248912836750471621584670470145182072855140150977365376773397865491872372053502785656556415779067778348490901412636719675724711335680252662425003474925289301485226298071481457170287556133292043730380070975065521203459216030601424341109347430656296234846888194429272011164395604512193371904514847495431321005943521662197278459679210001140077977709705136094749225810087423806901856344871397710690031598963388077631460455727580925836504532790207491820183803354637840890923778606050209429433279395772386737311602500459843902047749134081005587524224363835988715735105045373329944893025322351585968155918249128083613358452105536395642897140384525089315376035185627598618564927049332034998643837054407219213591350263041216679306555552146769842954438036942037696452045561451276637792101411914597554016958172297782077099552411939811786828215672006095410840989469994859086320123245226350076032720811902491397521555491845861280788044673596767591695698689404551719389572003338435203978152732199340853744358556469793403461223636955576003173290059352546210253409641170161747464817742830068095666310767574172140739047921950030118374279625246106607125073514893128759149895387485988475182119315593085533063303323285866785373973459162694301659124776609079036712015339728746662685267073724093861615159107081045069884647101225884484721964959893452736028813556703732590580429489633233249520014026071272291608638620980283416576949381006908777097084670536429183298534144924913186225264131306311717977376516984996934657401553349681925464478642505735835910508583837646018356238010749125307269529670160512692988483989322260057410711391198959876886255543500605356843966322173419655565412023594078603455033091989910031953772906864805839833280852125272276461101967665178732978711330459315013574854543114129445823046639360053659440920751137715926351874002561671628206823337626926892537961889627887472054341197417942448291013834333035872215250896578036119004001543725282257337419208674469253593056028143782410684087454685105784423663599771565320652506332817672709783310298651490108693472027187967440527062512303888886981192171043914154984752285004270921078424249150588496144302374023633370797810720433962364866459922837990015459632153186584960147261118410125200860447936783431108808842455396613122471070998415090989859896586369534804505987009908208380899936120298366358027755192291403435820669060916073941598248658574518683349721374439954174625434754547280840664241008701116854080872946623373896260001824347785219554057566023319939201959187759740241609888948014926909982809343278818236963401893858075023410324844754822392741392920394042122828804557489377215143133097752232979409993901979717869014758404818971095704792509661904670541121791043377660726102774702801110958301867135873657989795317724320460620654147221367851420835234259130374505550401575616325852760734205142625674147489937755013279957730535251978032233293157181348550740980396281214606451346709041968072783687037749794979838455602575132957797666742551209874907794728931797027116764541252174596132550535856911765352704945908730783384442019120454086690751393420888596123035304056894964405095362019635494531670529450088115352353204177201177384446432275867707117884566717995021791516055469238015954037758123105780674057107632812268051697981942860936626977449207877492671283822824964881880939069543299107210764574549910180691131674044926656395771953705420265117653305582064405677125759281718678660158050915184755930350486159058333459023564815210035864504258041991121044029628096971590868550072905623446937064602286898015205585273524303318010699277145519180895962657176141457540346927976303800999173667397115141612552715258279587312161653462617889086349908214055525765773268239413152520200623806811692559548250768630087009144376370076722593224283126122262992307732957825830247791767809475995587758076874212426475372248174539719071492492804759138752201228195810738380575176589497766392098209550911010060221870864228988491789943518643093066456532697580234541022243419312538331260663367951764531296272243898449138284373896509033827619430519943660294606882803233792910261367898808644659296912995675739054894369962656998277590650786846314083842593432726407215319995329877652271555121495207924548963218424412291071072590906004751299635301843297184455920909841646914639672139668743851076024073750218737364275728479648791626887522985935580746339191842743000505185537840621026033875749878412395712830739322059793980398455134109614132734269957635776400913774866409682500396068075972720047059935064733278574202086114608297098308570637888456182132043416828024630762059327002809994839897048362213609730142369929671341772076158737623368978954910051571912306413671290916881913250430058201510477224772380055384061893476858427208993020423306444323380668465662067932196497915150226200765249795242891403927538844649702952507311264534773632689049060882115512902368605708639141176071519169929295428670725003963088039627451253951155473773990274502197033460262773234815725117208080874350656236934717071634966587917663308371442291615015908430488767489184825564240128665918588577796450340253590924342833423291911351123009646173518145515688000316392241923927163907005281562823595132196923741719712637276854914898964409845892683472579680428581172397574517894726663597058455504208270366249770486255508888110346782271095009577684582931505398306024609219334105527153762578426080856624164031712705993363583955809816572310172335586927864918157519792410318433692689275578252043534014538765405931768500189767491590229769893209237845956777385303098653348124040571773195031144392000354198862896715416869432806874385650989200928639786274129235359826522963655265120021664442177044310130664507539610438663479808336930655305595043709252494611835580531868119022508753756354768892931267417414454875088516242260240204724900729308058371607673362465858611346272993012750157948525640940513727792686514159189751715578945183607162996726233335663688968588931810800951189905907313369657554513378566214146427888215701694423507464694490733125195334337342046065580126217454440057736474351144102829143547296680250077007896760037996834711922850923807930292578113670440357808460127011394601039164733341679127129413566241271401628047516242894565083049841977306760260477183393629560653004437572463438707139919917007504573108941764842767541809740767415003455438344352744332355210621150419227683011165118658863996478125939319906600097552863957510064089097511519631733191024860507583129402599140228203136166581791724834172303632129734656755719520074291816013587020358029317850366709981043589741838536097024730839774814249110861938689300880205340124436250895501500772921789028316799110327891643161239718174755498403808046889492422150026754227248574319882082097606691482781321880420451198133668777093168681769881406682483375882332969467695633376246337567834700783942857142376143266846967490900554331933272708550740901149902433078117517254064106445619062314115738715894130740120642814068817449457888953196481285268128359509292172199060676658186012150686774011669892512681240229348310629618050985388594711469646710328755047357436050051629025808850396095389875548547711821667070225857455952142216481165281723340685382204439915774792328243585927370182629534077545657893075514624837891989219532846997282576202664965930722493224956467562066815170599004269307726727905917003071817356007012727833216993029072736354166760030573257099508284925378169789746921145016925715515053499067148791712717588224824971986373370679865360364574380991685531618036802099308935935666185839659146284116657062439315944796477010275232402419323349601228528519129915498240718997667909326023765711193887488394225237426163422433422040790500679399489620090276300013353518878061152743943633875475280506535965138241329859366271959574371286012989981113505738311735230774334833728075470954603947464503277513128266929473220872961001165176385439464504724760408277609934760391700481348769804999413698080025204309466795079174875943776815853236007299314157394249471875101312306122446997299521320659232461458046176813180286094724246803684754025155524138940941472348950588532145775393078879505834570441935558829299297232815207018286986371069212537424202333993521907239313456728083223938551334626025739504265092782207501197936522502067372089771364014815154383310046814907108250963556530162376573047985610415848707468079039285084457531311901425285093165709682251474434002781113253480945964427835572062673854818626001132679933433954810210920652324671918750905093452046739496411859987824912727644531552227926171007029857119811328491825501015775354227315146758923799996089683845036908491081243934445852403629103424626177995480693603481654617261133647991373740774912215473346654385328402721398258375499020996088695721766442132204864091192050429126754951636959345802303482025936344933513212158631195027800839050042507032087095333011293848713223369985588563390667931589730163029143829228855458361299733172703033985110945283883474425758602278176659904705848846720672789513300868290290332213257830591714264624788886326820897574121184446241333497615084298969499524423754890686649563483896467780677040310898876078737844308610220316795604296814523848240799576531180696704421147038340453049060209171301022450285709179610601744303745719891553060386042551724690999650546472956700707346681951667673585438305013588230281812275979416945958831689518127111512909782775198429622162415327572386782195140931460026928901807045843533019396276207317442776984727450111177448437655083810039653992193570035065320558522953413943143417900110931611709037016780838695463005706848716046494983657057255674448085032103173597948884563665466581627211123133775182773172037475002438105159029953021164965478709028245810571165404992456032940495619627719270908841009863716293672483329881075876691372605551120127030665286372857433095038408718617255043353605909756028513285466598897381168531274073058061454222223866896838230205125424387546522233735569474097192510922585411272306486708564906670454658661607950055718344272840528812159220741518580791466649626298459000759862234841545663056903469531592522518196650938914013191311061669554930216837525184531809023595346645076164084540638367175519448453205287191810012261453855402925216852857020024817104891817494736979950129371889448422965872003707309552552610076533907032497740628038277979499851826165486615686985073175838423958842538972285250076399599644685748581505278983908800973952653802503814405374482331831071817202021193361440028820939166413195184521680637477846215464468719160521615512938723673116864925552013737034801955041218080930768831432473419935546841709969095413744207927208587598218922474340636632671460332236134213120183007261386631482575528594470110292306916092060533245346043251298504807735440679721726633984469491243814563687168635061031228596471108757891465021496634159827454681255860235047978124461486015637722428396841938750145095021807062766861490872045586277584303199207154554247846166951920265438677919121947472281408492616687853831399690070812730676918024869673134907866435253727734961629236178694303044021988561640838635285366868859261709618130061474241713559588184590912343462046473286579165595574691957272452774325729787404665949142892434317486404170280445226429535099325299679209233976486656566235292457246471509683429394979381636442273881411086161514288235117534120077354854632217892851747500106798148272994621837468340166640700555386645176385141262041692244361751640898033855045538178961925596077107781133201791298891764021007813441101217229173101031943828073672028124054540173303498883675934400682831042233245140747931321378679810816956150232800052203112896841487830013023637658842408569714564005348627959623381764393026953907598857653113860599589450858613153446584098328422432020259548576818630143301167623430216780191726817630823114261581193069917384964278468350881375399910192311021963386778712270289777412267475940565662498731219711970427782610182401367299604257094867676504792555727762544743961827657199683886901266640130503232613092551573090958738396737490483038095716172861308910921105727173668478245641976249063809276870045053196183433415375353034178112845895683930478121154344392877060564229397817410007757440352117417676632325930876183120459831506103878925736448408822834032310456324167068690811250204618289028685375955223101187899302177386889590257599480610917713841429196669078012596562516072714194632471466580937101214978930444964236532001875475496198721613320299964982299827712046417428245428973566413245348399460361713797519461838520217168967342437611588547381963614678795406868460492593159193178327383621899480551305812723974405978193587448897051569786339146070896213373228617770512480497523780714949913954879857198912880633252999263086916439506425319312990481435942854841633510452147351077575449575853013914038643964806591057699013448721664223516278967112614445047072394528081203061178470800741611817209740938724175250705558508702707172709707280639489436345002067962832153553228680840369579178065844391367661693871387475864023106599240831394999969077230933942146977023585891455922312204086399228393723044225504326327093073922005818448768074287479930479930001832334926008153450326449280903771017437628650715418330939100299378071231555549669034995999799278507458542775588746862310888304971633447407396489770527095311090894599846708372203256763224745427129666021539537657572010483911019368463822649332738911569789720355698735062843831129503841468249171168856221984180808681460130721986620589339054752055557840887933522192134233774278953085048270408444825990938656693985831345538160149303377377365009207063245048979451194690832583896070068853156348945432832138403727661689062986747588797094987425421324043493121439992015684995434792423379690263752912223422758604217184869803129158569171625753853715405423230331235257869379009144055682357642462516227302608946879695177577117667774102699613002472650598493168273133870760403794049595632672772416914209534768340941662409691033864814577423476173937687354105821763034482532381885763538732153614455094571059988707015069066650341762298263577700542647845104825230414064310333498869260353334802204155856999211152530909771010593562777598742390426040407097491267504526520438118355963005279624639221771855886178429502678862648138563336575631232775577595410726302705221731391659760649866781178024129442430994262318489691329042332681673238484316474263471860056964981933573586051670478669882873552210429776945508675964669090384377157510947233117353960989644933685972066122849053443452821318617518895054004257508771878410864644100114953011116162408713690798201449433404881893181075535252519236212159815746846629758673060058670994614880048562438231567318677107831082120640436861306019452284576425913700580944270240556178332690226919949838304696926051150386820489966836362516557080660917588382003971219541573790199677654975371673267044434979000174762527055057091124911751217370067734389676866523835132664218614209627920353118636479572509843096815753024321721698298945458118230828232556909915026221224257313298425583050141591533816869519902771248876821456687939202999761551590929824143558902848769280195429283605170067159163944933003125308692805756842271912565318451201264035040503810564402113470845530006206422258948960291209821895578945956912326407414143349517131075268525686423029468978504583862531168048668512576377972148227065395074212690870859410428737704855579169816731816981807060589259376472400942663917374714529633292006580083004132548351473239335229111978173182574668328953584402684454450920263535685011126176763478289021908187169317558714679578030924610840836209505092954053868100293616787091227387194489194049260760979080137117313305249067324538902077940841224765577964870941215008513398206373925534120243252632628687430031447060735178178683735842011632754601011026068785278595271671068892727980516125058006474303294661008027867671755042196399440597996603759507685079502840682555042911747020885943377770791150165341518150150747084689114161480776496705398769773070246737434645115076555719167350037352610270084196925217591772682999538268280235819603281380578399516052174467336761799683524767113247571391561889230689721024135964936248669172957504364862574417306370158250280323725997787103523837667455734175685019542294338607237844501537847472693011103866056373316503876358355555336032927963824373273759679332052473071557047649644606819900145609695680171881640890782937581947545389470368524015040548302591244503467737503926680535512340327248056102376128955375027563825703007437185164472628845875391591949957348067842185022366120052541148349844644716854138233361828960511447956446032651716827215095935154153441110856101744352164373613197028232835861029841684916510121425661069559803995624491413788116579533162616336501884784016387459044845148003648821904802568374834712878758780521164822713595284891184873191411354382778797995365327094129600239310925594189969101042888105382995303336067497511425772578719825963661423438104848728687664163581288292862484684883088396787380788032608292834695826193918589269990965379452994357308549988159295490936011489050116051643447533770862264037097884466093102000890664443815954990379746853899420671956903602000842038523434854440405816158369110932307803744205707822431835789064642147176219717523748778154948312500658313979746905368115233734080459259431864470024709828245112395218884380696199993928255840696671228776728153290013379696580479247566659587647640195882062169688752851175891000915840626902222380785175242919129486204943459554889076504633676510554111575529175355746515617203433653286628026740317141554140495783505361746059822474315991591328530543678185984240160438431152139010344885530679038825480866887411902934643764750982984599905775635709603794481931483338991546634477372731695870963343468999920939171782257299631842990101358054078366854730785625588210035746384912032628057266809485370054781011965604413269354136132714051422316079019756178796201005758360844998354717499507125045538379469522353711976934426639730666071688498927365149207328261248957412323336176128814522766751911987185386667429427831201638155309340508606548102390642740168962744373521084387613580687235215967483230688458659124263612653934107460391319517418116350743293634816149413795943187352734955737842603170385658672079263009256112171880867555632194355880247503904446820998155978627089844014792504240196322647715573623938141087194060809096114986977390282841784436476021517615285971525541470749068947223548662132059198718228526547449227310104884218409295936926483066377057177389760198482626066641500731143777285014898220269357724748140243667834044802663332935076291844217508636888550998565180269284602505627461129756131254599968135177122393618929782654461346606319584000598768744968623353828477662182272700660512820434314199297355809080108981989724180590601449957504515932830274055119339721859774220182262560061852847513382907329096494729347782142106178350142929680957172203419118236754119114163217893925314354033165884071147461181955871923611624836820993090426690297939736220381133000407973448213978983774378357148841196185035568331140513920719612394028107680764431984764684951559537432859098527829122685228136302916599378844821514101173091555559450856438783427141286324326915957880860619783883481155148331349069135712388394711651299676460103377506805638419760279770365156507785421161264113994701703847879884126469294023922987996204117731181059640052435590236991279461452618660338003748996419471480188159846425531695691606092015279465464004403479801589875730260618241154752017529380116853672410721156709929835899128744025466247703464996370116484522977794117273230100506468420203484998481553691375852352071833480512725322420825737589929639596246724205285717517715494235499188540418886624789291665934241378736833572969703352365709422519875776583398059793935885436699539750990281172806180022782094678625155831175334332731173598145904032067100220301479482540527439652173298579921537590285056449711228871625721178367964279681883894135349720115801290421074416915081134141477219588619468069751758647521269502656446615689295439289479190043137535181602065553059184322155515407689101183609399903318935245243445110962022914690937582581991721006283161722094066803683887928918625161660084376575676649179301398709181673160360197477009779902612346211171967228790367934400539439162140687079019204639689222857024368928962181596362108936105114055901801542015829511342771875433866223645666352844795116327860121158585142663872128078250202995218597735953769953508345430953468022579172665605206772855409114895138784854984647765036090501053459864408239815239486364871120484573981051075755255469124916288160462164545668521488084863875370577290643258187632473884781062221262728746540465237354306074820162258486501137617532863997487451022617133140047587762370656197123519288945873495311464939533502707049137344350156187254962040898855468118284488005570706627269673336191110265294218297704280897036259195300521854703862876949163699777080042482905694964429549354619211104738466702717686125864892345175817169544743364478425439731973443905293247837357085547936096908927139341038538185799972896780892496168273211683945310847392567400815234887868996590932602892595422453423065482818039161824484428607929600365555535819144079789736620142607163359712307669534603692143725537059730319578385418464081120957990013178107847052835334840759161138101578704177109900998759164410583865679960861630631723862045903639902387408548776123169142132345889370007983885543925609600493198444732528856892844438642916883633614911779029236196117851930470023141600836206354841907163008409293110491419502715018773972527234837166191379192691769362387814167640303278637925463171744234233868241709144340947664740072480835184540513204991791140999922993480855758079793928644416590474063780770480793448113019877445399455634827372806684063415912872002714526191034537922716603361290341867291509486833291780947752266025425746975555020217360871295692277171295612093361932561849403605536536070757593782759560541690491011990476585529558032864564111697243223589318813259626524174971301395063167576013722493720250137007746338318249574422561412334295391584918393880700090868136840455007376896985626113529114205416360799456676072650420546146780251594655009722267263082912108247020921168605563139715729601766133525669543188140580330841438308329101544566983338887169824572816387192570900518124645379599607233940448610468858172812811078971452258163428288710047454782431935402878640815380747542553440884311878074803147995678670480528522200968291025259632329755938982283125596658867022843579432605074760438163587984957666622054874380280166437265906959854023498228976003309419897991415568961950027863097377222877267313662436359285544884560140323678705788487303899548125106339455368834745013368848788958222250736311943429038192435944124099700193249476406957052835920680291143243959770270434476440135131449527822291527758478559370518226814179596570581644601775823585803344827345436606620003724252224178050055730505139408850315507770544149521380589542360552626653927631034769931893698369812757274776368664799257347193516932876694542343446719067315260340516711191113098522827828715626438762073452943932319638998272159666516930623636183414130052741910509668194113895836881085320925373004373862148090070113126960424962279919193893697291091801894539744809464106296693633704247934110564201188947696377294869056246603676130086892166149857486976257618259690981994379009878478378846012708737593280253443071414121213630327961185288487362783174142936281944186675125021612341924080217904846666671386383559932303472402266559514258229428381988572803850563748430817828646096282573793899050543140357878212755367292182149316324523300793051988201742929264614174277794772559620544553871480172659752350610494152937367655210246681774276561218710630359304712354196930471028221593183953975676253245076678900593016979698222896681020314120386941990566028775328857929882402152605014681337337200897815773356547977889357536068745781115689754522142180952011873811460263987418719067447298789028237613482283186683566376758549202664674689823192667913193769067313556655626136753245485831288071874471245275538103642618619861713860019890661013824797477872720902270549446387234054399711480412856117079518925267179994218788886897385216917483144129592134246362032250913006585143116321410206828815449019567649304330232147164433562623756394407681302081775149953019872904180177190355042063534948881325606971069952282491696673255867160446450163079262615689061584135197460160440885387705053655664792627562370806501498085513941686585111304085499552844535636889734548950798133015609897655763417416152902639121009359768249345231622913574681226685979926835515037896574669079303833390069010072679760138232636873665848261295571006001245433633307519121493976537414403747252258105734750075500025214635011772784423663108169951264158548940835071808348725214884182693055199429647095841235584990288854904659509205310180305144977825440764406728588149670085092220887760410929487921312189617325236081668840680869256557234349541587216420377143510476508597762891627271422880413481745346661960001364529033495689889883987764529486733679174322869507670109534144259586098761277900209888156114446473813976461500048403291678776067236058575485735752274665112589368948470425264927853735648219182753494585346120760978488248692141711934501104278227258612373708771503163644329471247586558875387034938530442758130199436448987945355862896502471331162105014380119918919799442988249619229609752608411194092697495642341513804999996200982695248831320762119492599404526133328835100817096992983084142943091449279828111819665287040207475436676985301534383733317426688956096472213642495559316034019797273899772631094020341193598907214084376797153793694263336320381345839462469743433671396618870176351100477375132796277914734298386185623559662766063308968657688272167754977030757875133195413066807620286843279700284149899833943093575503246215280747169250221288208995528191719399965459101670970869687724221598849093607575042913038995578991983588698935746828507754017183827081302014925395010545093518504726628996865354356232217771668049794294928726432988132905671221182582585158419335242433961845493676079867674867704321599188037132087534176035044570446540335357873644952953931075085558322813222703526875693779098230302721063044016405965240044073189517045656879493843774716063393509221542388904445671247892468136779095513457199940369529796072394323693702408802226134093711888042531822454016237226570141594051215996540378618083319291883890660964497318038200699780448202934939403228477355940256231753183828320958351854998773066305954721718585895089633552462469111944935094312739469582725847521766382455713062679235594591402587294439562586106163498668855842957774566390583201258687804641120158512573904914729409228970722968239478789634604022401094520754201826319546651140251812123113818506533741003164880390869961128184576802892951760722030378807033009478829615080428501345535034546457117078052370536438967486234448042944400315747927844190957232882858351669956269158636325596050565423297424804420271567075456203360522867251292295066075158778240631757597411021581638405455088192391535095268876485495708232169101991140596580162987441959917843590889983399297435741646493806499797433960131718202699636798673926009174445716326905249145466128523785382607473927776881298465095586516841716573644450571113340850622619900672530933443484790202566658641826119249819267912065204942746069637215382678079393105605322128171548153549525125033507194759952358003956099264451284722450508086074077067809332125542704713991429017656825192337826063804727868986094605483860870543306512441639807552925017197084867410689520667168813579820666506110765627474522842757055796902795592077963255236391469276724828593089224433914765648475128904152402327756958286800078154505695548355793728682082317432141496753834833786177076022740792380960095128358283632528906749953793545236932761696675855809171889485240751305674315737816654189704977538110772103809728466180458501380941573255243118126396800866328390726522209427802324338378160099544911150372134395037864734127411651536062397987842898608979732093255534396150182042736329210440629897979688630263326946524747081941760892670036245722664225999466692278308981626785723109715214273992139790510164889710605109631097936993448994627156677506792633551279807286071686937200952470605099806819745264477805315821690665535537293867628886313981251550388274066616413904392460473526364779819283959533376023131785282407751378879192633213639777795903529872005167054378405166766513102267003586801055561240278199509874380990746976434739351904878231968401682063095726086733336792721391566976547407030992562807304481103569516764619735085409431615311229984841221080114336644308683703874033231772259835608508879495279929927054234301583919716030576802075616216965100559788828416931902885205822268207700930545784010862350232264268085308120030563410401400435664727510082831556412555895200953555035553931409558142539595808306745383173193969800621041394971882213685094379816801857211297948207192958690535974188480504198057791984483169302825980689048624303691440967168370193076500570921331889243688046454113338250386646980392087664975066180206337550457110940506548528240785578504704650316782799211006011480477895982017725404531716379738462463243145216786306138757912039889747444180210605113016913599846227263875659519110167665561337467710814192200791286129499844010129486989717391928966917702101367144535735693862741286764926698502793001371609336862453986320367639151500981871798709637786066025213368681236966980100839423027132782940150100189578795795916275187176184457654850212777214259054740053042612070161999030894315053205101037609445348244474201238427069462406306520975228876160470608938459585075752632600467229806284978881847196961080958115043400570992084461764633141040844427439207537581829397920209487363766535294952834574438939007102652767005533920829125326946729804522524371856140968660284680300736932900126284113729525984665558919983937604729108274149929354097131396902520708832917557191608826182901965190685827524419363523427224873793640534599804408399994866643204063706581871422552438784810304862322996485214263806070726893332140157833399182214379986442066800241850687015167189744426187886959064005760052971695008051416270964587051852528706030532080629439412188021345413599093151008317920022165730953000836082037099113229059376709895089922893209124653116746238737914774780161738612273150164777579128590239531205068072664349717376055867556416700973789306200059221849460988916391482164241822273131883206930838576462518454339062995734021481706395776798393835449714476968834175168124076430761520399850243866767427645381603346450972118602705229091173182402263229540106667211116681407516270597858858892773912919267324005269974629202149715306830604655209040776880014865251603124565339863461972878756945714216410972957169111988561707620883619097225539042690845593931545864232065329447619387055142611714353754852144614672505825316894417136395048168699005861068763684029026692578436303856158242621917035604578121625982941379896836744981403453273650457270986970886826264680290663642437786553791091319929882956011515526388431384609209017911109595980642036457061090938750815730101119801990772728174461200548246894808483443201354793090876964170049127240017529253554455004751127833803079921018717975629094646222531451950053880064579759559127169907009689824098093115454176961757332671324587600247615841855515605753579409170889054232383589655078831887493323308841819447898169178772881722946514650746291291111521912561377992789429983692218102068750514727325348308060335967921285171543697684265924919506222196293712656197581616842712074995564624598076331875932989532503499480893308547148052508275787124512881313706261378079482190307593461897935584336980278361158151852127133421569509153029023460368397956352927349244887482680110622307346298445762156965583900448244039180807817506286657775553803319694571542757343907649644636771827534892557208036455056917806651757495648849000717182422885786973858016633874463622837881171768453916889981438015047988667786225821762545569880252762951809105629244161326744687780684291658076156162411264836261553034708495390252129263676068919465923792032424435609270232226416829712205201692481818779711344153166037525196535949532938316808490977245275414008796288793280388645692363562468179977060170310751679450904020264346273238607007499625825748957331650646746946493553965516945550114579540952681900105519719443427475291295145659761608872604291388211810308156921178657035865345580640633496622832697855308026346294773599005554937748022054188165284041563820176919966044419462294279004106630453289037416821401546464909547059334009399752752625985489611046586476342226912002312708796196507675236600530567289748666068710232780505923154582873954723221427248489162545246312570463225106132504677116651101068979170690090359898596835764941806634813904898062695399221911148009161415680272404833598243714620054174769520583333194438678115379870155120796762723254744225595754303049460374280825976596939462923415784784928686060209640602742330914342773687826838307185072035561746842366783157858186693975411713521039720271542269925174092665280380659136624733063012838153147265795708846013693652470092688517195204768664815227105131913991431561990384196589159940037519494893536186453252249246915909574952311362043706434241815617357106980076027286570317881825309942007062977368741575821819583437327539779802252377731416011781457484310468196140209157797609096776380119295620119748614077959812716145174898911554826519958714903547433209506574653232088854393466512348705927042820816144676721026375549500435255805959952053828563406557508092953317494533049713318845675291844268312512333076678872819809266200610209352944054539860190312924042899736341332851793160676143543763782727328141059548055112385616951871888407694024108081783075083991225266300696130025757678376634086921721807304315325342903318246052151152660599453364566296753277870380033422360098669809217316879457478263276589744315705989794209130744721349921756302213985422962805565685700577004550959420928656946753428015620297942761226730086062179485102790841512704683937802893529141918725962486835912806392814541695139927771916667991540273143055974728908383065235558894095683003406663762908625076736400762441969132606045777513170626304128397820109296931878985651889034947419741140935183041074743653458607460448816861353942808010153694399454199874669991957783567743336274600628356524764997205850828270699750033769969315448445161961689991683753889682465911270390645985415834074603728757978366109961828206372337630068353859499266318432702028736749292147456731814507055316452727421732701187186262473760763459135896392628598674273838357020314459290033608697555785691508882261204529440653304250602356469629544705689724122811180925463601303625195672981861168745336266993686691493870168949763409310387395770295059747129203949171211057848950175039707492728315036138186467022249394129211603143328299366717521277946475146137575859944533934408510053831476174222963415975580562867590786103656535600396309393105831691232267127501506081604601382122210802536394295865631246515733572323082259028283818250158362346245830119694694196641100790325702398648755209854829858252695208932990807963433249729114734585210411777329293141605083569335521368531997990783793047867084858338689979439047882433156917078502897069440307582846505626534496150073284744225132794902803722052238251581314165473799951525644284695214364518049919059289656172083619092950720941013222749956919297316128835142727416586605572714281118147573089155551741513709023662990497318530752595112980156707195786340957225664376131371697165261712083693123350527809868037964792273717169277634677321953431814748291744623131041896782618960173625956621905419438836659812581320477818032443883669312385486691059787618326070847239292718025488920926515964991261966125145685182905401852119400479278923361513973455054501043457755374435494104986705391197901442829619985165848674905461578133051116142632419229006130373198959622401041516284280102158049330392066193285026137092825036362394023422599011405622118257477597962640972269661563010744930085549869666211675203564906944694908441829007521746315748423938117149489427945511971489522251913734200268614610963903239675575709597059729949046060324949786518273169389011451907781123155468414038114821482330870593671594738898260423657005835626901629740614642606962345079455502701112411815674688703789161701041278058313818102482988146874896754585656741324351819089568213254207524507755664175933161267687389645021878121594638552394029824416580027067524026320232878474645467130780239183083672025917463547563943356760694120138387374409333370478858701064672112938707766036339732255161656195956269000168192969636468431817192762233290016557078849698465360055410105365182223519418979617331867475800301117126950081656599573061794926499771666341768715934204899812559142244635305255229546106490964609598205701631631489294364708084267014156094811585170169364517288422168752468196350329033537885536474509262004181809121217353104818523513403121114512601645956640061244973516485950386529585792412974511460418591394131813555398774181636172761812389275503152304292888702769176716672411447092081485989526553699436514372462487981250697623992232522540483683538533816494010362364762219391708345686537220530288933918816559602411141458559386181925707506506146872484094962955798563294125011468255343571701454250440469711723730926299926346706159894149642676230554783286469602069711343913204135570297861311300743602178112372823281315824680394638059488640313069459163623464055837656746505032098743350151437897130006848036295622456703611219768663207547649609769756083502847478616310158029395913284921754589050100221344605618138607552823213257755620309437410273177682948938137429530058094276357620387266434450223870621472856299842276349226248683005214843784113426644398580903065057237389509174649271360463738133387620465475139128631667758420299332329834457369176849561865464334619517582976844829221445667950729957415745579802710585898841619707952818393622912051480640841516112957875022059377398846909084340889211118120557488643987205763313376051428171346967295356268474598280862393378418081140071430645932370819916582360561966185690277192247244941207001288454864535611123517206597433042003925575884513605445648865345293766086584440985567255068708507988764712588456380614315952159951193868482413461009689173419960597283875844200330970863866012515032482842997621012118459445020647392919578240033734597527581473122496645473066757556783720881674857984552308318840905040705916254294299785003771025998847899888851400621610529506035324049340275091713187611671005867393565874750696423127765462809343300730145020519436487575051189028776342952225631011767992463451190098162022008482116161908007681478047654936528987644256255845777008788440350762428373763541738087694697515128195680503323993116675989511417707744191649774211957914461954481420985657231267091040976115141659215714706970215490986006798284280343149955272511961489381949354774577714815191426466158014355926700592352237403464108007878377549604445549506599536109845699904382317866508195743723801589730604716876846453393397186369323859633915511678328132809136342844105055654108287993968704232981040522217226165780352661101942910379153682091188675608605813718934491369392062735041325501262649517931068622498982534867189813129389597926291406742494963779116746780909354519385074690798175529112008348677796819905798054004747870295873585929595583192987749140069456923488272250144532883558834576362061644170997602672023339795098549443588815882918112369139462780139817235407878818901720507619994266498892875113155310781932567928323387670096698840903938381476345054685562898516682381296984049933398438462476968696927356467284084802503691301336841835711503545868387040637572109118556085242930188354421029899526835938737751153096677852885401954789175500435123070067718263711159460334325607280385081807431147962809517807889601662948158698082903643973654300210985690071459514374843729013051045636813963158185128884080985263133336040046013837608266199414161592489798369772366214433584905906447798907468769988894167594817777344226802760193107321041359300355910255958596568977922193702874134581363054335994430241790965493194952073806065758350257077757961040181865352927968784155698835874888659265576073537078224871417512645351634020929944500860695526544545030451040413850997478390206252367897956326770821819815304454867257960602891538832790987459284981690431071728184188565870676523911373328572659454709821070392763059819944188655841038311931430428429868925724932555364859650208258962838231825127825631546796472857966938383065608420785584282400347499458941125573100425950863514253986669222120654406171912198172299008128285458972517227530194235473967234875810032297800343640651921928486635313833088943241476912401264042346166823526913101877251156104163068967293484216587966621813996378864521047630215574492048258596562731927590758139330729054311623758309002015450242299051373582922809556915193230372372000937532017319078052886674345704496411391851040048050715190931487837220113141616780721580224217342756792275759174086117205887175340017003708509247449136262429993229273357125840235994900972372970741205561357403360120674344876130975565185587543551458117922570512556693074903207992787918046100196809500005329225738395883106974987098026842040277244723409795200530285054230724364215897731364583560279091237507139379221569854815582930259773110134154370080087363094536505265447382277764501482851819217877931893014327592646670677636499012580749506702487775466657193871300254560555053660404261090801716277913971561280287797404908670339840314236371105827567885821005612712613714801919243567915137499603251400692003748456560956778918492750637332181701266808744508725499262079224114655845404979106172457623409155833604644281269143060782527386654884533692117579537874964045649119770135096247878770751386824085154804670511042833272802820959065609197691024238511810414681500938867973411348225559369557269165310210369857190768838851819285301193869033704720263257226747511158855345174868837104034211211672884488115216752285235755679420517736360488441454646775330197551638044506919436999406616363140311532831025205597810029042220093265085382949220664743053137438969078407599952469919231686892074218200395572762547198659306358664882092826756259185193193131591969047045015903729070645941409760947441374838583471113949997369753277704236604966957039827782010327578647267541355624828403374528505662659608098593715829440930112958695329152164315198373234175093425511049790308966103108740298663177658793272874103954870030074183698921768399868056934891622227518990929407220162126143422183837132845268698198460465514168468094544567678996020213335157768945003771415128189497661766976544031646750878691349155455214235736494306703226327261342884980332860908146239473342713325227859518997410913616577843971194097887092798864836541873621385767327064612260103972706491696736366379091780236911624270861965688170108345075666230240581053639255640795389779126679883247089873228416678941978401709610247560192529515876065133249309524048046759148736135840776901412770439195804640198926503289686060067823706805780896923631351746347088193817460672492180446434770890681706196758798249137924606127503895618375655480136858236033712365313496022882953589657043684519750681345417523370626929639285383200641001643138399189328877562291958179635254210426608016658339557030824034908201290367120352596466093303046712156087173897064968848941409498409736445589974609183947900248940852107877663854915311343605349405067596061363401019807326032627846764449227553122444697041825215452805662254599638963609259055717474828862656533875429412088800359491877981850812642550946823409956260461931249272921917817170610084791117196874744706572431549461656451269179254959605608761787411319940494541826198608829510486189103113337265682022035768287406381297484506127051518893170003073518555046099141446642309264089224826508118927579339436218163400930036359130405624612863782778879150990110539039451704842209213997151320423555581698516477521311180612832785825298729102562589861872837451901699543059962560455499600406403892782535121961645493685188143259635374412488928100668899457325693020156868013461813198340451244520737611222184635591458188335004233765347735539885255544019430564696850166340037918832467847223982771620400418777863223808344951571657867928381448558917110367907752328654234805976233612186024499235966183551519432650506802758184312693429114733779061005305748803328149147743075560526376988990172606014805992957125124365435136682314083165716016423911528590185021212878230694468316033518038912614355614575684485948358167130076817599277351047903161393412248097395147736934843053059398382465072034832098721515048310441750712767387043066119619464522680534140704786700904857561136511800036675727178147034383965006989898870583254626544898350720296203128925993126847918194705133163478137709721431434770462747915216336859238258964387634457833015825256261486039880315945788055484031195689942412801794760868338393833955431565839510663309005207971425357622480094017008632417754089728784748416297691861997509231832475511991697444725010190871941582732128446627383067421693080456095128545591945057091289814274721506005872826522625855402626145771709127343997488052149709643015837453596116481339674886706328719982848727165746390032534688670155547917858119987403401470126646680962554525341185377059323907381882604579610938618338434594388260560556697932128091028516980365791396847237632483912786696627695237589728694067144785865403946837929078214190223745635355461421737587758497441544743934996901983720430708738324587606162170205043594014152017325694068970944861263878951191988500770439973064545919517732363362298780708428755104133510300086920736588961976996080801601357751642589338176147821193684941345387214912343154209590811623047114684374977187252777229689238916165970251682441933476445965935473992340557982958125730023063219858949121205319373438386469418196016374137719168046903301171212466079879440483838245317697471758015420690932049599400677794836392719247539578469037499309155619088411739233601207152186296339923467287836248079038564246760966573604121057532633331684326551044958450584794894941426575613987894587271392175867354989020259571953229343313279295038112161093664056175861081108365180421591990618012203488309616898372304193698461892841680544005137144554728194370461107855509993786443521906249038930489969895994042930977798881809940603615543900560895521390668552386695794535427865046534242331169166023648456815009801368603143983531277834002647048150342138675402214364960283837995338007244344431093736360821320589644894682835708003453150187375225287445717668416219588889565138401632414346253745642999528292515038738190478661380617586431952544073254543061080125867863088733242781787513137087199940832790438279080284278016713837293134711105302374682898902200618712865758677192946174062918693634318115107875045750519722184205428507513820593863601660386194271436916193975786493967477415470955922437586532677053839917390748007064540777179128437248805195329057899786757532176473845338867808335970583741308797694518237881034000571386937611613269860627340299117104770750498232222545891871758630586125171637332712181949313150684992761524014518118993235429040859412432943150609086605971263951037748526493054374985080034520434764221226241813771782392738003290987384176361704849053526905342476792039107902328423920468119625718011238730169513818221504966854696005142749760472817890046970882074708190686991644881988869486154278683944686767524222118064522008132885582395322542508080161670470105697768364698874706040749435878944835642708677637919941170840925621030568800998317923995205287886905410059605166106853108276252146478237547765230573087191489447374311554580287172234614760734456260920282277706937090038149598271559395164053647711778713190413650548661689358619830849135452121860528874657492478933418384630370164630203083338841696540714863817420652129066997594962023319575276254825904433272949776792759980304711846826598851226940585447389178183871010836223437082117168884959005616768082532213631328029849336491635444345392259458808141208098346410627578105741579278143707638039729267009865626826937106733087163425889773110470177372474398891788417175810236395394748118091004660402623749911534980684447698615962654141748360626243029209064864082688932758763026847000275991460485106894759233655975093579472259723053777925543866057173281660922932747904452587889520513409745171687694291852933170250985852725378599893394810680060917269881756988801963878456957961707713087210798447460088678612988180981857884894417090051029522051988397420469100940084514785514555165627157089160884007850669304242768921609465145586696589859770262453020530712706690524375351149199713503925952949534615388686251556530238293458003577068361591110399512984707573484325055690564815852318912689579260490966486108362358966244640936438933783030292835809685709038591367562052636159858759842557980293610487704974451851856783033744764776885275375396932911732080208866626056562985809295289222776032666452914443397505877622671077114036607845011432733304142727192677184383334150518548647937136367175968200487591619491703712631306439411423706523749610325999605083484068593919358953578322653114894472372598231238239689613543878079948467197397987990055068727899387966662020130724446554713960273192797470167366411302850588818700286068336741626037000123255265445296293274942414485637919865361444375140350770807237354770513387639030909242454505408483081289292599428892991970849228512824924619283019959221269675489480478133907516793460452974267915124180129723428765994952948895032968082978106179983536029399643260953132130073362451616574565681477401402491352777648887039706976836208703620606791528547675704023782118539711851718707164578857155741846636758845782171882550637120522716629140737682343430037592690448815890530960035792734320973649297331165212734239717117931416353155994338261760043876303412817285879898755051346997442218127278816725618432241346306741173168378466246357086738319193201497842758356683764841821803022040640151695979339230128042946451066810038287828776844691596694291247316723499544406647456984662758131297272596506645579583943069679992142864784071970342431859154287778613253431614586649541490593140898381634817338928408074151005027566912286868130172921871978877083718629414709530778739843267531622955702640950992808403692318806629861369698135463466178874269933747230479417086681728043325244604501935931607322308157256678644976718708474608939675327008563784361659727894321391296588125475770875198274336115128536291932430109313908861389469720665795137532106187746068212011372689831897489322444709236768068230697818442925160201154041028641418673082265601293095165185706090881367392827841844798374677743567734595980790286670479487267065532875898638760190543671450701554149313181957145838948818977780258742108957370485572295419586408534133880145300237148690300498168071228006924337006087986522260715613976337676064395223719421011737827775039497573396064695963430272911910807661882996669701292933594678774507386960043093733007115219499707343896553189491159865313808064053690957583147148158224891236661795806517294935346279712231165901784984586736218582769466437885815731537826941040710403968658628021297725523745259104758563775283504955841174771118839979818818191097778581772793183063488054998738870769217596486998912466383773787512171287073189304066098172385006004253757548280019244653489219058011200654150625561434107990462044105223146952373053723960893343673870906551236049441924885840858723045735141587262092126474702659059771540833252504499844016993084628459845005892109868033828233704397427391228701808933432081012483190197180229458578427365483426498598605357107631406418029108025319007375435099991085786503031308580295889403177078040270436749727260744197625432952912402872249471407566388581109646449107382916068394267801623981806021557468293051640642771287735840284898082378029025213580849015991192133737114856310681648452549402509620728801696138491183730330665407177117030436894473033015450740422812555232463118954439221033154198189514222938249916925320963455930395461099400650220760725839596538536261312372127147061335135572403179439845967702346570580700850858124151259445468513594915797267597797650655584783521966674722325601433019604989746697925332020112233105713243872630172638838112287894197974392620042824339646406784005731613519340190954446673274793320492251361436838491951596004094618616416891183442380640434582029341180773964530401685118349411098805636946692574391561719298633077242806917242296869058470284143134015591553868829995260981842775459028680146419717406145323817679823378736814340989728840194436412943787341303614198311735773298570635643739265365971435967475338652144055335615870199882826376965040989973293069614525124222735454550607632061059580408930918790195616594846970272246773915101925534986735443236819623097940088738533853183220689216213296814882502837849593365240536441340141484069125926524738927035094491740787588814226074678442819027561858677162708511000071194396323795784580038831635273993292275332636147437922642471671539751112748619598597697917345426087753626503960163131315091490373847402504597174874520493116804912435714540599070297306099704427515430450992230171156773464868824053722332818655896645897253845565735723572657793539294226493590283880483188440510629591824163877107340117218115370746387854061359037521377522752864640698203266879409295921831473329720351200354254051437393249387195704771973130888672923129845930915407816483605278944346090060459294383954947390094189963747317379749175774265368417667636641111920459289333574201421732072823153147032111909467053009170763703303840848967752028985911813434591566268148075750749301658019286710924286709180682768654782337108623514301592723057895759057591549321100889819623999735593010544961755921990209673935034789296150531708272330901311128652924335043904651532952505446051889826487973545917092494130255894534722464703186328496013190506254175754136747459193588141781432561014634813475938106494030721992255883847825975401927294035189721052426147763793377178770024454059045649241787193663262535478522358903250163899420554352425686807286999387673783424815855796058553254481739210397162110880198071554728783423885715970857391979112352481292644170354657334811615767823884270008735365529926070410308721607086583622594790340673439708825845784098339453897291067404040975017160387413223877731767956016139345817943929380572780918384675748983353386187085181782257587895328872623604845371272930433625550437690436647080263066229079840459561560002386146775235581359949626179530471589161716476913372630831173516900198576663549335064155454115025826966888027535536493299836275922930511299628997250919737691576151027364367269944574196426111718599031272494077464303621286066479295518592641842044692988647549443438128453902213023782705334679062466364433865548827976106416041142228897048550398762457978864067694570054351506263481801863928017302402373381710268142974890038225434845135757401976434601736948889435356343798491402159730859459217081923064782431409962577833857136906013737444489758936800289111694196949519648350240922389442036914157331772705742196626006875054970050707126512886747712415996940286891614659024727173969173334590403636647614189052054644394093406680505575347136871428243101439485976908008926330086871093340931453354384141144541709310076793635233886242445140631229096590985352422365024649166432313649971999536238915357073933117063457444930575113754523511628847789212585649386493378428947561414814818885282146366219897876753633660617261066196685799683534146279268049337386035284879610439466505293146897909538538663198872135066047227114755922602191631201355502899157853071927307516683316512395503298987138367780675848583949085428581483912589683453522277138066681269670464846410039737586083648725046643364305621031768344658396864989028154545919357357152739767939764096114792624384623072701244420147994369387893919526016380189996442934901447635720559602043953256275948018835608646211265993257920184716490968605333328506753341879622327054358208054174133572627914136911511713748150501813141589127789172962238622848235945775972159019442842311126874230040891604942507467014086981915506866144989186665221496647314276577056171576972347017255531670576510401415393039823748928310410300827232708358473371388674709506051155379165225465281525345870104984375175706691418947655178730739782056410990232400877767729780221254119965149329783300553596920487382862502690127249637059430584878267446111803728205579283316132359066249538869873134347303440350397770063957211432756996999512541229945452033354922249809876643840730469857568122338541564887778275014598814615232729897873908852227305628752987893294693341756102720058368976033537026547621764266641428198717982244715215224602100495921443236447459081170889244340360243293754439411376118201077642309022454165035166682775627787998388982230511371168887753128146940104777800650015061016975755680801257414582878071236070711605009065277070006157691031801595545419487478938930234698539198306277980603699703221452128416183816323869484750085780892772089135484477509540813305792755774384818435240810171616751671682559078668857250842015732242386383761122554988854029957693260312105768343292795165489555315550761184566846103579799931040862373277967161403797012587345285916215732596998439272928836895525469118963062527316990897562270445435797756652403262745041496527276021568611853912985053754662992720663149535981689299927887942364076817276943937757859233462858659472138069112159054160088027937225870393298749626710256456284504377957620722455434375185886904015035643318300076598384172637183937680700804461366932511022479511287497999581879920517663202142144768138682143180445884210725025408457066469904477054929823008744730363661623467149326717309543594138753720525266514300535254277998042775891120907016513440416824882690328703324912390906214937424751808137721844876010422944555580382396051450722422512973286049006862643098003310182110997491287330862375134463092661955814534185420735846236657224070153573704979528540173029748743730822537714641164237540039770438935528373995326135181541131081805700003121092956250287279026132675113697487576895573519908703506882593891739457576564295662803276563377716357878128589222906691824204060642660395902590262553151514821272862191158444860401731816185518035429417928543741202326797785596437189054847491465947297158775570444441312052370625966267577312998422535477510118496200528006028865683072022785989950752970366155168829109944443711455439155585856842704138215889917672351559215010970588287657708399024421831200371004701818303550040232339798630927189624546220073801291626455075405227092577035244174143951598865378135960063054453612645978500981627716628577885699120325428300671426028965926924775287420198335841599542912045430597210076408635946707523806786037116217309378531417810884953194433340623067600111487513422032653327702083773985358264951059466264075345030222153503378830914897645581435407830025073717811871882208234748350146601261153947017514129953035111505149010166049760961732226866153777553582759880832181606621608385717692475168007564423253839709520243064028432900667739392217176734901224085723797064550649527365834680727728128725333981703259966207892165558733172125663772461693657789626467905503077203013430387356089890556889153811997037179739589473780639208100013869128870227089226758650983323970569208037376309316708825485118254506485073479567993485132287335770000861617465972187182317039755776335895439267945617562551434393657345840479560511758578918125442575688658755446905913361040280804802289162130574758920977657476236717978544999243551471225376681918472451216676242130617684295300252845200328774330861732591141647350989382226362421417542092819502200739229935760626888356454258744348358276761988701132567879137475733381482744339372676752479708637179277516427423432658391320806785827562562570132289842756453900013858941573585590148792365719316072416596593437387420502194941388937459736830489759724471796008747321379255827556615160445102432910155645931942353137681523040218802312310416543849251563520850030977665583592121292397672291413866807892250912614390218099868715055521602930151563759072984941008761415603142020306327045694655040061050519667566849844448595614314143956200401090982343312565932886804602210904963900677807819504406108956931857648447754823800625073338616403352154366745902622151601063868578954213966536324020617952901578665676728338753229599399769817541508582377231801065451909511738028977414131555021860756469105986416359130113306280099441196119818108743248525077731905803596628877897311685352917279590401688101201104962859992875052092216262951467058819795404911195022765423928200205238440090869197872667671095581431872692660156011731600861216831761571186291382872852037265114164742245740416437709256171125147656017397252280456816360467581358808605364073967409981777433697258932693836474898418468028491632954780430533780082483702924330947255930848772224750191650204414203637754486652087100426599913656355255993778440058723640224242280343739651878097034731191981017104762376549486531329569279342902922918114921700008619388020159968511092297521819056404172758517926724646640736295947163206947025005320525008504035050657700012944529990863403763143665145279167197399992479279554901169567950247581480412627730976259442878548960067373394748731150577755571701317038680827382529716219342228115082284145282462704059597805324898021516810883262800277712495470597540896141192038054536429367285615440919173069961424596907129735354824504599615384825828701703676101717591703231670135284481505668137427939334430607622689537967113180442335722052145007968358873614153582818435799133158339790583286766617042476292625344746013930461465596172629964663244580257892912828522437148463817249098906678793356090974696171529789928408054618633962155755190607708736220295436199330544393855812065820241134012304274957724023650283534588603446585842042000907506666696414759075123695983301983519960550420445940771094186117059961626198035285651140812070747213703256843927782234265220663166727477790327096099797917509078307164200190220956013443551253290105219267950318582925970366071244265620647265982711075448044506300570886863838100080813159331397371972971264900644094767376864888295294936834503943176822461911701959885782058057954048581058684619227967369615911837120276173828537603084845412002283656917614270272064783614960085570593014831284692325428431518073674873548779928287977656561543785985528720534529875159289587439260773793384129560800229726619078236586090533233011781182600729757858820550677721072151798010023523663488230888987673643912221795392250755105580322113557971732778468853544995159510677849274368349883321130614158445792934348169459714399503365779656908339827452473607213306435128436254320751156278865588109089702443810297375691798370876373761055270997564965807515914965390821831361398925299565161280733074355685235298788073969654087662617455993028203684527861393954235475295761027193348489980690096071627299007583828670955977514791570807648161298314375165839467150972225743465279314540697167960618229535593837383266035087952816534743425145543528613354895533458126997168341556911116183347104530760857761154741679657500319980576363860777971021620386933754164988592600059098258785734597180325115983662006105403761133503934353322302465644799455917646377470169479362721206956036256837121533481369775562414780013959635287680151848043347487511412156168351251314072455710826916702688834219999823403955560042572734265087368972031294814376783962038971554216033857996614719094375417516912468476075233372107593631482367149688302115837510478534403731775051364150218813615179083317284082216915156040610506474123732494505718475319349292370237827745679416947879039243668820425534571898258421255540365052920119425013571496076373249292820697604316410763161665862225928391220978835957157660386042904323809039558762026359127670983955142909928676430449569873237428024701537368374488774998673385813613595507122697671530423055865239166955392269448333842698984076127357396854383406000754611105250710418048578907612753110021617202110126671624788489988060553202060844622559890582108940972443136869632203745319162642647518455625688737351871574141238522155457064356816988434934400378228384319166149568125043620195320675935632531670247405514899416944624227061978480453090423711763379227278689185277782536911724843479147199478817728978275007651084705955969484302193597304219960454379408516384829772775539320124525318257357103078126721457973902784813493929032034227193622183078498098556390044525385533099337468712540908253116011709061804641741519923623816263677282948980518821811236864325040170209263932362701871922312380913863472727072966159584690057632977211855565144334392404099813108896998259513093406076689378995215693282027767835557305665642815322952539215331179107064414431055621774562522550536339555470545874585132882725305965325404944270324140733751233334716826469343543183028905329251883277910266148736417653957738220931014319268949475362695045648313690454461016600675406769655558089623265031818717269160569494669683155470315987871315874983621369558160703191311260667908413509285500365792934549390507911516537418043228249976355910961906296470706535402635858995227789713408947612665735662394992619272348845157867368349321218531092009408296493806536298594690819696094758004690799578438389855969790022378991048287810132236253117640056954290063793524348460814230436303842228392789366184478170412025207910448326275650406133980216100184024310128595283556891673678536169714842603066616559563225729594297811125705818615373802940189254191318354341269677369900714054714149154744476562817343136999576230845812740685353584683911789076447475176863900401560707541989677539456356134675457377912721342066887782117850859552527086774926017793314121333071079662851973128562744234271013362745064063105068157157626440213617474388707705346263369081872564314509538983666952539075197951248084090761616856449510356817410078724178240524955139823239784480365250811177001454464363283797807113622933245978018112285736005556787577151745449503402675927663485763372015277770041658040284649889778416761289490136548607967218803155570661690735892313664448733159987865338338652110388418432760752425621491505522297812043546937769696401035150801112683501591790008700298686096987049618479826939526870940899460383278948218975972014735972590636556438919315805971661933183523822531162500541565492553737454039850396866213657246887338352602443976748710363690690475248620033398236748878095459226263157275221574920740634997756222243386566147772972106299988072049857574693805465146353595053176148629908284269147497387366035620384251774809320819786499875216142360787792087976714676218494915185925610150495579971469104332989346263745102734844727224198656064790060361053501713608458087648283231354326252876689629442572620152952147922428993513598938924148393358677191353169323603553398745148312245169947295798620975286775983500372798995686633999561204301411974888332330507097748892978671407724725785193300029580151543060235834462917005060226506653082102470907750105107116029393647686103855713503481719452056180649850685390697260063572340582727487720368853681824168138453814822361712411372537941392479397204591743268032191074708770835057375888988894098393666399073925652471524469941406907564574544691171818108456431018664242624684573685475298474627049617180659166335546191860845059052500599147816731849598399202191805545940937990401411030910787451163123370866194850402010218200715813587031942480954934163164220187486224736660820898415198490545491083483406314534297186975486648628283783033526195140741976272411052256805204520721083884221937665633694656653861764616354653399728507064586277100755470358023688983312022091960502465439557348576930399844334156094059959967393586103028354409383520400123349183607181998475075919591379912714479759187905147750296154560549031204285000874481280348680093555817626342704641345139173307229202429883800037995347212692200637211480467854952768407477679731458814309044268822502839247050466568356620918015354633403642190768494790573976907615469208247900030896549324141014065161238309947423860057543431899213665319205899860086532623220531091145122118854867439760276031747296145179655238325600396090451506607592674927415850315079683552390223354056339052219150520173710731072010766315408648315647044345411174626631556799452132680410804079050686761014241398841574046555882877691168136498069707354421778910734636458564976591384029640489899386424671567817117538053874233729088342103831460176673680393261335780346694250576106978440450449264518819250064579691953545667500680288591283926369488955864251598221238190660601633326489679992609714411532061985915716867327526047000105625403930144418076516535251184537516698901396176087150740963056487142441845482351893450975760546122299807507785748199198187591155076923286704654462785459132523213249322392243206523863164791598815572634535091500057255647337489286587605658963816648445039740770454811333029503502448729048746373788582646234187859124309317680108715106023151650785317200134855680546799092019135833536321816502261062418495692504523636703987369868812949314657370444496071608357330140414898261525291398572603744331424101884754939038472940140316995046985860266634382733076721642918622664144919786164953630268393821508659827383493886264097697502031482640704235080043568553167124142496151231416830491526749556586735102532944558389567764619772156275552876213246521282000189999032571436836376114030508918107576821367093765778471100224142390975035062522319404679518017462820142389348815567240061961431017392375974890645203617778273504709076880519204875694348525991985019855837895797480623399743596919976158593532905008832988121529403546814946079700983219719862730932927809031379750366606958360726496266124590928461091081285787293179336754447675323218116561518533828581371771523379518549244323876463570005713313895229790299388452586300946281923470791980004682733715548552023897224541827413145764941495592315598164546064783960966816006779656739019658489378887913097204469009756444891901749714822638255348706792848526826982575998340333314830429389750043347320493097346949218507315206144275692360157516193711811847196623384751795786469153015100830018967964569203713831938850100698154178352104020776271218033010054560821615078616488177804886648644060058629137477429677331958391755190741237750884397936449606089098713968642186770613074429816459902616676654909796290940529331062627761793016390217317700845953236588093542748932408654223076351958047448676107841780475029808208831451527078498586886188921289114688987574207009202254673260825026514644288959575033211369145189215616827415196079209493869600708011887804857051126581637232463557468754164504532135495354005945669831674460407519319114988273612969338408911158047487219366887026636841526904265479590202276751704747136834018645986865217316674365149425707426273710099868737172098930609323015174884551291842515296906576512041053582248118741586083600520712057325687156486020746541212571932089396023557425451131870256051457367329867722059102396979620555094312825756724795995732551716869038000029399846183348449175207067473990310852107954043608242275822476390492577806711466233570527400127858414554871561753779549869780862200779864309367927742247300298040750093600186104249778614498982975707776758297128286949478851499643752880856824311990735020461442700262506426393660976519617283841682357108802239848005896965059749953401490924695630397878758043721493631988840755762256497644237927496890150230753658221612619546117977564100840377453237937612620707200150009456239593678902261227293724079635008400090239117841886847810871961296097024827332341938163451601176504310362811864092727418084734897017690766370987856430219963453071427369030623204575442552091509550197492978883032467649606094420294014359837779638067168338560599746541642631469834556124564909577780717325890999013783621145220535413536132226217948643513567941323701788848723336059565949633111314037089391087719972762707096314574242896564419163676993576708611914493520207907325411628670304506718341389682260068000681718284634517726308246084063754344444019401648710584672972104835992907521843115486417702863083421003597850135765393299921430386830546344968760700394671641113160107210379023133702841145025151434005245894193817383605646545146987671565115152929369746044801998057348633462547728890612179152492373009571613096008058528288709382404400772323261561341252432017980319562252795383278848687286445412405892482651735453416636297407590049765611510847826580790103296559450966574998627406135543435554892741747320065609713744071713604665944437435679021320872377478336121632116425723472675380624162209770785144084176686109258187775677424465408995087575213557980796829628172626372332998163710577142300197391488154514009645932479595326457806252604351681809277239039847852697935498404602926662351874085811178473437165206355945847690935843159532373401219194511860316868755666009994042568632782446365172536159649869705341333334159740975909017154687956424681324366231495529465485664432520645369340495607548844841433093897497559562781216343333915087280973516001546697629918022235004048296340719285431523343327287461038569658253849779318697732741445401135338605001115443239602556488767798959547355150379352715080493917937171093947017790892208349339361034043406793939472510718031727735458890121718322671014772848015741776051625170959704549935662598452504519702519457871968203322494852950203422512659182914855462911470480010899628450830587425609404067786483865657340622280759002412231000681703347310473405836091593782715154610919808116291542210913174725707343460473837824421584211803708372753371224247322943367404590780779016901583117547170156771845907724489862364077308124779777159526574601914320824262183217025079128205380470198039706081162867239889827478227348890498552400884531211578065261623763226773689199817224637646843972797432352163214352309158474460844250243389150388471861004436613691788917727677705519312754607739003500277264684802485472471811718076189586076525977997946135864261852922881561773702798076405519890004653159379340400558655627806255288495096463411103479767977537965748758797431076708058749224753810212740621701003226814968051225993103778157363207910386778984473160464028862132519071850683919527665866010762929924080016609410717682897577548921952989544362985394136212970877281083249631667406487577055644712203881429995583707118612105656512164871575678192587526792028540086839174794394209388215796365113091409833863412398239702089270338091555301717185133965349446531864073819952214452390231830866333054823269051828760018487903992983096019264196109617573433682143052896589110081608886932448854902086483296834339709416069756549556381881907870143385929904301349360073890243188862056745875847387128235098729452983472703781423211295240617626925380795469956039657354828448926885738662290707953242780055195460085035932987753725303877907085003773640498283195578626543045224239824455670723378282708705531833509344046938536199549831825984852753662020700074247719691978619072540218735114926992603161403652942439633391075294582436960532216179970642250773196000340316198955456955055335972033303169761686486762718982781385086784813220196661377261522827853190017417975541364947211316820802331119939192536792603134088813612397816993884070309229257642363837586346791777819323073676631675127876771167790137718575065329270830844086866926922965833993329218747763674869277058416942763064152137655837393446905415750229573492039357221058937816827257754379320898724712999307933485792212339800185242471494286144458911672372391877459038900103993089395637717452474756921092072374901665423024858577152176100718476400232884541146486288252710837100832863776278656360689276082647855978357550871452976406156022668476669790302096546963800803169224107251980132141154511685027849319213075851743249538588785111300040362062401099929931529238340304614253069254276596144010905450655770455043850208170103740734028988454960909672579648644659264654868369208012502271257423270510154782558759865743468854850220662057609175900881029663712663870463763829780091786728685823726832669308282046470646451423819693838914372831613803123800078501190081336487215030119357378770764037924731139665438925586567582357599220033626848251914671499175207771819604529601747224177929764924481592273784807432331955240230499096279134050971635811728804903584636971582070223283699519978209504781117056557697982099247865521502309484130864920285924998525459464345549460280866952165380763648185467391222635223726214785756085085509000259316328078773763227929180074962191929372063113358878834261295516870084258413700494071906649311279835314207256388176977665028534882533725653393945797067588027932760176680650311328109134735357208293516632208814333417348723616308952569704446203995976673844771286105802182413036634908985906005294249297358980249736940706135840149676357461438977665560016372706793707457795335011893146109290517397471982131838061651275473990081793406960296690587785680403465106161842544564689284359652037713931159905090162828243262646909916009210894307776075003022656007438930553869268814991804286873911920764201045089055849895584836375880513120057782534858474357461576354210273458381661979419539749924829086131958410374934794997751999730544939938216352136446401410221682234300576185326800962583456180467967036218207617383111317090172629610317768707255436210114148382706127698145968017401760416030209094319255788470237221421456912519912484914803141365599014442499630272910020684770814483027963951640538675805560095219021137819363163995953725543677101405180461028631240672699977092242863830532286516169088262363201410877282985283843708935297445056934915829132947497134871425417498238780955983254442022454871553479366575406136685776362236112206834016669003026441224278715831625232102129850857351839952976334919293172839534561026895485942281089748547866533804246694156736940177723951117275485772768496847201450956333535777496615723484796355716074652920849003866345548721226211371018309880955262948459897639786412223615066785976089751979929548519292321369492938018723309032037175937999342226247938673539287248437241008848655463181142057691583292121795348806690909182868937901785120413795219651248776230957421914021952477759562523604117983906871726887528189380714122197550134547934426568011056671991906445274231051477344448741970470682863290875616253556272419249491306497824285174236051368170955529260245500330437835808214254453753698694432299627215718413188430146144299320168746498064102964368376102793527674724826151830911212380894513743485055278310378454836548437824074602743107558687279279908162985137121095575873208126613224455796440760493672794350271678681732738830818964438123263689624775149475492229938812683256864384729965543299064525596500498147826299878999769267452741002841427796698586217627529791867020225507836156854215457851817411014648148513709673746446390590078529616568115409188021251090544938658293893538058972379104535252577090657346308701062863710059380612642403069441258951855979931431176662549841869628573655036647844461295999908110227656470317302921488134492061868500680842267670419948786707238433403007595801441224215419081972347546021688058284331707278343534992559104558268923782558100306961972265078588209897243753967204766364814016759482075608759417833446048186951361535148010616308306631432819327468903246692833773930125564919800827452357007037142267224392522416651979756866349360303719274586682830391980945349294115042619929169159477451704161148575825421110988057374600032152227029206579223010082912497602940735071176965000209370946773178296348522215522807382931250556694384972015034431609675769587120731701955801962161155671041856369713533944466370913464777879162890381116215523403859264063405629228992653248919475268538102479542961922644755208893561179484835034593015789460225074049270801880374846164819805233007040634475562251481790686610697917631682018563638211836020280850168778993383859431273056959656750389089749612588617182674773228943438442664591155983757266616759442942136908116848984069250677377047314777781521154420934871669355813551711071254565600871214445281351825717260160328268976892171512194844203752749500277298679885271745727721968674167634696501418168914684084901460039906923777273670818093678193103780230481997322489538152006924126448893439531402084003215902748952166118575285211998735463929835339880051093834923376599483941467623394690767786874350427577057193249531031270708329663236684552340904312324389778639335948361149615103433609453654838808136497873048148842652415208255354387197958945163591656097288008532772906150228260089279134916357409209591084485181906321837614128536081983623154976831678181752664130284077091766608574620148533158968389277007866305749125773992535048005461462467895079483879328679915371889566312755254530326331278498679987384738246712549852957211848441111239140735373890345871545820447771865113558729454293992969492050081392811885714179998030689977656529837616489491185309945852243940962859046404721826299938904619934555490601209801338960288381684064268759900591735555570081035651530529516834995972486537702390966822257993862975139810846586524108390018056982131928315243219644659295124921973654417957182471666992240790151289204091036992768778371050046748954268540089154290040873438143462624537628034541589386374411366618251954888920840923883262307700361848779241610356628381424887964968374413345902155294526758112317695281657497733856091759778229722781984201974125777549911843012766485619528327348422886405551067072648812861947125908246025401977258792453727950907781385828011288468757405560900289540312276757114481538419801362512698217225063382693646385517345325585169405954822485104341005807296092825821652962181826667919682980439716216638033157439190121977766233758500177853313613372527414162026220785888586368772374032995056336239717736856695225350047075448918862262560439511647569060436026708243609293131537995049411335874417905744503798889741920805098662459944362861501221096854623507075878022280515692644584737464003240830506017467743273125840712563421485850573052735731462081885757401495208372465503642820791036708911235528419595936652731089874680404603857688367134817420007146243418169098185645487713271782842133087813637882369891993204869227164735382637735423411607362348771497875651362463193997524311434379690088810046359039872387282026925292554014914541727102534026110013570354287517008147098406241330381526123788327543674004339523734998427547521352869662989843743709085009280970245465786469533166083911289603979877281564028776307304467614701410480489288383227727517292782464473114885344991557754903167102360075265369179015654592391884977522312604063046355520133944693071585457526142854427727203882152665153867592246645134293692208950008875631737809276449451256893461508243303520468061255849942518231261083279223917816183376239198682862657715033645697233555676412951771761118071697321152009747179442723223683012893970358415806153173817207641301050669678737082934719007188774170369967390091438341979811012937164738419268335820065426696574549792848398084158949069279329718654871560982926259319081710142804156491714025021387756892670056923500947832349223004603441436642333018295699740682629086287778860533818319974290055046007269489983178769831891011821756439218828899137090788805189956446370440287407345117419699334894116306875138035292377478015010339032197581322799770365341211758569088350341400975478090579118127445737473954075757498382160838225543339398885156964875762365722154220573644334855507844546375633424079052589623348528351094999417211398450283543452359769079782189815287903033712746709940760406478077040385417302791296609376851809077355696763529112138974953589845225721982618224558442724234309388552950891675961214346273063064262315204608589384291600815048564335729465874926819258341007324434669439308681249050688149985778639457432593468606392833783325643424287875555950576492737079868693794091113431434986431993643726070136154337220338860831791467884912668418454126103879422497753350204325074130480367113881666795739889921751665508982267674476551283465003146390366098461665174710249629645403650496266699860953963803977478184615947398626306239812059858906500598268907258339610973624907726149040352462668805245255074911415544330721353463301637778154510545181139813034941747259615990340507418929493902752293641575618473045764785196769511051705936507980698906618356956861860699075480823617251686743711094837761755835700312597394897310725893207997512156872656988121564005165957964408812114339610115693799623008749067508131334349794815563619518276344990029671536078185150152255770794148856829998939677171369457148957351726437733199238594923124421908446429148835581598045325909737957394790382286381749557679867723763250026231515111683847303688086082828150800847302810186423888400422849432418961788390968318480039106210128462380700389761524801223446780196369541225158262087706480654982367376267860587913555287660362954676651404788092166604048127708112883518167026416868921117898955264316671536856446219212771766561002910559461416524556491459158666125770730991587248652840704875598230416198328849991842848421447121355459391577613112449484735590468825152133614329731526504559068169462549918353783531609728841688261524466586827808872025133549933272290332152848848016778417143620930157603882207575400793976757480133127474641430293153844591451261506507792182185529045589445890822937363754470354231949074914728723357445155998030408244591647095269521948392788634802483730361551870138434080162573969425486751304580258949690024379689196694163007463456016834616050345938345724920334438470985473171364111790854530859956792801193246840285433521852294585934069042156416511122387565555948982987698838707062173985997114287756822345634991165425824354904742351572385753342214907754756510952084995732427674093362832294158720699605656399673528739763806180670238693989204814382606571408154578696716176489861626646467080694435470660607861943080683062648588798170878300968349891955020582962731478786809732471826923956278569850780440020983170111044170512298875865373199266096653244222249018953999399607118315539297901210625734046519390571184612066000520244714308726802241645173428862827032757164158065661167452782950244443094290411338174268679784765015610328896514496511249157799582256377020777546909351402533455862873137740017557724471084584392499043891446105124915057426983597108665454534293238812220446707793952317870492473818911283082617301485168555536951641667981480173370623765060744322962199666043517182600902520720329889702355167538675472617841748298066818456432391238576951009736719668480362367603773275772940445513839548822973151473627684457284199431850279580511184148342711381073923206709453881838448069627201055800681667237715593864308794226267222025452721688340137814745023209433165222592493942355287505939765086729386008232690326545067814294888079319752570601654163901653787856840751106821523812031394453849604786010637681126586528419944802919263635414399816702029855414212666765696990434736886226358585563089514883308521454385012202213382603324639424993884217346323624570035432275255160498895543722674388868281112136176973153236819935632792246632024468352618939344933740395342269530171441140332422226727958972160997698620304601321509635633847818174785011956966114915653982409222037940977233765020680028241279474563756276906262307147137115160766603407368960172312577924734591161562711640220711703401526174732523091108349728149109479005156524348430987026779029194568771689981758233813727343482742006623988492119108306046953408548969619113774232116031385134332338332791817095344543552576405052779374903643424444866938049868771647856104785141068820144996146900363634629848981861470676342319142899607383530770157317365042860132931396517326117451788477574961889188125782019552582707179112045785679624410765729284977658396113262117346559007848959882145232703325119599304625421535734069111916276276350735948848429002243408380669186868017044372088078494152247690360582225449075890773915865844049422349358591394260811205310386613975087688227174866108817394579617856762726165208372969073199244672295087839876273445283526741397665166463762314176606945231736901795563828854913682724318222277849570842293709242949445649073946603932731901205855047034709027306982180585594171086850162911402859016541184991056172516108507457584718821646258286777527643162474466749486944400481871626939405722969299390648702343136360814421152990046666036190034543545960443664296003081762164531259867235776412109255460018265634923615216172556698069327978624272145855858867551809813887121194294601602540209518112319337091577232192260615755544429289035854833201488169898118959471198934882553960442179839863739657106882258821660090655406974806274956940565720978342944435929902971956710790630368291522177577264187891955313121248809927705595599163536747587915370431220586776934361454365355094379390941347966239464054975958998655013002370318432930482335813348532963956594983581028689905581612856961776645823910023067437106877904440217482882933685763298292742999277956920073912702924512866605251211996950674314238159003868133259034419287082723813282178062325337042927860403264526384376572974287129964758488345131860370638037774327005643848909747018663585416616872126388173807359060253634968646137852036936061187473520328338342327554913143262014067778996258398326901719241401931851044779182007693860222773634782548086373982001807484033573786850336421254912658896567683214291230170990353202102049124635641210786216380943291927968885043432527466777956991346658678114913668715846611837540001429086930764618140211813717993426755081602801661801230539632499982114928801473228603290684113584251214188526595955738824209376013920159745068892775660937852475353246162008772656033014541502738253244226681136145123704544906230037762499003222544574011994252189671433104638584862538709591496734090297712576590261451870925527563349899650979162715325132449153068170693363236479949145398155934790862040979121017749085535239227260827071150786837883206914640258913456705636688661814652206867554446119832970201930895322964918738595331405778209506225936335687098744240837543436605235548890393868452120498749718807856778661136887654458507598771511306995787675413600045222668444417489936480659435143317298718599324486736269262179567241651899228414755079013194495892719621947097664317837988962743111015180860085565471396908307747573605138650660027921801657054768953806992613862629937115425060996305278192248167886778871679890701620400625106254832013899810362678121549650002736935186413821724785072939790450663843950766860860272657183770180139826184935856973718288281855538907629922395740635678674191289297121578305598619397080385244837158457202597081913565106808115727041838779386862900472266628365651600759327284477149475818625578327629527556424545495835305846499060078184831574277487037966800673363394369338956395125847340704055943612481336420630747103316292676673265381824119409094768849485574464449503230099402888106341133130396252576626348222678789898168607793521042446192862420121958465533270888655868175198252949354019026959614099645537168068624469045157727201869007303627390179208578902000461748784282809160045206853743869474424892094652016541607753629641881627944306764944600029017122911659463775624516333475017542890375510774795149815930763985042419183250480823460627246368976351000194087855151366374970090004150950125940030150685749418619512980431169547657454236961607261503412858580009919503915496917469279053315427725954635893301350875893423097174794441397771902267547072281513893682924118560903725207867379397619710760013650225244491687066348696044244849757933944083178669031995806074208942410956085485146697590301889590816847831461462894200881834251091948919624580262643097915335224057731838689217414273673137216896440722672064841311618984997517145154009993598156950218904671451015811137735961212851893005346982904190963629277739159480196672017475179043477939788749699013930881534917675309092461228330394192453067366464784241928524679335512928449963873715682240211969755943328818986957734844375294635155753546854867941603404734327422399066867484205147076989528872422290190068836608081965178877715083047142268898378757190106564095953002335482940152191431467489205681352476199935178642011769885301440596019839010832134113499737065203029429111338364179858589228854854586702694588581086859985713637110271034775771462180527404364097465911503551464619465201597554816620081926596651200031595220895556871422198931629388998205398477154759094765960431559270510030118630082090066496314526612875074340215729667577682692161813113743908488255744181303030699052290281249088755888102107872057770436807889094171447203968737823692347086757742523848900276331872830167758442047233953418595959802632731710998738616069351349250199530333641826701602100047429567512504386014306895204939277628014731491497545320999923751035584894090011534844441123573112065927424980806318344454212915064578629696690865890151376713271918740266520115957325143337177429740000570843763267160080478758870909141273150285429780830773660267357414721525594130151737907623802414354580157000500796653434735817273254692930689989609492315516268027564414639600031670441649458545685360155706820179697058041008886433530195848434317549189538734060957285363778033903198419232220771725488044156776642108966702271362528840945267468291000454576523429202669487314209078258911100395338703749326700874467968052726631186705538840881018659936767477962516245408875436255389670434794979758138495104603822157248313525161951174148551621724127240383730925295793512151319433536492985477340692188258036987573542691089622850689298420589297310304700574504278626675639323660475741769117682427401892831773581449487853484788014965025630198572511160973933805411015762000240435260400815175896962862102463790077149046430555980835837946063785887827535238938664342225083804755676111774416918369099156927367363393677039977597382762004276650414247646933911224950073677593932510969150189556039475112655353626744008680288571489877275440970523444077869924014770243727819248488515054775115506466780119673286755939595329896891361378432130503868813924699459578816187605899264543753241561980432508012593535272334284216909616849758528421770153384464629450182304467316933697918025259685628316262811651589934797969716618439801052135468978721642775355160880862084538882602566804209954563482003286161132135596852357549077825589136316632645074550258525718362794346670506452226355044758883597053534551864831795224321243695597516119672201779236070282089105449354284613708622785373910413599223457910939951813527841319790503557439300918136543437496633877990141781128555908702415076467650362321258483263483617740923577134094861147931187360959338260025180324108671463955406810230833751547390734348650227397668577667640824373933444332055909860988305025831185410233423717547085155526794641246371159944659857474206135089501787325576600369090621752874419717018090302802537359722465713742793505773471109596378703099593047156872085647097434732493590185252689905782592679533929271661501930424104644630471563929204953557731975035863540481956647184912637129595406162287874077868889021093838541583123509575153291055449733731237706109533709771526472587386343392856143118209253518689243143814081283832038414373417227461672795823521840028492714575396068870790507624528761213295893022713471441617468775282205769620717115202463319674406871047734569248433186774808302290454660747626749463207512008140733906612203355913959472613709754923717199210996600921308534637632559437525249898431317008003633241127111251701623414601347218987954812349489493398758681446216024245100200082586183074946953765482811110515568590933414221134081576794216097745252834218891147614722194792495340047231088075260859364153042614132037787674327432575862839614442000944499824507358590960418941360766345950048876625568000911215587517679470467745545914972136912128195036840614934100164572091230211251937796198347396392488999276542136415972763154788698164613160017699995128137071395987687994171200486262733440817325755420448568714627360216844595574639087747282303530165548488475438825963110956295912892175660517331066337930189041336327264782207199823195760594482518440260837490409604349124524208896798160599653083464740872351467924510606884542023641998976033768765983058904515255988613444056175826621306052717280340425344306996082070416536490638086308428692603498207464966176045303789884096648118720875472652135892752222520631196506069871506609097522117105950965916633982108101912954750077264435693331044322269707108896530192448689854021129694285134612857829882189893961538237839700238596073681349100165291633125870506470313353849227854910186303066165259829121102224768653872857688810946137746894823703718614142444937695868112907970960881064340482529073202424946712838228929772637053539728325371568908174712900592319194094030618003888954776311466868341399303471955743491957224083345779861800845038634261217080936778404006608515858502482727820280023403680647812638254945787899203301553875118522971419657462555401704979245731105065643369061489417138738367834782144872966356533320242441933080773114489958220138425685024093953918207317081310730570501033368628096550686682335471746613057447547763735685517239234296225951822261009593069003854005792495538192250108485440434576980395939430765882600751831502544558874285092570558238682130155912161627660381662619658920434149609181512301842213628270222725587421472722348411987362034828597783829509987407661803450208915544378457783712046692795828293553036735387714510685996090231008763245037720897392317056294471753722754683900186497741318007957487995847114543053250390376713732867217801014521170998166180110152957854591406834675021549273521371155594226718030682729129045119393908091466654918422082005862946333545969409894250075125637132355311304453768865114077060015669189845228494372936279441944402007347846383280383288791615710085600237860076111533286254117582312219951698997416776377414160770333481087515412724561169258534092947497767843824415477769948853938599643260618462122710349521559613522489175169666636423672044275457831839707693989753597726318579932130598948772809632253286228628978901837261980314896500205365228903378978658904030023364878891308882104170664687794928611482571028615855240771525875418092419573390415935259446907026017198481194480728607018239293187365967753569456732886714732282435910122465468778567970255942125719843745512304698651189378371408705472484045434805934830150431407218480111061397703796745923266588476697465822525473375440837928497499153318221517775873510470447551023296777216263808467427664702142525425148807317844395191556833850593000723812917681631274420460819235921516546826272575284514401767984599023798326575837964042158681045404397898897591166736699101444418483507101383657080579099826480839362078281481202469532537055277055195120019044566542636452242616111684549324417075784916707493326116779310434978540206576253472018011509169932207578862497283065612863755559127326990199181349751657839440476956843223807261862592527040664817010426055552728635940415704181684695871877515763310161981373213762404463307623966346312382526312393353838421327655057553780851807504836039298280707899962862218388384431888542652565929049337042683856606550517410677074683399275589008349649015616062523666594925984715806195819197715945723224531912644530147140854534421508473729579557244155561562024702561702478848492691012478566387246278330128032693992077502129786605293879879364672530486497780822223657147291883205742030583399807103913952825409016096099990507945677161804110407231056820991709397469112223406964206830476467603472853663171068342402020381231183985818312984011142709297595408044822495615598063103996879212663963617181982743692262416771263300681303306197742892041428700245097969993289449562479772882792990319702462815183272099854883293256652983148441495255297306757682912857479465857483642766595707064364404000297415102973906823746315398387254854261810017421887862292914546181540094916509240943495534719015156694147743803275444250581504870714546709384724538015468278585158834554695453023226244512057746831071072256452430342005741208998406881569287737493861306998414437525729858249526463727792678533612923390567827244688412967010072623739195661137635174358785784793523948252636019526668582938711523542037430082251349977219281743201835429103991129801188624869298737733991812029065924040243318934789477750955641724096641580017438460429729370656263185830520541288138348773561903648213388452332727541270602032759214454744209079903056169832551656892086836865361251481397574893659533603360065994113867018874200846986015116404885014592103074000513153858318691420570006277573553936566784401722032675117298881952126069756058075426105774383718172121574011707730387879622857475661594033033330182045362060496784514207202532869732007263994288835490143350729612141950742230578476070179114408093320901345753597011223191866209619534880168719313275892090943603074425600477833998948017613432089967183330711167059854366394240763858088266349247090334762742886011653403768162863419969741825247308794780178000389454904367914406523833354155621512799429862035016630073829920573584546661276057224583612327061881414164443887580648247129136560631693027162036085337280499661425994226807105254665032164324499200233725217907419009813925778147126448214252533952360434537605324273770326536099680549409636484443475147556337707356566002356914225557393208993278709053626516620690378885061982974719448834664051378371167316765398690257114554068041021052368786965466331580789565755497566984717661024079761295756924140088083742032970449651755901184956650630357557061488636875977912059455255357864113720183478065511708777835202483804793338415193417781460699631923820816618539882523895135058103357263523478710242582446535396573419165721980114586581656204665449476865649188004000910112063573017542364422259889588254660001158537740889992554524226937449468574870636869179621245993887083683349457694393535495038282881569883707488067356094436041252230709275942144901310758223959301505165432595472004413509175489019935709953691868366362095177048346487336003227265943016629885387962206002457912868159025859476199855229040230141974677737892110747534031236359914567357827817041673025067613814754994030921559347995139286752202419717784237260011967649373275304414434093866321809486523089433594551184591651851639442228559279709183393085884352601092082259644093562046265897304402740843486747133083328429411706305089655200781507407197832426627503972370023539706407351787781294834101697752259746014237778845510186198106260014121359843263469597591410250854998778597393019162090680797524154121842279257864516228255630098974684259712131152826339344887156020464761862246704404613588469982543221838903177277753075487609545818981940908773859662498008008272137281106205433668771769771295230772372952086802345710666565259806567132085212475224362375289515516101019615814523199079335331119822116392989450613161281317494239186920230026555535572510776006098936661745513389157698593421809207247015191662164184886545485615823993713844221680075493411117336525048268974961475242500361107474311735422238597157837952418790152530183777075899229044192385171434070805068806598314879920098534384209036109842061543014354031445581931221276127820438061138606928070936896709883913124794402935022942029296788045333706492540712839396269819729067292688834523745954411245087484617793285595779444234350297067405797663988434171313161054584781069615012760301679102580275629066776631917367824410337994457452660395201684717211421418766358757799382128540625347654956806785646903209522731342006949515706375012321814145776528166296585261807976841998374781363551768454549651508082925323125340588717468216051453813407671942671054511544546473438330468647631605419858386164605818034585845647649601650460817702048393366066007156764512110922507613155880501247496393831236268649904896435186209978159322501450052586465240889518777692800482555333482276812089033435109675685722392428072248938406577953469892549695329086249214268207287367176210708804166248438271231088423603568915580780861999211454415714375283516750499926349134467693846119021248841795205749262021122462976398901950657576056752723591764981748377503535090648568192572988759353152625060045376028096967030830125755509805455448604515259062492680806770547877778654581387918664154470621209786269414457770749758717097224714422651463425423975203722991581344066293200933088437741756375595041682056252664900317255697164184219516315840114666735505240199064723350693510985812977599677006970466500537274775460108519198859634966004243320199179561707804064779855360970827117747219995320361369852722552587983830631158085054068630173450433871227512681458429126275677592473722216106565780981755547582612668800088720993564767274543168589760187957291616692156268505033562048585282122116413571280402776596094322621161754860348463697241778159112974726704318057211086607070584747439510498509587724038465577498985084083848587299699712507002158070220356169840423729042617563984324005438465966234274779137256746392546982150565217437821953665261635595876046448500140288653126093946043263019881690482052817106855783274773465034454173572888784148674724385899193712399837004441321050812044670035798156562378767324766354604093703911557673175462952435883122411549878127168263656290507269169849853263355532446634095782897960843314931374081109576487006953548598055706343225030792916399613652595123016447558316269102947110892979474519232895380175723501560166517327978143982098767860601838603553531260494561721326791499978160385095356411385155080479783327763493384117157210047724768976138874989736364607003935120903794415807908526173274445147603990149650572095910409836471140354560677889352785355201761903040053808571319214763239614525530236035359713156905751934203658144519334498168332334911141564814727723228881337129260225278469703871733439507974600536441794348533882688071805555117919749958138599303284484357446098205987249294647995632875829998929520409585607009538866429912169923818475465204306690341626726819470240521448381235929388630474534294066576066331808887047752744969767496907633800493131961832502768359592437565377510944366737682778467979036262844533899512293146304944474345107921453725928295717836525139416131894445333772411756758368934907048099032762551770219826690453495962843931109099830817228582457710287835248792790748893506356697142042620257252259041819185564354640989645193857448882499279105628458362641392414492228790409598551377685825464356399408121418536777838216278986653571884686066223740032694870902992529415606894055486498901868738247694071386581028784296942402585693606973573185335391824934039600413016206563966199056847441870412103132416672082019702086924398808531081651990485585118218759660258278940478584449505293720623429296766117330398612575269640715431228856800168384792152832589944802872002578594534060003197344919479270308851240154226842592174538152492564120909841188384763206430909825921588077764097868170494944677198619836407527012133866854084969753812815467630777475187713351178372156539292842070385755579257684992472415428509036558932875809274330487530511009557662957581766391015182134217363636604688060909942476571939737743309281649675288654679908164154166939066174722239638463078746342443105083937078635655226618642248186455436058366820022821845581715782176392892197447348145820426715670007328482586824445584282672374712999145704260392318763623521117287083817742304283225244473796106277979731828976421544639457462152791468594145365023671687355403126945982287058582201184195626109435915364180814640243330797313676109700285622066081855477644398995954399927065414305370246735158741229397218100447143578403084340347557527924794392362903580680985400899620271159677584075589781779138714095288536876457060405225137989654969651429470781023151061179786627396807781306603501007515115491390024033018125209614354704530977103551291004346217373592567857280622071329640344263277650974725133004376807833583848632808019030455398066078514927096246061788398901036072255513761115233541215349293312494493127223914654944759728783069941131125961979717759487349701134763757025600972802857817637784010057349694218594157031756000738773284097598914862365908582190114231893656303610188153782142305066017446158815738403561114696724522729846303433908604838882562773315234459271424494823168958292551938716857722292600391665472779613824530279570264250961287229626322261220819184274102159812780499267130232727520820617548647830989767616406019019167304094759372751115746854918092453342127388786414565058947438315844979609354181234724374267901153694858973472229026189184213900794123799716418773971548098719608532392800907045714030002350024156236199960159575439285843395010834646154305084391300794357499187839191742662715054630071949198616448335134371566695069500259399677053495536480529911425745448558915655311576287904517670592165059610194652688039335614127748519995141048200620264644059655790338796596643110268750342759000132927445928715047201507273939435910685374921416309677460240612951629598103241016632481645219465110954651212301439618132012264588514208098439932853949949633623762527820412791158544574476956549649735450349468322858435484523236700067115415234342374162084389179676844965590743827780089273296677160436432060864940019603157493838487351827560887346795031780366887089792378414942399824825175890980625105484229691953971813467564104073142496193753449287593644264811128461248886571944272867241372377726824375883984338079489612783248178073242480713448828041207700104937102213127751213599580341055678259372617192591836366386528237534203723700140850883939346831355419166407429674356920065410195817700444983175970958330642193252130941149185903527091061861442879782774541582982346902545976758054979450108100915724112538825431308355966057588139604224444337021604803624437358867291532610237375141753768400185138426326047202237834369135778397811425339941519289882547814308064490094392946495151481539557431128499084507155807192730872302884639307292742020536051551883425517569591850272663287967370482194171225786671169573574611067978041331123896471575756088704105174312744097041878299654257487876649473545504319256048533654517492176291607300272524673313918969169112314638326793525719565488630769109694223004530430581759348774614531881229093461238858447228071043100264809749223740970432378371557112072887263093970075157452374579446760906202771289069045485571501415242803495159581027231096969906935516089123524712790908149692515189206240170737401542302690211100045896372351870729176164992735160867918724784619168872535914659915270452244762024484546890978224448450091751635674389308255596087485137782538217051582976735126169052571313636656507399806927285162326928117899193956497136367315034977311918200601839516894488946782604786101836093523683906406828280022612283381883159874811609313589126327441201956626777615574421011766837137474308018936000519242194688320539253558107943650452652832837153745313588649553004211756487368594996036746679821801301094528966155558472771256686441975914731177210854513747122901386439687965363796517196218613502546726115771391426176135589891217101877824476067995604850196404548296856398643467792090832729780726004577301329959904687104827509433472140398033936511400343929458800558020173741019094144761389298841086008723853498243143922220473794008594408276144698055581500130217503086824134580660913720227013114833608077264593539734200417360468898948335895600845468261318337162309168285315885767050002686403997793183874685675397813633261897337492563355251663281317246653261256740121536317262435860492851840096624547217753791368437232160609360369895051692947372093633147322800367227419584947465798391034478237028701541538134763421218527656431250450455845052069245338171338095557765145821470577284457400040724190198201982629761916734301256024172304079406966585980299175179628978915960765750844932217140620535591478803679361921347616645028158615429810087638917706087206458762306384677471113012333243017967905342301350359153530717676450107886641797727144710739140384984352000275077599559056945744106147292453982457758888778724730457371381333429995293563371852187953321486008176096510657111101430434502180862194211215264498406716804856409843432265982366347507328273732933899908346264604973802890846877859139695177934033655196157354289903252682242477782679150705981832233821273176104213489371883324930058852359446806735395385311346493418412936881520233687292853208480243307209585156694863547176624766780712270129433269433353430220345950999890678668090253045822147587219503821287730522762082622196620543731848438985038265752007905544151120916655450885155631048572391817340523455983993073517101692591391388596432881278180460455953219161485211342731410165021896253637961863406265826603255481956963489088841526954469455869458609227680604539442703013819197983830024018312127422596028589793454558040674173194908506809949282763509549177661201440501466689462199357690009297175377376745927702179902889002062242048478628624505275538450726090022935678574962918129648397058510370750273948299648256976600242197225559390454833409559018568228359810682421753532451413731737487680502191158036407965911648315224295968241319007703398261560254610982905342861021615360510903155743663046860218588826660259266398417028645423654445641330412298088449274745829405473388636418342663432115264651101082212014911946363623936810927262041637952643589609219055149256054274726851226355836436818237825738082766921714370777006065017442777435052232423661189376412258984034221975007484093146669889591977700093946263558307387720965619061405090555680608386411525623611916563030181811332690225193272134478189814609229805204751815789068445639535693547259564083690596493278722463090009815673284900520839278563837121186469069234041034824966438611187781528616447165434932886630085424041158937434589838994251689490258041154132400299098236484818194859517925354526486208171341108713990937552741465780031654113712130411673116766072942821272843201903428001406244762711226870373692285863123937594725787052433242371523097589218654008728657035325487073630452151615350855747273973560411130094512754174944505964577862675121969911925044104133880107666478817565187130583476011951598498858147490064412883024085379785586996573003014072823077650633390451101809670189491999542395395272967163091061393603629513217701354820698376367978606962769532351421012248951738741473641939067946058078811606927809232729716405650030189120784516028777908035653100211637741137879598227619420382149145665216399848510388855493370092165042132420165084096550073938241408185967015736568873105926364877227845550429115351923271348789140610433499850225355488812272645632516194572485566407038208543683789079719974733414690477600540548661856443690259790939937115757806442345788810062470219516099267390021956228387771284331199486282865608494650504412363915740960380705700843953531181810245526614034122898704092921698834228489930156058468266377335754120130603158807695343592805906535931653641482275854720123580778563187613546525144970788846698829121605308121968130239757605271822235257858250880381267426495612795550298847112181977314029980679136664240472867297169658207410697074675225650677269395481413431084784983003109353186436881751793411267635802985107155257957919098369344004879470877872595874170704437875754397572551180869487386553109791896398770369826178709605093491490350422310721754782220193021206101750794963394699137306354710412250177752759958750919630029059319047186874009259050735480482875442089151961595395112065566758275740176918888202533956521153193770872391458657110813192685870727413623133970198803105256830923554077087096283333634742016679000349987019886339660669274481986952208003022168567131351495418938899921082161323130509494182999454065206986283387675816079983994464987467428955177703512701749121971808752524319250285036179472595387463024763478151284515598663800903715507878524848056718078259018426246024784454133702157210034204904105835815512737187871355483244095532879043256952366794845385692768879394251123014070194364180435444956156002955902835780179834834776689513438932770372156425296526818452472951434502088469696887573266374102443153279124054660173782043804754842694668516894960907364248206902873880300323721769871277773611649689649762433589246375801145023213507250444030162650156167363797336021367492660693694188937797828350097837075477028410780652960616955110575559099037319307150481907242909998710501684010691650461648856640965990723318643800869828645497492034212051336866115340042335757127425431253830456393298818734051858156201086431275822944833790537818421855146868897847801459649816914367744251736223873016915135262219465867893794816599662078036232118363349414011403940067204665921321730581094434144286937919543293080937171645752294260763934630556027236235748735179334492575030571215141040722460134142024156287960258571836111745403648082035141668874208460230736594669121470489906240768183412198666785405261872892559667934385671213708431003537164819032839944334008179066467910450673463765530148261314826681562760053400546873794083312305190832942764758454854976108253882871843592464311636191035674832393947899778069264534853267308105237729061259631769250192567700883125747746366784935134384217279560591793002773191012435070089591367415483105648902263928960322309064067065502406950110672963749138600960834726829503524197079466672192204241129316802338208976526388867082847593819967740562000464585805045091553076221816870258816662191363887618036957975854452765061992752086068420081430928099295118210606384158109288529522760072733267555793459161935504998134088630817062172484590316208420439372711252992932005308612148900945353953194404617469888198806871288127589645188483149156291727065772556841915758176831527625850595124736397104194693094760704739956722866349508199245859390623580527331107219653400330783268534645451093138669263329971312227663775635553057907410400299457849303857827229151504398226233241797587571205647137347671621051287622275347503760479751853297569723953283967536407572318933574208946346550767411934333641805474797987429842147310323253134368080946307414511859235459671583233280924050200079071493455403881542496099460713466160255130871368018881647047635302252260098599951493102401428401411856520877740953249390747151927397487421798220978577726357139826054447664257999475110667826495450428899431900600937469962398448238185631987586314482045472933188198798207934960069244781907094481586965739571960565548645447085601369085249453693729310382695945719389183481460559628817081393056969088335942940365112410437065059031919981058989988975378420384364545118579768909698659338272337030254061317992643705610712794620985057032852981776413026165888306852660443666208176561211439315923599091718304031323858434222216523516153040079863676660913419175331787214742124230978049651702853271182099890015931183863237370677729745008079466846851619803179099607571275041546265249834644163340576435344474743064628105881422054623218611868645804910816551367138024851617248634125760644630685125794217900804362268928129222082525693358096239442328136001209339672509045330295450623758590508629957452911070780437138242319276522378322387531074698729640609739493651036371886668695948665562643588430330373207263043235939581084657458507316630152313648670916752159768477309817960700680692182248915316576860592561263631271401012794289300272865083133175330063662708829022438488561081596496458322180682031530353483517318171685150390906268783828576162180034294007618674477287670818631903097336914580388245849604354008716550647498991217180818639763201662552162748976443975930831493618106181556567802666190542482427207873973904202098313719617312771660530320849022762432909196906969633052662024444596580119390008822326684385339217918434735687270144372755813068727383839647084669376774774218453040247482272760240164955758702771216321049740729280947816488610758778399762823565914057742711939358017046350007826560726923527090962525078708444541387913173679942688335871604175412413860635843885211317919629381121715159075254480671782154988947035089615303941145446977008110666870679288930637668420160569852371422055502026904154194810179999659395958113872500986920117356836543512542083231984528515477586138233405891119669231568379027520042240405639036468128230762760258043765671677087569801432849189109390014491195091031609837191997083222397023259289699139548586355276870610353245951258239271090843763050294446070334808364180826391644811593722267921202975340975998240926826051567836025357087511160381153241571724854971821597459740938503466477451496131242116816586339142873359573460455936961176560905264656431803517350592651793468099545498554963331981139878162363732885399081094503700675173657637402276866310154193734370364081486522718008031997456269925423881649198843748432734243915685938115366402226880959790232511013785805690366826400342508690531339678356840766280376877285652443156051435679820131490718550187755601780621850647671925840268506508941747912441124971099869434282251941914243104541168177225903519562087377279761688206472775294507430465689005165725841679252947620317607193645088555742723669593695731163213738764337341301042741700781146275710997332638786428844182393100494607189840619277329272151768444437393003463497691612368963693343577623582019291363008329573001386786781320510500468324340212108093175225372158859769670975234825260769519086748471632971553345439529773729320413771804231828145201266820218490102760799088877933005364011059065837015245210213600168087213644171376836258748528890421964659775590921991009020559382270148063601618567250603535901249216325963899936985367793387874535794299522722472406811507733635241860227857962021743335247709982751998500698273638230929421912394387665804411057054630274883919726910884145299858665262690628396698301329500333911887847515967641114871367602636095079300161219492508227493529138126562864579906401962351464329292810308546437832482646025825421639149008632794468535233270803194082255855272202260307827660354697669050644420738448149374631006200716126804610811327089841215890550107817272173622153451158656442636262523417394721186659873138502646482728892624757135330636590203369506269112093453514141749071974227470939967932267997264416644589821086166446154339739857652856101465395257929845601619101272802097357802779417929612169522872670542207691050289101239906093324147370319198122525834950388586235086967668624223236251527513997230565801800652290149004378748763624616795674861816502182267174585863792295970151265560496115772292430948471272922639729235171605922716499942477656126017197729704239241100550352535746609808342333308889807957266475806433532644290105937307199233429611173997279142736589369595176712039235736260059857006031439359185773797105036797114783877591203065101797315765578303354045964918280777762318892184282064683432867768058689115315853718190310371989866508783800794864143937624928131792950349155467642223725380002598822432068542655320067109074764058082049896555128286166435113541461166229486122312545332437237850288697788763898109932219635501033171581155811057938226356351118572638620616336142768372032175137771532260974635183567965123310240087506063500266936953636622274490802463202061661455441876511668017214967534792812749278914310494482143543815717181285878599846633640197197019630938316084028514997232144611756590133741659266454096614886315113279312846428728677834968866344853374802708515512757438069320383966852167515989425475866342804714940843902855997660281599289587570424876967682501188146381570204688155791698892666834829113928621807949181061503806667528333651792805503343968149428506532158608876199380557051642755452701434745841528124588251547778500254906774531795078826204876009914424235399380347933405929578230352795328537469902953197100105831164032717250200110523287024346576310604393767682338268758934748971946458774538187250564867525904313385095093295903569670559450442115547375330862998788786520986455521934544612297578135417665061323956867853877268436435357217195827908608566451178717608950715954885418473424323298850851258790781631092936917270032137088164669185213934617554755491738351721482904320972448346422728505474301145111631014425651493448039851431621830124554043739103054730233424622203044140752398193521966137833239041092760825961900083671219934830085171560917893579995871350820069076294358543160307758523621435185272358998219360257382755061879661833267199044452134485502016118315013874710413424037238530258203221685231122956325970994929998098196641452130176507461718052443838834034124617577864477869748819098965094907658851079240856049353284087349710424706368365368553740050888842188921317235227196756008569571394347407000736228361306728838998458050444116983830367375947788613619407291321905296705571640275858204606334585848949892822737830116843620444469962746666507021417587237002310530033091077276266654053823823440985065510114915641370432702572492376592411955532121401640078137341139516382439995232604343415820404988282096136511994147672763558037987935707257795157081421693725316813763108224966781209491503423401487251127725469980872429678414473717502743358341353969302198508597019454314978943888269669627246322288876328963233798475050101848335241358922294096998210651161434451125958272288773699737654499556843713048868346450616286573880896798474559731263423519642071101102689804100333110371462852403075482787586450883032524348340629291896620753694543321014663385690828306353137420759600026268079860214644856504053599432245577151923360230794009248898874025876292265302769475815849011284613441952357285523707390329050062827181227834349530434869483508146467153946469684490337767945754979614703203176753631394023065367265239543848544550507834625063405199119894108578467111963142294925748805624246845288016703408443674038092661977697007795248802635636570215431932300038738299362759869302838200912276654281789909160469063263067957824928665550696016246422565797582664669067424247923845919470828938892584130799449738581567056654122959837986395444866034940912442390321396442549495890578616351980565781706565496185854520036118208800268339429026549970002018913504577888939709975478203199515154800320127916646860017269716253927384405710607806649168931928422935048465831990449529436741274352691799725366442763729897412433444807040148397999439135205251726982259808383033068939907567387241438726049684036833372893615581723481500326617562376496450154188786790615057904506931759740810522720495478801353972856270920721532862641562800507727865465927714424184353009281270510650367387120804927095754066576342070440266092270448633128487025709453394404984811570657266275992833756759894672697020985229772835297626768267513810926044711915321695657525944963011924717623686649920998828118565646698489718849001239159855967233374879964602553512807404082320986898285300867789617132484229489760978463101239155707389973813918038814496647252816467727111453481250852987260095493930055704969589031123609418440318515917228725735359005523738965376055093126060078282554470275989958188675719672102789016046181029120689016781699355601117007115469487437853359027461813209025738147583242667289035274942461914595386402695371070127106991710891383348608431566387512576435030594746963904706499634157352028510154793634923685273139151573398257191374489632776223729638429457687489341244538962708441326475544249580342037575525896519196335848123512914755151067032621076416440967589926320906552776244933344653179298430844508514042832406794051563047368583180006666448150000033171550398574146292076959267403948040671349654186900639590401214231397716036283975026089331634315995972373109542284695820867914412817102430186709271457690983392211290488974705362838438260707845679572855655767856228698208548889938296976231891128904760324826527493885483852425722165203719959578593586921980228211190845770317262883424307836294103438409251119445892573597337834286817828024434883139346187843259791103547166460362209725591409372296128150929125699916370694628191505004251269872371591862903658678271452449854594757652334853287590619427161523168866014475482282513919642509763994453120118628802579308581394071564454398900773081296455635515369137401121891162533179377348409884449892249420404673389531217077200573452937072129595908209169760813837746467980930258266907329742531330644036457107023347842504515583616112595082345057628205712144552066600687262521209060711492327019654191164326954442758899263384089750831247353813727743901922051306869661051789799112626269953918120141416026435700173797716488540360668281844921004688396022894996917737999433650609637908870543112352904392421835599160922518388661748320547283742105668741952606839444739368132916361481177490969790982422523434390971161041858774422739174592794193754325790830130875109041518390613318735766343229364097576226074366378342284227655934834620204060999027456770464190803054070759022724189377453703392911542239884037411557585352577570917581950602408928050172811837767286723804035269336127070187178896726188636602106399891300842431494772387067739632928019395726227534694634816949502151279715171575707913918777025068768358072745361214612018455895335100234577365523756046995778404330549633899856888732117659054082499966624096683804655354749716174988545972706091665457907875351431186083131750236364826999047646781813063470561828977760560759781027696937941840859026394076183505737034905526405775184835021807916189611141221053615876721122041081804567907000123492738684038036266185805820695975752788194224628386692687777026792739503488504881858853974000328685491734907353274034508561281471625950141751605128781867300313584304569123951952191447828750334427345370071009400927018195220451266615053250561627573755048628141452037073100956735168083992779855759110151766573793626845684276862818996293409994405092018831640257463029653307353651440512835127481061423865896121273981588661663103827530163698214241173908540896394628811575598900543396038980839399444287604310899283643093424126150325425501918205058913548612887923982768231251227353487924755852064689713960726198159372315505778057768303782327960172342591865873129066207315082712290252674887484337761408370198282268077298956447940284257880962560724750603155093287014099993851745278305344568901387222608134879377360987933133538562589105133774845823685402378517248670349388205191771955046325585388218498325522613907361803749427390904230112198456215968147068629959044155898495114704000387819150645575446048973078602067389013872448829844848385051956895653021269570946190445299497833907552217676245118318854223740076447206004155724036996917031849502745259334661265533224805251409475278187656852633886346738715330586693193855985699541026750789966283827632388909787416754032330385871463119291358587681342600027582490925914758901937501569437113480748899456511270399167513327406796699234168512103078318931088158007592531125198588239474691992806937853417704445629201712502498312924143305091994632312580040309519627567843301026638592740320859504961744869935445330538645488623048536987998631971924765135408892723655261114214375031716031253108196668335554138886856914894471814890764130076101492820373350131256523682625155497503766435923914681554062595112730460542817627731684236912297656492798573928197004423885083867709825103312783768145910779709342100394484857044529355816337678454346603166082401643783456226506514275645182854804221658809961787296873179807190243171615219030920875498098560827107637681713243574817845336408400580677370651213993847534845682548292314074018878674282865299528607982679913780364241581879200832645945604802609230465373992079970397746453101399085666304397379983102039229683332617761197519198821857175131282944745484832696927247701433667124318395705677961813239515074418939727477439848189158225046265960796467424461767580032015664595519980858997555240458697361421910347508362045962383921197877668427095146962476399897247570522277667390082011353939094617907640958635987854253633259696178858792240673954429695776086680931735685377622461119900981915241942963873646527487354059645644554491959348844648284884509273019721256057845050876294360775538855392773760427094670150254248809386973076077967649316692708174417730545159893743966972296480215999481878500947676115581079141311425068387766783187629621267120966097055209829530696965727233667500037423626687034408797351907325328831667931650389057577508677312280887701455871977429551083403445685939636892530778288012545502990676919918619410259884373938123988243771869319468576478621847634952502905150490445399209862693365998007940941004255262155372572563235532364748789354115414876796389437591445574817454696329161126948147156280809186390103159333629662061792819896119777178832502860653860389573568484098271189778824964004828633788720289125407658041555053336973926588108245400372105426728158067937435754049365629510813445178975845979218668918305276904194603432784067189070042060091089888924347508075670627504771678481664364053757964833007123691387559666841018573217936203886105074888584433588779228531393773238318659723013956429496076693123402869799778648127199495376957556583916443021835917662828065226850850080582068135156848721062004040240526525904752593931334072183239230324011459496566555932323461520955907409392977409671554070047203079348250906482109439887421728963063270669770710131139559235209745842676627104139474299572274145269021586038614187080178356172893372513248177223389523657027844730094632606695241989135827289744493213984133081726317192683697493022120568816007337209583024547137932744125097265585624707590511652026853823439799272107168570734619701472076485487567785181747570701611531109613310648164522783091300798819170652863943961855999415884471596524310304994473065402801826127989196313734999508273256566873600610986792480829888792891501817375757592710486625834662446299413909547949076353979846364567008558336525218108211768514583957020411295791718887536111966543553413845029308338769870953662461913622808216078057443008115848002118798900670068667925350321447552532588076210154880576957514845774315208376388678494158686360865676028864802126582214213095201545470048370793312217300180760929255574177063685468216762896159001103498658424553571886383817100265794305646693284619088197132776180428741342444163075284707190453131914731697372475625433235094380030002110922444676464320447497595111512376227019591824791574667923325307940120926412821690466130606334445153043460117011556615414627936575591938597580925270847451406883370435969626192386491480165772217080601965988383977390372677349337379929551263687405381455994798566960819857509679530708418378346925225245598564474354861372188566835234402075064019287582000022597947967742766515051526510959712437601374216030242817474601631765112307753121241849617795079889439616863190138729487896650454724611594845000683655119343868009015183681738408620293756285371977869093269004264117808185238351141250920050372638043490342994634229597946557255377575363666979867824651621525110769170728956762653558615545535756168116623601486677985729520738946237078705718581528055194945803545080468550576343146283246504518901842424502242079560990346956789615814451110031207376822448797558426317019849000819148742632762715047730533832231794389287296138893543643787177738125143963734153221873998098126443130646606591271366493610992943924701430823412166047987996968512569316500433179883770124589243897858607799235045615914538961030987392155703269058636897017734957016240155018753642475171578120363487673015319286498782389295649251800757637861909673786570277640588140783737875645965011540506091050450872800941287278379563066382561369813658584501499283110609994035992851175945119995316246880377950839658670237164600638214067851259715869674819616452482758389417964870891433020149563149417524493388857463594695986144458288448272661559627620899525561248171577607163445137493355979008215751362447107967152497250470917521861889743606716790160614400736563810436049794685334627640658648443301467229747748988571926320174984769294482330093696226364982348957338960215110753173458165461439174273123044053603314702803067685844736072168113547270945920349911519558561361148733749461263373555120309748951574549079127344351317785006508889511285940521298539413088847530886939531020937441544770975602713767359571520476843936738816928715254908513440313621082061306890489052241979758121621318987733842115769952961902064197483020435405370290187262701730304789475269370176322577874585272981757890544353785261482519977154604662962425858263995064469484222706038973030710414629099656193326127972606784224274404597507083663537975397721911661352468708401719190735303264521028860631726582767452814359323704087590075595546341371367721351417808663290426560271287862417450400955977728610910057148370162969107237762106631305706713587857746076005642713288137803918642176237138831888934321485873304819806001931658959452249136793654219448649336006740029037243663422871113496730428492796048810991824239081604010424541857306539079369471326827067684479707178695355520245446055456139342854339667315941071493517811045776523087460797019463366096278255515495551218009242183528961994021725596677106492999454483832136738912101464926075270176221598546703589670976316963577982737619870272682065055160317995067980822515373658909592282053502932366705684837825964327379571189562466907926516343602514486577687486597327891176241995623846552569182871872915649308358293827330216557849422045260602735009342070800119653286474017790894256930012437408271478620446798880482320410631051885777902160380399099708773601994551566730630225874173709229124632374554331781524361456671271225209062657268092360756437244706725994447167537465188258017039351902989224027126421402782950736774450155866860716558722957746183297434690237689829395781477252635783821257142356159841281256937801239461199859607013173409863237663025458303145039418602733262375278817241958919441313819143411511574387572253480135764240525038027251132890192472103808918690471295783947627280851689804871214799579810137658795549734981951487086876610903863742995226199255010914632965573065158127440910890133454694311076999882073498965887523745268514196690090002007246116688167436511227988642198700874310153615342400858386621371435676618154510371949782405446819334684996090417123649641212774683495049572135522873233669400951790404149891134050872478944433120956534499622277375152464414531147285603825269881123615504943055865763556265213671510934914960590707638997152993932319574061990046348886924186466900763817382955835069856605498442497880033094441814070634396871472658424556939148812333924630181826911322690363853343582555318720725138686724101710880026296278768144376781308811788534854922779896551656826459527769220694595667984474810442968102089483541696823752370718114319797781408436020794485046101951383992641331153365169785951215489691552938446570382086378383379350769492165311774075579354293794016397029510818007267816258599169749574784437953938557754536777911811911052261859660278588587823605872878868688095692708908763701340540012547042529096620729137632435902096165021524440054708040290914075726077697864517713326207856027581446764672199955112948457167682494758078335594139776577215205021241835574210473714020835829936946194067966031883991819371142526269442963915096841248633803476015865377861709315343852971596292966726039197964413167002579975940856827513425578772628734251636103101714416507751212578920752479427124563136939343429862834770455345941955629540248818083182904355653511734452363278228518144059828973422505143804485597967349574013878422988059806462085225728607681419508634463081405014759069672715009115303782085890120060796827226011298867684148453865166568018941068924414314099722743951144091429321335353582292944042093418281936795931070967506182712591692114216385763821770161592054471862621658553962822566456863016243285501962983335945759627920077857071420692875764302831886890149463490906928948112249031443378999122436949525895734787287955380337854468418913872142325367293958667786007463293879616890174329215653362847669024733950098530571609198861644006116917832780570903799066723295227528617503260576908286671486026765327488373925691321111797679018961359715649365883910774943532281748028322875860357447553561919708723442670957435805713171016163583232062872883688960802813014590015873198403101565032840357018328416175173963257636377512524186989102461331815251977847521469150484110517870333254604892523050650169200600956618441495997383510996113940766711419531669918313995655209306101197143265931313803374605968945130906110851471782937696897894074935644648925335617530670089147817359031692600599395009871761131676647618768091189965534896833894874743665372916527434169620291447127341758039467254278756505177966865562881206203923203033014169503694080539069682278734040315424273726451981661648135059583824411205233703619540554124531348194457563010826095120638080667371328970533372019975627932519363109313556925987844555730614674111844082605874665472884546996980514819559351397796585729008482949667941633022359230281413589924225042614001394190609108293961950004864191694420433005650299180154490018109703204123389230838536134668343264376428457563527267558774345647948538025805577499890929678532398475870378521997416039393259026446881825959642744138041037328400702178147112675418522765321470746270821639758208391392268829415447448567661781484178005773710913434056367745886715556376540844595128619555930309393915718042898034314068773419237237567971567961752120812951261225256950170620359185194637841911270052074066035042075466191917510165050509979089056342547808533334614962456187521647834761564334381871167247818011289856822507274675647277765947189157458227010135524566811521082296011794231762361434044812908173011833870725449110664294948749612107318677989121952790281692115011916210933130554389789436590240616169325988229488653853409879938508358260750906925433816164470028011491472757046233598267031305317743977526918467130320844729210502404262700051771104479245002068599545786193189532915749883643516520676164090575869601435609338507831664948902141824904917065341174074614159126890355507327237335888915374171964640528676999680885687731955314291211715368884095871530494944388965446603080060369778547399814014193133835109291096655267894938347304514345977364291107689873519015499264046185968307943467976849469711087978684256465652266438222852338261956624947509112067309387007942131635471404086324412460398635813281120535884297931802238822514956319994831280322418613109658971092480167143799677097393162355531164867343164101228573209750885268848582482393746108270797879094628546659234306428178179114348614323217315859536621045762827821690960222537118070510531617809041866791414478568855931293052396854619426248253789151387254521713839871781589276490378495481883888988624360951992601092371670173699750195878354129598211983529050582237820017277649715739631770946666459700100058486457793165820991178897347224880121442371465928474114872139511498235941084250219776330159690692420041205945923173929273559024608430049187543616732862723309192680647925159980612662290280657647975165938780744998306761628545413854115437629266610595379579041778282923599126239855263755745995626821586232598700976614616505024189666636322008116606824660779208949794252216021016881714856458328380107381293192208671454812113732260920989167453327262117642444215384086072621019778378914398321195085302989929245090656482985344277835806059494074259470111670561086879559214555593324142550880273539451446750498050791724671346411292073657336045021521410818727003072218749516381635517681842603600148882349230702732093692186270701467392298642318033408912914490708705945303155322138767027216531218174840201816945748587187271126540896632561460510227178380731227066197981224911688346021464734426508288812247562593760045747360800607204838263484153526679158860064679211179186119684848933488509300133805625418771168407972382521151651800247801396411387116668539097015733033466420757055468008243602742147169810815872510288661446382920894548060268511498781911435046280820201424767683374474064591268791044383400307222028160643628429514854157013842894272841081954183823781879425632314847129692367978721855097498700098839276276951794580517650945527707699423257380222782743257100042771588303886301291394217567257392843564390792243224093678197141670245506219393006652796572024259986461765365487117347971668084862017091714493522262892466177618798903224683675602910903973779798597956360336207439287690630012884892392365500058139748940292954885367075673601945234467888335743779142820681176506471139630418502268040570429429149825883825714584397903899771965842881075192868729545285480432212099318151249974011106413973298635905198810390232345775621136830911136581941449133726326873594242174652492878588305701345685260163238662387666556454738486134313714196577287243685957781825963624940671570330734269433514094655763922593278363842906176079765671876272234858914637321381366903380793478157604751815203227955005974764014582334458929061592067909750706843677688269967202581634344055696540223242107053510166062154252785275778786119359714367206315581113916634350988064224418109520605442239503599145259027436497122875694467501576696572805423084842790320842893878068327701240108953867624853577660031047722825878128958508313375950603066447348875938011399938516221634416737106186288749131191645613109038811490818661251438633299512477751850265290600328926839753862755821396815261453212485678368223052678899627367576938903186632314621428657465759567540990054854276470883956668981107325529437296837053771677655783077527348509860591813050227439505330296574760098451671037660691192487781031572530165660255345098017428887970565059503717730689295316375637209702685014767465469889683830919556911378727159111571811476924439562006830802785180732987471914144332458878802145977363380935172989739566771265142439631462962828245372617600485729775795947536447412862275930250992554777591959965634119243910192344251251036358897986882117366686553259264696338539348664365247137025976985990257354725564137393425456838469109215079826211325184986617796134974149159542950703983094105458929334812320102250556637308812499614658275025905157429328228742385883860126748107258825594736635123901221472166885563661305254967341748225181319160245858684185927153782413904422226437752074345516715234442126708901076435323168599199828004111086866346374374304927892149898205337839407186392372382611122100206790123286235936246519021553821223279437930138651160350451163589546846629323671012961757175273190035648939825087312798970860598492909647666406523135207582427966027621218223885358509376637037703131955146903050268196938078203607299267528342500959704036258663621136868786406946706154607999626677456083026100786571035585004084027248663854513532769833421195311505413938945391097855094049840184436248204452617043445000220844790692806471732618717007569458884301839390044482211208235291719338811122042404569045021718675115036328901215365098497006845252091359832272552494503671934162853252372606745330128833350753913582794262207502987961880647706378628336028918646748682740590939938756358418272905031514184421209014937137569568370814076889777403734520393779399076112443001690736058303615459065832063131118167336713113812832210213368665363989597749859436713845584141292475664461197309730688225303610479834455587284745941879738276999054406965355963748982956913387094700784735734220145739673176677386201864350271365278793872202254706483383672914232014400108954411922071707744362421212203177840095256857372248735714097306787621111433946908388405267889192031186218627664748846670594970803683137658112985079912136579618681960839467486773269115895817213065028645028947374533519845274462702103897423971606616774529239142321432546325531356301077218981259079016250215087998274778081521243453965513499154455218252886405586517471746286478054492898864768138590614847071300997010701353945056966864169959850599784233741248241253077462805577685945042739795755493450904209988807507812805106666977329875027006544805039396340434205886209507388358057125074930624743343271973134293455288598286754510250597108012018705208907007174938858410928378114825576073389624460978728405048721121412537921812686921844905166714798086160957364287819230356962487166578407723996496097823009878232614323658923411450184328851603011990440890200430745343077929400613164145819136350409809114710171184530827662272943638358658165046985479212095337112740302630710882515481475013637488042055273980166751938697062429776131141555649256624236390098379094031898859979263839432317293724022630327758118615566853291836329495469715840423330344818984905264020136401540354552104396498529269671828971566284146296884079713378246920298843173407283133292128688843089595835909524844036285078052167153629937923122269882458460361877638905024555622253280076890102022377855749502673915878842014735303030342735241768288036826649433781285016825284522139374039797820279412586544536885683197229840979917782763945709005322314349366534094942057110571348193064593843469647406140918684695261828475070911495409983566232475418226485662638432141860699828374600132503617832241231891325164667490898187412082684971550537197307522307867764092105496254311951120119152193619640285397556247852784858228614589656871614928554323707343279690328272018907599307030548358546928908886714838932632276343370838451673224698550277711050765178975157325829221620850719193899699540571432742644861048389407650090040645361888670408235845171118285334930664352540559847030963577884304709508585699949455245805404548348260313269291342093421357562750054464388586731510336570581874885409116729916780110175003431059416715866212463089464884353512345114096918953153685247655044189850050451067583067067599804753611130846866544448318204378233170021618217834521726918150741186046496519810433081257605903808723479594518195763477215378782422097546307019304315428515152523179122753010093217176792596629948798039615047152911218800060509907943564065228829399620776669270574262474602187808222506254495622743891236594009450240839652857516053585924132327030583232745548289023943728309842892242266998798617495264968615746811449558486330226788195860550117773131823857759057718156067446362656805580872341955345280105405764721321245896247480587085185040971165267262507404292877754597116905359422167713624114081623404307104462541792237446359970927142431610025964064678991300664983963426004991095591174392563667779322584069294891430067696200857756255056111505688765038304315296233783384552023842436654011817642928005001175849323373082705784344956030890398213272362491269178365241852638114563607699295579183605146198377280047110835406466364222733729291156311894189925018598799588252814941091594618573731945796520068708787916985334395218136233522463106036559880558784171852341980919073237669140898974416489618445598183568832026641030931206168433493595090648283484216875473811953852923403262570132474362459597416808916003495777270441018676980019786544769239693222580440648210273742165243152692207596076292757938038827329943932381147778654500085730106769079179175322085943260574077376888220814122295646798103669931957451459108300979854606540039330493979166882507030713939357602111925890726901442375286089941098250398105403196552241789804506878118759547406308699227592513807658939710799593060619729603656142933106882414140094818837252718705472142585308044075877352229208633902490626191562952578011555527107280600388405147220791474542287303910922073692264745842815191834996041724884135253089258124394785143454485593064075459453219224446330549771234852179018087109252264537034490834735420835009498322805504418133301132109624119536050466693384515233888522944079492914060888832669899173172874237645051349346685994463854698302087868886352604172973338761538824569532724042381220183027495740748583275401949727076223175257033931320388405356929788744211986238966636743310299222831842320004003350886121246339688684868037286066724871067709099597625232897886173404141498688521711228779426568183255326222435802665000276748629433762463173454225140853618746364873143935177529624041505949833902342940416958377107394169028911952127124928664993963739643490748628539415018402380299880321223205058108241012929921237337571439053572876977889501195691843569414832168176969320013194404431887510636883570971119413736296475283581051642631717297666225633279463643898877636022196356475468948325357128420534318543569142491051532956598882473679114689736790387137790755941152664073532508532746894477825127766832977951235105874367282563354675080160502964251748869974572435877979732808364361889111171496950686152580275026609728399451446526123866508537188967168974539021707748258465431045317690106425089322273692528084684337402464390945093573498819803030331128900860887639986049393965905974460076198023512842414412599248591874033291366648784307139259404770581687738097194224960544997001234917563228668719849402820348463817032266041185120240182494947759008602644372556573656019319723166574803809925754926572675689767324036857192996823953986910307444479477905522482404660611825028814005797679401305228594916646316040114261632671573635253811995509690649496259985902100905801769594202187310496981848977544007432158285368371097182070616030388132769924045113079940047189163496618233329322190778634084105287609931173053990930001179886682376691050614892047091053314667185761942955208071072602380437581692762769023578015981410021154768462296828415174187955711291655949309052955782364761535562413367364195961617493835558511207173947376459491529141130943748438409066854480065377214530420881174587425964592989138381790534572505282868162150600240830443699862500258298633470126621100909257978153530251682827331676123996954205205780412457612818463201512489908293256166214437402125228048885755632836442346685675758988084764829519991387287405335919754825027994557724765088094094990090164950700904170276574498016224842614733909666622246242234744494044518057831807770089417222062997099855771049262780225247285341128686734278582802531829728131214211918994147436831611801199413206539821401766552862486894179994136962719112737984168593607950636672297722776111355092977670210606811860011456049839928774537221965756422080669096984633228840353789305489599138996161013896598465622839857337025123640705197252662430894494287508617101327991799900962914082664276511389775109277316704425578907662498120020181118489789194530472776973169381609248301614391855227776914870062534672487659834558245564277979852331857334572050683135803904833379775735865307798175909008114345904828239622833788874834496663995793278698614097971820190418128616589753807861838086551671320093344270443958234531385409380286017153604914249400542662469886886854711568904976330958194232430522882191294971104116686182803275904635350153819611388205401260959559676438921982655160494142357616500672821418171877171140133259993239659681450458611104344883210760966000937528628692044098407771638310073039951781722212362910322200253868738584533747541412584439199582056663297669229101827475173831942626404875675881321925894025091308783381748572957950689227982770229027380549887059581571815767535783487643336848073799610627654940020718764768751653959865001596407980609337390297245718379469213153421195328907740760168214827848477400218388685589818653076792678407231049421701617925048792937310463457059770582299775629577531676595926372673988574602102346308443710972480338776017385313420743498359900670712807967726766109111408461551292409763729164630463611937335652749127269177592726657594259269577411575751352656443976876325184651311125975158379957491349580873847024014289292745626759765920813303568048766156994212921552160461417857024296993077113216104774260244613717388023733874447865510301642026729231556356514219989721512905198788174404263673163804180412647851328952913847484718793735436329936026328623851574947373211133739866840660071819018843008532155659489988669191036159706297093271337701838330359071353408526627422641347413656299355987381920468132310984567010523464145565430325618757005865854792113721979282527810524955455481734448328597379074607268163333997967720287044025920044660782568429572328179148771363342874755850984064955216645623865610049911823006964999099207295487243638066941699798778073549536551631815990352484755473890968542068766627024628326042265332147938948889955974518069072977584162277303076362226432341076909605131423290972685554779613075891932499010014492628323343350050291643896022356002206961424000579866298870830983939351931816575711424474397801770813646752704005195047367216346748697473923927077457121040167744212657308089488824406812634690213625987832323538046362158592454776899503239667544271918508549782938724834697822319531753194196699468112269667373662199708223440399793256014265812605188011284758885032813234662280646688120747449616545556100667519830764848786197563364775277912824527046629515804357001730933878646371789219970421218468445577928265259745674849293713086733753756158954908270891776150626036270816967983409222637591918353629060469488279722979617594525260095639561050290179828183097058906648101782968136773551196856693318916793420063486608975908623342748915276745295994606705257699145851977678268710541035991148698265710157197002136072392028787101170869384987615285560086711840174340829746388650205652356984310291900433913109419443464148492524875843681685445777808679706376965045195442026779199389547786069773144686629825492295632592637845383197927160859216322578898280835236375716694576797281530722168649009080756087406361548616551840853335058310523318353415735414547400784511799851409925075484645158983972043097732538526327731742045007713987074204090711446369993276329967898728919946762385004484088135714352679958671725252065937658165279115710933786182717482966355750732221960604947245129137503979433256309053513756404061684484696070653348996043662160702863203775470462713801733415575015908987024595408702180834037012056670774660328525127106683295692349175023643388674756124240852005878107299977854656622005138383099397428094131914946849581494313308589528193262221263677346465213353194040688880853082220107367691824332658894026957211188430610225125655711388218221674246210215153583722654143663017404433522231758413883946853377946664654120841359467507215767652430212337627720815995479334571746652043845021978329410192333662559684090950630070963791873084788455047516952317490842943288910979670389497432477097080584890470882662874757003484410756135655977645627892011782206813600386664330002824994714697343703095748695403367074787073107848694917302634573423100545691812034261755154283091821388961806164177939666450323451042494165565327306066463133415506558272164347225643292912058589246548802573959733885851242471480860640945173679729876131855498654602138069691783796249234740906441162422890864938998457090449972215491221809172329811160229183750010974011681825047181119197473413642800321575504618697168061970299353144704298763706377386472847842261790743297910940532066329324931233042499208386115729081330348336386988737418248561708617276159618783948682688289721660894947354878487659423233621628397279034929636209847323692150536440979402204540002006149623261387216434424464334329568762709002856588219772584735130178766992945073576551861620504215803032584411179280826579491960230076471876398246118834710783072983222194965813933433282778590559787086242685900948661875401551240941381640390243137762093837569157817871145384470202252308646126612909355048621090062459614305832162288709597892870131804090342868187874967689870004564820200519682963996116050214183898223837216099212374916376155975224371293151580292143518841214982914582909242333827281786978303787048514711485089225863931479351487304665866136784949647660480196256568102373274297448813888749947541269623320868708804122521713740955254925962030457391540285456710831964395405123097774802764118065690614116262929358603041667958292667642573832013721505110506025137954545814108590821298053873826411841932243855126587359494086886356089794817751861345895960133639418621963331547649373123768678787375917004112048752851482303772314040715435037766317021785676738628422260323866532064232652127986584274289935659914110794710482068551200308877357808163847760622511444747748867116707480276047240287552389216659950284216833138246896762011372526318913542821958717771901454697050362345825237295982774230851865157490225218544099113101220195696826623074877050201150290420451503788320293401645182206486726571542586672765295698901191663318760451086534218320019738492815520931065110802188284229532491258984205288422551840063128523105487191198941157019028940284839323236788155994879262534938976321421833770822670815807818221479711711119526152507618851321437232517786833352857939037593333323262450983028187262940524042196124065369545287687491322203919845939022783559147506383542511153909279263978523180242905054845378160571184725978432323289084249113777632396215241000596860525574892445241056390413197991999228066914284469367399262243447299012717869245777996396510221445343734778245104387240463526225197334264602353844504500331232291824718425587141636669068799596970136324334436564751167672612426446808436818221030028106565334913867130123344810806561196915147391826703553340701658247575323781418368845587025619725670558858911398711230947516544793555493311914972447638748314037095970302224668210258779492982893682772860818598585232340380598747614889651359565841759168698952074991215871720730059985518680285384177424831541324689243086902343225212568851257538247557840294445718952375410193854652027573579174396142765766167937762548631610190520669616795028499221030446505826528975614767053371306935861057669741846552629623179861769588664795829729845891496832686044976029082590626635757657055215783233175923076446818801386501894693629972847259125951309896727786680095219363064316778061560504819414584900628143214302397890561599825190351098708594438736916386892361925536245636401182060627854677876606321750966458722570844467564293253850758302273750070262079779539819273421420164992675353651090182087238757219482170272731044261938420103695604382579933491439911997179168100826411926350046497306181250716769989521956953909558273601822115624289330488039724282773973121015819911834024567440199423952323310466022306988751150139038021906134601490028285697504986940905519444345338574560755251455083256357737219676158489725177309486335537906273558043249319193203760303797748561114667213605554106943086918867316741813829015947845867366902506099102726235300678075509188483191501318574524632998888566354509986569340843481860844411601060531119275254535219092664214620709711654522331659674691925243056662098629678986859469625848932442047678356763813692195172953039598252957121590801667599167678720435406258174198251857899910211224855406566652437317022958005941306636205811393810514115298680888648067805426368977877295507901293474258641467762705077340112265763582835020114063600557397103553270997248510071366453816256998687469445170087184454734505664406936600672930303833104324944914870858757546667421965697973198049004254238357798019048963347277775020811845110257459156763387240555110866401985025153187327350791732813308403189165614089337606805889180786960337360275853030429773901901966533196295722977330119133843322645962001468224928141677158090870896090460602800070634927931044812831887420618870938109333846914408251851155750625585988451847866903261124301987775447929806662690977345190291571181289137401005181274586558022254950608965275423177206428909621896329059901683126993869603461288101379619308009078375224161997514627702085052458891436189746670418603706014744449716556239624418569333593232142114728205182034920940663385538362303646066185895743902992500653891512463879939069982394550134355961360622863031796979559384886055534483504678661320629147846192706504229636797267585237023706718361474142308607799770246577875679902316142343738206772028370053463389931324841948693961514937321308941817043123149907931301530297413514110135371617579394197759196407809447429015192652400786409090712888177191112726673544631082889678617976119709210528549067974723503988079288506395021775979293193355573864232682818708348377296392466350770659821483943010985442705112221552410118748776000937054274888462882904486018368363479215986198266401771562315085193008358873029960379533212472100707893617880831258463456357349668329743223508412321367298302033999191451845952724804399195118124226391291292054114978419359171003811416059596825487764225193593139494561862087997009467193530497557166399941122553122361160814206221860841742866511169267067221340628813345068511747285088471590850866178931335036736059614544573620136286515923334989283385567151837851969465044844829957852716678507938740358112148896586897033973013878611571516819290458349385492872248838551699351093742252891280956514214711990367155842087749332517537115647239111476512224793074322852530363246284154737192551120975471291772708568285711661837171765036574966880989300421564737090387523681077737572263465956746106861102924937696352492566682985954417159239486173285667840318507329630788906849301167988110947362656483643900397009416713981362272153202773487884692533788711276315737278413228144747943112150648922609045740136931888109178126122478725185421811814241262144855592125928767288994032756400802154917666797678483171059553997585405803480624812447494855136394336963053392115204875140937472763287350315231546487887568333798987333487198721044436140421304638031494802018717958892570542709400461438323939872338952611462715310420184220278850043960967850549191440096933309168484742763601081216179162112107701921957610551479596433384738990637628208846968081586437641769848983189959206436721856368688717306714200870825193725458904296190920045119660228697238813668314753850996316507318789325598330229787698679571449620910464827437945028036807613519331417644949606227294986678114887393505951495089668817052065079214801257934227931426484678075827856726842000140340611407243535921078208074129884546742879888112689784812593094517115747340795300754810809605874248229397121648874723891860609492465017249861530999181182696756416607897904085961520664166980030128965995202838018175250417740140959622506098572965716230898098049381921298392727629271899728687439209989848350189009049354134296060275046121032174170124363367608112097731893704335869858058058968633674669707045790998939543651458401505449622202851200169377862923021248336177283338961515133987155928164604414058110724573825777394039451553145303557890992736244546368840738019543149690149492179304450822826368986297635852026761945017711078284568138461774310538552369349028457064783410107842974038185075828794064934220182402856790388051785229163450940614430208572936019603332341301230149034207548617964245997341976176127358124299962921733332820611608826527548234816636633251560266778893095753620953634000991506486147433344197807881084008013948803499900447763013366772400818801375944653850961334229794477465920628005454705386248679287943458502130055781659300979062268883385235963351700873754399312877021524160882789026018923770446525096600553507635321941745288914527732556561214592773647900836200483224863326139185774818434340167624345467489019002046008590662258924006305764099677556944310930296490617900413678682716047981204237374870840056039648125008278098254582608759030095424169173753111211053573584942800594170261393872212643496793019325494474232628136672623772638916945862092981129923101161845165211390977308771197800233913547450877468086677907765784214359483671154972527482095308497747457908840399118314585480740602968734257675476948527887827403370469698991210015407011873534246650580087833763302088822218152410798400377027507431985132113663429786198476786129327605317890763514862212679679017815655105060494038157847584000156483547615144098704660398795913212791900416473247527452990512841631866382624213419271312149138397406596639131981726643832845234110026050265563218769896785334752863849396262366739229943433848015122509203545324144031403915953409838268040968825591161846157259011807618239797863936225291762643294714694124334863133600376837997928648322811327462453712642403578842694807479667517896650266160079108117432424640551232550210916909319258678162762457478560923440941026247151740539660782026523657469778046060462717822583425547018397865456025001146466304744451450161332495008150497831921162221039873027286656597145944902047172591978590282580955294070858200807749916286088409362400153169067255645598632885892387482001195206377628630911005865707047247975080016032149133713407061618858702873801307138445937068017783552340890539463096951989644152895958355014219981794013578664996768987687133051199547185068322210566643114209914092442642300008027256223045278804775439458878251541337987773529049162622881464651156299192421719525942242853877112026850398552121009720559162057493316225581939044467510465539561276542423879006017484222901218237889925451101237975662848795925535700205991798734486631890504427636638731614729721004708926319735202415667356839204873750393186062986199703239634097883461438562281517883683689272578161925865260484010803195678392029608646250955842322670291618070880432571552238476411746026927253886609003272559511245046794994639656954183413854568410415280947275254748794350120136231617934609275765032145465833668777852965740301303877541051341863994858033265010294405647818607540129406961527488229093796313115775070217560594613713544779250002896196867272863853580934948415280395908867113388319955323580749147088650443679682024719021854800168076908687433776727501334126956360075302681578499633194640498386448698462512621560291063444932897658610616173063579262716063929861726655030314870673550046891072728830113157455323169730326727205914644584387084582851174220438607285084118704594838991874493031161459704059118535244865937933146059886882511008744170069958885141784813192627905615853193918589227166849468670810077185131503046741662307476282756226008933980331781436196158710415376318094170960655648126756963325744562097013638437969397256027219461513321385774009515609564604189597692402024978193672766370408006129571904208912289885407869895198949793018726005719101605886719956467162906168089280315239706433386584204606426823181597219776472335137115983028333963595309119539174536938016843805893534700292379614110712747646422527247814774790633760392408796880913889870592946887585352715073670814132776700853256066860497739484602191869767635901615959517421728676131919068602702406668790857824035026652761573884852207103883146652606420070244983549360744582800265128631106747801037565618513212210668507322511828371440365702699676214756118888697932061713365942643674803800934698694100013922389825935553615513244786719742107672353205351501386876583535594401843744833129588820121866575166073410069170988439462776249282513751896806794974375784640538378623378449806178655175285453688362187172607045415973907646400675913809918431916008989796187772005157124673887432729483377245474920016041727833705814914752333944690405757101404083097444039299503384529545465775693105857875098171310417681950545251920020444860860391553052667168054234771964945074750321031164595460254207397914645114401573608165993284595243715362526684496949455926688684118137460027444749431433828288319407000121212886212300319215965713171368784472509789914198619426484208878050546707993819981782669076033636589650202907092594821569106422637659159145465300080004227216243193359569577971932311197117087672557831418662125858895819415750976033311166977126984772566419140650446598500331005450343341328287983777709427441269275111358656508310999625940157689237787013898340546599678624559120416415204704300682957941177896204990182763936393299235312855430146457589834325151262221937252087346043174851661615918700968628896973143330315677506040778962321622602025941847728598886374928074011174845900065352661027646727851159944526007745277294511790124049278117141535872551471619947290126501073184375365756600664802757715764881859625428529889248206208627141147049466920741030596804504361751863379669886077970808642593474815644618641605873238967435814032412019795599170577467839125254717271651207196573189877124895999675983130240295331937315708019945574949512285556307343216345630230359738075949029223015397809629299048266572979722432517055502089730122622342653284724182006323121612681821791568254302874637720457887469005289384990355396890402902138374763569217881806594188450783554801259523597868489218218174302214378291551393836905334737266479221718909882844849441279155048009286198209547787079284197859407529074990805175703901214791096334992019809031141792195652956241509828115503025353207209450647431233977585343075761488993475352776830922000448957636381739855754357922526334873625728455857327410334499877516222213335316522569433515520801103196243993843847685697280279454272936932345163273789283002243978419284769355081701147315646209215677037268815472448283646643620153384954939164583319410925749807680016921249550674485239734066763550251077143512671952854529122593447006763945177106138170997521477340408893112939869560629860293561554934406154764163138403060305399184494408164257150252490591683192374166287500780183300730695386153786995719460067505990879913326535087362540310435017487987106194904852368551222376097168550494481921243858043072182376174660650284849988415092558132836859133055959574654284647295883815316038575157998032539428315261053183449062072977258915218246064351135382448237050294367537676632518714470690141988249441841525702954540247485492714683432763264440851426191149982376627698214134411756873265523369494067274460425120499037580890682748570464285617174142559365670230800086794346413408326957166741336855957012832639148271105974018063904869526207449564667176446240402349812478760872515289417566174785229281813342115423342937769416840544217656118390548939139313188772194998796751663062962534981123306819142894603620468314028386575290056214105189042943179638255030877213671688869407363335223113827025931573603765989139250043508373124777398203703405142496601095582604737799311874260944454327087813942865540701521375680154465947667532156538938008303713179640985734901869885433720332971910885097659917240427854552041840596592622447384927491831765779376186616653220480244357223389198431775488035267850227809115958859727685142107697208850370649242156978056373015436657975400988014915790285047073736713365589589708962161460855928144180036848374600161165025512649841346202856185634035707996667022569757803346565658367326862404987437275105770260267167840702951034926644938520387344916061681558430058212664599818665801589337239512548697986356832730325194461815505290420605799272912342265758618264595349586749627062034393385965950892477668098409825373698328388842499953817501014578083452472895075153992494294079585082806635087359885290648253893376102915552364078258851861275328265856689979568456541030180000485511227930894204766494838893319388913820197632098797833088868408673354074931184512856321168596846757139503074665131584250620560009079821676896983427198344445606371991172130888523849621007827338891691667266886047301869754200976726679226715819578024393190374359507298700260094320915696383262012939740878516702535886911211066459395696979320720033303254780264338255497653960405523899078609725626847693239825038077837732271547737903604759803198605427222605128200102113541529082941661651452802318185596966498115490078255696709074873708574538372968500597601532074820043454441447417745011195313669679658092323068747631559296375251626619374441837502613253571015686470150477608021296767994347278068179172467728287688231251634640409010812521236800492428038155403343726266299387530214988573272977395259392314674674793036546621013417064429794797682428708927334935624603787151384055234968618633334353839373181292883071585000054590783969250118711140333070748494346111136828442173486423887431295585504786665964559682977716403283459331268304055376816612423685596938428087146061207244987055938502037798142423434032521946267736176210535633544966395595709553506601070548238999758324853151433197360000425500916225589843707447678737386216647020437765352241164993621227839625472943686261142961460334695788245489666835029466040009692886729182693677137752815197121342507529463872870801982769533730391505917911426307570670558076282699578373691886711795553646358166203191752374996622675152264159030156269354341615402598107342112031611941026899828475518636619658796325705098866721977569053799310895786536071668165531158834381163925998382654235415089526564936730346334058983587194526119860559594009563450530277573527554611991358634631491755813631447226539203037341848122089470991294077787271233518268943669725911597752880442773362944443809564850947935371486937179843086102201722524620931587164278857874221384372829409954686111897208264059413293938411046920326726796905403315150040691163830956258737359605293725624158109320716469229217890149724295913109093035452207746248350502187851193093448033719890908268054433367657806325936437542534512987418027038822093917728792236161239594452842848071612601293740563577705126165372235942895639732801231572667904524986049031822432156316026745200320350939362749930558639824503395199114689411680487723794487641744885057306353402058368740096231096412317147484046948826625283468057816469058819203559316626905859302545038278998480882574523580117011796363961356506034809035826383988602831141905407543027228594015649042184841390271169094270292785331375264011120801628852426268959244784796491375029371369387125253239027346262897779439885369219805440642839153406829622925411200962204626803858434875534636831286408614592335567083937868506609062849191414326135854929144527723299211422558153004560176067836015010672492205898001082700137039076302597012438898801661371597681520984907204511923457491058709046672685655825084187881364262328737485024352223652218332767277813725566287629365777931945791102888718318561949007872472827384628936721876524248512644165786585451490182646638902739675959958956797633326320162534418983509936398643516390906624408734683298570465654021803887991058037947857677506155921067102264322611345555905940524776030818127341380904107399555784781262694339145993874715580472019657007686784558593829798774865111515344783337706452263510929223834109267797117447615769992100225643015760093186400580671847553762447011204349621886461933266237575692420551916671473425949105772140162221105035313461694237316584444918795472926904709259774643992751409191186089854391503007462579327287115776144246104438228409008098541179549068134888598884775154376868846504637118546657364247023165731901193386700780709818817688698052103305827358462824116013272256559141022923637763378233644391425249636543794834069171013822924584801168277571935388074975847156145499745137336278754664320102236800487724159694443994734929642988516924328338722801492786798072112504212083708169474897118194339396068291059178738749867258080544905975416901031876171645151866744835930237874408199460928738222615310420628757307058011553947251925812490614634835472720158468711892828790753187088539460114259232375892687220872865075933429464177807430327286189289099899797599901698650196707799719451881761187808603642848515887536448124702907721405398417025873744456742444244945226247002955213338565245294251470317688568069845718216283743480959701693935329618683974874705946305233058805903196192032585848073187518267504113658831926807779705524344696742787065329773378140701569469085261449962611541808741623959497601662849475886613603281585312154765082547932186787169197517327216023954122461717324964906780253467998120051932602524179555148874599792838401465036054770190160181469513876470200249106800989368918705812705578366465682268319122224508050150359528542102406605641585745772162123760717551521702779676409858071183179840003678890166425122557457387102993152913956797553944979942281861650468816928691471527719059808423890338312124614158648173832351269403114363016497407314218801144188065796890702028162481869146086467968598989551176046830654862550370784595730962796405905204277383568141608007475819670710459017961586913492838172634138619143367987118393426886550821910431382529471558949536712142814692815016463742588085868013733439955658486369618381239754950642045985005990406433444438505103459825666134805892560515461336181575973073555285422493875581760702692352317781146835567037254004005268931384825155623615828272292588599783650728630421202445282831027056485331838707653362808628944704854229982041519900569925631480100515588078852205124568804473497025717850665716612065968387144333337428313927933205878492577393621855627580165868914875489624104321724842365684738310166389671782514669570999874430896895906886367658801844607427880139131600467286162857934249653106656847699721724095260705759510928065720123044987474180511170616274693196571936612521387770596531359542148652584655953133117608646579164318390895692254456718168978290234741227816460155649538581612017468420718499522764926549441096131493879183725799561269183051196415543350592296099612569732003550849362715274862835360367459907814777190926236593736091989456117677238394139569569167934064623033350875033808448750670454561499833756350526758401644090830894253954320032714777509830364836135870568751649882808181613485867957552675286561631362417220853691404519623636229344101684910607587186799698384107153861043314968616088105176264144575452844611531657825381558529560113046318836181160690721255398932223852767753199421435628063246436188949422868779098299081453060298307937437679635424043132538488434446462767602515645260583582053389710493031630537491358281100723158154922708116279201171683983136068953332721042937156704790031492686753186235813493554501604364994403565871484494629961736488336827728221783920778218612414629469654801158258980961998775482653223714801463322396581807495707307814584731002326766164833901200975700273624012347184156950572137185074895016320047832759994705067369656881107012083699361998436477807490274893254479799145823854191081923271737798255582807043942126849275978411519701882582143860980356021196335471096624603198360238963889726730658377976476522504728809183529468600198954738565569717891531312058252645272914041797188180621208506673426291360756912988163929864550482198982172626112374967390692894321422791148375187886152055999058650900266292483333555677549866059133493993271761048860068121751046025502057374583360391278107004860845520841913405576696321810995931311804064546159624017394746811181604522645645573958313826694026180792110776398695209954024111989930980726984877679485266152474423022589287116989112579591411651322937391043436240755508608186384116903800831260353090179670637469635089758213142377806236814253622395234051829912452504201825660277068476835526822599454878922027406340838766834887465755475798444158181450489081810562699997024697178357812693631130370113233515848348139926304868416870566628927528967357372665504763118243453825263567488673338933595676632052063661631285403264452524574642266421164038423436497859982264306892715260228716157421139216793252299902560894272850043831851539380899421227844691400471809658379397968673584647020704558512798615649310013204182348140865564964488039324815073203090864362024704330415441670513729569663827681471048779637054497953763494974269002381756444442563378726857277121461497851227969393968059190896879713822724939910605025397621009041298958250626530505955994024520052068001134092476468163872509002674458460654373076177536630586688234467645197206369027078317158085772018482164443200193843724495159332094730964499427002129502845477094296232973290829191651900588590224837125756043889275753411008280145627652469116321419689477606872400477842697230866856194424838999521742134006435098816402178468676642931421235284736502557189419878942396559085167915094958405277437075113345404987847206418433283201064585551586216079833281858333675224295084662145151375900340981346209510105549433557464404406319792070953677120940710291516513606493023135981318414831687140016976239249000255174517165444480881981867292942887833179519670057159336662354295944545631157377119751009608924122959604893627284360077471752608525497817490555778954426089731829687633486248141468233489424808821217708221208694102321019891202189820948618767677677347829910814464636121106805393775560913819929452416923148600603278430381406997452956533313854549019923985353056145462465097362417118360977882058839508466178300527913712866365821657187497153460785043023213807452301219523961275139572375998936360976871607601763634531912136282113194284416631878283261066131236093238817247813986817922722402649557761232179498305475953672910971010559593498489699411632513133779173906732561349609574986846325320338295825847788469105549920002015923222385347338493145547392535991317375548297931626287234711386050971179565032261106193359134796045133618819304025097853297411491937250719930045200439029449245006133468616691242866013230549986400875673990332912656790967385939670827398751635892706087756913555799257738678561509146012193440626578927716579343504321526321380334313305052777083362884844106904685884374566355928236116640598751582838793079274254887471963960674397418039255558052212711958906063943279664488687786269873368478191666861436481910928541167340282303022273803797592894032806035367112968568105149659706096041830963531786159977669811339832932407275954131978611276406557043777040775627917513248421332079533571038146208563284801031395655143183385591014021186709075679774682559310611580556854643850295517424353474585033594694079705749393582530790513501380244302723795500208965691992958435063371987264256076921658582115813889815682728049267840663869960747524500088800683026730666893644924441359760293866942316174390440074407421042704003391153891164314813736938417504764737385235645612138888627533685846946306426252994615657561647929525366727186527219660792143051050478726259141074645586827899037355241571735806799371762973076609993946527313522496018901485599840853746648400821707488541776169155138890128973418158670074170919789019328104294614736813859023958483275517224086791488732194996033981281325582071350661791525983211299697892405613482450776719680101564488698971917391210319477596873356450091951784517683679614590553005736540296280621353701402501635910628505777135541116523645673961355049448282025276896997901050236100816321892230238244959856990908199818114475822804647070122079200428305756425239440756000989024091268536703122403286617048816010276488198603749657341236230110059915975035810622661141473105817524275146590463866811648390787794300838285249990628457906748656351742502605799163687016438617353388324497619236913373945680090778080478796905935679622190925664695587830731596562798428909494979886431480359553464408457357458176723313127065202486077096921097268345995044706547314465828124821676213931735628693846818784699901440615915360185269934573542387287501599160064518018760572087727789351871129013590168775794539109833733533668026498516867095247265447685092263635298109309925854939162191894845073462940635398213272429203299102698984473421797664844342419511377656380725432435828682223157689360818598866280132994745639475013864605881069241335555562107222822025285969431713608277372524120761912230786039102508268562255255124774310235687544377702246674628080274718651526858069334773567728336475030770959113171121493265824409944280424907537637596981975276130874192326133599003390426638669101574551681965036153635858016809143291332127497904032181039735939516925183872738753789536425813103600890238907691052306452043091502024811669281007842962698534441918946139467322414491430479669453867433072304715366065167618943261500584740363416911170174075923818528188868320273536506543800334984511306165586695341130641371137129234870708290120426753765578678903220699396280097752415511122181172959955200984970484519145252608014101583655742942297278005396684281373372726529408883985296554008747406833007997641994742697466523870000265998117505656817432903886883766875655839541019739047627150185872785650244282430269412366854924903095950402267920797325592065372112440421397722061765787279359096766027522003657800994437550166907212104666925046152710674914401568858727910547375833689454694403860493190546471910731247521942038581951157140162665739487569287549492755413111486331695393458206879419292777137649107201686552333255729676906280819088315996164027541865978404737216268571336208046853617989166000521280576950784333752360164573324058372336089069487894791894531359502893952923461849457505196107652757429988946769334234144336779730112365491017110627005495357905726469092978246544101980050702420209564604435976704422957325142047017591962120185323575149104820994524061916455663752590507544113471876380445880127129019331756915497840876776499656503205466853900717420059259919866756958530170141595446434636372459712879392811169018250721833616179337982013142132405698335616267430164389137490466844672455667650348397170848022717863230225771324653800549932886207803558441207838320384502279967498359536886524390356082138272868030790128594750835454002569036239580752282084992814274596587196056326254428261849831124898635748773019175684121204117313542222010806766561303733145838142152176693534057241540371542066878063341937248643769670312646000601357720902359368458188454950906217404219726199205307829975956719988636907652573528654657519939135916306787473476792383981198336273129247199308319466644051524713833984126698064928133724126530835039626338196380189133130274237914664501357567582649051905965769969219446386607094796521360574321661354272093162797490837777736664599369624395307698156799063910528050847727708928250517682836365736299729968371028352370828669858301499021531471627543535163028241777462589782964446739695561006627289580298238175157325855299127039399400082561824693340320925177102220226587477688580377132999774875901676790166460800300116767591286990471549142326554891349811387627811810365512079620684786027687353080372728870017577881260737137585587803192992688582023329396636936151804548176983409319287887448244185006834757592206627268658940647826417732019230337149097565820341421697923849503970989804600350351278445397702886748376494539392074060913139672522906820472063163033544525224970138596513656777247091869786256174460958241939713751898488180081520233698365751065225384951882153953481936584776326196221447028571854049768154344286479776799637847109423088318416078036341598344928757559725806789123358178523989101989967726717693531977253727894422254541233964876875054035066529775232366334593454667040463280644209837107036712375974105875447300264742873942985458792855558345448453686345617287599044592713492511974906309612128686959344685322176801414653381844303866083337637152419337005366367414094595107318615326912073737472255326077713565238787750789261461680524331221146516044433265443431054987899806773708504847933606462091024037605792292603972496849992812756976939757771884702732477369554459511491909241172151172282281947095798255387351577202001308131376527634755640699759329359251078081303466193532197339749151020075803509370191869260286776052110943307502617718098257739405772085737643362797159767631542257086750212250578954471318193169006873827188179703161774727212258287041381677452800483948593595958248894799226850358737136298782810421818404261307357491534930225310944354206685135528192802412180509603652944643025453581020840810643415396800208678032211870560597569844916460774499525028471827227979046447774534929924818928926967388935974883820595317097707463306977136682134531734177653320536950651364220022258944362636518747209524351151589360835973074948643149622301330457051239531030574492301213423724608648327300615205496208472003156912924372081277684401384188048921099065062234321828967689293368729489772224766483370222243825665624895469846930785565853893308001257865278672317369507244235750496598950299356962797093236060058649515412417089551135172069022264400526317483248953854715755621835625196634490843214962624722736388345456522083594557075863577421511342541517261732046303596659058173371014929856208241755932741550402481602280939207508711837871298628636273682632035921433008948545037455816022673363946090003650301085952698717365531416497943975390908332627731595673308989486926244877310345771714636765055322955345347346311134171140230745515610012210653529946124797886404083651331247386417429493075488299901578514479937468829971861059673669011090565278323016335636022420445461029532209391362618538512604626317130691510100043535263659206391027178976885518670238843396237294967103019713390362804756100130768441456961895349735639334736472028287010439503521553494701809130572217044698192643551382854952319585361290201691591613116536698324987449517350110112737701869013439871160240716457969946583387350899930911732399120419382529698396848272769373442967285224725463008621793682468169243591677195288524087243516563675085804897015155792211504387503336796235014881288899912535130529277304513406856068880329259915980373624769914337545773133559166292966320213595986276523974012687486656835099416703120604505082060259077634109573223235306525818134072810072074972849610501573427580473616593522010563377829290710690478589769121147971810279356722383791943547347794752507509864767402391613061039783114283213364320521702212505716921632695862364072343861500420049100953977861870771443979873545640620984174197797853854407167155104031610894171067218261943247173990852140545539626024263864019207796368483319392487005403861161815740877781473185700519873702922651867981023312486570081612564279978318848015656993212895955148610195227290406664306829893220443457107560541644697800092921530646196811604782976347368644582735499558075792871453500001314332239172116778152627785307915859096473288044950607504238333269453049179261408545372527161522744103611243660579296584698461018990848369221645348889289600831681688156039766118499208875790441723650395453993590766527439359613008723201098860591609359526468615099472557470262138621881227200574000474827131432226610228555763759485779894039066540654231845785909307196712791575338179880186092227898897721246700939904554944532784601681834898001295470486056448759756063600996051678732073883332841648369446143244233892514882483748006750962602796698341861083295097939888314600970283163687082756403713678201553516029054167596760879912858525942448447639832597172212408512339444004803805821540226341132370157685601639914932111594493147460059663143383248857817999413111475651783569607552879195714175664011242021320864622966888973454010128628713270382003884683070800464479420697764456182068285905303232856154184919982586870996995737995576069862734010373095115066034151682695580758430324088842541375488909525930201209954545604821208465423806558170420063853744530130675273219023793302392757437126151261223509642462752000131327445893190124864982938169177468015629630106155231644593340354244356054605423685631082733828733148734770776700113511896609573423366638860688169897922853368902576767546186332458438804150981566101131442449069185817227956139575805446979128265400007937176576847903622001464421943266165490429464997006195993825577797418760007147589879040414347236849521605415139322899980846174084051369585610418496347221046777043550873040420136626076215131561622548100287393804092988437971007134954899785655211851997380374320344050922617361239663179160714799000677483249429633007304625808813048393325351547733978527040718235100942775733735965821542878466537275999071528446957217763671424303529142469803446274282093428863549880306870608946147324840165277820239361452781836614405147920517876841744877826867537861665157359623378845094303939593323557757226579275293768564306315043576172955655321657273756128941816557958615976841447664890018474758268439781822713491533970483177406941198721718894414655060291055235531876750815693066148617162304364328395279982169927537834597751378818662086139865334997237070789061620980892285285127797514645641363930857074720251635083721258050365351478834243884041560540342184145767251072803613320493216580643967224283234045478594960449637818989106553375501334076627779745834370907923556902301374616429046356866752356766214969286576288506909395930921292685219553048936351732135908452640118363261516642310632556330712138286474440234222270689784064174611295695062139039690498304427027656084406874906852560918304445741060554963672200881518207340576781909014335715757944806363919430800996933869661566631658938096988889672882568944695159718854351741878727020850924530929750397587572890963439612740100280889072314934285523381685434792594153133832681572260569029834876187897203055702360944862830820868728836416862942007386291648182832364111532236914550639464071843296143333269808555806003158691037267707886395131321685433874201917558126729760381461785180649615545157035642815873158606845900922823191049232085405451944458322973443628161752015018108992969212495690312662980903831729166088945925109668499762191708004704520781335472062932533016528450725179032879322760923830146771310428951525162258962125736083667944630315115679392224843863011414580519440088019300519269397002918724200751554790226871086775929928011738181965845161026697091816099645638789450830388089384879917738094232269835428800401233900821600888189065066026048498135614016725967589430653989276564785943383393944945097748532086284103718150095464882421509442465895725905409670200552452776639152494017250387380951258032201880637129652440741278757921011583528287205700471146942958340030567809113102636827051666665371748511153991816187044759593170068174674887899856171401318268786875776982216715982752432572352518280126188960001728340334853538497433832214019693160424598128547151616860762724479626734948302393769688485302839754597997331975900966438289470928377959215499978658716838208738160180974261384612546043992736499208334009979819681260580981760637488619521712030096827924388596575403278122043465024446460892202261063026808322838101575049790783714399336631896593981495428759379870766230577327558224807118459883792935453908150136540063537222026559656741185238814509012806839811140647327329924008816807962758241033175369561780772258429722423225926643812727989147815268499646313715795299051224378255446753161240610661260823224018666759688949350182571634257082392238754102004166987895371073191119188597239670940706299437550016366344397310094849672087522977297442552870526877046264163671239742178066686988407555642459883306171482859904984293618147912868016095970420815915835630799790570366087849561188499569435993816572830142113481188898012744773073967013565952639990378561466872122722455367193974424720709682640679410546763284973071327984677849396303792153330428874274169537184104654689372512195846321282932563218247070086976479084819175268297954257041711303229038959879997495505820131279384727362137744660537710797666587238229969695421754418525897558544389172722808878844499296114706457745793150770824496662468079009857631844333131056293979572078053754205106578931643662759997265791988262880905562979756269178340111225328954221662541493828930851379123156346183025290262739722341997295578253006427917596871654741189442454038632024239779927806543470877565114122775331453248608110898232577518913243366463747894454454932023138192570486694543835441499332075773202550875463862884143055655589138971356350514880443491268292831505773433440461631868783857075878154945677640492303565172521799997120755393034040510207828154018391865385002360295266814517114994567271289508729159209455155228618588041943376970540003692814151778572053271237414369358474579753697356722224719532351758755535319498045676229363697291130856303258197966178285357796984802002689720578469917181707519176993099096231425735366111585650183198404688663156065531092631886722447087538594987467468627584588829352833246161928560185900585637508167582874497917009554995280751851338281812564526699817324554480405042345587653973040708219609918000966307643137966776502580843008049512878359675533193198353507433026648093758611647670385073125183852734953665069066090760186028549707814045868397022586716337521081474631399325573311672265712407684840577929598456482699340587331081079889116780252649871434563930748787560838247382218753041560798290717119992578419309760724156961914606868833122364344258800361665553863299210649908393043018843776103025559008507976605157156366209388944354410958344019615455151211522963833971792735216554832286367571214848862257371780938284172292372521620791271398165585610400872056023592101840311406879855149973971208437572324884728587678549075792340450480137267192035596180670360554439883714676541952415642573815073083151876055827995474126376991281658283411838189989801484398318355872291570186140233841243592129037139189540578216438196455182578530279923257889691437083412427508730654615029628246706636011473293763024316003442782013536137415786297559069920292006564516397228393698039435475749450147370963233203407754216187623193879072756222502115688353338283148903694900801106599236027643683499960180229070263634712049342752243228027413270837732221210660908010606627797971923178674969564748590162521878213307373274424764831228060253180906480602577316604326275053507943636675736195125508227057592302879736031893972413700916417476100142466887803923878763906292544040189757657479762273432210280311552090380685423181265761043457303524738804323520083953111679119709500976368233766637456225728984984363913209913507847268808218527564501282215613638357932885429705336886674829205223054052509686397667272508649270517374663606949889579970367541401586170631269697788634325928940102042223966683856595432716499876488122857767472685581403578957426817966168923987335516127741222813699323633157472191308101133696957227847262705288395731484859506757023198711393344761813429853477138547278701941692404555616506089255411673205742782884183857042824112035929349880012633934496067045792312133954291760717159587971578919899647348837554223301282960289082993408446325977778187153516954736217410018329954619066821448525531766373745081522622015990291975580634936727232452887429306853076837545118768040738865495022645322339622716676917268765699537931790943688543647861622514602696837852742952157162107305545775457064893725345351827597079335365269787262925837881480553670240348791102548287587930925457213707088578117764308868475386006265875927399038553748709978612210008251805325168167091311299574630683823791877011533026325602809271667837220982865718428225470117604160590532733148206239795118808437726279367511471977252255963785533004572835625392025518345366983510700561908221205884966701160854107560075129279918970882844211607459789182465792347694297561392943180194042894906150464001827882810375413866373455371824937661823125774968380837203317337780924768380855959273354342859256579819755427320886680580851578892949153269565549023791814182593015652784987804702216612885402107892503720198129238658982112398076711620520211517555537678221419923371848386375148623786492408497792582152641181341927974182325242504348457412350398922006205637748831370825345051885187758525159860323819733376001196183667512917586623762809150283178386890819277859645419137819934349364918126768215553090021555501491418026115932936108887196841868515900905780753179157172053237140892170236453502146465773547518405042839266792696380415083085789890232761252182386445387533528426253974215313423054370577094392746846983641249178340774974740662507321136378801235004247295517277349458055768463988944885382949114476299441253766517896806007998650853322671362209323360000547271092605752063625446602980891975837340528430330567047987215301848759260475039362721269360915093797908385942928117137756956944061965651640456070037632708869980425424366872684655056745247566542867378341176437465404615910296669754935305799185426943000587124823501435191881760133591063162073986107082339274707382789759718860661217460241180591491574089367802330218189503918557722017581346915222919158244433272954606682985760445101007556519447227798225201076588830974360194978240198284446551175833127930303607422859522652911649394530416704158718037872460147857043929747219759251633183223575236671314364761363390698732204040244415571529157038095968964886737543994630412282573861954555956553463476760776931550306600113312622205402460070448793791469422486760932272850074271534228175629357838817611502326311647795485828009427224069728720111996830234453481162804512425417768460897134994829465141783930400448088987213464330786139038785742921235702032735241358474152475275234573965295530792940446413339389406405797618762657906971799195366917133283358341168385850802896194741035275508489749325935579745223776814194001946417167896843984915712447579473341683492994004251649137823963036849767361096968828704718310681749031761281174016181288506036039839255396080057285147035312990730349548040844315462968572577317037834714174642147618090334813017268888193767483820524914409207840323181145972915212198654745172166326175967951103677711060412192443414310543350864680597113488131463050897777823202440373226635682353070608073594878028935926485537117338622828053408360519035684590482500067818616477525904775253357896585196273738422063932897923469003752814752560617975180416900988785190036930682291103381180184129733685426266394667404082212136067017315788499456001113760261828230549799414717307832511836262027000656364118600372458864629257368325212259985659510094484935249368454900865682730298689001731444991298458465989750287199040165931346072766494337035907091251543828003024298434229315839647245808219692132168515967462955784919358153466541225886656503667593685666630733858509132436045280052327452008821874921625528668169617553715166767220797656419434721647203722939099348809201419088159942683424389043657156642190526140519439251007313465447164131258593195942993806458698168899734597194402913292047532428219232987744799072076738661784322342314651329759380051362193842030099931922846862630671615255324796294093028184275980670636969011702523145096456624321199880543152389282441726365888467320350690090135363777782503066701323569526327772981040808075452125872731767057634716669262621113568463284891255207497074739268688861152639916201712620955014679908866589127213442593089198128771675221815091051619493372911728687152092763967877580580030488067903236707083148177411887806119050433245558869628554568010235463004079660215915208953508090005943750318127626633172263388417593842586478185083716480494577951344791028908695249139783037863442009107367809073118242746913972632322139307818055594105515384176146695302531644305836115990931068891747501379463317123657096278224513344356543842653388610234195219255444849862967370959946731373702125858002114854393519632708955670318037696571398488671522379998240273695408854771710027819052964854433864687268691466143310683584956657284932035901280435933505277744883148992544867557956463654251102710469884590012764805736020253892213107073415742095305394270566549152231897498221493107360746637329348175550992141901486245954336153031809476588962476586394690592648744125832528757936092334703086192913766884847923844595090472305669916339713295548355938128480232786427550011843385715997616661484381883588377152988733516912069977655811970146798400646497955017670217046702392449877452023938713191989378367319814794188879441045599582837291317815401999137338439411798907429167280438608581039142022209447978000795129462459725508046154058198632989670473433133539059719427844666859891324836287160220347737168972810001054107584014889798947505521967426238666868807579833996170729738940593301696687089155936288694826913898645699102993790691227946999620954860506293271799491539439403592624201362519545915541034578848331117745997486745369104317152864685730489574128564644477431697679667886165575495987109565042967818343223601496891907117206607965815002829805841072538391401386760887598511788221214663959562432015361806730172964210822644694549683384692136250419080561529370317370176968636619848039619995677756578215321354977595628619315499617636153985482313560388215151323302420994380492638126704486083743230981938406978222330217283153834158857081111305530921077488480691384256950675883930558760306374502106329727522706963250540406555429712907289878378060678539633546377516196982371865373948565862370934282725277687768346829460279826627449402196206386560543551622587937804303574856803333779160923482108573056810798954442536685440333095019965112803600815993472153286884793448384919031850568563882044220038558512925203171111569383434627248646516857853990421932782274111194558999685999087553349499854921392703760377308675094553492203449408853480317046768413984597312580008721124097140622492078055344456786942928435717970719419289088537986809418661339148976823034338226119734380301654381320812695610433009551438045354516724587587736476969386243724589505116437024299015594624561065949696522329582667088014433276540774065751385616243166218474456948096828513725741435116897399916559405973101522137651930702686951957661255964145601136388703015534658272844082612435977806691667295120689656418869652979530884917414605804563310618580353992337258779577445507563093548710645736969717650147183669323420062878813891158952369628711542290075833422692963252644532984751503440767535923388369861933170439834726841697561312142493919923830047655978772863476053057938435147188485862459340662407531748649861725393737577395335191973777116705115447029247076104835235312424176202507896731589103972415658708229082965453949461336402464305347201845321295813674515211872355803245252233781149869452974145631938548815203438960936368290474593713009562306008382676351782652100840146972879007615723364420591458949681957062971714855435495225574012305362543238090879301432900697773122666516749597124461335788674775303751648826540571642532913785509056424646209937206439795867745768626933110889739588488250714380006682417257315611073173178424289745283262525051692753043841194131248427024266443057517268831252312946367928490265083622031235594976520058131873669426867345021689881570732538125014078631082919274168483361503168643277534766720386716701255374104445367750370457265019636277510881013769014650561443080432759658339680225066150464573704131766617778880827313020630864879888190770135489441287896422728615956890905891834391879504595657101391001949809082377836384169372906171432032091277016588911939376539605810031409419611523374958670339576436270809698593480704230749600926959174435592272193482322565492793618994840462025718263017483225357012913547386171091476292425107387516940256988282522350565352063752917126877859781664109641356984385998907135413041137707463646579726797474100274549136300377378916858949212842780495750136163805438001235676324510450549889475977825484486466765553725214725367270869753193336427800402244956259129151568262061854076186490149172707109802692060905121521469516721347596366366112528349515090180551387371795910869582617291094183812934419120269148185751842380057904724404621477070711187196643183185889097167008265066037659055365464445197963507666054909441233593001968172660958083574067128013011417516945857435404080323124623361282054691327621390991067319115524295699534993751909474995618248927431063887307266791989794512651072235509120038350312308882910790133819159796053738104488283140819303033530272492000144161188576653426007053544896540088741627216495697254883106906802988634899072740615038757406702589402496912854095656135946033403836756398084860931429619000441684792752676473637545682443974902785773980071573094864234160955497520834367715755486590065321814443913182814284574360896373965654164326447424693613339121247498525689484246464343461276071216710381784163138713092991029195624975921667474846893793291408362764581961353901943125907929242651322543615751107280513264450507706022807680048841288209407484380686470534418380652904635359732112238561061275943701849181685320978967273792464804364039288977738431129126466215805006934393826261837076826273245631492991452042969152290712842263985606025110838621747485881894779759698632064321982537003514943706971402640784009024446050653946522461282445046220664174935105304489155922835323835088288357879729395634024827468154398984664356259019101984246512993179630430271253669474156677815723528134735119843441392362569243215164421723714791826423704518751210653710400486367757221759132788004377448503960653282835447615162459054888222955718650732378523622339689145148330347117687269091474589909285511109818997279607053499513688481154256862792821293773050115588189515350604004737564543530373993862338655316099955442193279669325259255758386128698968058778336803154580790867489715135474900314889409391654009510467743663138955345394296598399296442329669919039143726826546192249164665303375826366925090804050831705788102718445556739048774809053519745634627531485231782263539965763272106765466762003282953253549794455846899639435627564078314496836785049699402686992841670050118041245764250157518647657493672792483339741522734940738218043833969708298632061721452378996173819261668977634179632607415371771968773451735094220066049480910205196739724815148468263245525240289979394195452162021359722597783176161542100506339284408030745393760702999301308127886534501548245397438546290168992362975363393808080258657384475505716958228074609770058854589725753047366216671786076199849205172091520859426225065841959150390065214194188078270828160292032872783162302978106931450665729779795221337954916452893071582254096254437248181029030706548993546592419177160866422783010392473145957209593715047034096148251710644718744207955041124069000810135350593552753619630286345536647019523962720363118860791364448532179313689814579852584861245962254228591132183316726230051216040189986458723324958253334142143255869210847746983386816204943865551694383679825794319013305027496659637964621395850953782471554033869114052417955882510892948459276464178244221359705743867309893270612630819872998884413899031366304310092272096091437137592852597227024300173184905353550244348986791778793309861122663275408335379307581199948017301531532485715524129120669138327580156772380637635092620919448069140506344363545590649266583907232095904459977282496176934182431220527186454144990162784001503806656084170973615236285917051680848137843046749958577559972893796603347403785561818986124751336544852345576171949205080544797546935183513762405074160454977967382071802128459349368946825475323366294195799230418332660127014694190189679542620258650956582809495230706745204717944943722940845316946048405009102439074862014844255865268969435677993589592283833503076458456355370206218904498805966213022303237960856540045917473658849999703790617779234754990024154491794516352485571778312202557455199400315791279516543694970769500926561727204399088793429295318106575916803573430101715987972133388179156992531742867273853253846138924753126412200220351798498728245675518948190571678000314537033274234962800661723203779806786444311771355762785900453059611915375630588627708560736967106538311423001654236361279229051515632256970839179230811087634581343248531731804637747922614410207205642237238862715805897024712640661459877929033749236911631581778611040629696820751993782365345574198846191960005753933462962277356157431613905003512232734425060963198324787859396141461227379175259426454883092920990144951044856073934173333484941477915479743752239993288916956655230535916097154803979453892503446565266641881677756826572223430817417144498406202336333947734735395903663197255309729433812608271963455947834467660413284000207800860843506071217259992229530218093180519967013865741363742494471978050949568269020071144402531459666228837322434391731430120208109646121676077001491569220865189813085347773581897359543694125031952811345467613129372521274992238099570356729173412216841858757926165331865005511103130911936565074247750620365067475621469477242112910975348148652908308333889560420455040052181983973668662754898645529506565026605351110437227220220539100778530622016966371655188579646372762353005965877548234227364236724278293960723519096731909925643045199208491333828382869404022885958293690840286805414961505352625229478651362745041355784622275728229678536548667905729041018956822191889280950500517069623771259780576357673566108897450881868786417351582753966146964708588339546929448840131079553579754448271531663274766761054013633927476957833081017884820708084581918008786274660700102063951120329986366528691959490730139704091716518020794716201357396815379618099530305744419688230525983297078068852580289451606383587017635566489929622998218445197872745673396393545441494040284779173886284064099388601627129749677848496046109162068006450211048970861498597254563374807376260880857220639782318171999279592285420532471307858504213881965126733936480772857209523612181223673232557811703844276682956702183222783992519885970924414614564990361331217316713802048820255965212698540308503297656441446398506743936404482377674947163247871365266930585239458145784772412363679217471581018312482175954914194795103189169073621384113421006803249491053686559433901387162287230563671402008097225009495448621505660739720887325938887227844260977050535373227392487906365365067385305037024955359210083379296753824748018043983402076969696641266207559891822314006658178111157121115960477370605206092673186941226843544213948206132688198392311166765496119000163604735675676893352532756883668690752050497184539601485128172131223308028708979671482037046519037699036458714818684913029069886110145175157727718108043010889423946470616265863242843101031346044093351492792205961838626292042950138617831776610559108108633554430245279495993583506500653708236255827768988209931883364703729552248603880943320850900158285519304116861095189264543191561737200038801785285756907109948493756538489874431724055435552286561387875476186632791316070665529869503263704051462712549260468675703988175218079263428483366708779860295025185884706520311038751463303753415214112107423798055872554404348563579909758440716761334635979132605294435934475958850297401340757130215428275162997634242844861496690928404888934286743355327683295447814555439091441217041382216045749195215744688586349820164839205782971823958120182559358445697068572456298086181044673357833807670616996286498555488840554067450695795494594924656322683972202199140091440194670506107286496460116687142253492921564790816398128474014940190461565902852877967086571922794704528786675546237197663344416960485210072745347010420426418946026773646854931563594164473333070108476695904319332155849396074859203152831318049816604814609683987684567884172197868670596022213031979922627659303217621422744620435345722034678641730548031604183338696751132426916316277791329886430384905822257334943115168431412254990031732710654042194993701261999313574200211079607785004889811544399316287813403644243786182642549797276802029743045939604777194002348032846939645924159310637610272815182586948938335643783403274527266194365479332853466924913935574061803740442789359364296536063688621440192286983895059081190953339602848446453143145333103864587678413158452038105212538640806268364709034968686015484318257912685450514393896467540763250772971631636021377393508402191779639713819166864828591881789669990520933784035783859650449364036802368375251703353972303905605291171286588696966588662326661191060893934923839159218452353210651867124930521718007568007815709064401998156467958646413492318960289804362373329715645340645669860139652007777758163853559390400570526931061845102650619688905309910816283522164989854540544891302557989650915496266490165880598803446704013468476197400142639542558876874596314502684269261942668861496800818751622372950216575876465011573275974763777119154073712707608399211639852173484201660278025633147975510646980182664565875586983284809115173009100250921127744303917714213532494302176677126721209637410799285404592682272067662047606416461969583597978032379398146578064218993868935882942224813761272791576995547772736921970127602774758539147419536951356310549653408854613978795350718280787255098354517209649399576663101365475174675818070064831050954183631284297426948179887470218330467899184715605685815587560220809225345490598646669721283254934813167538510419104914092520678004451071870642830423656924054958187415695436566081566853576016182082628828931133835142098433606834676332675863261522646952779989833603128744794532510031167695329921209707050193340026021541500726214794763110405423097421213339975845337086765305371069434105108656980558234107732906535388129746186979365435770033703667784938713189676461054495855093259571363031244439877183347052957578365944933795664755206902180214387772313596892461170358139116811778339885865519898466813840870010857254326132708270142262699471378534152898144552271889455273211371157019536184061703013632169431449964442256125296632929464132496940770371168541595981565346813463045561043323241179626768428820450855847604051601880244932665033019573065147650104893984204864008598411628216638960359463424222964125082683132181277957938202459278395448681529556056083707122506776773090824521927985852990508445439836250324720448440753835717870020331339787386843057536427559096194900251148912595452979277263963414667506161088304275394262312068965560618563647817566371538183591054748828536250051240846413471466524817961758922940810220813075525656915475219279552453410920417705063663967083274390710201223001835191193494127483500040774817568291977620124336752048611934929744382038552702420013297143989099867556842406615280337970899750460777028322551671944529673851678212091326291912457413058539112542287139702199819834822647553909628192865167790755561170198927334991752695096728177030217937801122311936002646770600801609037655467447866313324473067257173272360930317874213430789432726381441836632209317890076873383158613778348869440067166945974372663548467942381977243627784357530173014572544852650202676244258493599680184931021305216034229430867116988151097516345116586287869171297392493138341818274568690793631032593511275631062159841628694672158354493735165194426224380193494367688203057186617633093235465406027614299354613063587554854402825049485802195084701466493686774814734219942971451377096198773783182466942652918858471250874865540862155514495207560685968086661528372902610901097593074935037765975631078995759517605654751989068576559383498736986617024269352875381033854814363045789509604772735118913412797755855971384930563633575864196704241930116729988584131063720575299622902333853064869231745032946972205892253629738723206927821341553653045960875277441545488786414241796924406508728847540497410876002371700211128111147877911230510899927384232031720134007493013526321440655706585324724792403264614189938595835020862652527264813463612261885478639252791469021096676890389978825967069930242710856588061369506170901556945177749736445587641214600264636786149238996324709735001117869288397585053413866027229683562576736237145443777251145008864394102060897889274591643060323785187714578658473721249977942806916592136196119039789115203843428771432424211604426377973554690758327311653360004746132360212579300756124091943920350203085038665646191308108116609482885253744193873743246731927952254735289606900745715585137691230852491216617769643709243298415709359471037418287287193320157973023360771947667874686481605042429424479782695961584621647109616577618081827715802872462895805694502654399147336096756805257811983317221542007421812092296014404622313755210746741842268539184453773127693877573235465112347027341811525789256688902591762167796489600422454952997510924206966240358837564279866577944570696407969221643584838775786823806148961521239597428678330561268962609612868806439036429978246440261836475953155569831743255033985483769126728739587219488848624124599138675518278749912616761359196992200683904674850572560323280891402780123898453952557747852353897432179824217573779404956935220356756714895928140226138676421337996268854257265313173177138128605671109514226622634677158324368402786671437320921923751046467644195962606616678585177440820203517234873211616061634642822737150021100902974914634913098075170316094703943535330527415779248407436079375823458956262885877033289540799091427228787692356463184712569480746319934239044311614493039321765397350508742125333667367221710213061090739030475756771792464994271751300428605132776838096006405952812683859772551781434200667504986231075834890671029016685834189527079672103575296675204068777439555178587955525079951877990298833409751216327693478723693893895023982758728668242203952974630109200878447419785830086514014156907407387227127590958617136539355442362419859232580793292433817656679895617896383401070780932232426125961483516400333530872281836543583005576189663249116548337744124859167472466006378968112328344484687540998358175474028879308411455522287050733948601278973290792812288877143418433785338592859453573780101535308564906079905969890965535843855089507487175886191825778780285886232647582144976937816547889988964852844556758564822804483028460124429414034030093200680421018937153193238668761687020512845110440339423546822269980277418725218685940525286525599765678936296926029740514049876313379459557390229671283178038292768994821030297850674277041574947509723731573475814941238748457117535112697316864957964617094696667682852103763105209340811338002665451204614069137057368010604674281975582550429494397313148741895181361287064674242028841108872759411552865902414167294714220650121117750191845375878123135014226886974224019736606081936577078749196794120169869016228343932628287978217573307077179907016603216441014963667849488325381998138139624204207773916157517014094667398583030784675948041496527268522981468179818332423637055790975498239320269014788179334682184642932490587254419338750915131331097060229360631915764387421632162103198420402406453393510282055040565373463660499792517458960380567519176100716662170573167484094890511909744609375783414245957192831370668395785980140251428838953100086390495501886308719075457172412263675932520272548253035860154457126629682492354473749281314274410710259613975344280365834807639565052920013019253754105359493987276872746963990193420837962227774287460202288140383580009184077294485104183908801647320256410403660348717060258700844216728030215246744954199374294479471379320745200068690118292969299328500903538024965890023978100061237461532432821194793589426293536270641492073309840840796103597781197494746296189661820907708543206003958610316712343550146415292354008466657720952025099603511266354818386187807878640783098046982346406687081736268258710702468441236018357618128314893885534308025633374576452383290882473123270858424719660406492671743189154581159131556565167660906130177096368388139150953787465011464923735259507799427231543062307703306106753168017085450534884055194921418817836416986626809084365663681550462094015546954992350686112696794697599352703555039434650381454339320305312049453018168677725509741588551243653842221684529980142793306343163797880943502392639104331222719866586084259627963978177303371404765497477763325860346857223747815089656006892436543801266522999170549715291907649685891876336129452024862521094231037299540196130736910271719155923567562522488251459035992517547078345165183838347056667548192878696695738178376112087023801378824942306568211110648557462472186530800519900149646220589495287729786598095894363724239470894612252179111090012946026148439076645566167592905405763702700192589645592415055474324749911629988286907429375014512353371601926076755711610292494903040274030423875065109744293339421189037231433796746558796707346046015562246643480401679925547526923422617938203297395176279012391974602186848001410243078313883427071799329894494868017975269558310218646663279737495631816583580190574430804573319951789341752555514475658124655484327001732634781554989536691883301348665105630301404061322319468140217247171014751744746002033872009660396733543662576234955342047634513298924723237069645685102492199167871100531463956418272849812744744189488357464042302180986206219723968277456467639337490293359598111758264740718475425775541037468893520339726202079526910977769934110121298753030935564148273820070746989966854854853761328169103180277535873848359946393769569625723457713780709391123242568427459263067099219847521567852154789701167483640611733859307712698291460344310040256837032510115546310774025814863712904668087301814669149375582920468792827070356295146593008491531419200095714934239970820316209162049825173293722339444672484946980122159211551315165806613328361110380152007471614066860490450822845821652027014223822400600001981128161553686906819058692618841914207057856934903029974392438462526449120937019215701458145538318192030732845935947382474719370280661142120132220055810222439500750958396036470242146486206117401063932165306537592905722939945449731224047696226844655929815604384144324046198222580407643027641474238839089679895484074064851520664430684543616430541660207389310491334753356748258635395977333026335823675671195143324627776780475796353657501749053327833791808714856539509778210781796600087385716237665603382819159375354029082075972736718114209502858959091419431469944132753034809904149331268772310330149242760021344956661159573017732351338309057443295105886419790653925107710455325871447335358474543797030489257389311445066190036907062114292507225937723491657125687241141208760687350094646054927296846445444670654992965364753178637808522934897493578489145037278656761582061644701710859748391184571986472185934761668749234268521303890754351390233241706651550133914212367357676374959365544174699613290411455091177979648346128240960927507785638269879731541597879237485811401115694251382624289645269841732363368766655141236753509798952878518721509742969812498319133146238857048109305770494298931547395250187544618803304742411061314005577175997846405310023338811845437418094354492757752219277650304953416959630611063342379703310379316641299060388772758499818270891982765116669400113679269491012597668689070439422121033590062777286476889274952659748773639958454480799003137869067354255680325971328699101099613689809090051816752190894796292668220728968305101228592784690534804921551702052829815152638389489924627490844804625346965721999857601229559876339701209129299867864349117636697793983612148201294064732571184743399641477279058062708279880686773737479536673370048110702001307293922100792314313551410400721597983910761132031746837258418186904180400709125843544321473062528172175225450494715900275554229208599948426050348075007014327089293428810404685377696847851426565221869587571315089607112647316810489500461834292010768854696595934961916677138969461122458602365418054094020361654153314350892334291603723586727508650679260147609612231106358983997733001876954548246324094830920777373891855731383363509954531158092930296428074391663730501606363910308070846042194416631376304595124454732443285474583374963079925564072073260104886258495623497476990103749801244963822024747264694411147118663029135666287179675744510660686119091002597764016777259985435758537604657587066334831664771890584822065162322869175198847337856729024162722834382333913957730892571048199967907853519468908133276496037782025668633211501316759110294080762837447697345324042829471806625144736531255813968565001287855776013542111645052094326656041830068284918157492607424547211318682442049395350320788337342280863997439861372830585693530925118179553865559615736042219712055777570045523766582481148655533003901278027257869491838665691506393111936684405535444739291492758302167605638289737712149603754330317396983038982627253926831777971598146756477616222924409428530782529705753921621218935111208990845993840662218213097125799069114888046633344078129032589499978098623899313778271970084125527501195577902246546445250946643140028943935365140166546794562476443425943259697027148480844441483690163927781689708757792903417788862389652240871776886053155392495832318743393331212580782697315456603297531388672269101623308227394738557237048691353321188552086798317677232255737996670229450053113398179930904908162678464370410635212019562273199353052616277113093516918882959618054293270148056723686086249428586411577520608636754170795836797952205387417917301609355460620012280676534305550348478119957382619363129062063996187073287293864500156555468333386339126715325906799035557471274374965934763265183473030849879255447692033979402412371001906434234544804995955002678287706390009780048386593584135907372180852168301651370287321935376748115652151007108709926947637344131310907807248374349310076444508052365740861287752897072338262425978917300314095003708490560356094661917042046032078540730922067341525955096346063117508364238327525016902398713664448308702137793393747045795225058253176538094020914527096468809181165611234583550751304230103436331519190647498009640206308773885351663908130844827249404961484737766088709696923755031262134360291527350154730916893768763553287034657898821856443059844624826568867631225842738748572742505626356290527357359660717511704865891446447921675964707772845138383289783278419066198184055171002558105421207890182668351537019795859295421441276020777983926253761300005331092925259987026970651753639268786608909102266229329108188701012235784159056480973464171475482682188128940944277220965759946562502513683671659387639884666184541753317642255366796644956618965928404855326800183329352199529875976709734520491221601362214884732309298172322381573893573403331717481459688824133957788831727579122678760866179720980679019460988673005077628139053150585308843081799528306431700021537376921877406617438504757722720150375459525650514606835668789202265350020399486690613295555422661702595543208304355299641788137825892853564110782993770043893593143716158328614655663141378201681724441610709345986623433617260443151876886441637463484121630419507213004409795907591145330309750307545185604912679621943846590247374437827832658783774955785423365044634472049856642958328029880026871425137305575157151100184552164111603637656262228522319966888732330757743534079807870291664275537292211628569860699347842827325060310239986114639248923881991124093769159564401965468849854642332533705388511282151230372274225242333272801647245509313753836654204869174227548723606705371182334479436694579870533039668623536294398960789187216332711587693732435438014094465695760942074158321279935645267125857605095904302292744541296903132686385973144424130905216644517598729719024386654736199908338062013848808305802175928198662224046162849667470856933534853473598489253607623111906844389274183638422850222197074765707034399124552985544962594207683565393522239609360570776041307043444518796375763669674471018274580162427080301212685563026320217391524044542533115079631916399780269710461669057410341849342797100067373245591195695569319709872550193165285605514004925699145075568541550217598108890874023358374471438644763356552492708291187093477652832391966330531209072745154170529038732667679369745865708021090097713746151037012364496321866623339686619792246347143029614456685996122527752893742224640494690839493493923033808585046386726628937316158354919607630329073629635262906116198287798682422225435879365427203945637645658328009121523866950839302190674579243546125410323802632678204994631342630167835248506141019650876248937596717461456337518039428633306433503240483879722904723740136679749953193551700037459796382498670975907006770885638060342651178160611486191637024340600331493597031261643191877185493282860414268923977246121472630439616031577631102777923692528027756011263702181295589157989907907066235959704899614508072677432320892358064881079112882459493065617177656077089023900623247148964513986777813189904384345930079324477237234751421892527122681364496535373140012159577416978909360590449526958020749556159283132231944893090913223093460778910566743453616860131675211346755053069349947359670774644702579013588691685376281983673888778481790900671914046418675606963862530685673216344679097126366118644937787886380520210237399491786941239679286029093604788135658815783999560000217048137215646721952086954388635028753646428399598917970159603555127749013370778793636076434138415249027578361529583859435322588780304173844734354860639559350922333284240076299681590235978293679159460735004286346393661984538761976857906607961166050839388749877511205751874824251095894110156759767387604233815447832032897788053197329107368936483765819422482273769282618544915274926556774199317976326372712893406488339154434881983001116142968202683348704483853499929465792792249830747637712490273990257506681751184953725407838853025969855488814138592552709227403245244649086159780378249581405143253231150432300404626450335075398694715221785712950915638421460512626814286483020203396344915944409224357922425749665926009012520457577504486977215680371969236674881813823259944275598504736144717910401035863676203568277308135755469458141974208568126353540512519813952518896178797637432073240744565926672068713523665209586153069448024277226474547900527823541324239700463058769552695894728130580243985813952690672810406386804321835097214880777335029613048229955006740542461015749999273083085968855405800768042460596311407274921030319293071554127386340901992938582108256346403510187666480426804228332379680485119856428217418859423758115890190520268541956312250762125677106298407487194796881390109264315314337798600842070274877477138330657455337532906713808569897040864228729736181652349810323256095256705289441794776239938714922237221860473688436624669982078105130081913202505100696429665811913976539822857694179007404850241538169973035126752885447305752922495714139489730220902253145440595872977804097839865290255390671574380631056858027708825086866796998827689100455942127649634680512059529986902734705987440797470357073645791768224882722820733975226365069539056341616675913556749296897165936846318678882601284162179171642269295343925575633085239511463711106234001740993469065676584456643628824042021531996259900371639662716181920135080095481765885091565104859118058998270467212174937392532774237910453274402342121535413388157791560843666701263800534640839397103162057918629454970488322302639450418623221603933316087519567994516111350830684795202009741788501519055562485717521796300468304404910719647536437581265616202488086517626395365818536566931536066989860797843809415592397828097949526089003805726333661381985131764147367743244490078031599495393557781958935552700075003826295488282704412847383834239226288655478017681777301978823158625563883865552277759162221922680219538503372455343660692299487229574338102184413623227462637944030691798209681243515291530208513609616542720977259273037170378889794206126114966474130969244229827822907077484361646672634703124632629156532519322607564099232991554059302525324353479257631196468852920093219866624031266462440410781942000068075763603471922580740430109447886303965903158768462194584684509751946614079429439213774172590003910607319602037192602718974714253765178506627842284686701083261354902354976498150184542034178709798248710118197181449241949400665312134069326165567906745930924567339062595579131050358045925192981441508274904769429708578423552680848931950077827881248575002281920342695707641923461718985855218206428230852735542253193714253145378251702057960424731007510998334162405974084377499595851738765950589226464063374753245646280517942940390459183375228894067729978986466602578609316396590279847823179171217360806866077699760546036490467330218367558987035877220503579924353933109677450745917637208854815032652230512552583008696431998843934982135887318755516377242313046678277782825170167795875702223651435282743860090304745784397739233498225275883367688002421538641162846399057012277500317314957021809046723295302362800236441476897556963524927765403320282873483270391176795026700913766354591766126511114646620742419411112959086055796351779479738084121385500572034737850247551949194288922888754725611385597765463391533478028801508322201549161349246085052676454879691678923901734692174505079684400324694724644575970428717695496693422556958184843738617805389735458065779656290021931369674358935377762381911453746066254222976158352501143851290751282518000209691748180548216663156242572853702730522941182929961359224944796547664290166560347735980211767538776552903812787338555561571210886995748958325951043181007998767061517510593052043102179354203326908568184859487434607052356514270246962936135839351126757778313926661500193131502656744557756815456570813747983270461652139387816787283909242558622561399742207074918186876613775316431670833578067138667743804064339863012020247103827612541377880044355951448837159095162856960560118710139285703078699610771679447231702965690688171287491351015375294183786616347076544236140243948537045698733671197746701580384465003154804204697918764300937220620305984956940208659315297977200864735484623883786131737153344684134518088765045145477885134413384595543648861233419003768248443485165463703475621351016069705411187882052874542073086560985384663712483586462986449785438732528764774670605324613056346297681280034931997459674407217991695362322235820561176741103089533144508956911422459217135338655751481826379289628335404426035174797632870284068920626722903228422238746605923720252181557910577932595367677768156934202477800915923379414617151736965276437093877550625909300384783210802012417320354829884139059260047311672453530159652146000015643496760388702160668673977982618563907584648492088972079705253389901712190383906330352329661026946394595827439599620692675973022047960873219706707582503625966237780815622642685712489233337014626967540094052421120713247346356157692311747586550847957868874019474910999526347632262407709709310928760583420600631974984111469253063104073474516870623831268046341515411866223881582968991296486946972573241538668920449397207806374252502480168113997815025896269883279272384367483886711590079089404793973354412120170380360480554074950919789218129824791011410347316400007996939481687638210839631155107048187981639460055660558637549121270488509813208219429958741608426673284680876246641773884815325742671116886170535322363752733492514189798111496532849396911208782156612449341622610843901562126937430585642908826012622902184604398592010890949080312788763902640204374749435755323307833457353470845486669855925392014957041699257754119280520764687600826695271504740088178612401076049887921167922583943179325093434135724311247384190358893813903551571714790361488130370717990530129401065488038379007420374257830819962190356614016716806589194506156502677712761327144341232901054549756110270042295226885871988558464023094584656317026971218686771036241093004062917442697066157162270219336705797006235943726857380869267534087319373663610166933105340523582269123895533229554135198528089427702333978511867956975231708616303263888638252140211372372841126917427424503822445301037100835830956261264956888342958414531805006917319038810341118167093684566900008759837960012302409420081765780818269919898608760061948100315086079087004129872790446889992270810551381313888572248271400881605522482958041354679736432953434802222217427763574413189754377162827898691429070160819693765200807932144389452229764194179839110623664204076258965990480074553896941173092227819711067597707807448597386146987057012098225599598925194502450377632671136895441339376417908520329349769301249825837816430093803426662136621360218372982292350359523148797494764714848892881428227277048321440009596086518758554674423040723288989226420176437089582917225637258061042094583775090206765568785902890037720623760534978945078816896103755930709671152846435563304404284492332219808061591406517229435599766092167059360858074187615001280642000143106484398561499900575297050682645683011814558361279718435710711220590587362289305525876780348221408849529709437248742709556419556917325845349954364617527740446195310472626956316047390907773552344881438581291096897829812228603636841283641577148963893010172734771138808155467276793391423615568487571102167006136727082578080019842559582693864038470186307181607026324743620008481250599807768560057686765700513353561459952756099073385204886259888130941000152421984307718012523233606599593809617628264832373772224809164890495794726957448227758102367796209565929489317296705621676068284249113212417237682725068969020387694658417345067341944799681282932310969810027767929089716284166687229816888886300768117099048984780366758006954509145670541304454954516830429234935878535593697790373122627966894869310472405718547469972903702049261480635529774205208952725982550413910284465084929147090147199375580937733454749447922815822555385652162190749133991569520107315594990916077532902313233821349823703843087447913486956129238740396583306858663029430379649161524602431423415260414405166022926953537335263956665213339597118881222501661278239331674834797369198447036115258650789830330328246622841435348221064665255271772560142240709182635679782857847158462313408787705095338640360651254908252026578589185820154927513905241629536490402597225419384670718679218570793198838121760639969035229468349993345653716969110117006612852875403884237386029773211985550213983015945829668506746377621659894792703921049253677602383328230958790236592533438689463500259089171353911529149362982620988715129376544846115510785714531459878364188312818798816940956846439693822548775741263712420138154240389154397455788009509878077638330773482988469457024659135216139300563750327378947338143173528035684451653332906589045899277838962393580021896216333119947406129499850090866558084099192519831595254043403935462859415272845121541836918704613173436117738119496246133486165466757320985954622550610151509999055226804280048495554057957432337014983244620114729253542695343823572260374268734855046652159771158723230545868295948579355596185820281975776867219562602111380214804149847776024646883050263220594711493146575928386950090455171405307079765972672544746632168417787104983716286627623856000157598230867129551552317931893348082472336635269709196386926004797647552565680345049217514899735545928222214071247374534614328589599479677677559269692559345502421033224624121328685032929325196081952506368317349765134783213800756019969798480475838275875067560590388732269312411555319538864094781924732503009643325896054741523788839196959800648162564877326794969174400521005730203778663384715989374377532947865272383889776720565695302701881247159996745939362838002345888015744620061139891477210598298348785316397715031864416731080084824360334186473612950855249730978843898390382009443222653502681026218699792714090776462102915274929416343323599712828533635828865992272008323600625277070387162530080050997159823235233337357278880106973900583727213179274151373747199918488535037726223216589568777691843814622234191796286734390235169692825052610100077183190013992219863302586926273397984860183859116672498295727996631695361865076715888712044794428676626228211400279653057095551745763353939250060967786236008797554784854165048100037539508957748362154763812742067991123189450030347687014516817434995915731955195998411934999966482104475052253760336064188280952770523032319095593579809055219100004617254902161256093854013823394566218384780338111177585169644484881165383423314237724646035904694178434873047535296057617626685725481242793944446586890431078354494695826958753290898428868472413978778847657912741301679988510186969348699140853966074243350006105584615202486194221960577364803133209544592101024454537925827361780489225763882763700192056424512751489218819194969192913239013115741592789083167260439087032271097794465174269581336425484628720915439499689434054561148395316848998400066830531673737677560232423082652494723635925738321731489302257869120675890131235309019386669242398158694011415533576434134902981147946731304463092660631209576613132471462406667824599223577960856238426122672500206858716565297456853456236577574929095314263494094440212815817915302628486473873428065178600170214847357532138124737601187581230033198412339527428092875592660867776536100847277577868059663004595662469649444099703272077217615950580706676402502069158803336020820848202034897723957640405590085460914734930759272554099166873310921716531847716320375444737347432345426160602788298822301089526389800957059876288242351209559915971196954330943060839033194620005942124487266643273959466667975170343077742298905608560453125543060931607257833355541977168729641948342334455814494234441331612365051455042541981679123743567411489948430160919295896627015022375218992690034077808488794746592741774604482575699819207738987519974547519590341543383561302998834123156847836984398866733501143613880831904222432336082890418671560801278632774279892996829000555256415558407804834611090980785752577226180590471205804389034488753829379201024345420256948820198674197925356371232179517182806808761450346284795248501721612910550979614678066195960216560137218004406533375950537636785417069748701021303507287244668653528519799125746154717551186300893032591757847095036905680557903832265778731623362876132064493593982266269449270418853888529360409781430442751344352408341518430369671173580590228292623203263260587542572332752664754059788523030617882681316246672517041925488154769851079589904862880182844459950740616893937523053034158708936894175980792085734179260429214235252060556651694126694659151502693086060075512507593979025796261365328584854738181613844227900347723100417123672074254274234408801054159294717702626976380735040676864422587505452185524385093988791609149707478610826200493061875700965924254388340240887155227822689718709567816569146172623898190223398698500938265463148501785710981506251020521526132517918995028734404454593769108060348560285325619315744084915381155269258324753920335913082787997076228006512186756312549474550008902908722922278184705636543210119800100268779436037650073910641567381985633368795755229662326485962194971116955640662870760951533852586460095942850126804407451293753452671833630803682283194049572899969625654552515951486382985531846526211258029483764244236765238307578817284369552045562430969787003796451946417200058363070731847479704208779681468737814877354942241301808005714474734745877455874493946671800954798105521473768326858398276548901871390431391138347238753579095925012142025169137370538079605261791836993661662510368895869661963470674934097768495023599838148655866429934137354633663922553596904059163380420208173688464628208754815731547272324190192157778483945151381040215721354108768444792037500291563308685065704705983652386008860375436610496659345012142536205796088970643777167206992169299402504781225778250358207812067562350223362648533305220859233410584486564240376954687813837328645539051606356447706096418903005842200086469899922291605562242676205723778740111209389260689447496216461436791608574764746932546389949762911658321656461953015408941843339523244845595327343169247606990787513827476301210599088901849104577682925184947139494233285134595153202336731731381542983187858650937441203500919525108860262155061246605177386612472724116723212010673247443072646882259377508718740464095396255599538912105411646001547749478566415806898251753375268276369458657804933633691513393241588282543198376474803502693669525981894181636096783537772668853341090891453994480332992749479976152560186102944611394415969923438547305748227832681569109031629972429032773132993407624175136069818019200954346877251524687918123926255278949265965959678885057894547687035877436234809967713049720375949569694254663641072812491838448497238055714094421938762819737564568599220701275889955536280653026328159869987632936246957635753745201681138572268257340997597356018898143155997313040123253383043071094621262813117144768161357927621502849527972577606430807039964045646766813033347974010400964571400164669388271781635359860675853328945038204006237975553999810266604093485423535339647092434345858128673122475304884419409691332933533078735308833301089121255314255972396132033339697669441754750941494877685704109075651874571098920241912136790417516091001647766425470002531133027249560972667820522560348718471095260951242432130489069101993418460990602702841581798441307137709267061288805703328712416348798068712211973960061914860500614394741402107885684607491926613636163027987660333080865701302328109065395029231591159185274369626871340774241476429014388389950838242412726167463279856083708048319645389952079981188583381269682335635280476906560340261856813860837216138864900205266338858260082589222085177517613909981493713051819965794602889235519425180703531578765431315052315794688320057573552536764875502765794533413998277537683222830584870066649366933835941536042421093488316761005924227451824962374927546951116159805847436507478351272047521937820306097134935032465513073526620458637458145560660157266744087205588543822908631923611441196734677474370197639652140760650682599767804245027763569252465759966508502887496481919293559190164980397265093479413090018329871469055911910650032821861624641815851909170958838989328630588787936119182793414840812558098400378088797049747676748152753976128803716292231086579550455592674318724797770681573723597162851571147712689268927409534474899619890725771283764803610377430707515551997843713953898842480389815922565291669223745180187743035348941455319884204636583101127975986549234479101136306461197517577837133172120044604388986652141884018606733733028892755705389511642503560168925415958254884089859878868441858469059396797196781894527666806565999297258484403723157140233138393709107697524174781822295816273297560323225719659848387552699269231686294710004733833552873546719879430171452355772766588436378899510693270770020114592317901628840719473567632385680637524454929314571098708981563844536852082836331385549718392851861428306572055571500586162066226614639583747363123832563109297494931256897054484167064365122046997961661557984537784991003575076156970136577009436712217513012167523185730498377228325636827714540751204434714832576456320783063727181133468139511455360070698753069002402690242554607147415608481991986971495837190833969415757184932887169500805435488847566086006474019310066178101131233993011348695531798342958053987818875096981805629522583443262889323689904836866591246459649739399512835720560101276566986856491966057985552291653560539473262221778639371136715975478519685697111701314750547925029607824580602431055281332181188582921507489816223125516648572181518950110418122492883631836374500708281132722814960756518616806776153903015015031338451986827723590361628006850757935012216915398525782255811212822610167224538636090332691157914308601387633946338078396003976241444765920660499775410181904959949407683136633129441942225931240066052805037599378758957322695030304686648818250377606607750818190272359471943595645918811419384505155931291207396985544249974241876366176771751210767170461359243541585696272541143269600195391933680002736198539859578278791641412425254113899530981534438870766712173633759234643774500660798531988692644414412314270544440162630104554256052549623676651138230929210154786321970142130662713604222570006391419812052354809789148715352365875821395817165582956859953817691387491851241207115964455775284811644423203095835340803326280250708560321109676400190853874721256837277912102752388047900496010685922060211091905097190874093356771680300081406424988113429949856970575644335000404440719295481672928039547762842399374492280446680920520476095682700724079930634424237788211860485123860746078188420390144780167488425212074360222127162578584608879974587373784936221557623542849440703255975523631134395494265427878379723281112519565944032851876922658904457312835291479735389633328679717342803114530757369661477653483794001613209548402977328400964371292197036228098909662541779879617888105271270821386896636673049527640949222459896203659569190679082572954045939334748301435865015255324000173446824354068358961618593557543825496587064449815245346983732317135955143107005885544842070377905250910621084780707490878696453618742181474724284925458712449543985053716754369379123488881554434462409074924983211347442770139585177244834676658287039563825449196726184089163883855362487604582213731307500442359994603423334039884298766197386073925271451091355059594314719591499948238712094696733274181966526625609671523501771990216302475601070074260463811661806695806326498299856792616622852498529125004393664932082656668409421713100169917269890412132870214853085894969137473132544636005046542835343078272087152266824815567901669364449993896059899705397055412382838472556486620123926048948128321518408313786736807949196048155769165059448621905315639158921915166004431619894564798415833711920337409566055662540394685453893160168580705022498445466871770894240578743998167832321053978803571448059179008823163784128760001853387782872188716773905719256864477773301220181429528938563801119214789614605634706652950280394254009907166014567162442926161803243208447332450157870819334624906433852122999189721451854457111163806743890982789714403719079070343793857706624591860353892445274538721601231487749504566860031868790649276950295866898324964348313092515224590296870560824825721456445039465296131368537635957744645790950758059739885047701067870476129406240682754404737849884572991234938181900274003354361619103675233221575346611070941481638466948854573626721707820177844481624524889621771026548008035464546836475235050415521299068087188878555273760041239004192231356906164201823259821191944333512390496160705985501196938819973702620385651075508166563784791018139467329279383297000705507935279939365237067991932858100911525128795380626596896788489407307060000439149718935004854333848075216562432039284845488372820721298698326217422772459645728241030486883828135001677808332920025663017132924545722691756031031913623829063977431279762721514109911317338589689310772924493130391494383993797019621359198806257240236805268019199192803931029636959786027948241310177935015554863645572629235432989851877538414562810524218664033154634243225074669134154248497618048134746838123966138198861318419217208592318359731497685530530516483353616026072915270083067687535684473935096728532520715139267881481267140217350172905654581241566387585018070071709760949610773897778038340170953916990112693966858720150967934825986268699388391279036088241821302468070968416601309146272529905015486289977556131132360303082114557969896205694058398009405637474988149780105872722107114579278277710417404467767655794013824893581598241106067275090351992361295568852620453926241810886776751187829788117993880973090838192174156635494267452545347135462251637901053128463277197195997358873863792348510808901665283993251168078323921681551569703676738294847781815502008773739019189916834185082892883930195939112339195314024655357972426216230198588800431553895955319481298951494568140353292482503630828463551478928838502770573442865368667254569873094448447384971983018815390419499221332210007976111231150358436495808582865435401362310390798874518051462734495374215515841976483144352390971263145122353935605568655486984611334869014617194213191417490920606477836133188223633776546491651946471299555669531983297012046668321374153705186650162905401914885488134194039312696878200012379597001194600158189637827567739878309476533775630710786579989280671490900678344099588306446813302476928643225290309156845318863252438435922461172382729709024565992515203953501275935196386551070599923963731550419620748190342627144260935043795526381308532303989228570478373782119142038628068905432954692051001326653433715962040300896642433375033268282408253558530916371756002447416469534742933942287621105170321824194728053951835901788094707947740150923155766142722330850029060451483069084451112262841835733368670395320870022253185646037312924543079531242825606629073959992873708316225054005992633179944843747566772101625895508348341994269090392257923722409252451471912617951463154790846362819246269015113635431371508014602376902461079784609452781212847026007491956003587481975405680107570954814771809946293205896888432027781562534332818042123188086152336359298898198103749088851178941353031988649916534013674981191397869568926944453857133967635919029769045766218283883327009944116540758439661727850643959807493214517765358054797707094836320370559736247754110378458455980054278372237319373161801906603438348299818498836861423380714756950337416607719061438901975652618072747091618548877426953918870128352314375747019658919477968243286439511970936326608771320697682880493903921712273418080022862284234167804199371766223773714129641952664007883730122683643642698845746321954619444503141170394623675651078393579020802651812604443116673360929038811349885175829567299541151800838794064964220982365746834208870474179558622896614498652760890766210659759568609377158902904601104517526981735498446202670757329133642012053699187697458048145842193652524392456969078882365875808499944999551257289106293413559437620353924342517199656508614781740467973392796433014950095200908764310185520851670291769712411232565019139997851665920924704742268175070374318957944369473449056861347437762269304276543075757352163666706332194071161607808054898609741603274350390296263737866878335406641524159159449290850039636088514144344721480303558451463188013366034548155604520508748633764982960542541667235053751075622332659824204850963770325034559194456820747665249108446697718805937327593152004197283103171003733211671074182261920626220877842420156247532188778466259883843736163807922195011303229620945081851122064896002852154205116433164106724329679831158400275888295484005267430965339637907516164552767375312477021111685217338459864102644500972076327267765400441767721679751155612853488878930306470442656267743771411282252385588146564919070073470037284317467409672822741158127069474497150824433999708049789023278902488995537337855493801856113185097766762648756838374459737007030774237541334286246154024256623709039772440921418121941520193560923116723622940719218963271157366684603134816488287941906498462980188849691330857463763342876354431185945449085706004557601948809277174005353821985327791961657220202948395228686205114702050342167873494282488538759187350169167126641806566045056183229821540175467336266351147272241773497011768446543554968657953633933660802439865046492159589263138443503139588338887916083750860890676501539661508010816240069570722530908714430031871935440880304406496054752765519436233127204643575557078386687600692328220325457762887669960209490011408852463306354984803808883211882511648394043466026557853149827777463095941818040399434997308495728306117982634122853129594723774742161834915410642056354048243452358653834727538783434680323524886469689373402614129528496520878676843283634339712419498399538666654492064253059792704720649773670568084519515186460166871680322387300517483469350530108272875781855200236599895444044692507431706148185607460494954084444001938256711209564569532505094936224571490942392032111830907577526840832509633979591294372206686660595348978361726699430410393295915861004361202800508364928477646703409637950155275717584398030395485210068571372780612949243490390091575855335285630050499504717774354866761797830236803824796735063937214537809208505147813478124321018980182967824031006818379525065951213701730554783872398212178160969015529164787807256226672733677650175612061622848418740842889261129896165781677357183380005850185179235126068858460212876420535949423569074345960742332757931988015807258852656713682879177061277028983120991777639205014251094424451899629348170644837065942231664902582637615219751130491835906939504524337914873964508106642053857266147053602200820313687997283943791522643073231652767919075430947614261761179143909315898536055117234565048369437703769646483346704652334748149890531074407735280622478085423758766983619311928556143313333854028636942687756249098589551713429240063508424114839255994131485956546300021437188215646629020953921163567200058429453073406733167947536388257190853054305927395759747352051722024851853242828297943027711454588099765099330955765043610584444174203787756072534160461556965117790293014346232408887201956997304047381164867769984751172839028137524779706592236561703602094260920846905203906892667637343777978822967940300549923068958616252339982638658783010487388457309023271565038708197705654614859083568936153963493502906669101351244397654436727053355927575438213623303216607330814785245966633000178064529704209277526133921941338512771993229805965856331732882679835156998280323209875394911874891641957640875049622613832605195801656190165473350361636523656830586831700323815280465607526176288299973665725969331570148316824622108541998150374016082588120371752754192977920651510420329764160278903122016739661610747742946539831543612504713072112244697845282846454905887864103902569067415468207227222428572690710676373621181527192344147211014370531631387887533705488575002384039168602053759708872894640906038921342290566781392524745006657764545636210180549778428237188573265568045488233892817052565914008510627171005327351742106371574708784076296881332846693061205358831020397625448782147878077318527349558869404098706066283640655222455442331250122256796536628330104004941225982546703797800981355123627530816299647370685795883938765788490428011358908218556221095570376949051992074638096054665470159027357524029837145922301846624711047198250679609208537340462475152002311125622322216648408076175115124983147400145596546498385463168994334221681216520716832092394370878633291470049106153659220742463995207702349665948043696136854902685113090636867895128495036106860815421438118772828983228880535889951843159330834519488917180250684855544919572216457502355113691137833741983489239574247714655809582809208025111067081505809174761438130106965639450831524079579191184481187448631848679326406762258324741205033004239571784729178132795560449457344410970318097721209958401399984271067492909321336618627040417164453329990013148251785157467707709205831546091240077299837109766452276072101653633508727803381585519466482264815338915040838970205656471663242363079472171560639574975737880729449301904032747378782392192895581178055241103930331990777592685078165324778508300325372878594899129807906823106033757689239927060405485192850317671708401369615332943010396004790694053737273084431604292115515189413427466880378148548763372990305970676943860192653648319359395033423313593784254194643626783159190535352400095870600881099269103506306817654238550659585443814545700730179325295643337999742001040101926461207728694319817191738590692868176499047482616236359842503234031467030457124683147132081700494706584018339799108405315511035905187448243570195888807433030237829039153326302240234361911734163977452446855339506855325704564107148186285289646271537543089851337809619298851618235218225777199511439348639298752274922039275436600373510562636154046619831078598411201404834014589664565746999334691366837260678405548500088519589732783605878546829704098280181659450739712090094807621696583285862065422329240409803461747515568688407758702396615563818347100295665573123802399292781053580138451731095100673334450477047645779417287534699273021725377174758103415931132122676325164174626805696604215132195158768838269932650954082982301002436723486442663881887206272929254631561761392285474011440392134727413725696970146396585948746136835481214507756562323042583212224927155230229814678196986222403576076320029021940677904009921854220990710816114837918147633793517079880697090562608862534006206929083199984561148189520225895973568760818345730681010557435826785279522161435107859587990633529895870239196524560295729680194287511975276046615113701626850254528959284438453065801554871694567499233522340685222026015550618564817078011970225699660494943892285342468851644481141787994581551102859072216871085845889125163916445860235370269703047107740012965983842585145623047764873566162382752719993190416752464182121191936617157025803281411030667976605445775675986682397965281703477735782244727859952257791637237834261704828899585240108578997823064243703636133924926744312443724632594999009832997835593396963842088460510554613376846095612422284535453568884846536479435144808139818283438920782709528006214765644094375662928430024702051735313625057801522670009950613284431443859994076774207743498218033531698056026157988635201910159641540562039428055137335141339591053048787839630447492051330878670343456426675087615633383207537872313781133388664086934251723203440446114922282007929496374615530582778471638072842596429520706776209650853876548474315497357851981044415109169038265514860589746659218141580387088378060441201486304824394291705880503524392429678374701612599371170475739356950473736960663357061108411292778699409414744379632495778475227047527154976123439737352717002986049058879920487321013202582785661901288712372726340209547576435610866482250380143613294758414678624583114632595149260388781483898349496971227643841754139547907866430228744823499393526217962310630813604054226106838973771956939376826923273338087256115127711936333067466992787925831985942920540287958273504627273259247369596543032338710129557282073263840160670000204911975620662436777180804301922349993668228340085584013659526909329301124515225688968784968546000332657581824868304241624902129956771161876776371145945918331117723635032329040425735051206839454268818007022682639743412540942381452932888767701058603631867841811876256189113328065825306255550577636473461924189907667698080947348917934891996830489639010598963691920385334587314904707216316199179061500864616953265196718659313206588153806626002565368904047070413895923588362817038438544368880509583057755716899080702604920668766412110527205446587405289385803055583502295335150727628170204208593623915198028359725093823646120354151918388759575590330218045776623296276391711109802715995937930986854497023327124856775335692432035543344262448378551330648394858419167732541953892962267941304962398112458172759077659460670006543574402549234790370802880419516578098691431510994902702144792042785631630597448918098412171619811539013053048840678763357891610508839317314140425647697786731041295434575824246494098803637621303232182246351026744762859146625005545669767990418041646597454532701111086526821315768188256739249771451653141938636551367290063839888836974302748581738446852648852511702850888714858949770948339913132956872891008623095940693851896344207518346828723574566596150062418849183575930527051619299729317024449473559285087536915966972449885286255116141343640725092498926076925761351990682587803876409233107831914643864628775374746968018384700622049191023366535595839992466705884877362513291081486072098068348340967926373393648828981579534559315469695888337259036200132550911837085704067629044409610137357152592015274766898152066348749439616158284305711811383261413404930482577982675240829343447430334908434611251325714195577241709155434242772342160477516031231555757553474274407236475146487955668460868092028120536627032028829634401018844264036916801380020913990877901439511444682083185130975094719222838826397166412272438654191524103834766482752081593024399229160374020614544387749786113262638829322277155127824241101263621742269667849625443287706478394218461128366064363372020916528317510837051133529412658596843927858205740782320971180708986431012893179441561855035418516345967134526249794051778138560328291198953278033685648662744862507284401638354464582493828232546542410552669502532240453346121929702737652840207782126528185002244350978414922960045051412317984221983748485157366263889008828325950844129114088642873752287144030898784917174803008370106452210766125990901066375417106215001709842167810138433384026566657445705763256858874251656851143317378924305671063239772829256687910053757451828255057003575728917567324475471344108163755409993278768909533762544962872228492274744363366688357943250549093018944376603382378521756659258627276597662879517746552614750315506724260517595395614122379681684879871893387431880120923347657218086597582620382300141806137052677724868327021009685114580630956318144971617760735623888757536488481107671174384597156588726006901699465010806250805158472749602865212034907932706368619236117962607263926203707734652499066099586110693037309435706211145584903401786161640472514150101245101629263511156148350501256891614751064420091282313642455491328360468619587399449229245456771266693177286553900044256918857966190871132990583066705131465910604960436296903126223894913191154202823423036945652473196293423810242303569166014723749873122095374714175113344582928624350702423122498345318932474060507276174193807398357104143368171404449229806285420592092335694925223529302694101934529987600132919065108651840947236580768020604739664992493976575924055651070911089931025348409602217832014256308985059389172390243957071675696101144766119968193172261491203172648052390230579189290775269329948595998298775600777651146955753561771739262514846392743883580690271342061433380904176538943779319525702485980594751309497521262521861342888849053441535100161973704689790119528777404080658587093314939347833918442775337107459241254496268173398918361520831159743273041047262654509327201468771105704638064238215228272572724324009408577745795551719044618281761850187476104743301734889686633418700667509394281069763295381981931120682863319389625460922073132495342069621373675597911100672990362770769045081205654521510415536127474214728217535483688911061228074576525840833343237756002658167751315903950940146495364419889796722174924711456645344041070185021563289994024161350039148844872950678173492316060110769214464848691036099037641989000186153930636722913636642044756729964432739694079819180784186026625323290379588924361963333792525945101006861108966135636181690464475380744336353845381980056081841625148608367807151594845097574030606324607958960584461155408358667857159915249255496845901109679533074695134561265270004225493722460563396973209510958900712860853120408560604253984317265329022087326093412283458078358496840887340966718062744275090690112157961536360336606792895828536955916998588205511627703338680180850948288789115896335248845500157754501342148686587409778877054431061321221770810558815193412963209468078054213298316526554861146947307515773922339319631773234065935074976438851541144372077585340444558591026227210045238875208193854068055986918444862930489432099138605205704218197973082883773950611186861744564773721741364504925580317235126733766700643380658373648319501097877157524110974121427450693015338015216020657516743290326401512629155323553273306855821318816264513109630055234247979298953028282076064576604471921668737869003531901310324353066146737343185174548100589727699456314508842641584166742554307282034106544602703125375323647481902062386779594470979964725343346138002094062026948495732985221224207586938776483998943097041545636746464832910408594273616750750357739325563303991377001974887717396922917978256584344459869851948677872391178830055734179166234493376282744531628896296716836555484208440410977824268326368871307450316387398479588092640830744756995262649909459989195147050605041061065993488012785847559797660604015275326989039516071432822392500141396792672863015357673197839276737411672643071481964720237010594582104728514356687057452189503574806766605305181277684370838684012852288000395584987033556720681665957737311322752564852126931400280206192592533838245701584202040488151386046606951160701405524676375844508113326653392864811467887182416408601292756235883722869632862753854293255659060176877018669005687103633016660119291741231932650047273769025223551108969090186361822685823167133091358881214451672181902675900650021127706453370893565404453794853888036468871000004174628276258030193803139158426215150116374480113150757361926050533229247023131689886028586099220965094916650124291716578050602278734895632023581870533208023289040552799504515526551309423089142232246478480666224115245980253494477768724584549845793463212760768106117572300371632203895432473456388098718517030643347718786492504571384700227653803871922751816697844911323080715923213225269685420076386090488288157527140868913875953624006102983040709153911445881217607165494033101005371321713765435569202086011599956214999869778181159174992600408405234479557288358049948146912170200253169725890965202346511324599051209686442414712997865017289991224444298436641941146314930906362013993678767511164982313075297487925295524264376177035912505039086401654254357345194727382718235316644268451169081928186430771116308466367952677661545022819775689613126180899185131718344989339244991844904381383738671163978620465935983133953248151467893737832334285470611320312266254417696355038955666045535070873039622495861568614032452802226192063531007807581037671968290782879952422164429461133780503439122334169263439902579217752417205772430885939298948525888549703048826017888834947770169925803781179899278770825045995981966851415950987433102383323110964807262444819583655068433140017384378011276408034520173349142137665388522954686939250868764610487211741398879003749895559495746518918163358465224149046025625675611490599630227837700124527245832273078377292198050398552375509928894536498381886602808812432235338012574239282314773069614640980878649537394446447652094893069254815105362925951616363956850421011995267967568295587872071520871239873343913564604184238441009717146088875257386332575302806755349547579692303337189573508951357525471235211097008556842836727336836021865266019036182126201991556612544706003579696695405450226959181652032600405888933303334312694619845150734926516789887802919875337063580589775645265076007145928656256373134905796449019773366186722355418781884596490377127939381016277454774505763128945097494558056023045410366832491164741318386669465347237036534656353095789794284796568249585514416322365505399677069614490319182772376664013088273098955872913440346765248264228768572505415254949157653761423203387758189997439873081717528442799401715811686668646688147697774953346479180173508543697694113750151944321506993367005091723450295742936730251523364498297001533822911295414939687938226144824797394209299325765358585316408354663242456236488215561331334910878417137902291286001977743460070356361886592183928007890588402485850874207240911474351478287652925258192184445599772786577735579946259837712660530048515081210123696059777781058794147461078146846694765848512057787860008908522596977870706196865316404422277606222462263752530671233989471023521892089397704033387452328417591681442596612771201122732415621377607723671605776622847570548680020782886618387192354125304195516607754136977975658141904167072536896225691359878838413881650604276539168649442609370788868067882446861607999916740902846495522838100657673222914709816092835905633600120071881746005716040779018662090477015227659111782482636840553802060440170812784764698904020365856036012064843619880881748804211963238487002974829627820447211019229908985270184916991314333910887751683608809259382100778878723948538734396537443707108821434214265624673559390300127027483080931985390064945024878592290752939247990694976659553936804457689321570021772802224379226954446279845430042880920734850598148829227443698980105048537649232598490098122746691597065193735700557545278714859071973870187888174829592933617106701213439473943569825884564532767746951661865845898440514614119794378567209474646595071897290302228574845961907507546814894271805738340549706203369403814148209638710541124260417055436443701656407084390258746574414269489711915905378435866412205124061145739527671691298905158290169435257555149205344444715331888285680430992089594081772605391037112539507122438635209936083411433633712770072751879327975271289492734506298023376976072037780241108441280218085734686435544279459419779914884013860144027011498123194627703723557505824120949590017363133143565982289251405722765290128925917659654411066966069006274189952729549170799839288109612317753258563272959049239773881175347222248069037956239167694111101239079257094581196059512950003220314441499348787346358025011423875315963745926897079385720427974454470748835827117350951553532189327102254547349910746530183236848988584986422426777647626826246934541819709357678361505932998346843751524288298355655610383040800982479524039874444276286548490802045795001211493105408157849373697917756087131068205417014072167215535482743859238907573543200354265634927211318562893287083821830075073504704676073664178245736840445367464453889874299794506428281333317066671454784751971455805095340380173161429513624502314691819611240461654770113688222986480544962129672429565912176067802428481766550925959103337775549115363661438518534386862444948243899822213781350197459875492337083328465746452075205471545395394848195264998642108883351916636019430146844121552628085420065275939869643359863662255406566148534447257545324940746711276909169417897826320336412942482379119614909489657767999856862979919436267620603395906495610596109545898572671524242309739757306525687665466589179711470758013810560910771594640880269560098027406587626921149211722140151106562192611424293097135809324196576679337491252134540365467310894901875516613944690672561855282652494756606131981409098283629859882845739424448227661907912359470289459898384868101801037028793020980871723523821431456509622072669513244466615237308541741121258171945832146447869095882779228795332203386649566445793370236122389365462515045599258115493635552411047290550961435329733369817594263022609015272507185586818368848165536302219393538341290042010238143799022937209239853726022375903192074346226898922830828694736953667952641823793365356109879429519537518467397583386135501113454687812355837517991292117287676493437372390304944836902498921219065572935388423788792661391392903526112665415069619646120155925557790020732905378951368140357120798796015451265017923546036288584153846304591299352473458707980630077600160659906030671077214884853799748246619157632395839807801367440794983152160207869728992499037958490357957228645531822377284449111715741990077312707269506052319637843524361701682341558033686493177988682283783593623470200262831905816425830003281294083102633630816836894593169267036791054290986690684882518494070454236537971295100662338182268179241273173537865355866664641692867807891615545872284383656138681972868071638258353772681806733873372482433538938928994583820437332114817963405374371668918285854993817552556283024835916862962872859147933553623345707429099688644375694764107335776114248866970354936659722330100194416112920359954940329471871609125216025690038882394637206048987790390511451508841048154915465583928853114637694616679188107433612764802003084623252046448170076602373433860730337103348537357110587961954650990381880509738214412849269384813069290879597026843070790787420721662058077379403363958079980802737649389422016410457980558464277519202447288777185055062820956232815494156109094252590271463977436402945134861109695316279697717560989535538920583933483517100046925674326970813812484278173883608445812036958916581645205043616442319366639765717142052673071337738161225145768412970778653658771127377441623098891054323388735812532945808205206928982105077227137841994847008571244016707217612171973273431770855746049372004616468405630753944326116226772493117254253964903183833326218469887916350255229857002356158435560386002309857127758816898874503872798896212699575160250193883524757996355632874856890157595390496221508810185085618627486158405108175600692881430689676428662803113824519369701558495622524662517579075125204425881115947368157534692913122042729594589008737686990499518313277067908301979535542014974040823275052674253037182849296604359692513395584446809792189312252329244956162901531683552555501314967344344076331633769063004556065643325255398643399578500333115034694620911389905720047596981411935120551904357182838526643538750087026993027541210465147729233960973136542684869409453535965067398987419617198373665014212082555750808390114376100475702308265380454656180869725838210903679148451476213526629577937510618352993305511050875533672950766028110417303543313158546143953772453584303452792379188154931008148225632562912715115568894273992587776000440915559145719079019845212823112886576556825518248016232314811438091297029277844919393782737887866635371207751388071386952323037411905489900335773578645352166934510187073437153323072698845815615958746901319595172224516014519495707652279729730703862380052187856654726245905198985291502107135404487612541320529149482690783308371681076128223388379113083552454128644133375170079141560591867966356868224738919050247715633708999269964119394407801930175497276511203402942180327979553530783318651979146885055813449808089731226121578884298227673795907775797744410798084145825911630323958279769244144463170335782859177518781176060405373997890544293969651321805340441848351804441877765388839801290660947249845037153812809680669944234336094213179429321198035646516543535553301476329659508333928524424775548990570813977975145753241365662518992746668736295965436212017506815981939131324917494965442202479376106470264080713310998047243727188675087571414682352747734067400802214694451576031323174173040372020216010394404080476527794040861552161237690657491745624322461252079686865257281580711777294045773699390066508858104099122339575240124432568385609172816272616005914379701653302838295642127364645180189832228437081011978355590938840331615016972244986623515978874699367271756563328957387161395915569979877439355113963366088409318067979419580844887763314021737512826589982414612639096208488459535352616902850578191990966296410714049334265787587154124021316091346684934080477310422593873797734538005960409096589126522392454432265474044495211291459097230473525463617739423488371884326791151451712250618567630986731783142375069985859489578040772738421883850865275572460113288567603824144432391995012038037816741459908459429963829116960689897227927622015065280609375847351379998447717493839283738137082373859303909942063205964776679954875518502249035353717347514831476333389541697175613660006999061435988272138499895062752223140027888990263245181646840031788535677421760577368779358530640196178655500142079075994151251784722328933076295702726982242428066728208670370581501412326853614209625926998649133626494193607662254253016130992295712615519996792629501170380392154066354884697934192775143461686043196555193211281342553130158762196771983539760409015412477892815737310677531630811969045338071026996548199271871144476915605811821427229124454988719180835545010702221804728220230081199458477249010847157459568437519313170737653633429559063562701815143103607569265015383101669362437163676767053223731857709073713220094078429895050915344749951107351776387823382777388683667290296738225938421970092098902605809700415844993898458731543301102462074822507910324210667081370493601508845668810128719962448039189233204211078721613939627272264248014512249818021041261001877011717744584509573111777344980947599669215251201571536143429274998775282226332662429466829296423770254361923231080741800088820833448129539763643813865426026494711281886243564228538919292407101252012820261074980645864211392901981469837984952763883542908940826415619014258819494053231547377140728788777103390279537477279660231776175730259076709520207353791432627892020348645978580931751546401523463018637411526090357036804120672128094186747618205077984293121584897701368280999254494505612766352227564110221775206368793458374778799736813446977889465360196986901267798082701221368355888584428604146880756943454967134526833652522758252587837103577679882164857834474890837103856193422387827625426723120412386934150792174287442987282791025642425085128771259163590132534977704827456068532199870735862501776416891957853539537024062132518414767987999400133014747038550574293854598850639907077945634189260791009453696045359676195721428701612589765758895176618620737529735203135198111501149006088983819601828278398258456419031996831736306600951145858159300083555585030651356933822580472433675786486872339454991745951143474754019220231517443529251759038595591518568297101522449978080810023737911648299480675037211456936369420372897433896749939183735156538110495159988537178953817168791470203952007334786388645560053681570865012570582990109905901185884118980868295318448549219241518166593721663447544541878536735247482406096649649418936815737571959696450127056571021009401860211256165202612391034694537240132296202101222376628239907145679945839973459760166985579615642171680608355637596520383175967650725890953707616589517879151381464408680570230055462122475181873018382767538456806915898056877157262244741476755265967206909629551572701761939903663983501762817911672818448956168771443515378804903505191599637680394098241410464176483529581185217637909740248064339778996273899161664453076829364814726274156090528480905777512649705000317305281746937355114323020470066824263595731261098026328243102699313084852773496612167120934527826644971644425219001641209754572945489503666335970102073565074375192896145160576322351201115674331746912135082058276806411122652895034971168305328122827380959581073420299232612473442092546728027839131141630539651667486447008594549087213361971040567985436938850225608055363083130026213041557936119826548726566543182147370437901554880737868733141256257389332511265408911379848331979647752830353705861999406477143732850535319194773387291482965731028163669900595787730150923295768854568491763255134446430182894877583841066564211131380473596816257249171845384966277926909829073253670158189433153126724812488544204467102322469533221581634116038458679302885543701369516341165578262149115228414713711627232113823538449694114759310442153005645773881218400365562289365557034009939635826387424306117923073807331108936318254766158514192248052353624810670716578657077611953908579124749666883072187238415966876159467264955062563873378200122504222802466423332376241807166272577541235609228418318869936619585706245240440773449496328521021659575290249849891414182028576890285946803101662934395473490698666203047506749508070865265460483122349812805192973436298940888228865373386743733989041488487105788671146424304120877646704151932481945227875013749850177284220902963202426074402898496498028468690028938676362623044088638648085963814352629958030425913702775316048921852598428027012855955096674600072930994995209569279434112296056546445052506884602036815814065612871003706043630871295705181891326212884077931227758591548029003539925210095428424042780762678237056050390681764055728869026256255285026839741011340752678239949829007761338878124070272060596851263141976866116404428128165654170335700524203014700022186534030718744383416936253051279050633700236882150250561663728431828887602379040662955424559032801476778900939686605266849011205027312525273659918748084776937159130124487241948982957851558638258145086302708683941312536237000120191845357208918617518726379862079403573996298277870832291830268558013705205730547769749590482523355525370308514669907569534283651277485069269082614933655352247188608057072725412080412201005569450177768402559045647665373408552740719653459537189160165269458018978305646038647752188704259215473556325167491273506687564315629321669926294610937443267117178191641997236551146104466948613462547483491775981209166882387945121036954749780921375582021243704437705619538595899819873234506205534454553835836830573237148686294278453546384882078668967492266361646271903755052828728856058689285355740594463329201731427079017362644759310231995650899197839669829102048085172859227339585580200551196343277551607715375823317665811991370036148652793124797705213037195944541869190257515601410455252293383259113663099063911194681916272041032734593634290290209600102208230366047990773164186608399608770795941847304053887746281468839273082673614887904257705989408621970790400471662434654836755920054549962127678858517968981308904792438367522632482480988204602545654500591997467916571056581486501481357754256249416072506715866968561485593206977624323318217656788602316369741517587483357275870210925783550863797567428218967300573195013581073637652141323313994745686064215346622239164091323176744016340224844030147536373884418717316832009555759427858274127459312251427437074605504645906892361148779373979189719129574817966529142518833752743997537077922434062383603191672463680520581796540370509258550582567457576052466232822991943894627382850953143328179490781108695319394098666188060896860877982719869900307756543907391960524213057986516796022250497665041396632333467192898498896562495600930332668933498646453059052591294441737276724838986851096962120141382729744628253750642806572118040376831541326271899011688119798105508823129265441568953574573913332304338833048787561479403691732622522434099037175491311805989718870726049155605203885504031499619440976329253325762067051507540087829729233472411897131675003473616159202729082785611922119300890899382941422297301210684885137586356023638276157307291344098899743241800327520594327756045591407249459908826165612720236126507235726731524173101890486614246024110965500358007994692408100914027073506761203690563906486816426618948837807569803170050419567241932879746868978872001248884524376194591393058258937855082864459708221699363694434221754464991301053502243181213648359352664809431007599055739569439533638720725564938477956088045530456514101937792303928487232645585494124830932127471381085935167567853806316529375044944348486633643685263471189489639156513787494527709110451777210134499491349662564916381515947261368021327280558335594821269678697351716087896083377173236634288201807902828544841432799923164975974303274797632713113651512024762426395377244741391968258135412281760341520075120156552949444001243884789127674127561607921731669895018829550918377537001735102462057890064660258323978155408691446793459561031337028279679192686421488883551022493536640133136190737366528713354226806143487489973278051217998645408127619046715625020923792805408492856218926978536606782749121417580109945342508437380075430354591331410040042939201056090337829188067301806255859321079252897712810850520237177556239774963307971662143281855831642508213553754530069593965378249614008858118784800235466337102034730362294208311808624002005411565049157441210077442180125220244952119806500147209432157907011175347752510561993676325967031394006079305788691664001285979743661846139355445332726356275921839440177810055737308522110350632054588207456089079154287871351465917134418913829006635098324092216872815975036444991948863620777806352448896616766429109337951172893927861175474830196000192190622273428976600829530909487418278781939730965144946984236506141461327172602992983582365479009770176229730273091976633342142523596839263051714375861903183850765531891080978838921966413814945722441067881619186434162494550872179764299355000503644233635407196787057891030710384943268960553671162242648438677881443839413544708518335215195161612813300740505609289490562371565491576120263753855452442486759306129989620318363963895857822345412186656837578378859508584712452207810116092724324682032264938516858051928377702452851801831390155734769215415350225058697736938520478528982261970903919913916874610761048978936017828085812671324956180785990266593647556630856516996714115389411993070274339257879602113693983989574252449638884819799331599647873521825037624551364171167954375692329495353996570138318910046982510826950785753161341521942674231192936064245911172725197432001825526519025142448710464604795273172122050684538711556541342551733319211500499228178589594106568388326626067993119330964396624280839324189737384263695808946215374898595225434039974447844274270269038876206601939286189197915596812854308421566109352176258316161470931057156570213621440643080570144518911554988034452827232106460691403372919133064744303350477520929008215121407456343777028930737520753187988930151711998811137255136414748444504531662735290724623209068634381235568450037210344185591494814861105888784977244311762797784179304481001823546075801109213951708941668138997319162683739276379535724015088171863784056751515503777222177211649320997664046986080716843899939375320034899139377505882638461728152539344150484263984209580076635520346285624730877503214316433896699874075264556833466690193680384347383641667671107504238098791703444757867398029491153286409313960308289941538982173266805544833611473950498035834675111034734931890979592410707714011932472872394631960966134105281495901259809552783250786138489505391390680544544388142099910824231731126565233633948439434945663591481464625672825300454736714441568196789605030994415196055730627101816853690632948102420859971487776497343152733139844453705027098880031837403764329337533640523422302166009146348552801171843056227966918049665673735794783813035913379740003111865734746464032302862047630480377956486913800245563071600766790734728024967574135649413684904899119294732191745305465861501330886810641489600475996096329081905498705105276601225650052908909987520556394763204409901137305959242314285875450346430749291192758662719194686464710382176252023573542478360740894881433668662676495670543476719863546229326732208684766807056738612220998195938439885593470121546078723492793823930971403471501055196403179986444757023254748141819355588920412459658281452359853219096507252797510084027646952450094876157647312807419047367162186603927600254891636525194362684082459804732987678422062901005145228780250849536645994865194730358135671569755746667389147152021683173204691848196252341053031149798452992068195784521120742854368753403353899853825553677349167729814277819390381664603924858911060561132873491942594883435010956326248879069571849791535479862147866955307241252203172798499754816246078171878427853949244430295901299354412406445524883228760065998300656301615126061586172412173317994577388437894474902311885054341930577785395619394476867190766078909967644308758997560859507060963684218199924387704460192840187351063946999320587858241452008567692384693137120747387345788006445996497344035516249847598285527251669613388445633493792950283654694007705584906867169576396831376741854848991247571067102032095682893023268161990357914450090685726261915047869356659259316446140410734137062971789809523571055021931785460118184867240055972382662938982854640023522578655770060149572368404345823267253191075097496683405675299761940289708020427380021769639374646338671886289115882867439509583313726491958132035277637840439002239087962650739806084594465850786652724437244568946891293514877300133181061342070961099922117894138150504906175759108109963891986751819030968560706128995937672928444308967848071717995992673386111051242563209313007852190994702061758422296647326025332681114069121302717712578875921582491851745583596115292518253302116925097709486178103542291948015256649341313140039450816336606498363694951053768582039850659206051547839249343466714108578130432787261571130692754497941117858467671656931539977540561820184845742344151097034667367595853177894362438042846021728921209056283944801182607042754785575087639195312567122539058496044742084474386267847095930295540884103705599957352135651865798122959516902376995412732764803677736116048220274431525591955768918678760757753151376802762640815096953195968787980588685939487859366123310300512985057377070062788180632936616670283394854823609187278039283664902383139990884530434649082182993239112334368596570111286641911325218654144891302834837957569238011586675700466246926721016835966886611042455094653222604432478924801572315929684690286918968915095183097011525823657072136012729439336079248805695033499911142932703741259723607944670927563457764068292260538973357593771739197173466191533110347697564629390474412443455893166150689129792031889312307789787715389252852111156713009790319770023620945753000680609790444295616483171265643578474737608427207789909789899046694364034229496588850410249898073463438497941739639038219793240545231663953464512663799628246180196685266886342668624956436399877200420725059255869161661420044809546694989859795663619907313079313695005662694589646321526666749971850079500758186255870457579789486727115378574403481202868649728372897151296306907939350043101859642333219574499310406162111011306876360127614691788299984127180284333947466045378907329664558155922456785584617945177720764416121525788065222172817319452760997370198221453233625847188124189047038559188393545231638276863767578058830767871707142832982500394739689316393407059367871457517828866397967005970130168515471765463175773128035475683900831473032558656638491326210225645737299229237383993892887331998660577464610768320867280783372406506543186413389734340258284497357517465185061765669807576037791417487777355189286491023510915753678845088447406433260661415041145632906406512459454663855924885720449012920670150067767299972475435383698340790371763945324190343691680524194633684809390346210600585160780479875144958621704016841053121615906309297861358487454149794181029377962785236325640921347204203771244721922413706440434210824442217878731900718941673025744634731213987574711740572895154694976771693639543837580868037045818557132872636853117264700622430975816013891732035369450609227441304537417762723191241827661321071219040117639304978106464526055992311461276471441246709162453424380065249991740018366300584261161573296877728632224346823575504533796674795194672919040522068359434640858015444416910384531644445224037946682084784338889652345783489390493430596219043411844481159840097292209259454150859288363493497105829320244783765848946427710171810101683522033744232836899708192629376001378828683540478880229186472422404034204316547902199561475855238285084455601969439132333635660391698953562814977068681748357937307979603578401948431342476024961199757285915556072848675892829600973075512798332272004644468206964860932458216590267763638808890511420897410353088414881315381728049741347681239532992647242561166032107201392735148847831169363488000278976273863162616663415932458304892593247370261771839950852493130471701088376732069626722084995561203841953653362192824686227305653425914225855534075983950165264277562736150354845561969414708084084075704367832954142980388943735597973727207345883914907741214942603414888493555891847159896152829968175295143384440475926689344715525759575579546785334758036219184373636374930305603059355278659285850549105030779313593608215334564849364930350892914126802555359824591849869069655142846355243761363572029091040060941595917185563692914681635304270870867698847336933558476250953622151229657471563109259231755953930592520594964560947999646455574304580184084397109918014434503713666254754406177391301789805598535898805275484969837321071363684798884123508722619486132333727228067155548438606408158377245889250477710028286352880825692090298712188475985859895034926347261203839387053283797994970063108454994020611234011555365499352061614826432081553115884830530727797143924958837435061677040657016793269877241934057345663155625931385909393685277116440859444118021650072361415638715514896222058248029046109989261933478912639850361158814233492050955123625295081403125811113253383814648472587633546661972657782798777962508910760979527391046914633141697123387993783876193229856727174252472097283647832926177683906080684750713972743957950891540404179856106301562484408661136647521131347680440123617508687061545047838788665541228367612958758720352303358618038127844051545039565364460523289604626969387042527396577137681257611705539171736368862668146190709152800014503416621867167613125826435314149107701155420036841773794818624071963264722853811723931644226151920007474652016836579154116875443798531643004498079595460742127496425846928344728329472720992085130020928482549944903007998758471591541729732188715174975079658669340476798428962698438913518757365540189414634333646570280192181924448260752836283918382130795134429514313450959719800929412554755960325671687831785454653192047312419232823801611272251938454555668563647086409734884252542707837788950841862646493689825496058608660151984553788409896631474027126458072608858112180722924039292070137924805333450032698394328967992708283998819573611138181485273915658686394133505570067948299862859772396749611914461531779128848874894245534025770460679416912065599270223096891873022198201048717564023041576615973277055236732905690609208310291067729233800654753233475868492772898324328097869295445920199029414269325407935774809961383089244651038345043785178236261179773142109183813417015460531130903265408723670352419936728716903345160236520397328850254356043039399203035462101570033495760628358542557225093075628284815296636403156632928487885380011218027669970692069133365431632327566816274693981447575461676342716614999204201208573862203184983369591695181517270240142183255903154796430739931579897830287018055198882094871667304567816517862175828173774754262503448903108256492828556476272081564069474657598286038756130592135033504620212794589119560917460053464887262338291098277389109647235483107336783779840133327843758127521611834506675670397165165895993876379160594262171015078806645930041132241512211548899686423528573453045428133653133083970097441928614626618402613694755372836203847868000413508679740026296290628255596538024595533518615225725193785618519316459751732056584414788561019511527376442661089827509824645646031688479956227541110502357020250777679430031307724409209737260199563011435492809164738269448471425344765361234720411935857021423383297690292246175237665107887561823000692068689294941615010260176149407727010547055946746963415769050351870347876092213744730190618827994694401806488692699837454243116255767993262293024310745386512770953394622540973886615613631560658516632185291347695317532352940297242172648352060732298529146333023436561404236480856205803376657483806176046715041633481929355199822088562177093827613458645553956282069842583188164844409662351965282834922352586287690765549470668803149686996449184279342771564764695991369980062596714881162728874664401525530056807219438569155993048292914842515032749453813315835903732338060693963029657749105288150142791722910334787368841058107050575441118103522651151346081228027016447116587027114090502656782709121912445857830532840246734117847593798942522695514675898919148051093672426209686668313140209168006994583398270240500722625268200784414085238755043284524938727924123986032050347508598046939815506692089518480618059075392608686966434369121012766824223316472951019589162761849255066123456230250940408443276514255172252098125264662564438369951855054822734658220497444749489117924864836581140132414664081299286171804413347342094883371127388915662695413623389489639660203068964381400121059178794868898150206706257386992209228485003789635031015107181290659439176622538590462894175500890855747163691127139781342288207537749684394694176011539799067528610584566192094336909868683288759892628090770302993049016222341645268137080452004953185307292509579738420424863362473603758720280356793991857394808146470353516327861980563889385575075075158941203489317512901836615090825080377533110332281712138437376446435208685538135095955738531629128177034474624973964353188926501939052091772725009615729470992410291205317868880898173093517197545295086931166545017909530417043317885129496456477173689371383330255936964732105263128768622221716774599634914558416638494628464175380097521967682333634260168291569971494790376019735596585489997909904219093517558585886944156294635214927076621828470682529534431415231055695893428522420267374369616686975605978522549818598064925831082968047421443155652660276784449318011751476960566297529085255019752262270643488572984134744407828389736044689167816383447353470832506962593758735638435184672829869435863528223869082279696965845288549327833387501001718494964206764994764362961314983963992434942911998327642735930669784602652117386169673606288072301874017299643569538609056905571120461188923165794582891250439072070996687599383191906734944327192667877469446736500736439220461259380017695957627004825790611019529433343637618900317333967510337854274714693111048428152133052414097296905141186583535032964839701383438055930679019435840281295299574323273351308288269090668817953524985979266597890633902946032414523501477614092776316760066612259466653569690862068559859377829509289722298123534771006871842089349191905246770164716693340370609648106343833642250770737470258796261719530293952449464705650950733738133586561151760778309460652470565060036858935485486562891156854217147299275909394282105324806352175916287420819709480150456888744988373849186574413909174266822815983668361108501214884293898191891040525279533358521369175990045729155112415470797726718924710430890040550428387031785840879866725188789834489008643553815405768542422597702650644087363794321398816722935616401596419736177168980726299830676624678818917824649227664686878906494565208249070202051527979095581469154595155408298598172045513294153297418563422400337048481374738347562122160879983154519976257672892106476495113690897595136153510177058232384898201019633438337461546165291105684355640436274685063143989010372505635950832563729107783230169902643164860562449099381195655351112135371660741296604730072335445490231827363139255645100606130106213379736612789851943398024093354915866035495956239229693165899752504472970820336130996498748497866753109248593236063210735565069349429090009985617909825891467819558153979772772657574431396793179051353157498677877318275520244881161621621666072370846106053156401744781260215647814058951789571587485862922199438886258538759917746179602594787162605687596731071068812408390279852245444044418419538216827043962069321168066310979716275273570381389808053709958013979490105554434045737888222690380930634118761377488876767911585995129865105948578502709498173485729254225320303688352429510443917001911745214493610290439440870532118375864396346236012962908797148748408964167966900647050837556043180457798809282842511550159421215595341974068195423617388610367574886705598066322496817871333381215486096061721150562388104687925247262604869550738154261827003864014120720933720849747464306928194471480049466566849179619698414231898456890490763573607716009424264937303707765562662701020470127896352501239097727802988723043122807760129901950383679526539594291271164517097480720213435228909335286169779525432720514218016150142627331320712462094381201611737395807090593721727911142742131772689628784972151024471072070339075929718707649465288004157467068711189989624013797371796665974159318897119495280911681548749138520838137819841748636006220901095842459410878686561414418143413788581416950000966667779916303625615204290260117022441271547858061608965798180963010043648323216968512675773659846225276468807574520477294794914894342338996515577205961982057911163540999209280956335235042060533551207659520235453989460590098282943023443846227995751503942237050863418119683399213843170015155247454769521287738448527367104335230975497311397534333167931249042921656993260395575348209121281431990220432062625849006036159138296506418476450950657175351840990249290457294854398647724702930399680536898117041743083639356592359609954255787642637502184428872934121753790785298721904156944501639725450550392965461925118027877679497501963306823162506145990166254877675695730670073048042113097518816216189372754185346227165492770650233886017789718144725339843583128837283448259689433957309818082267571056135087447502113749993322432793490787703097611982731425667909405446096261185665179405972130575415563085535999709435059763438129383246706667710389370719816974046906733445525307609165392408622585345490221395729317420222326030404233317483644582747602119853304697204877621620568302534890447688994207257034676110678459013977253366660805022518095924787441562433346675576688411308702203147299645161240409743840513345236099855150418776732056907950745416594667449649933829785491942940476714079502142812929629094605533286861182223303985344867491432961045641791483657137881925736705327952928572567088452152226350866573607261040433087908045337377040038988794384783601839949517922115158253512520883629541402142964295877992207652728521187476227521859599444469275466724236634193216448834430573444221268236961620128275618649443375229199602627235213434824338398652123855224592832704956210507175038040655537631687471385560461908950738343101666244120446959891786563632986205672571832174373651531802844556234733073139105945806196069889350028440340898797283786279717478246269663428959021307052425491712341539221840078841781987467690827628925568867207589126451502511555989775221294752365392634315444331152975541200297957721974392369759655630266133033894962773042493617713827736813033959631671079578346776076843875723190495319583367263316759892849123844000659030260174523507501393982627766962329703178619512407686317376704164345736909608885569758779824218942273401204173854133932634843621560063824402030507314727684382964779542452417960811290057477668973384998296126688968039261089160156588172802462101767870996117982616182163821147960683346770800969906160083698486250531204397464055625044190041889899210523911984407805510474417579735931944720287123811156648784781462034081706116679797773146544316831015795754931152061677541444438463434669678231236766694123479193105391983345464061323585663605957856529708937365949549027220876414039476411921371264601360675327515346390967398096074442365515557653773113680362803330532439027319458075586968665165875329478662783903575290835905960206281329738226205875270916752982808607046454250032236274613088521643027231088313520853177263460763094019719038535089296517303804855233644121509092000536454966950701478323465719299126746885750355186711817489616014785946868755618211864545192343960793411124517671095341200079243328368360317934218090046229551237689344149321677233194682656557466569436064227841151921845880278056741947190701709233618360112839436230316524144653534383333682839566815960392134692073569725703698848467550776129219640629919585068132352897494441736206049609557409534415072010157538450934864782346541054217694558397638761944635871890620693269455073313764762765020125587393758424725297901879384666401827631662894713905430033351967605717533023454684020668142555352338174923328476030453535719795509308770786645532685823471013655256852960610408057340407089275080342031503489730773362893493436534443086015780870502759216140560849351871985753171971918944164078211133857143498942919133254640595385221632017259348968867429464496748791172721047498962083192872585196351508025198078748530645107375222567603859541919544838790393935178878736754917293097626830127761601991825624332966599727567830476841655945906220458557159960823448383380867052405901703092483393536974668854790313323256488006576020473653029855596382422079098883597977790208933939524696422830394862941911756864904732287539453805365685623867791696564943802664167747097842215464352748498772204757969857761013477788981123115970174511871894267095246949790362819883303440681844161882983357816620568456057911654677087069134098849770317779876900878336358126227892734571573214760095754590239542780196960223847988594299725231695413081539525510891108444818998705867050632009738673670575224270061040812862873596538406338865067899795609489401280395461893463987707970303765951260932546758469521820355978258077845490697146780201313401309449877135348971733973448984485802326742378873717734774698475019725603230269813328095940196782059612748796697835234651629858707314820023523491001340043292280764332586276207991336867381361821317142366642955443896977930627342290803224793876106709458828766215264249721956461544125862435610497637309318405920975414475773658002415888224326955881150652342718676708418988066891742668248479605048180124267016743938453319906877473784308229725279806936345290510022196253466278865153918509351911569450496775279913170980570689242204463113458799570173515887275113265779699980228612570639139271804696656718574230840353283749978056363858963954485852265830309597940449492856898338534367722402800717922862189358387028016241195780073672276135974084702308739671616028949907899276064559146286146639085830706287354181351613975643668332667736989029654559800573764431747197498491308443951330414455540439960789807882548181183404490376700214173618779727249595934177648228700385865297289399354426692972573890384654168879361169656445730322604323879411734984832243290039064434177147134112266408868573604715901397510004451322156522698988880123075947133231273341376679708959941188980271031097552820397358987276024865761640534164098046417018958240194967372555189536329796917930590564087198859313293399132285683002155035397148214965877717194948237391174518483872180805624399529195856455165406547682673363980547369979591747037112954266655992137585189958375113302809528466631179966977320372223986851438115132669063459698405786044048661092875446170522970782618527706155614382474351732586275060918872178053665518043069766873573831505017118709529225226711003183344577388994859885645222648977346904616219108372723512850904983229246929357710992248445006567110990330909948695787411613637865839206377459489983896994554737499606780587414658605776211512215712324186910799622856426045298892198960064634849932547963621691032444699414571736640681510617799512033176697504630603444064793299268386714013839380578301347423497549950493210931791495924100737774720330413197457783133207636082762073924046693458530217242512399322857162792722588015433399793131289246608214718388000319732819803746013989251902050760857425336474939213948472038226820613184841806088812488398651502176609476954643643711475747783121481970154986245190915432120175813595522253034833758328064858894365713425641779000661575372746196286458837156560024434219570669058674531892971202300577773847346328496301695734836588131032099436051901526751224228477030339850476273151371300766695257859220187564694685466468287863268785471381038432306493902834022725390785541339986640722541320148126023814672057870783158315674648069397268748960234673905907530338993257926572925978135587233881284048316334396655870663091700731468161594497967793179511307779000829435089268405860333551296840932377513875456571940760181135855596986122120403988248764415208084507946917082419385831314066749385635773322863330026610094297303709361556054103276068130046428686288761756015305134317842539443739787167157418569403032927705910860265826133475148807289966533523204138205610036233274744192405722305874654850321643732616991720550630591215427845214790225695983805072382367139401011683027706162113274284336272134106795247797761652864911358004568412126402126178950085919957358026023109428983915178308630459831087717537717092879783267740099695544608721347672420662595361592646373638991064406170057072977946235120565566597722359906540426350810704324179175852208768864647712313338108996660410923842178435335567871133864378370919537463425418561234012322080984915408645482249836926501465012973765074995553018986634968387639464232839701304478273313592560277033181631753993971133923165916552433945021888705843404474808306291475348523774847000262161746202819374061129313592940681776152174021813281442927250086714165686785207733311912634483509697297677030763620912882928704443351887079968125782605235409767299302224342269417760227782988542083371154313105659926566001215852350751661603898973291024334340648614936606124084360847184935418353401315792078271844105339262454122653884704988507083958215784736375823666979588706281328014231597474126063547095741655737260132804883539276523000252735869688632515572419661022639597447609959943884814737085839773464062896465086592718279790919875202568348712094941462727623081950161553010979514329535600108455911595042147514440296218400797670045590055883741380519265643998521868015348805765762197711374739045422215516068607165923308144524975874265734055704881387222362911262938648706624854748912014101195253778181743220183696515390117147501669984391563929317350249791100121768876492218236260782669921419373384581739656630958008773966411151268208409601886105395237828272582132642731022518814137583643144670503452941448629094955451366144856299341797650096138210531509019935678787642109136733680821171277495651074545472617644812405917742504268257206047788913822232870039080122580168175271000059601556994979812298314054339040082746967024114216271428926815889767790959159531829161025964674348543159103142621039403993987884817847850998578034301988352744832627907782477053683830449231377720334943434994749907947119253809955621677055622447383125369144461486417427526458031040332159053199901918624034195385855213661450338295604330063779754841842225810178193975069579552497274547894875216635034669732085885989191407122343036497604794884481536836194416056499267884441765978519801297581248072140880586571914990026946737552691742040350683159526373613608916898877834220693599925177122816572534838833543043687603430573548370949994826468027384597341999149148138049689688282653689065580632635736682772602040162007251444747982202147079337955809595001369289349245868835614368451753571217380330415380430290271613977845331344117552752532465613657755676896130748862251528257752616154201550988038352422546310570275815232342250707730508555674800684015588377133895120850785310501391752261510403145254032104904307440761514069996007151882729634131408987187895615055735593317115668275054293140948825850346108349940100170865216943950237439367342080951851950377451596086063194884952659640894401269176394577782466472877020118082183293943758024262223589570463784040194385224911917968922814064472536764648262085649505459732448501402341192397803940217628111971995276257543674060608998493067400886197625871296641795735816324207192634877061032221220603776338821713016265768222675975667501436269324488538706092253680264028890014997284164894266058280938390237531396529890630430799931282913161216053292964495352256438390127549211445339608470649746170840707784851989634849496415128535368630767540379094123632263423063468253882872447755065988911209198629672695458585182223964673449931772409008215591618893457619180028748696982091574104314930509182717344392959697092857259697414200652659357519575708785892572518944946626423381306686113019402819532434092902369299084402544402511976423956856823314060989231142931210066937015924645570094061418044828979595294743335359425412701510406934810623919312559875832364957247109553613275206511364504055201127612014112541540748117006117177752003403880891600177770036745012729149526389417746881517429867479997984327489645714321330758036614192008026547586722861483673624565636245941659074139790133930947435895259381002394884624146447380619476755167015086437609170607635040984126275361365688146872541279519758733826896443047787739619942370431932469862827123170398307794377240915518880882520441048179225460694115464486699521401634577482666121467729553416748835503408702827244320321352592550304699993869973490237590540255947389056001565020572777971457499298745536494936414004095957143575980981570733253115010194055665554010997254238242033017182789785627283154532862097765044163224681246343822907368048470514600869646839478963053652231823591527615113738785506614474338060694338179558426896128035105270289419284031776460694751552881155115088243475394287663068483761153779737342012532023696308864297651850634529273493628101535058735049493439955577915950656159891971776287611575656530538984360297501938606636952083421479399924303030902339322493345060331516036529339681781658644968276372995843283002946103199344897134110862778498975010685296786115016715868680535818097399065057371779335778619976884320254347296106717587290153026737531216830179461340481797426586947529683152576100255171844253898490329539893114262878754928224631452103356197207183823924903414508033059193186770879766145156004468017885278328540924413282700237156108485397194110174795799227416004365645325589550659474260392999369635148504929573861659205021868251509922306430883094322032371038051048841667702790092650612196120024549133652398854769418691577247162362034763484264979392983593699937440461950201576097197014097799724392194490722511666042440206989177601578623242757506060819015641848600893949719738798974158310971236700983175315010493722516614970148954524643244826455792967162112707046392479305083446810315052765528493372708974136685868662841623589174635889244961251448753928555781040546007766789058658549871537965376144167072248096707246169290181423568264769130077215242448591447216814710812802785976635912747201037826827198346542039790231767330712449454858336881658486083962200794723830882481408908305240661826377544351413438995113937012649548104839019954633344355000736626112713954162870562140550411230614817444897479431941180736274869477763886390653849790688687088293617570336075456830423005981047448228607030666130944275465629752334781655299761843908132721158654367560241260644092076084156309182288933759641719109757999302129166307428364034381902276954095102078314394690413494237407695790283195051336526616091441134459314657218952017538277540977977654707390647834779301649680006477791395407763776489841596228548232319955364587420437903317473886212888326993368328765695751306039980876665915971928822264251399539409322555591942973598561175466361917007178224238609143632243683581189843186619939519724583137774858991392934534957494653432637187045881454456952452559333742125235613709016169736545513060514912115815579928381328412376243364573782455997787822397154988195889933949393535669044263697093071900899600318723113047585020964963849545152155959737573186490256613397908908748743860669232336115215839072792558929876132182554144718211122384782400631314154935812140602672078069312135195635126254144069636227015097961856027545868109527462723534342748722137332829353204130228042895415834865114142979546039756044492969627125928878319116888124663281847895588344374562256652079090472932302162237357001168529180252299413796198412926445409084917950214034246031769938248121830881591634267152590922787921353287546683373854978084561901618426013712625317250970605931863587064765248002218888819401914526154769328137476961272199361608384129829010675640065582426045099004219916708323196698842070464042791528805211618787559434894766552980520876931589296774066338705984063514502906085003146624870091845335129679365563389277012349235097071226342553576921727925592595479000782370047540733899865869128486417385477971723500621984396729696477464153574216134590555492148922448646236286028402914725013883228651849473114271694946602969175410545268377649548568860398974110463431382014663792668458268478645914314738146394282078471778441582902669487458724872956375012595477144120167876835873984937464867219596813882351850812778904937880067545334645090136150215408315299641311756457071164738717916443852345138816974149031984356977402104714699381197972769104851728349242446596039970468435766961629806898892621320050237423353557861837617023083871480248693208490881184896465147185831276374887154425102828036381445290266749179844174438109287776864291147640781923791818230547163973533589380657121959064157465690883180345359688101314110853142276999460275129785148609394860288675304039901161118313724090245775601035407656935164262351826424055918530852382358498356886737438789197680900973027291615283087657220432845539617480967527227259251807310028963243430756168330736518029366760309688658694031863853050534840141065868876240047620928995930828960447895690688216540381758342393957586126564811076998629896505664745246018071427265857700776694324851392536842460659012486080636796571328867658204719620562558453430872999554910013789135886322945486721878829975567074302623529898021958418857116030584095426744617428268221450544546306885712871497305538382562009293808599466708483621004855419122137403978445116067295351388288403001510994137228904887552264568324682721193377883306183993204200773480034778096064061174051713013811682388228807228574997021692017600565777182521404340561249273753056121319399993618847439210193286022151016044755204118239235665209306309462613318431534098662297651303055503357038010442518644240051228164214516829638026803890810236985826781595670020489634797089712128046031971226218306789916351878481559896179435498378070330919861756980907802559273892292531656978307815444551298021287827144832093576971936694926019031305300692104361450455223087111980032513150614102309247871886789245188045086423063001305299833409022531122629191776479278145930146542894030763844333155114695094397323502100084986470687079751020701664397372609027830835743520174152191103719459429727452479731448328231122559411971549383853233393322008485939661162925489237339031792606202321859331442774545731634976211101590055829407346986574013437571148968378951920683649755161275225827516280390016472383506791523570226188713747776623226214363582967414568136107987543085179676053850212792618799688944250849130190333723043399802178270785411643017935367995159814255286517104238947118804837519382091252980871427597505971848284975465057788948397756650934038113696543943001381451789300071055048398040565807658276069467573031502196444195189493458683506834786316200451644817468571506572897884858128588165821288867773273893076595417434269256937559896860231276710134898382442606977360736353748881315848638344628027025042167559238820852116161799210039027716253552545650114832959916711138080243155628836173116930527141764727777930721911321616256637772555042272832083537239233402597977933117569911589195826771552476073346033496780211357315878131159340271130856259593414451559909994616128465553438194370948447810618416215386969945138672904048793130895156567075508053500891501902709859219245733465492357590755782310288790430947726586734800069767143986108881307239107827455145573901565033573911064205558211921304332687210371927948238190982925002261618922019115517699267286482450174548259838615620379737219233706096441659754192759940729463524899462060182968095630509883820165393450819235723458541143924255891323182110764705744313986336024576344965459900378198655936532739604307946623573073672831990845614297220307730361479064615695042528181065521228522481345540699695806094636814042904552400531177566697291513241276643657252056594901303724971736015706460942534011865130256603331276613487837779765644855043008382715544327491930661497089300928307428490050402270048972920923667368185130558975709903383920712046660406748417673777512701731389482116188220171888640167646647765370302804721020270158981279458835532780298969900508142023859195773370639163731869764434242075726436747295433306696526307093819326046879977973950144962054140228104708811315226185238190580108901358280747196909117107846847968569673921899050987728218634794835065426097673770880932018870612525026027452555538529373007994438383112518263573652673416345574514724086350406170132045074042111341311056274270821653563857418366129492827758352427238500782116118951695551669977682227245886556939469613731867547560082623632492820865598349950399286374369323924734967769430914359193194103777442051559852390058864645393397861893642186360304518361760193354637365582794969200447851925701001275958028373234818640535212319665872416594889369227720489072209087378066214039760730554284622461978102896149856352960508368628491890888288293198167045279747507433540974023321756468743374754246085151247420472068325212977504939672184033013287788331510104793251861719885906626001639971120285835180563099874843270789129045238873619338630495909308393728538569813193864051274759170803681695016914249153493693353472453871532767059524421083194844616654602505186378433685601983477794082266074577847562066335712223243946885922758350237698932613547744581264720907574709229322391219672287282656707885401269275038979635405055242894756578503618776139510197589707741470725671316948902043653883553625098362785986376965882064124106082171020789214553234927866197301783168518590496306115088027755511755170474744891434907307419409248842528023834989160403487245945697389036908442355498298123300915530628583856980051626840670546370883907966672816817022883123274770430425193277958429902425637801971006990774593812105697297182217576771239993264930645468113246126116043543048847591169420148359625884326071560963340863793669183186216997992473944824218187303576165953220204254772924516193741424787128628941193246414480979534926667627456478245955889601095065516072486983890123599296269511295540518814463184585365357937503747629678151105128746667436815857846956816330300419831512820310627489253816955350449021253704830892275934352969356015016932683066170676272774795752289758151432105281329010463604640515183047542703469512054364474772610674308526038529939989523512928894387161191290487637529584363255620061432248838584191018804459186015544667895378799091362581851858826853597118236230029923981878104752897657107134874010041168294259441681587429181008749626715759698953576994190337344098196134814473455057355218807716165645593596520925625985864487624875900558077311114272355496210214530391578770907809105310382536475708794244927795661146988000762932802070073395266159273201522172410234061000442072446203365976958813096033662250027470391769951985449013630685170072803123433344143273688012900557320916125799053541442685223371580095762918460385058994505374570956787857211269427181335711863991295011432842164382809694098730348303357098386942621600304441744240846145832891342082003582471977624444514349266301605953775047194914639853385354527210092824340769579935817377896873926312766300895867817516346660040863210475618984421389882589924322254885891034613185331759440052069258558947501194792949311815652587558020312681932643502587725719523886849226548754485115837112388887735073289695300273327568420858992409413567569670683665106444894715952625072901188978568780216008814943893396936088372070706277132636756993082451590286633573184248310788917425458385085568064680720938582700397789671655826157718568403245676581476817045424351203907703462139261672551919202037472747024546723245934688869553867781318884159784592499314844255175001573807186503938168064002258774904277287585190322603774799114174994520831901813672264876366677373892233702089377581761705291909409088343980568775318456572991950227011206954108779590350142106609326995726524122031400612116378187452963634418674598178912792341916264693962946141780729969029260161999519154286616933500387810427866456711883920184188874359601877930312866908909891069870720886993094933613774479350145217420944944517636922307483915878215674686462540873397488713999687315484235984430123281003758386661685640941797739189510794643188920470902516133638254286642936979020058095432573450461852069348948125421770960489506903168812458882486144874616999903735393695788808198586477784714870153881013034712846839938409151313666762395059118177594352948245664826549133233742914346752436396928740206114635412532245638089446210731803970002932721030808314971641958031583918140791292116157738444813569206438160675186850755126463687163039644492865270274499615264829545280962685933035528661623249128316711855607943391324628705397748321934814511592032570947579432427622342263104986151094742221540065273968127564471278289342117662919261811266979488184122195259072890611395989813568605347026022224135741880055081232083225568660176141355983955721600826985083967529462408291551726540566928882157562458673415703464251956453537727649886510215854973886355374867975029491394700306436577529917963112846093350158980651390306158973587769370331591067677985863993406962087625457297561486460886748126905053914603144629942646478029933182014617791446136057648846048860873439398489226269507726296684132499140262765648770411828122644626696595731634807325025602752770304133223597289532632500924209901742587749734369236694193386208742862839332360564762557280568417015847180466935126262715378127063668854457755649257538152885376948834633723939567088719855927756954004149432513738800008184587922628398565220009676431594314851474568180306318041529388744622613225247361040449507417364624127619303208016782147333837274763921259848907582954127637744732118865398081829058405320136065746030413497242594197051610300725638863649552314472461018730179206583365145237697535199310819412379853438288882055647589872178142515876687621345199744167324534858793190877385865920121772821507929974909627460713503380899552763922812093663095959627588671459557124743157834941406840442538314678669566120400988469262493025928450243626808109959001473088344426572613582668235003105083332137982650777781769319770339607066053956275587054886369337452565514370188044984867238413603368025325502507983946122837674144070806446244837942558126163907731750425530306157024575957113740507268384286077069613943829629418600284530638276857246728456056013361481426306649463203909398592671928985146628541061504653739448703078701549975911045904125475545234988165888124794179450699315583358622173962909598316238876265580647251723220387917077045707490012417938819366471428681928299015768920383120418557302368088460028519865859414569222390465101541392302220714250899580474115483489128281317852386569675650065863082108488909539949983453754030092953185029649162784639062892110853528319709037482138393563030913880735815619335950951487732075141598452914079388444778595765231023220228340736832564499711283481165902956481906249293495577975675016327434071774848724146529830515171627099783577240247109539107096823670169363390108972066621895406924585163839739886802344793195659355889172956326291400040838145609534780503932602208861402420825648740578477212964206944336035112023389385795356262590257584915969073215713881828244460536380098301621742089464640806594570893126120422791982396160307562721083802489818062193832446144092900065717889570343161933450875073089100821341371821664164127032598690752823511061978021562298147056995603644229602945885530729939536768836935833254730901953715195703736692597880314204637476921018192441699171644427358020006617449958519606874280397237298181624579783499199060540564945950269799837187758836934980025161622382114975613151773331670490136919091170459968379880281489219318476973182248946097103679005554654843341781743469701938521652524742370575123816310185498249101314254738634196592182822950087523573955870796792400033106835700769607840299973447403019221454635551177594559267716069514719546773867215703798972926280232304891709069504252210056652694358452454694740117494020693825209668668367354967679282923457254671948562698221652522790327617564029722195590846691941478603077219729223458969959666026909425344674043966813920387956942789691253276448022668511508461789830327227848357233509020407981118354354709305926548666608103114726587032825566084935206126373554789368556622695799572208560033688527856119282389599011447811370805261065921922685264919154587099120618417701652331795043524567704577363365701450482434611878826423912567988014767190363046593612881719736890213874573652049922255125801760081248131752047308036844181827615396969403474255906982087701391620041961198301817173385451195253822371907324085545015547464361487862039268151545714368175800036786204714508774659134466315590364924444111680610067430933549268204550368646923239785582954892814228872003925985346595216292683771042705362295270856246136175722753040088492816529530590997929422527643898103066425266818262704219208342575929262819386543511994139668627429722290535736234061529981279014792543046648852334455444657418282832512655347657856516490531903084028470136969867957408359093158085881845234712181017720583278464533591185134775460776442733308671077840024919116615517652185892575512063874452827463155413976794028385578510833737816902019429631335400756087557569075104389334620017135877914046698932273141158036495367833655411611934901302909875230668480335454903519223043023762984177753804997544165228022311942459442036020270303768933945763430759049838466649278879760116031272772061308630440607364532006297818678766202556804282891808763496074440114864466117693285904238416342556082164916081968301946723164871511575020978049693810434735551435009269933329730943043892647501474576826946218120965369972906712750955060114306268958352779103076438965032233248703268068382286654939912747896157280580114873554051225850554976320296112796580221915205089504209070080421477564523204615823708083129913390978784879046763824566129230812435171073540080188880422176341002437154383822075390660794655410423511083633520231031624887494543815843446838716171223133177624281522466312978393494140800348156773531644834833079469209731386597392288915064539448162822716909744645802010430952654152556511883861813574744919333312631270022155771970974323829837882158597593339993617487628129246857539046957750568917422271037689063091655052734588470828041646745116921932329684739715824157281375038186433889730696297426442272830747505935879154875578496920469081475174896380521845642716339026285167555807248315141174607057956900361964509946260661058508479756958443990851645477600621452479433605475101504265983003096460885784849724927240237353899615597785323010674878825189984835656565778331954055049816450223737882545079513027580805813924403111782564313743945075155771349342922836301337333508496633042567723734711943243666442013673325969077169524368934166853653078144459550413813958713740088596092245327980697951522681270148492707544980902385762166019689322550652508255995198327546665686466301335512019677760363973604458903498976721931990734752562060727814312671970858270516144095410889937064619462633922617757244106976843488905975033433569253435616149648303284083531151383147848484050075104185747609272791991821105198060875562319004202930207325032997781744172217932971972642885307620847183136552857252676018706261746305960170532967338774319565195296909721313681301925567473758382172981785852893713816987741940216161324279287775276334848273938526403531825417891118892099557887609803621896145101751087532563128040806788706371199655643706067883959327044172164575078346700038393533542481365054180700971786126703903833265741688302280854086744155937927256434187221898967626966179519502088623023425077236764921702189424856929126145119489929134515697291484492291331074879144887505415701175420574715994735893614861955976955754997452262204401601702715438540815622231597328181187970060258186717004058190945187170549189994906286236074798105988978467220049512227300749877690673569729459038758253141818657456433792223944581002676673106048927948235320527845059100711629314831344515670784502225219045660555223327423628956706961555523821200849490414954902748279498239609990242717362848657880847193997413922235629802938184637741916956231037275772475590761814304677591887832625579968815881624935967271374977860383455191719072960128815180221522754555153388964884940020448134226281398013346952516558629853774914620276757094422822171681862176468275934854678071619886160743481987227608948551544086090806997231140367013632247134560823054917910786717772175993842265712050303770484440188085771961104243898809389036449956759367354577926736037460446354289882808895093208822347282416621914986451607369867060938816686474963766103310105251661317147203442314183957557893685477847297689064053246434862305630372732253907901572980307383392199320382555704707405537672235126412688064158966499229843259252150470692515060296636543437852831618943895523107083574687638598152718734845816139176991995074397414210218100150391917978270260750108220618552173718565165727135852751178238726229784875744274211884596706736768706694200275164569742254847793379298876627129961396825110825181922980269335134516267512920421443455070506585111930895952939141280759782316332842460359989599081773318387142093396921280877504200773745330790551757553217869346882260508068534166418400474001367182961940832508237462463213371429185703865395556654449618792735513050501128727297893900797038790314588443229130298028649592875206660177888161727450295947341820605065462750372804423492740723445847874038646429084257613752162708430755485916671612882991848711907755391364148828143420880583051877668143170970122207053992830946468324475445093426848975958164773443873666495852673664857136490167302063060628085777988257458778593780334986398306133588210605768834985740311991044039014658497545085979735709698975211699167564479022039510113943476552828645423498485004932663083425951784166360282452862239012469998955714979903139239711919367266131791621550553133583036630321886980876435018446450774273154389293840116656841775516193248357949694935558567150293939023152373336194601446258654734007210687149117415669124358524794499760432534591919837141770523322848454300830667337538697005165690286149688427153889083499142927919634351421482594597036359726084731049432772412646315784759817472765759027888691063439604406883817934088125283568504169866861423528025730870451743708872507442305094073613752353216349794444952719764961321172455224523297731155625240954770822112458864834452345421710778855019723296162009011851515164619909735958341197878316676384465989364168551372519253178790766097487032319969824689582517884125577017201406340979554793964425683594645889053524958983641409706958015182196434670962942660881341112500373811093484813476705271324463010315782366982744292035620418668951173171055421301598753143073538151683869393402666598357113463373141908127057503311125351717983409662655841281483989546860716897887661033498402072556805395067751994482645346329667571711333578163506233255147048188167736013027236846883089430168850303417664746494431936124852178787681735159446505260494006432406157940093425481909256705008349812958581797121053292970866393104792664161370759136505833287325673251483446949020260699906021416603350952935709863825712349874595421803984870152837832988705073845827443866789468988323508140045231562127135946993726865023501106510941655247006191902198965938613747019857266791702755236472040038460279444240773244955267514853660614152235334594743631045083314615562272983519636255934205378446526062774958578071162720897313222470109173227612407168850735358556516453640233682674698448383851576812190826370382359560094202425116320504743581273884018964194160186127241625861174014487850607321365738620806708448217708279843246262044834962356850619330182319488294471674801122045052964648577681287498444352241411884808233399693961507996002705942685111101694692215344942560822687646592720071157558991867850472594101729394312524093496329815969063657973234829984181886549880626276617053933371229936405619542884610253894721355799433800191473003683005898661747434437590457952725548304938940166829795230590597688855225475623431925911318643064462072256711699354084728267150750034404786214663421210573600024737304309744850478711533580663521221479855682753097290026472823077989537431555132439392280335179966746582388579483498777959487209206099681348528101017803753947630300466818501934687804576118784240494872526405448953405940768753728443137167044139575597631780479033377136142688835945872644160475927737804755727004236849887564767309067000651717016702063459521443766016413748123038348863758541589629187624029794287519081471542164430302944669327158918302798199587369740503441774388596905501396365095374948737670751541167561261102710527803069139566431448753383847194448588881678599686953626239149768389256388660243337436770981288709219866750893598446047944856353709722111372074553566134715469239019797544969513173116996747086352458143417407687387741318864714072575130780987381818141704833753958900876148535115887620249802089348232483489135055082362535325639855745588045527968494986266686126791538391166405118213632357865910302443387972556204306582724211751573310177662026005504751378540684624180795223685737436110711349290353288268808658926419134374771736825200771766246738160605699529485555385509084813328083180241353732406296758118195046662498020759096035867284528607240450700043845475128807648086035342310897666969837338498209666102340423887424121214905047771167564638410124535064468880739260991897236496207559675684602595640392608232982429212423249890032608895432781416136686655604708150818940892609793597216145314126072754283306955179285077328134737932161031760068506670823824464447377647910694192322550264916231323906689922013047249669092462554650679722881632613076914046301947678528296719746282053493701501743465072286482816525272980048404926920950053647225915244681653564994163365961177899978416836380565323751735638353269264582159070380209800770823310978726416424377807660801202576449810106183289959323317953191730577876652854816734409617047581668365989872727470935771661370131206286218597822110516055444266048210400854052003410104236430167883997743162866073381680543895302031270477522272058394159963373295368806538935699279360934998198140448394945440315210412681065838994205614727971214543794809019459231083284108918073083020793693691642139548441232978482558779483776381556397413108030477139157487998415689030623943263052591207602033214700934328105444489748908798005282432637788242042339797137022687378330619159950368592235028302470410162642573432337399243102384660339255538356694890592940222671041967997561930109494400448975020410225452862077960100861766017472059800810486797208491507976271005856891899629438830751192746604172014264661351479397374515700901756227006846505509056940337489070032287762670951762247369487594616195328529509136292723585351212589347338470199958602639931783420655355336404031714862524038152166530707746466245304723878228113843199186991710713218370500895945336496168859264860759633846538529950123576712796164688687659117183451260726564710942498750317455932809694448983466969409482724567233278522007276383165551317011900816011552242936919440351849228333894389343512943848839160187999348016676848815813063313380255160568775895423650868557426522821817291727152458392271588712471099898806242358568294522606577923426633845334535554875711778459891118594679428784720947016337511466807730250453659774382532674711133356763060881435434336917597405909809612439335466589004198019869527875697874928690955477535297830436953774303806669584374159367846016306246811928354001875437948488875347133795411022433753274874027307853237096327304187702626746903693259273871196572224544043534485381721064956445183294095089841115756364779243086076972638650074500491017488506709301613994187197981743235053895373313475070733672368258732942635275277573747986624953210611233402488190418053869052602613733155199808345504599141340401683900083136759723791746110927484727879625985744449551428303394238626486578608267319165691753925542213510379548976768625622164014462280313227331157748554290538736092276179847800963073415267208012580230281529658553700990353269551579766717367923726066200141675289144165180612883001525316423188548734359584779470694090726601301119834284028258516687933611699919698824132476562828321464442297630421768693612992533256640695242205050915061071072177094895301468071445056912323310747961229001905976982020235081302264658676523207130148387844897434691374079398033384379725225893509936149417697972706393994616416167978313045075304569046310815993765537929953013266093301990796983396417576487027050188510060172932984312550411235501695936520273424509971357836930096034035689410309028600165017891677529539926249696467863350166494496720902825765187838580039644512530424037587511880250128132923593113528010931742416945205530567753535909356873224243804460686251151847879208768122325454726222529329729933504503040587614918504665016206901900663290649884461681073659224002578709403795874786721890305343040990068967285726648068838973005311770173727167257845608071551724834098723458635186791743602543759871626819850931483156364298395750205606810035005149991194762433137729056664726215181970661304052720216858068316890926024850747620787561394259781316015153794419554905894624078823222955150474850788871256766708913789053090488737046720991722336204673185384530777430611623619014491558421260227100937794541168581432438513557185719909515762969195583191276659602522113765950460808810082531400731843594118342567285249735265889068518871221713787828872098214582406928323411585860343188955248222201018149541982737536383838951852974377118564170872387454466653767419346651986227919876392819761075072361193173815718882254086068506184004375072819907578489822829260111545044989407212938154452520520240038717927162607629650678680252777154063667255292962852345496000502337892124120648263956782368869785863580889387575093355101216010957123046812286552144026162310037550074072432955834810843744018448713609923092677299333634746955560301466802014060845802785107477669778127106131284751421743404598182129717338933882373065521471569969335997370119960031918570758114308806378800329463725996963045459276962115460634809284699733866626598512017432066503150392537718372534809797767485564674981603474422097973085371514407849974529013921661860954723752524047796429345319973759432572798384258972356060857642790695575022592155248695367597733197869892662891690419549623267105864174995873971397107970317741368394654217764313400124268836933543937036549823836605145008517572503131002934630090759868195303024321884279832204697270197414680711069789970534564062796554244045435831129909490879870855969479383940699896928814689437188228924069347034292927839432784566245655946076200814158054371780170664068938404385842953352208705450470039829626884252575268706183050090791869240296676015317391235041947575349121562919114436917938824232171776990628748887737164588935658859413259461868968914969218579024843728897898077134723953679329753967627676112158786879982223473811713008441546394671032993585665809031729010429037043382822998459766356419124645241843965934143026810942603111211344972620332292697155700358515200456651478113084289332114128846505834644989291122875084149883128268949329018448762941819920483073730325181696448699935746781685070371443932170871112765196549184354248893328359166658207852544156296984356653415949778253036637479909134815357065115336926423704461946852628369866319203758500405068716861888211137890156969738359568832947402114310604530095331337746281150448210897409568018885186057934832608100542883638083822751254447593922527205438567446684479604750403416156970448151788974756580146547336656410581956237042232175413712328869982539880128807458837861699201794022928624664953311950586429804386913396383180277950802812271576888906654310526297753481388404305630957140183457647105426281125410721035846706514910022077462659702326649923155271144010778096604755841341055586243297462746119554664111689237628952942440180473194794638243539887219697260064265187774642964760102016991828197879984247619390770484859734599649094962499689816474500114949428584204468628528432801637866294128865067192516864910899708729894596142425456087044916280911285542882824152230236319042888015660090425333087217050435382508372602336496280853526096238761613553060733828587883237857222950268151255212727711116002283608920702051281295460672089247560670381726174339446771114768847502686898179124143854262425406664286732551856196057419400597982987825387435119335377187187011414447440740867055518052373855797896695747938820916415205767474223856860602847026565834796479241553270495353029288319370820877881545283053551485359805538238359633069613397288951695260871382515956658155733669529848341182202135581437388136400326759918211186091072367662250206506251393448870243874678960479439754555688101887894127478109576071327974781184696390307074609098547044634525324718840922783012971575340634105936737707237811434927736671108360656913747366198892840837488150872753070388441717877290216457003462111807784623690522081817574797939564964368598571306174099710390644458772743947829846818656164737657706478496409528064796172761941188730396088012229739610316500674907670165203913692641287268776351774526223862042234041961936139760096993161699187479368182167651216516527902834669294863620010614755300884501886810522664568293366038653366129405026240674577567925908348849205638576161362600543983212868793296523435147820988488013693679011919829044936116594372064995086561583305874239835810817728469137853917448529360067765835345150763438574452199059126217213616944859411005925265445800454185622949370996680079020388705976011330160585728446672233044264374352690368981961513130361689871419546281828022198359001602480019171594060308350379049042462981912978568117032206031237705204898999623514120370894095257881130022623002639028735394421256777628620087885457714752940162046003840431004275603688742452857570683914196459955359466270682491278364322203110480150753333900867992003546108509006865931450746048181943010341527384636073287312373107942021135596119198977428872106876183659691909615571437876185565168561222975943581052028003646845596202688890361967289071783700450860945590645559893107013517799375527775481381800953586580466029378074066865033906773917293632792918356652518300720737914969232077626266392654951640142940388230650576828800286985491635927411227743313959677644232262003946123459902011844958577936256270878052403716979025502069251600717673136151888194800546208842737902342796888978491685429025624907883742812136825836061381193222938056628719622191903209721748396921994690785533695380227073411638917963321535508728186003721411902634289628827910198968404236115014065307191202673168255397792289035028658346180675203866375777501597919050412483416267792394875865224604752378483232215288135192969598264517372716155813642191490042901960526791410526109084014372008083914216799731576812974472389527390371071825026753481939410774456155468363226753631184778957692700841520568492194035404739452930103141906078503772021644753500356189870797631436141414058435401953468227765068030218472733694051967704125331429588238553189655483882848755809310565964946905211804687731721222389206112465917635312508295316523300192006955362250169640121146848499873041391902857106115418500686597210238895178803518235479076933286349157606731729567429624492082292198466966658920436918694543932988137971545791668318105572469208089147901441653898730486422250595677716907688102990852130890818150473447929464340067588592407658270921939496480717857601829786100679850051768343679795268285251900397007733518504900721792239340929181820899106208943522595971016328023473214085288188358311142447808010819778537898481705727227717087954125942065358057181037484846398796196258678790307763092051355254289462868700544401503823176678002073276351118158365389482613409899790250297291906437907795877999608932530454275343157219597285970165577381661814296260961041893663328984723353879602425629778401595925176770175903715440634200110833579413738077101539854349191428990047655016140038424901561076400517499358422003174645486849188461841948452001948136654761303344499975382345047042127934714727646846030931530337693859725744015812010726271355578321015567984779317763271821833646690832789587143668085333102200464974455396145112270746038818244801916904881690798318072413788907122004221375879969290070679970278713816591691791034991849480912637922682007874714261085813756305572054540465333229926971619033281630479174061183399510066600845083072579672080579349128084119638968569316742026238826736052697595237226593788187498505917005386912572774388895546625215696748215648933942382017365245376964744829400305364496376106211643578954540997994680419997091871292387469596556940339376743356768582875335277630505170934953913687636148207560759791953102086467074302877749481293330417057687743577962111521910264208051471037310091344947478992220253779005783261836770384376830920551657562230658820474512286209634404250628239820436739352084533910669526202738913200089167115470477838586685945927065706679361596030832496937340945337336887785144012461874257415352194451009888853530867950480987350639320978257432097842747545479881513904292972153560795605940941309281510364949534167644064951701277890425130080717800145319008979492738459971339933160399356965845259637012529663035872218581331000160046298144694996404533320388134369944201513597907083880407771798706587739001038497542731683244138970454828808926900172264857374694374305060515685528798395128888688098263769448299447090930585308564424867795234693006293016188272046273296126898154581518776436415331521090442810030790466041306401967064466223549339523669651495363779515878097416426250058491685460710009372147153989262078346036092910289988509194486212733331812712220898203859500334709854601936479569065043261665469398343719126031961312539899742032265086400842946273301862540415812449226095632195844340116639202663582717050718434028792795767744651390209836584073958252458478894669303278201099585001682208363192486416435874423363260668346387231612998316746715367485926412661514078287286798157665539459045129608548598438767205301630783133750967793721448048530800100231184863212395896539622216407052759369619836584222792022965852939475632373374624555751779502047400876289910248815231316707844085773167890941209966420878822476385040157367260973344217192395662725368749967702613090298413928611742614861918968481288370503932734068099410503352696814896142158691619354411144001987692334217220427296532053492710319534567543369837072251437901655122041466414912341586756156203251085095840848080097273216533035973791011866375836590011006361879617024289148398380344999151918872366576039758203347078009469085219504134420599267805190317550275451970154136089438982260864518770379953187116225610425374147971163913478470745858444457954256316743863296348811206436870528089501721501401959980283637149976342249301394611106841813078905350925775542336487202422064712977605976223718972223754776033152948755055888331494124357514950666496896560110280240178088557710922269015733661955607825836343275406366779887142343526859978515828095641453390791096210986408490405252571754083858188927394937590636555435878286887187904172185493861774999944643309822472345884197939290326376673719386907425004057723685090305338751491752342692470211118941957540584767261671350402069483409610680194917632641315100003639470271648770243371423463685990449918787133275302680203333403793445808913899355764302289542731554269605794788566348447122546148735718367288167142836523862486920637165773045750808246776942416860295396456785204628792933364276427833257575649441118261100992741976639650274633984537962386110555529807394933705489523205850504404502456813601458320367351001745390153311506145402002463521491478623086596265959766464661915088186388863631552885815057225185708469757955210824943495468235022644376101622256841243827697334998057124649685641933002671053680257526948998093077657878580674295070273208415037728086177878587732199820226944510797346944679961769719660708889834742095584468726234536996993972993268608074060580631336591439401789374687795105882256821788019379343835202047840992880406069441799967977939769420721585072710566223093365762498787926673275363692603539273481374629798156171842837366750070391026428550688834140480303257977783776693651747596683811669008959889879121549979654366021064547245454053759969398941682199460018530515677169112423121879295594616351054293129760777348422421358519466562539499684473048060412258675093748659014146112955257642052014172835595728899075032258929467511855851533880671589409137719887810546244134281427215601976661015343103590826767770489834858639696694185491974809853702372606843738141021123233713560133039289817762319008645055965627207849245829311522953582775108930169220007005156154671644185354220485600221061526883823585717061907356727869051141759216814875002455415918901461368432643804737592544658060497051781354317959482609703854408907731482669086237261488034642729033920196464962777583646837961888037152829912273310621915867466669913920516244594315515581800097870293690182932041216396926048463589841054104971752171869301449573881563956014085067968801934055514577813689868666268140202111706746381935068846378674732064845594387934542129898500313792941915551973529756708068711926341102474024014158061383640414092464056673789973560026544140700424180180881285616653224298238189760075519179587773217248142525958482720620649907552079566437369936430146978792947560600951926709559815307697635017525736796305135532100098687583580684300278693972878889678742738088235788856244291189179188501066141469280676987840263774440671668764490394603967291664553183693659086347864917033352099222400155926822543086404393222715063218434829479615917460181745819831323314959220722397602426830497744229949152889423369478676436977823001931581211402838341496908559499821571132465347831395151439477186878775823388424865018723266741955702121253393238948514174866038235614298273263452067454068146092329425484618183122632661499780471966022293593837491603198731904171795581738977326130665669826379239319431662618111112383740554806949670214472804007678650176585278392130851354788551891773893332912631942719547572761854702145915391189920664909068849206665003498106111139971393468745476723247447393407464807300698947057998638928419263528647708653475405907978404381249016932806685327765154283091767531446942869003700193914374926828735595422530634513814595727252902531543588093019742252284183696361439888635315880210361451558403874577652200823432068494082497041407674762651677437823889812087577358760624949661500375575825135739213534104364875642451380598700325503247419799975874631354384400858447595146957922027017137654924368953445070049455120840432566398878035217019728051413881552086136426050733211856563887792638039362600070544079943632857057682856858982905287550068378905388744884710854029653128841605832470952927942624800791941089471710695133714472338323630216550280624870019213380954386580069214058918575006669617987398206365841369242334220139443422539072863997540094531617053657856333494830387740137627164265188991574034795854464882686157079778836149972657503798094319664651864045967298908568341919117814929336393331806676194726728192566090267484497230318927340984837339186300769725734593033204691842768138872672072933343097912039028724177197446523246336008118643004718158049985552288769723383551736436502328822812987893032765775326928527743261191556684633296782517243548073964100714615465619016119070236720329526522563712374112466239929165166594544700865210935004455214842546393992137965309655635082845414075547264790836878440052006435860016713135630940871020077968745972820158350385227709517208273706654407680599106848810015151799624363427312899899241224767197765895456749835324299087725913934246291538073970310888844118963791324812472390072454009078417044192649724891350755881709397996320464523261360530388351538585287435545146421776109222662934832763756093806013997448772447880192827197472225055315026132192514992707382480216334966500469198847717263797728271668792980939531750570835313805466832716042408734817148120564220222768588072522854097251026303210765640273544091019438205354110102817352971258867928177077864797775416395650332232436701807173582116139529161764666905912120797175558560159341149071738449288462079893818012502229883347347333600615099440684665327418581193720513765384574967087865647739054866432759454456637624221199708801224468335926810632348215190594618685106847989100004270058858475988850530292098503763549772511557399891552600937507588339878587656067828575837181332203401470447358855041783203510428573455032756956778521736549802395433405324050937296284789267674036838216233533862539300768350237355823296249623322782166815273208463685345073902149314468888152766163801637997684041210453263103185910498604187349739385969514712733099943448410173591998253567778797982647290255107703570177461208958741815606202952953848010242017960180222254754571573678900580287066719116207327048954567045477092064854930019555208815884269825099195110647907413046401039277162140387597246994922514262110147054084919687353499158847229014699287908220582574480760131011955060296599581803517497408953495436904677972464646603804374154403527418149002228622229279154606809214803530471381631954516968696210279161619872738122429859854796282147470717488453825865733439775487463644902058741904875707171859552597291035123187111456983083658339909165465382377662176769833650311198509102228428839885912222433069833605653341936313625669665530061924141340999523812694873434446096951123660690829569261430585541583132460582977288686446962116833461005612933736805655112755989320616762684048137883207875680917331153177111873040407484627977550554720183482989439211626065750666843137359882293876730145359859031454548874023209007934124969759654565441355143235081303001152727221493032857387546606769615436277551626910404437894430071737375248946182885298138715972093755389548528707285543163004910510202750354373904676148196586323578318523178960784692249582744673275598127538292574592121500900769552586216974408513173450947399552049797752711095819202253834732231666921755646021409220499672022123219781675439911076212720248176123158702545010666076195716795360681532595583481372908055692973025538185947798583788047515905347292424318711797160217295249064690163305925188915596245681448499539277335627904691665968718834911342380944864300598727850917008858666909102821091028723544962695176204984230078275142129851866186858850934112979457851748269039349270961762072946784786353311327584200817069595691286457341173124883289598298448733575981646773180899954348058068793241497454534333938143284388688436899552783845042467769930870865331478623757406661249451503655780521942055494916783391663708450402465032978279781197546068916241278722267814071150408052777495504372471148308544186252533116564758028726564862215414440549848069981412127658721411492269804933448359441176355763536062933781675556450989896221592842332036951179406632028825648093334147199402478269940668291457423821900824286624500821692763426080418197246511527406327240906452271536775541215751643690987764365524255131840025391109308726392529756709619880947754373055022094472543418832674233034442482846322245140187581272289078285099901551387957598154524092481377663337477020559494755599530740624552720636725231418633520663959833322618709261236267122251916929606832350674077004605108503826795056806087401220754621583030572602873813190010375110805374934704663221074665006082216751697541268055022064234196051862869495590242268801181571786225516102247954114425410479422181244256655224709621020674981004413802949895801973662577136367273117408220165006480826593188992661244349280337637647750379491465927032068820935609468118419449370519825983814419998102498268646988678637302029141859802280485964540130046802908647458099026727082069404770203901877298914971581942544978764940869319362206499090032257038274269505311245704319987674215950916714719544791471557485485354104833302790146815215040352752921270697815384140272406803975349726654955464103723955282383845142551389229426947024214221957267600160487989991176722806649479545725446483136294041796048280184199279772128487569408786881530600076624974249505457295211467241829423955179563373667242670896749619181084594060003021714565035229059368791686681650701432145614886729363182426533321602614630449432229968642575222448501693811363070177122151489667456079990486502053624230052172334283959180393592987671426042565655409314832708557352302515059589942488209157429822942729913213988573867554563354348706392615575438061292826006959067850521869278686097309950249080920328794677394154351231385372457417658466077791173100580138845369264377176637547011769359121230829075678735913639065343415154191162020229930250302399613664220805794503502942300986371288283165533250624048298629986078100764885126137583651234273019468842778969123554686769393283024843598216756476135438354629143742794517771380119013727025078525138554468366293396509247149297706091260941329890216251300621760166499907158581053866453597317155728810698568460618945117361270322354512664786146447974715401649494747553506281744153073243676315529872718219300412060887670173930124586172264143700057695564665997191295290387444556714449285171457212504900891093384877826359887848411275597694257054127081801231677101369207557122003205497299722635811892040451845757311753890223354299741329859029514801353599335385011990780374811473602357103403125722130118983663549645401848146792699030838997597773916982248451927924059465661653838040542175442093785980074906091348108013789576279301243774983876389988284275453543070614840537027815921023553134306895354232160608812475157654216113165023194667502883859300020333279651624602904545390819829262709837544658772870645631029886603358395336586259690439507681884043124951364928140388010793455187539448330828771324050369916464923253707191838321861177664329472136907616798493286534556346613134811784389225322862776314674716657638560775954647181825967934412091982183828473766670389520669464594934114722274387384775447412728159890554780256516296479783468520950999949715463794798035449359969018481073421603893772588711110424446169448149410232845931652310628401163741478663140474994363689861102741234068150113699106462670219200694844814579581169658494432995029053421587829080897353894744973726604064453390097793502952216233172430380554150239585038200997081954319294102958132954659713463397886045128943766794759556458448823731590289317701854517594524803559650161311916009226796679201492948967030845671373557447917114315897776949300079075237886410643306625994266176889057373583282191285100047338457137303102656747318238473047769133132599297719295563392383139603835804044240730646985759767453534939178600580896266877922481963090981967572263016800036011943020601157606720884826604329808913500635895292401296433497987036657101093037876909948618084517229273509920544174200262997804593370511138116363873296681568784227913380496252708694746490786450707835101161363377030816848383581872363964832399012988403472306233448560668426249871504250731296703412378642502771311956267855038602052731240212652196715317769765591838013009973180587315500363067535283391975062123116151292245638593873465928651169012244292954726836027456248117630687394651449987753141482948989593376783496125426965489497481909560008188665566447231536542713298846590587257189346351907354055088308008131363649594826396716138003098274259448480027217857336755739223238575869303248230567275586598982225018060920266824879972680000132422486165424861513513080871540089220486544542282228004581833700377496289912206375233729911096636387087461903320142372852647642040094011614093380364514643162250529261155888587550548571924076114521232795574746976219185516047285486475713880786700326785248914196859723401427387805197796285404300478713706986404364777845447987923672346311985696146895557148372421509373818709219236929053878297609242331508758588581639519054433998054953696934906907689329341232191839578752718173452038454690475110555069542874002452418647828552513585008251617402793790364686095306043433589998134991495980142777013177052520624136930645225968810325236741722900361594157006167152671992383178801972703479814637643027204136301228400214969678868739138076929149591798996123373239628171661850599048189071942177686968552839049265144613437900535717471194652008412679821276616041197187817486263113411679427699467892474341316957342810293695704194074021390134874434193447078022174226246746639234372057739913364875164542311264304595409439196036813801530553715756889250211802124619345271789829848740955731562691374869356802063932953175583651712651840828863686135265200200173408465882252989277014245811632173452059652750979146522001487974841311886820555475147169835302563252376166148068641447375202441390071218491344858090934809977503732706292764107946302194648170859051687246118658585961204122347770769467262181474197772813418154095461006516241485893739202041915684859651653779827299054261444538184055873562702642209031618467123386081657241976999424470977752197263512933149497771779982901872592198169450129005559805092489531554569422770050392417022372281478500834078403312098090386775270674709216845603229654086037900820957613493263880916388073218401712471091321040106248939297097488556664112518089538875335680368697553053856993529609521272693350696978145848763545062821161322018430392758488512982773712475533753256679735321911212442566762669297630137416794078725112367236709008227112386186074584584055331303190901813018467222770646054847453248713777148742060271284458864512425995826554342794629989163954489747598830054261860332452428080919816988121113083367480174188943499995193582305849591061633143457080069791612990337929479253973274380757474822878394259867535325115199942350473269829863757349005405049620653365386396804055842926633084078511073413077839391344170309237805704361279817992226984020528532522439821623464711682290636004668394532030977615698774773441964347047856150645825510888124237374315553297713279191869909558461424827361026045824704179633974680307246768007194849389911905594422003001967197737722397298383221376674558903771619349410949839349848177244421937225917132293696020401007854485794691838656430580873071158691179820925191242563637102875421977304124523775732663767134765090176896755886601309593946825085621509154730966919376626219601428856879589722150890650183373135525718338424505036728660388286985809583137709174801535619995453393050512256853222811345727717806413023653409399681593170158726088540990778687791252585861456363621321344562386642600098967199849027573450419153359213776687834857502357843970207714987644604718705843956764650227269914936163345281556144346951163838706506805015780559978278811200726380487761677022040181927562438821744536157618437910174845093605388827612148697844425574660847205565879457189793120031764516311610084139389611648576610904070109566700619018667651310741554313580615406856454091830304848793973834948468676507100309232733697130315050603746068619808998628783850795569446718958397967365610724048220305323102628205947524881952385325523011473017504291753780469844463385373923132483068199766479439761632204225605348556498390266660617028951381396202421314384846077784705549029632938461851832119009036559341685997124573027194282478737266194210637360230178022334438669152174962631852283986702197672096718066061621221763639510655814376327561521819518844333962132632671748136402303296216200968854572724846355573802951153103892523495522622202923808211314927065213875702504414628125523552098881389619441666968318594385106547638880233421343116246049506005835034473986716556743128739505922045577806393971826204660292278242849243710834497007757498687080888001805791819881407727257645147259593155973055257759126370030702736469626349943801794088607471322627009567619776511550350599844206855996600583538603586795054304450696059616607438996858251343088195042572608134797281113331670960045121793458608691340421713058068413497404873240326593727972839826251177346884481207457724795378276937372041908594469990055999461213102931313681251686049977212499626742770466667722583072019822363493670711981058135425055040980980324834696315754480067309322748018095057675655118940857457926660456788741359309759860270786661089626230297566169271511828798925396927305829373819088656809230703960210343631263411228575013997538096047828895445125817525928205535348268304286013626716658487543618728662157893466912808145106711116034436086589906579865212915494631609032865129754832041314483844961489108657733215281968634517134284839609755049668210458997692657378106743163765372321744694306689864530453921817621550148614592193232244924179271096046185944202154564966214951438637394722004898093381406175198205716468945308983116222598507971324015134409334917951945477817232755179778766738838970260339453288432262306550847404409758796247261447757211669604932980684201459076266216296931988435181437190621013058485910348669308023117800617139102302341664098549795899481393480782160621186894481709351523652629260282977750055400251553418302598441581016832554314613718409309589575985595815146441680165975662428728404010361854637671236748293402301147457904127124913285133352007640639160085070270647357815155198986846066332585459506588063118198304027070539061804363969529367973995329483971255151354468522438024354886722073606037472856896459919521630780518109953564468759203658180329600003245988686797165156077359855399589006071013349826929066731813092116554303685354180087204427788241436052470025724871974582497453644318487552042153396645608682376355228183682487170074771514171995396091763542038260900121783459996501778319094793951081635958985045234084658898002894146737691743517802643573784138252419700381028003067622477111142832917855821352254910556893437083588079062102278920617357538194475534949197814617089517330510515387659405495180996527156781475892364950057615580363254562844495173339957682306095159718548869311627817631955294445661421679807036755562018524778535376165176119814008264446613368873405546600292557616792111814374743787772689809297469696852387807486174368928967277696117569939023155605217740966915364961988930610605276976219952218566519398955118482148993219745951425404147861663373596905892865245380407463237614022006573429883369251320646245553211117909056068504089754768943765543635525274776420258338699117581491795867773167849865103878457445095394506452903632057209023665106889448398469459228633593026527914836024626487885906552534641578516783249798073139642371837774492671092219742797331350608333738425933910180299956805393157638927355231943812803662767420919601653635895105132909088312050414689263779659126732474985588651280699468861428255855899825320041155359951965455322590258030286554478222744053847543729489823982002660680744569188663934641230655229661802383049758531295349496539756983085507242844778592471124683769407866139383728732272700070872258372364579159726035154054584729398095872226291175913770888766266539749944528612840675608511005298841768696867007893721821209337274040985242713970830885223871187340380228529995445059726407730496440460032672952280251436356529199989636695272109355060534666292911473114470021802597448950862674918396751158567553531989816187417820580117107744249595394770261893369063818107395975332641083861147104343792390532503316486126920557145935731320589528311010028862229633143827686180211675709819168195718102017306628297940616853811091713680412828185622385312711337258788968824114589524105567948129376475076212534204722043045633922830793595152205208574735098123212046704119830555310056916562379982612349582012679650200885045966122525381261796969811186876336683224469903564469967298705445134082884619854205612677500828035150501297086854099394049866076837649962459158905902963215142851877664857886259156516670031852764150205353006013180352683556951690010418660842026653376168386186419902591299298566621680510343074651139307460114985218268255203862458213361534811154508065201883098732367327908656763878835686399484671500326924990150062414216111740996293568168660044230839027170937944971138036909156617357796146197420788852663513852088394049549932183246490029623759281397953073198687717216760261396893929542814373614850425082891138025153490139272930721571455323268505169568514720850106536471973051328353785298052615140346011877387836793484995245555894444632580052229258460575387958636236766945379462109949201758270995646199241513184255371445907014473503494520100069521271744627155712596846085991583160231025454361150318349017115685944201817779450544792091607738488965003017815168992100929108250027181044462092105589262638370210690420165699258145568385811878074503245892191827575531176224458447131711680346781225425109007041857608698141305232694937701278050268951385709287251913506075680985019949150318394945689519103789784543567451955773866122365892979691292794991872286504202419940088820693978375890175308780488424616689495905082511479813667339321633959807212610067078690676309985282073380333953437413200448773309621361256414691939678430384797979562790739472889137848769128689023612186960503879092846160985940540073663027141013548994958914082326645827800593985015588985665245931709092520103983772033379076803101620841605800633070955923547537961158683368364902964687044295640730839879835471468413477907839554456157192332122828458058572922182615416405047839986263214162646534491615867870333442502160231163726952744057947173605600250466342182429906797253026193652037813886395841020350531115379669297973188291797915548586543586749566973944005543113064679200356277729399989827979984800866728996544701487093735610805652296334494018132735716862760932246396487305017051879826491122087403335313873091007365354262912554695441366159051539278893062733106205366036460702222187718867446895111524781963327203469693742354343142134240073128997242048141585639639618916829431835461665482836316997311424754226116517273611489415961898252665519745938292811733570251691251791993530766480577524027629562748184380828124708931956021581201564816443843248677475472111138174727835271035384011192980409680056252694663095815922140539550503208317476747606012036599813371401941917181492704104484178290101813151398650645034067951236932516077780353027542985166215346574488517040429155454594706693561049075103204914312183479858055351711882502576810998831611262187303369310499354208740899250581469242517497504976434220292807918500396337328138414685518043775724951242644726161387018615778820263225377214725450680869431078020720227736510062388763423215547376459225804032486553485255980816168684794394384107531271121025618960419471936420168516560288886419930528559826984350569746824103072901822112907124167539664462439401080096253983794759435896541378838766037280527989702801362574510963297675143014256909824670854982811967518893910389629143545118902928797746060866941477546839134714196602198453481504045135112226885860223120687915083773483550131896686450293841784130925481628175357434889007789615049329882067782399777300157890928194317594028243095666748988757158063446559843898543083976196098422325458758722488978039787706987928511302533416059134234859480603601166550550067376153922325312126716115346092153334880857569607003063262936671682430056877695533415089936355682028192850846813667760524736783330166180347723368288287050527183136391244823165828408827549276404311292702953738348292817856435391447088184712808038606338303896408254496911476784098806586931789787692515030826125646532518531863690601238015177646559688272828170815096503527129514673799816323694848206410238948192631531778460482254588711451135126166844136000565706193308613578697925302476345810073510235629480202425560687221543969899424681314904577921145746407292352739157242186426206613003848271910987164112467666750640660195271087103588629800512174517826194658598026796326832446375682356310879934581330068265921144005623384477720167854456365393505413521995707737372163188237835165665532733532645299531322882708765923062771177822757098419649825294787649522324841126358822832386996274633176279380088183485499256201189896918168685804081406863266983748756522027415074346881393836256696274882550121198998379308275353634195927968872937292551151424568889889541352875966977510615970873279663919575936786115040656011528465643402851487162780476737329770789912979410582679801312674206734616823238155910017253068096880483373549735064119703467942832654083650727390777550947794437788855204356650568683777464268883253717798780396627086317478922519585538805500583226768883145104930248620300707938320131840378384508756497725442059929623810744959713028151705832729103640823426286253469155166491630642222964807605438178472426233093016405374312720909540056430986851297954372440670649823429425777697296412354528035151169971033282207167495548807990831531297058700081612003966719867562467537649455559948075330230039976357594397738363680641941026694329239855469695528888633588432648867863309410941670744177189552594415648397205484117346125371420433026091905115002964821281091024036840007514189702905842646468426687198191956680822330619100914761901809650830422616833827236062694421449939718898362932467245597095442827647939868224561618762211443163424061462531148824897693898288687872472178539614450047901504101410583118637637186923629457399718043272616385603061250081685922270690695307424351171491961858197694848241647800957070512572435544878533088902884910684088966476563045093838883390071777422149742754241641223517295055623864653683921485092015793327753561869291901738264516981695313292470683168691825909623126809766232935120055662383469035397315166716041111334403620840145609448467139694183583376701633404329499102875913395159162923995613494727756725241799128378838203796005351048819321554709053297725213324981469153551903443414085314962871078906809691722362404783421091851058036674402600622730485478241970308098762387920161435177809224781081167414471877328830725513473026454275789146696358173381601886757690754716361017405486103731801773113314497401799658209428759463311350775093755699320191701420164851273898028952584419574754512560453538092427641566508629652340175311701812122385619012466283700272986985232199415510259863288617990969823323024950842693209521798933129047971684467788104752452730728578698951866547792950667693644395914351209305180964304639372238788773166549096770798489772255234084208283653611987288154422049424849825587788835083182745883225263932554213664644342902114103575542955247360172656713874453922626626704725147652718865928729144939230024158848566589650881696788795214381156144070092918358271999740892702369902728886775994880166010294223240673761619955004752833586870562558771855073747781359464849254702109333635047237126971962717907236590393526938068075495286549041280378197435371133970471691433929174424432937405311080524880913312212334594638219866028684584288390606987531992906079979722731818931218375969176876104269901624799370361976940729276491136951295989236656064534313365019170184377435974202539244107438831991475933319999722952513349592826880661010475217999041669055112090655613810092784613174583831515026998258541164755318391501447059915531296917871177761136407475900425661678590549000419745042387260660347923012460992758097147679350658394699344295661493067670990898598285540640505670712224413739238066493395105928939263963917124715216282635852927711688127554286450146104302236552140121279962699144275141932049524462478046622989277465382528354905700904482624147928726602379262654282209223030454874939314742021985732991162852460459596944102437579085581377003761141843108930558737726311675489832624333753486258982985731856430379671620453433326404670193765253481944953856888012787506363959351050626233507505077254387245888098624986311939495570004479154375535555196447646209946779857489080878751584531317178501578894121929893356780416114587148683408034828615829546107826295777312124490127766271671306559686127184066418828806064164973269594437954582957229526595434097953262079057063361544737765006626657481564940593238332450592303099787889955529693378154213386564629044565906966438561401786460733400991542897195757748266928906137957428523364047228442147423614149219626506571851640226214656560533103777216751676505354782242433066047336509744324451324372320814585042134160327863801567861753269396606542776572014110188387536505496648598327392007477569640574338882644568617219761965899183682556048221012621560686485217848466255047848681806463913199424145654560185055072786063717931178339329043638283793489278184240802427752934518066857269598532606368963420249331291878729787926791581596196594425434377052057852076322717129525083679149569279810227358251672918341242382571208519155064455850775279226717917868466107242013713840171436777066754702499731728846487718720106221440835011179879212861056982010483289432371020373516347971642553664866406685761207035201709274122099835035449220746372116337434401683608485611998235117663795061651959698260240090799759107274502425317104800727701275551254338523054412827622673947396086461207119069674630994155514979706796228416184931600170860260588822619535102478696130228173376807996058815341110387900795880381939505060860308188448484616356948978462898244566882073479006343365440980641217261471987511872048985052650521799253175987529873104718411209931891038407122887483691334854456081390092763819988417406163261246144974017893014870032173201803394927722247178719097921572751095459482691027040750238856041318486896841682851122882828336767363715812675749557710819062610435768281319247260376784638774836692594601504857704336421116329301315315317397898460104956850468981480100999082209220731553784678291850590468658155891666781240214325893714637905422654836024590924887281815284205283859775238495538494149251178543039546298898018785466430004166317922529703027421434582224278377551316754897318499518249115290171316263573686018099598412810414535173059765000286301737427403276857644576042840559629662857186682585447677394673799422836832531488529871552131374042590477082946996760128726361399341477000683865430257063316695914650252819897140474159403079439490083912913452543241730557589524086001968223617049240156910751943598037558557911174702742105412083152371904170633376702572542583651784290122989068362544184718562456626636583144636966467472895792592956663041880325563354797838215476510652785300212898394650318748326026193107155071649964937635294769788543679533126187379605545092367923859174364764927952472287050949354274309975947694512901310824312442808589274660645380042614451453711128953323111620933101265501333068731627994551084983488013280933712404251278650606143405195710877060548022955153980238442971379798447542539037652754925645729050185026062379597572189640207877534198685174178708913946011036186080251638600853699270798761903368130594582132695119789144245792702933984315804601508642343276116989163423517413873962619568330155612027677908007870164399111794235433376425200798029773997412282659264219534500661723511122333938720191557028360922197920126886016114449151393007627836830045486677146364219709156219868180904256141311256247048620216661404237471706280003335391107008866217191357623841490860488746068251193337838633477244362374783603131716171552468159329066983586708622325348424452717664145504985719595983537356254668838860287048863348223514071830600432104245780060586465649201033948945425630852892107924258543569247447627705397459282569359054586521481232063945308770493517599550843380155862671365605473460204974421057251633926747223790790567708135594749619990879491296288596246127101173935609420269150981816604500117421404642914538121120908744970182137035813424921082523542955052724512807724187727417215578898767488266259015275697115217707624592830628796188061735718307075505494000929246135340989603559801791482438862064151654023320079703132266580515957724632556166260815544192175528798929220850876655159828386761434628609158772840275970450369280724775252099271458968939996803459991962232614821526114227225276405126093129104964057137935614859597020064277357519502834629304874209753882947152079720922785904813431820908307492246113379579153389248065596621701343169191054681473850060527126339749118601729637192900714382529519630818599349259935215604091895160795675831472510373147829550785569554509321532448136348331756165303054825536082784619040664717241871158530533785044626163306977365594762820669726525371404834871287141090460007657738638941518413535429424589819543412715225515988769985611591848954785155428960640474070966178741283220301098990636951957318371185763913929951069772673432882567435881819575157436629314046509001908978194466670119229976450139772870266805490074272626366492736599592378739007519869076006555288659402029664623242948930191390698167440247349313245600733804491955161039169379993354163260497884045239549238339102541990477003126431182265978947011705064807008521655961486552830405567449738726220439286786395962859730419183225255134714903567369711943194543891209180329588044865353424206735166352473481822331432920803786581211512810161595877947267699712092179110280863471376914059688286775842417801111555672644233632172398962145351341260402870182691575908449539340538611368770004405384714108944711603447608445159466703058376077741406373616432261884199910231490051303371155626952719863969555183057529794981059361503063076099495386235058326650242666582343276997902208809579920143178900528403370007858408004963677530552228640386656595623120888760253842070630012755729057598068305503044544261994908427310208992562111236263897675995890181292333540087020653101573770706182747310450378592826164003811571405767284096224337382440780409818815185793167227010058251950749581349905714489929830397882657642989717258954438935127296874133784602710247991914709306571944280561250221216497074338370230525851076329749766887900616868904431181841930485174208585734477010464703835136288702216160342622200979500775582283917384354865572370230147076210391571616469444299610294191280304652373840167237883443695413472732951749930828249810806176780163062242664609425869153633256082646472291084068130860976287474960910858565756391255482290687551363085944677148461588405228124603986254491721226867031858260778456364760746519718080243616749542520861520965812093901946970220191939036038678733866171495353761338817158442279589322899290676852574689548120772438964911451564964236241904131209831122093037892803065513138427808952734620958714162981811694315759120715899175880350597739829870825901907956918950958128556475558878499924880680366708003304800931218675346495253880042528885291624989423035718727238271208923156498096381465817897105934987516189177603807735227874868360336785280320044090850924249124289551048211379647270090923531871335764997566650877949162843927880920149879320321249423703359326621662282464278735749785417678956609039891186559962586661916369434025249296602098400305878672964054075318837718377514742621494044998408479518653670867148103833999112727080100996364993757921291329527471882448517059233243305651984125311590742696333987933233545079969927997771364072147304817221322785577760342351263799452029884620774924437706498179245459389989805063368507173374046275362192178784066667558287948394712556288380357938909681939387203909868892498286432510366391413639400964326046136461458414148774066483125811344540945808753614113180628325903946584464221248187137556534711307514989368162714764811864577555224315112992107011206197991152022774767180419563071850454465277701649725574458479504492026196289532411500042192267272408520352784424738804398016514967130736254394732895224465796750065228045177689543771316706624858619261608797490920533610399750383580133052488279045677247060718989614421707893121563883425858254638814652071519064062116590723979043248708016779115710331912333866764571989458378076867690624725203392274064303242860841011430042017077579174037787205837213979787373019874144940774659878187204687223752559266686133227689712222699844000094038015563744684106450243736828828777226981030684499766988516397727304212991832098519920610293505070872911034041473352996384287361476956404570349106243344715790900723612045555387345263880009111440939841234817958879014328885498184675040842722172932923130743013309585840840091407751018358573858219381760495217697835354079208299870648557833436938787847777587546762618407125640053638391203506777092858033545799348984937596312124949947672066715752990305091523609269632163247595645935906586014216926267908794253768582309129124135490581213280773925608790305816846152757454491466451175413089389102032644706151801799138508841943815756408260745050227506216898320796810488498846220563164855834759073253060434650643579817288190429694215136349279442690687098997334205534106165578632376987341134100996883504821505669122293651025132490034662034029453564991731803342572000305835839734337501212294919925913714320727209117414532289634941113203450815495654126694180664173725468620075248644606216468762355320457190021491644197754423949235577748265427415715894843812345775620898558408342302956372307260088953820773847447977829898844324117967997439948549151435764158871145053276268820191830703723312724641811326040546908203866514214672450266892080506828261763045420387845953030097479715212237485308156581355118611546013755320465155933702114270564343240603137263092440900596320625493677522970018464337706150931021499524592553813048882915103256776193677587434082035686253017548772163155423335243430023506970414103717189014779615731388875915432963312008386123818668811601316416099085669034440880408595642515484143145501380905734809705983879344185644468908807430802067203902266815036222399594792164080638294933000968219578451646414768903233292439823309444225400572254300488414718388279496446239972717048787105467832555825950532529888582598118898994407060278991003116258025905516135730851097994364239930716980083245799816739659153941028424020592857770988897248983778668984710616818226738425696192097501969586598168745414240869757556718195090262176256189971823033736266395429520105401392279466966350235400775916779528343800642215107709444845505893938187781735696607724319804857630679671963563684411565060373184371712220912323766762005575859324033560090016978962108156785993492699570133790907109410384891888873980488393504570003485872553535770564968901356704261388567795989843886124044237595788486814895457042943275534091520501516814368077858886593993262404138558687440576930387329605270012055801539797187931380858263390670328523293803947711837620842675563633258063129301162650350050444403940536065139220806048249868185387426784396052948834845961720291199688133333183250961265430043257478552882051375518997720062980009262205664886208932614090581255552401563855336777980476982582559624598698808422248631645936039564289473901779773330820738572869200535614623041822653761523500503089459882542085136013036640067867323315514069906428290623680125582627866147728036866161817700298376033457644307345612478583096499583775421671252824927625236530637444522292580794817051452314231459321587455849062857177323088464490574275136459117986886395435692356300081814671861272942207547533874205807941760626831495393755448148765782113253123867134261876099803342935510279958318210352824514502864197905877409113990542542334539009387111661770092718499335481820682019945795272827435080217159384444841355018301573683376797921667850479822313273499310756760515542279856906102226258297413644165365001335229951854404658925364816414415389392599027117585040050090969601264575483013830509903635051096592879403835770457417302681507732949733500217600344095589540349094446356119245138563731579965741543084925806608041628620067188660974091482292050817935808806699237073340016606989306282718300636433648493170423107245680359692350936186945750144137891272849892797518129353436526489537121925696726898885854625928501876644406508612279878161885458204096995854486879365447189648448849203815274402377503765531039616002071400937665900084531438510451805772422928906028037094199062576588280300506128957743070689721671208852084091472807586130505532273496520600906781671173450480574694530027617834520420736017724720090794840924647868227987027834807175869181532401788140525352142176106191859041225704405289274649546010516741641439988152740966974616169956466471657326249066933593259729869321836521404147405099283575543496207439926246575664166174187268425987690775251277770649095171098593699950918269181276879076001852578967346294230295158200345133716076808072936479047726312193388648334576550860312530134476327379639362678108119487632391558831083444202901404282294862483624446278260933652016437475486034749852373113559794281251595361810064199540068202632379129386904158801455880833368648411709682115381024445556196248970619259452048182128635186119923632942706548843049237754010552258838425631086025097152770159625002995226854593554760250319234901776119325144246522213826399182797804063954133312192522791490587724746456404394632401426065447660300257576700014536645121358780204096077411106625055893529873801984531913234914721795699949801929250410070105014023325702455839134001372461065110112920904373247545791106200886012952450131918568636114662295162718466866363344063658879772530960301330497843081519495939234309487018935567133187443200085586474638911660422526461231151438003758963579217966819980256321257295372687255418604173981432504108043579225647880411311912244449153147649082609737203384376576769157788439763256458211237911629089025165029705885901855534319560760347570835186345870301181367783264896958103564366862589495070381570525374190464442721037161539582117514358991600940100642261903112215209495695947726551393161691328400061985685142944202974594529717516512713924678469419885196436158375615393803201335019046958820447349108758855816763523567025729451085928377322871353168532089266453026238443777848431321953610571952024357454174440137385308956832780196330204365839090023234901989450736146796604048931976706904961050451457878036521037082501896146019712840338901829453975965968361171289873312294740363570266864898361088793258217440977088033387956223067056343570088512540411788964995772318593407063731904301648596327514243005101825559597037896859555334701162290603876249283408750883324474519573791489805534490430399408471087041372797512770814770614854353122328187852850355708273929330851256068140989096238668529791374654637405001196248816645629248091922748845302592760512069858568608588094011791565112791193935381429383711474622374736709522370282294640018203885192529930926669677650341776702115382017190064698178293658433115420729897328200036952607332918072817278524929701687077956678025923040216558706154405573118216623169221293752329163898211839703970867770221697622047314399394941426701336042300318390793270496138674263526067203444510268710609915525198675721934433618965472217927090566607138793421993324474964864801170329601375995937558969131067989222136369680239473854065743059797360952664001800148420707746209002462082945193757994768377400968203996438354928916950950475297766143387851992370274356598378682113101898406880388675486936850004066089345967336113295239870408498077079220660524425748126722605685516377862690433297844465022685788719338197333466907351882764613006078120516868131241277490515125990909854506707134086471070076526960791926564530896023642089975603166704475025398766892779354802137875341376584498085158697409939226062456383013023510007988518699425292843176039171970747986307368518539058991201556466143128597991818427709700680526226136502079548389836890685303839360006586718158553718861334738404657810213354847960584929861233979467674550350589525136577569728205221802179583673621446728923154737932188622497934239035951429952185798105813357004248869821609068014686524669089999298723706035143547999189479355619558639324822328051233769592338611467051256457818292013310633781323403617713272774413697461694778979002914077284098729281630543566219255501820418238037921845790696184425206530647127383975905782085241388348930780222848282166041692505250758852703379998445880149233774129367522843119105092299262663301495346360088768618026736396405072944002793649002778160568670583494300273071774064588436838355882680051358820421332373298583403643114434553280421981654166485509622589197088300756334637789144380447039079369313053821779248875733708819788363949640790258540976031532384528900938406516289277340924573174025090112145495092670025897230136141454736945867999056035354540865834040391650028749829125520012477008801477231343957395454791119548660948590495037835756475342976155527741272129304251063464070969233415211392914250507620732555498759068291728592196004047179539271495180682499032189562297007043309929251139672230392697293283571323847077055116045551347385105816854779909922688714092115653747516971595550094982180024183982230276688670251094595242998685686493632400266079530392078278905003571319264235121038467010468406184177899398823240231948390614506737789775902960629580370999252697850903150072143163448853984293346822363843091227815135038556280469742370164481912262200431809357655765362462658902652994850248448828848727782373912786536625321713602833809030036037609728760284509463493354987655412186308639240614953501228043016022927885277719623789877232019830549678791069069001817132097118008051767647384249812801388612015576401157207453660800894069123818594866026149010552592053334251632722024379704496786588363466040095695995630120171641669945484470130938780282940643134620650046330687596963672151195469051922752252407881062974897058029428545393228134607064454974837136023218671299710806144138659640750058849142917740907445883014693881938751831375365280486778575832103604493973416167394551756739919538375770088998589555132887251203892444837520930627519996808049035759376990358820771861801664863457500302785445004754543792815066562790014296701778335117965010472129803815355073857194636498975358531507633615323266762399989348868819453669415123133810908910984979403144337522277450044071701748711423286081125139553143295565031913568511132282468024593690429314235828043535807902284946713371876780412195710918307999043198569759280309511596497454009736078950519462304553865257305050886866271960078320532821941110506636008695702218752935231654464853382084683796360523792495452071870730631430735710305162327304300522835401914970924560431763560002613465629864936815377639446183491006685816374356540508643361993394370274257168382355186950530257650522067627130634448999683812669689112795626564800217276013101052944800029307416980669167441226952073854909211242627776090488691237926770073450899420521710801631804101522645195442457161479187856628568789417126730236538604718454344376513709655959118280135209265708836965606206907806139241752640742500804543161978173257587879587352433432329581857681584499759785106903295422249895266242375968855370003253175082577659287049868834018031677219552978205163201693053991967074592819825672478625325515316647617701193821615558047554036586608056298058322307185137892566576968558974079923967760876216095938684439721051697168156625681190556604202931140537486207580944509039894276978123381289500142703209686145628927935627669698908339891523710783153520503515962209751455209828915097429433575428920742679263248468856277610949770163187046415442677062045991120196245982446265990773195181986260382772096218096502353339031994242544363664454106976991683311499633595706835862328035393700294464127574911089323770529710580220949536812261867573005671950039705187063812187452632345906909579740478469185148773790027429610245992218669875637311763496689343162386567213137177583900213940121541924063352807734811135940052096850342063777332056046211488360793437515659519508457141475686604170225113178446333979704120259757037001693568275529370871971232428310531912133875989026155586166130217625068598821312047094880737667383948735149953999541493706234243692265785789262337359844661651643093553845370072809733124321116321795972542312071002813035376873580573070745892247981021502635805184110468906993967717167550245826813927314885167150498615828081856895759817730022651793981676679988309653430605261385551515016699807309385281848632857934903394475713960680460218365635086040216454141508099878610781739307059882303485010847145711290279535985149539924803571610107032894258161768913353188275789599976750064834942466747295571307265913632929385433297254022562239689694826287577232627124543982718342658931084542770314692673573718065120880309808271006859307989680736865150755556189626098543904557592363730310552070940462571650495599865332943828571744306627117681405675609194241822201175057096462437372208217391063799026344873740180587452845988625946679490203611469252196315551525097032740042357314709390690239241023540224693631751879654560951763751543828979005588699418200844722342435509698201298174464580956480836434292776274113866669952187759343923837581958393009790332161782092865057536737381950519404841942170476938632738533220292226743897843969786319776263146099645224183170324002506621459632270079229049683757375950473466798657436352187162958422559942907615673712713848749822870801492391754594292775592121029057175293459484772222101878058815635615935306863157940628422528917972850344352233784708544925209103418790950747062875216009471454442628033238245691346636342669515075901478452074232892387785773318430134600886285099538226319223062256828970656553936422203752537528104532287168851940269752615588691177754116925982195359316745842370301979441867234500576574202435239736110995048697841959284217043116694544896931041600216310489193438032371006924417823901497395282236267856784384182035233252123061365051932172438930562956651083608382847912395211531328491689919141265067075170599162968226339673532852698141925841798150217034426258152296097354441465627919604506323080456666093855904606649571251617665414794942401639385340852922547383956525012319955549678845629695730463636044677472241108015810457797532369518890499517620276031404472452041292916145068924337226810001432306072180782771446818936914899330902638939829323991662983853743831050075639130077692907390281298338963904846166875410114533797442341270927329632343494471007141258644774009834711996927133193199354933606410291414134337863373392137803399725337663526841425739694813580216898131199617346042182149984856172235009108483164675760636784944069493363085356201952354104796344194098939750830871562203148077566240424896166382498358590101561665970806051144584149843208874251691102330528532567801040559351458834971794705789616925141879575270449261026903804699750501341387843050984861965630723513928792129293854736961166680491330393856078109945197826192753183378055523824982273706868541278789745371934076853660599696225438466939421499650771156894796596202618127190859241116548739890058487427489733629004376718869547924890269822713448647473881384121914896914144973712764840978036598775229002463938015928562873946374185806725848371534559395610621786001368883523407409680052663330118241457759134884660023316798832883811621452824353772411547205126059735001219620826971316379219056996928436076396904508222870048350923089177325554918349643004756991074654590695710557985942223047050205229674107284773381991018046235816388406896883130592437133488474383388136445982967755966050364026285582099033522671368370583346569960938315867410924421876994915820399250821088627368123818399061417194739880685493374345116350670976852692434190816283487149806981117842762528654578121180581143274006375169863475422393674241865607984820924408812425208227899625808834731832915836358635443450840130978403545249083827772106169600833068867229525842650748368788218879677785222062509413936233543964479009600177671328837435413222411625016739445043885139822308281494622357690855551244254562187259626392371953397784776258417673159665754522039949280280528358253008532989859314521952395988131383250792655458649986882300155497050583877869845071314080788496336847191958042659642510691419430863675953102407544346539879881821587964485799839139607234740740527829568377283916052968683405987688362350806072788107184170825815210952382829941327743893180060361608691707066937121828737823811371966253918529442085247198000965614718323224992398864130854525900861936523826191500033905499181086775318724749036610378641165244212593681393547088634287846984882192331361931958980671627932944298304134211247259829752640689569723140918441876366964375488642785125698459507176259957114178238916181353549325679843718774466391558566224143489826619323606756882521431877864939248826778127526045220474914760423203506103585163679802700377415367451281528512045694798923589844424005535644991347043998035841531303594579701593824208798151032129004590875446607359456439114528290198755996818919392213472428926705533194877099708676528937119044254141089476817750736671971435596694446923241653632301846161689506090506413086088761144053124678122500513756379318521938457532709318128467201580439954004196822940331851888104330214368050285871316950912187669854146927860281344404079035485419574192001747985152060922472085903566717103423424841444349932914618915935294916963700604210907421367933018508202134236095699264584355308513077584964876990570550768384501218187145322805245914510500026249229796631547331978582989346755082327961901832104678991566170288392894286864244271312858973312986011450776086531487548622897992449116611250594094932114932733020097264754882081646141398685660825226588281900039072847312946134130316550156731681639053501973123436610670395645710209257645633477444228981420298065017578111161189176146078078056044161056944870728838756478648159660933528097391433509659290157326404632932872202194138614659948537103447950235164809874745564467552141531598890132301188181997698947187513549884634301204687871305726251909705617428017827343564725680470076072799331275118196607945279872262146997504912511690325207436872562753551606635462662533648245643732974462398711574791193997507234258302803348874667541301755980660076156472910681432466959715445664484544870019454127560317108294033143763821797615185276658048014683958560593341432085817731291069410042135628650829046426111612730279009407554800215788946516752977861902859223821498855120849310167659842366315540236276200627446447818581867176843516878845759142407800279260077071802205068488920960464766442978775982560560174774161860769199589060677986911886955682282554945741301221632791745585230065198164271453195976973726024536170703423713889307118210206877175887976055287111524527179932085540347258665977931312732357912964740588282768167777659909498353812743889274418098618175540404837166496335266546875053494193428898378256619621883280700036850308578376077519143461088585064606064580311591507037929319304278952997785565044787509043989654284666567123490684166348787724436645773423847260775449921652093921712649885328584897114687159091254120240914113067164362481210354998210250568000062814995516955674600658972059582980355135518087231740339138996279262756583405817528829728996789479079880668219873733846479752877822536004665597126196684375656681800677615711500305314496745653795883985448212170937081512694102737551814745513801973518859580375709475678390289004144220961315380389359668309771086946345395177250751787854459786894251607124656206101425035835389949232065789375713181486829579099618984434318267871531713428933208134902681711324259232863938133366435090115381917022984619676587139674200388892975683437980725404101981078363603739260550057630706107329756298989989105881115973828256019427724379014373466840516772883173267376337653147892474619016572081716733087688849175492725998705086646298387719586073331794186514724589597992796184004001342428706859008708539923848070391377280993167711408948873780581379227317313814625312464471889259279184080845334015956751741800486778188270411749777906413392610266545813407888472270263876795504984179582116126369733290901736334023699778570224544795879630921259502284428692557345385430277523311830900080915882322501512342675268680983536444224270399541761135256498908647235444921286292116763861542001011854849437698257057835992556677482775843942922873413769377336083941441834126467358525175367571320947706020217427822696783960636333796978021841653851257821623688300421485886723691447647039256519688878022698514763659849142320568638482743558689370729109757549774063931146916604722798343322730060555724487410396260770134878803223411920962433152640193798477521154290714947902872694754147412587708339512153522398594576355316321827337321371456442224525522574266312479818863979817800755713942890977953659287286286143943126667560279489698546916083039153551278487180461695481093140744693738802417380714852493545581238026436365335367297139495909324496897841646043163588028240314945108935400147980172862354447776852603873926844755789461474893610005178037415015670267851818513945410790006119500131948371657501643804547490830080214300194780842181960203738069233956395250897836786992705595479293417196946599273300504343756811170659958974371502984816932178147153344312200688945221826298534656764525827989329391747395895468034344330981230814263122842567036209893940843221138503400094057083363327808772613695908576476060081004678006780073153179228095795710579403487094698643121487059731832127101704630104966483110185141627872205597462512827395618098507612065809056597965774728213092802474085892205747037555820824276512902929794952135806304267299246276946084738482258930118581652722563921798887063791743036123232779679753948882192639052667236932993706606656527113841500157043456511631395997654567783842505895290440868233016323733198354250708545028233460182468979389774540382677066903228697044524591261308351148214885658994113355189329964977778813159054562134381830037939415775320854604358613798545343815086722762461514496033551080752197573665928455115462582887555167769036136841059425856659856976829814859036495631177887148741933213025902954968736476946755940792515357031179682814199717293022578357976645299157870014518039748531723817004741976364470169604368551282423302234610734910482458914251603526880440011633194569014466710296244244369329029928377101577227885888526569832357021587219312803144211263958507515583271690124701723432721542015680328901083793322802955870718393339875771746999910831672363326692960666684125620375317834641399198861151307390449363944580488522359701298611225902479728686297117552898036874345034878047323286401634989574473053645445863603982414517392745612615727074248690009931682444903838782281124843333312953782157676965235676013729643031957517191021697420957165989251440221909202737071731094392911252021167898026766087203213249212448335295379146784410473060691970322316727699521565858933696329966221148375849178318545256531999265378491138070920235801949106209366322777544969731368420206075953716290447799201674773240356610610628303261425610202536799473420491230561860725183512329291562566270201479736744529401086089305334008461393591426153962620149123113730811912200449743041543899559796283482961740693829044015987763320746472550333034526786080998753289546699956625028668457862155729490187451873127920736929069425893530396334352798443316472854379980720897622433787818934154938622891470345778160056172654088111417355689470082533282778358137356017364887781897762117757862476395100300416136568154273879570946245488359273460273329403849053612589745554483043030167452554269989139232305414013903319281273046042432069899678999940128353925754788525293161776245005434596931186720990644413242852255380341691308227069294453383593349951720222172191943452007391512679398423660737653150497873322355823721392046289290161268716971632407288268847830221471826427935410065542398082304581382837434997616423188840434587612503453830507402354990830934772101418130716537229906211895858536905956275174433472328194572103369878599210617032470892554897725372204417887187335341975949338282001396586417784104413653860320687813544810314655950438345131361556335938522245029737313770485082167506021916683802424338284485695763881682781350233760001115549496057938759926516711425606101515890988593135048456151209732967178078115481180917719364057357103693114464362377908928820326028183504272781626498542629761280783484432632328450028920737043136664612576692210927907568664624496906608968366793043056694478067015834596245476529483977509171487302244359199879853352821441816390344794718617918935589756691228297589660350358161343067404150378933746944005484196977005049967079573616035871666573475831838121405787592688002239492783790061617516007730761922029294577038249668786736057226157536917014849987755458215816491964322511225443488340393403093679492311671747763384516403130860316902626494300015069968850242080547670198544387919174852546552601611684501143186929922553029110542973765262460039794866813380803967369627512905694775714331103176034942866570276947176704328094151546325138972662775760274013329107287026709762133272530192320347526286021145105106156331445907753747303551418392636520156478477650926396419489770448895602816866021789384483440956994032777718506762269498593888188876868355433301464511899283591097260793026185497370469039446169418553609984614675920180748539332604303672261084955447003705353367897121312776774836805285881732824176025085242343600766010300847943926551270276637320726477729741901161422948776538897778111827145619269041094882516045461426551210121246083623098396980214054358838344678697936599485075431051786678475593847093532037455539260809346466243166076060836423693480923505743849391406067442953419648704759454895159912821772215418993303748519126928110903330555952582708189460650319424453264023241183839401249969373249826834313849475052075853844671701920885757799986790811773158469937180555429750408254282827294005040444139373040474683726052360861170883170334673605269814004302738308809653857452323060042272971723929881192491263880394341928113398240948340410407834447583654931847120830053305195371392764892995697802960747224691192452316473647734918985001053856192803065045059226312573449295494924141670671596370895776414259459343948540143873907105411696245707498350308091457515623309080014113022720513996772777266655478783571537786108749254392994676578012359543990615122352403496012086728821653571602635992579421538121708444533344716061091395706319087734165551822575653152438192210895560630988897830727601094298910014023888388194935723514557823470524852525709428025115002905386280732362804599921362539058161577254348833534765295532459921749981730156403637575913051569864647057868587394329703605170042328362708232868003176252052334906151283423554927545309762045400315627224564314711684001867754116546925622472269563268043693445130957863846471616997485171811049343817719626538185271918169866526485054990815609562813515962322870022953755459500015095430443549109693980233806565726065712203941587285798960255233233258999193366957014638093656499283811100719284551696707203088435985783244277780979750119503423742078252347354765646823824349367555675554825658790619058741271224264969616599668238235456256724050275518871409433146493085056430076568884215379266337496478259251132481452845537666904953433771392339058366835567465822739325090257571619352455807635823262038332781892623002246116468547140259934880456445842572940159130308379481547713950648990431721169999020787460016616395546348804723583125489889181838299154577331899987719811448682749745088335715798391235642810648882326118731765447600434885749178783804520674963949503407992164409048373603390450033933702332528506968699915815926760388360216293827225018883889561738617267006696094479958302737888434901871189818734994655870298619643862365997941909194242247825509384473337585302450634967787319394615322767413387910799729127349838664849552813280319533160301593194466960359034809706658337175327798978700764945121196717410009556740125763767504139065112249283688976568369633978520966568835250897956864342903709262179846122245308909064020985263649148924483765037717347429776293263180923068377690442847749255533198348151283619624702168949637100976592439926865393717496475034099180792512195801300894211334223279267902157658927534266393253289961518353436825471142735483861906048118954849993511772666596745443289798922148233369614479624385932073749184685320490917661714430779011941003389628493007662139798135181168536890873724806587503515435179401447888483695532875327347803344712164092886026704109920137999034838529048457170288041576925676297955183042978185945719034071484715407203197481738327986564354638495020859278686939953912293638577569839557467774132128373470450889398578583501108129001560815510457452502297768088675157077384578526954282542149650563108684130697057922817858340129703695262529431897050735921920875633936362231679845160199402522235335684002810023930154443499971435689324105453028923607839154602437384715909399990660296949014379410434749550189444213470512560213519203219623352269619123735941538777545175004529164678831784150165834183505858230040107456122571130106718215695464904329223079361402954982919937959754357579158833109904431536918893680410643401455760965380470357578120428475540949977340185826322894068875728608057019451806671567618538552400689418641770845440182279683581696148576069137018887455940890884643421070753241155688282145308021274942753749433322785764538227487710238793985213072849275605045630373800446362403518370047099903765826531339285309451674175131787971005160963571936445993428143125462253569459251472945600809649561382192234310025023620277705286231664211340598987976981029455945990725551905997821141039288862175898436049211245738501159307658210182891647455810505188118833202099790605330868964175598612809894885520604018719257095669028391829133494693256314687770829882423978794483900411622463613812857428429923337867749106617278496355197433525920931361722408523211695695798354964771687054016240081404888957483242945393544063729733008212980830586789326373955636663007076687432551894865264111217923916183212515705240686645300335554556017988185870511475036999585209242896254678305890033871256749210403765221633201742320150910149898020193073746039758738139838942738873140550697389076050988006975010898666139154045252427930944419851817836102443563322559591600278353477522032576139585411911732959052535369119097816937261335311657177402203411759814567316556732990764194643846167848212005317070666400172066243218719807564881240736768656720545152259874782436854707939589467864648725038333114819442193762021163755366548996389642100369661313324183318350683258005739412810831770766409702625195231325492651525712408401768249750764379807250440553873761954993715871474485660544432465439514462416996408686056442488770469511952533890052760920042952717302720830716446282553977438634612505582015626299855076509494407520983873520478270705272253634285975601696919004664028520034580562164594226771769242702741764528503843589255009351884698480154421390799545108662009182077407248977330337519172782771460827064804079244267108892670643058815249367667021507013294151913671330566890973989484094276505186861541775226025376026508394666614686540162689036484427195036705042249822998475420561870960919028768092499815990099288180475833773365771521844776688922751423811956736052425786014463850672343647616712330889263847914661539828822022855584838876065505794691001311587506811449569882636905301310268806538158376218111918619608435817380190623936988273396440556396742414073720920387394526834746878833366193397414778178243951116244479697875152351070515032207433355906707768128999191332159446970741469866420582916490147431267103714052403541997021945315689703863313426834619412133307562118260004978492777302961044574152639866059957752239324432763712657534313225599470332601714231207953667548302881303449337714571924942126348485842815051062795218048744827959502583965152109195013586037465896215891821633369782598203357130090157580962706866569098752881447877038168274454369304400287080933156038794287141448084759719468435133357199675158108554180111503901836967724614576620354083241025255380779423681722200635195316950873766627155545312446079973202097847333780846075373759311830805577221875900312638290666663829085127812094612073168537038935541803647225204410518592610216734007224785386857791998129575976277077941566388075338052100237894297174227467059613993562174379496507507673266806340900927573900592161187927524336277559228973121406967715225146602169122914379234038040286909221539176137568124120736148310878399802656136183269413641494544120531169820372645971694735508456179756090899923423474433626607922903853972699903096316050533263812949753871542455824015649692734894708783030714687220998443950803034053094854937990440298744520788832087905996140382570334069851825113465555176741398638798709324467731949351387511045383350322777001420705435744703582362484993501585875557442394073739598902614278944075226866073343628892475052581171414579509960724526276952968660857266947324840781497661881886211461697819043575199289521202263106321187444700603644172737765697260740238191662932821752754490452170747944806344050929788613091015242897366755101235781010576719911906147374347963598345258142093963404238033286443654186432860992735885445797865685329255768706714621937829001227569869520760631712732083256642277952635178104964588266467847045279295728346975606066413944068486554578145802936407910274341892194795733660450191173631760858898959190399514442833378093625812804125352863951864162176585926927859190509001949224204510535725485929812617485222556147350072611009080153715684823861949485538993610156184132865017152713573098364818027920719841875448152303408972554812785947220615733540648396670002740348558679792464531177918262201888626567884861415697413450197982152014870274381184206005338419852429333055979100220100232546953244887756851065357436534842854046916690091054700181818557886983457014356248792419563199009527527792719302289704727942818978699877803125486901472867312627510062285742366307317458582922964842530492289524058389128506471051835837163324476361970569793069734909809261152920320428381558196598002035785914173665337821310704569123052442611695702316401352689097647606653700046371521103909200339363558154523634215250111058585320953517963073726630890429124093935448648676017134469441497463214006523634440460924291791276490475388310917811059379863067587151626004107563388913176084631085083306851892378162507580451362069052586270029050313182720771227713751986601842147719362425972391804368493095165746863397842901046751285747384984375791041985344474020014188417207282265149895549557645003618333049096366488337451561898570985822796694474689555230002983342237052823636675235385458544223016058883269580699616148225336597948948370303882472789770904131017588396082872576957362148243595133011546011591099478706081407808876996251821742694233403586746282088962837010261767899114649241090273201231131674890508684751722595154300383527066011929586350115295496058393793342809980501405589576423314200461665153977611343521159982737817554113615683246622958915947530458435452476611580763778443158015736225079237726406157624504740922770431040392864956438539896438792104855422874156613611742733544333535684309221359839046404956581791596732238884038953779693001938706590135908458814228623356934826685341705384930643507530494316052638532863832286650993290005710289645959610476113581324644095623584280346835929888179011180462060809343584419494062233318482832636072156694419622661260603064391323112426163095731671454082504225110851900683067444680274628182564723887526017447513183885528785288251734460360037670205557740392500562343150363483939678057484832773141645476781334430433320721805876276474839530604804160848105338929897375192435248639190331808538723604107439990311757117236230631668264353330884445896397212929699704746181363650504079223060282196305665318738730592698786793314160153800066133934983497756193326592880838554329048345964470085490543474855814306637559393636602037744826574591041759318086146288596986421153870975242712676363486721211908820801696785764387526385298474783190836863520212741787682601650825526282486716306815329707499452573407012461944471716356754614283051045221718233586038919303011594707834316497050397590160448623947403466630540573189887455751723674829060872675404153522721370397195480920127480838895147319369496212099219874172069938688726136528310328885441119305424549863595311277214636416191087740127713201402781331655984681373542577547110199195194729887087934808181951018727367886409336375301853062701427815611118547343190176508372075180275993339956619086566748900122394875950100746652250090957499356035184342608812708249569622256432392399427881121475573848433502627142549137115508994298565491733355948229298970000346142593315999159406665302137350766156750048637232529008789574732079429760869028116853038819345557615247442596087912451529154023388501069013458092560429769320961192441581671878078088016449600255878941053032305297682001634499862565438481866423758122084852174419194716488590840586137856683425927415392687357837441703159763922383673927557417686273616531598329370253101667858506372106772406199852572984794325366857617396200844580464217362206192496197366634472599837976454198032376884045244159720546520826764717946869888814715194868352108946855350412005034709590020564056004762859610715435239628530611645788449443143018699771909332467670391057381300038473115644250872071816099964757973143566293272815885079192645526289722556542355298403506136317344148931282884925319994373143811862600172041107268301040008872112448764361624012351665211330575989962422514238389189384388617583990185374206590213756111357558362557303943686629844987560536732049815559679346173120038353306826783236290574078541276424758372656937784724136090679868965331603750362500068427683983499254933878787268673504251258486366879285564999008068066488501174131354875155681740221342816560929085136169991588596339726770129375617427816965325381937306410022102890416118472842166079000388045315576674179758054915020376092479181863226815443082562977096803312444381873319918947120336383191504547008706525666836616131338509809319685937746894054858830122102653538997631855029076681464553457645468127160750282473122332585602167981481980717237284953143867791587789009347010073849661303186406159003355720092674683607423768020429858990837731154362041891618698210033301813732012981932462003891706715415726809561191441189347318016191342335339162931010532036427884597252064273117717143037569314818011084409288376076135387442736816090473375600208748312766927511813346307359981344878751596376518384883875604985921559658397318979090328896939001025946709897064135030042538054539236235382353067164548226250886972830798318619726846532422991811564100898736739919279302125507687139556477357347768003916631169357757474388497919138351472022368044999617158731470005314423881401625694649285476842164335196640082536527365364821253651734835131746907191436110915313329860422141182345130463873482918796075690702502451867404705656154222484499396923697377291729317821683617274839905551529991021244379320179614136659877497022327051881122734925327497644337672864380300285367612341246334490977992573339511011060411934981246762577195348608994544779386025987523414109647884095455628974601965557968607212211942147621989062024247682641415292715013452117859674966896100454412830843052195005593444873641623216684363870382776956700645673006733853861558851675092662488753325173875043327466603024061887607965634679474025991962116413310316901281671905229882273890807875382573869082554446534613660708788588324214160853467718734685416144689908886741370798552367019739821296726354628776671641052033485611670125808751624451873311781724616981527124720809968447391236751991736753908112905812704822500195580058656330670962904107670791578347879720819679815635987286985952540918782850782067993148550570256877836015368244221075540866988801501666190913616054544336717025698656626615694809168019852819880478155525929942768001132190351894297252442234701212469064627074191038985074893400586901889293816985389858823963407160080914091927582941230663264374561135979518654230984140785839242370990288380078409817248549165892872943645382556198463411825239226186370379862674171169037885178811849443867674372166608747187316074140526061378187896723595098781839800556071394099807538933104417155066687698135627069723075728321160244331939068788976533083235364295042392808811277958968709686788099565112370049707537667390055073574808496837616390265633712083949617259070809691990986719201734985776398932258076920824598109030061343025782378436834971015534637425940318347543379841266908559466717851265446168193033364446944707220480794971326593827978058790657442132478131022305992161810052449214408131714818002238100910010184479633093025449565528421867692997158112386676510437883790932050887611504631103610241736288785477890144823178237242970545506863550197483007870627963460446965392344001389520520522262611645298611985598782056129463815911921345495414642823322494201651010048983408388803157594326632594283400583305983958214532279907433368835971479294098166717920391983121334209082379105175496596535073392337711636625044620768948674252332349938419646374544415200927286946168018920894664417267569211536122997017162894569796103559546822186615423505000691098293418759665471561526447571902377561922420972845882667580279467131107864902567904333412922654016841445862148623900622085547218169404255387425288652723946161157811706259933022465188233894814238819332541125975133810880173426627871229785852498048069517993158986937758180061774085360414866128240672829677096002643415744495101287535958125634195107188953443560953501627152329170595690207673513804335637227347020206957547107181921180457180527533651677121030952498239020092135122869646557904999235337911878333971474686822846975820720660986726312983629474006238283478405572401884188284881332901529745471201614950363364667329765346985323775420341424249234087284364250895304879638135932547363418309113015518697545548995059942972532850722973618203201718138169042299315941604568000640289694739765908677333108308757866277544485469073722931144878951857124876043558095156421296946541951168567409466089893595401172652945557009232470096175441755027943455257748264652328946819932803992918318244523441069384683389827028445048234589445468940173151162084922121385390415743276442103002398931169244130614892988377497217388281840374708991837842013095746964215315414653402067202587438857215606053017889144357335913355112088943932093738858801076888395661098185530889893892837813405094212620120094628977282008748164391818901065987297486702032064095300686409211949972320960383163363561518416138680964102969627319724089495840664956086036154394063711326969153569545784256429880813907359770206801392964179306548761304655052222098947945711377669744861889853148253336503436428378100781107196649971316597009981019948318570608130102161742648408100166453216636441375866263208330552883955685995598790055013727715909844345179531306939827134006001622223698503852663647339810867709340639336027378167960641031144709168607178524369906007922394040289234871084778118609860438131425773248576411496016167451696273572533966381059700742565263809541442245515212296900012403140883481771950996708323828080183881042978558957703113051094042160543964455372236587511564256919653357012774090610779877124987511456373623564644868588522895801012142404522219014687451380128921767710353881945552831680435839022912592395018542348137027398833368041449888846288475934074148847843444904631683997608435421668948522351772243458395716655778040531418957077273639616141481027615522986084540499132981152498512075185974745871795804220905061686108403186573276391972089716261829519272828039047630414646110597737418760347949880954570164226413580131386635593522421813911204763598870768539047236681665961295038399093804599926304049257724848095858375108089839025605766473613816245121509983379072265518038949186060004146086040831891148130343046289992457622973941993993993254472552851223293443656857799281895360834479772391940465047021680300598693273438581617243381648302151881252525650455265461647331322460649957763733119963556561478580348522486295754132761577491732957586605733205595457730112463194726604759326127647120199405895725388936821368669468481263532114042957732383377871939476293546739476537370591835116355415674053020815681246019804526261970403998234586391334921134254216226263100572726619960368067281832149515318097678793038891632465030121711810012027199573522136755900474487971788056492976396066805740635758415901249794511019250138401718129819302192015504817778817330657077096952029889589596752150573256997532515241848763655220487663807959231340016394559925624647835496125325276984364780394522512570925153342160779453384764696949708810492127150386746781645038251186419175163454236345064180292961870019405667291572765419879877853624125711560887471915349423034268090163240529801969149676395256384078577484581561287068117950169480482942663405066431210586585854082662280215137983410871589276524385936403406756927888518886569183089690331030062600203178906845375692675045735727685266653682732185259299496449564669143332966367895557585553948444071172236856124232281486781170085921032098719507222629567231232746758942593428664551268298093010596962123565437103421399459761928179073737176834013564019746007887490419376126930884287416791751847790578022457372139014286099154988045346730615728125801542711178267140920983722942590759809023843199288522166677529494043737386222698828120733557091812586792977118628706132528971579512178124152541104916031863197338202210300954185982884052030181573027391303620392664554952608439643702364756888741685125715679044183388225683910717904682370356029837175721328248435524166018333290235406012357429682368274058554388592466654988997864894453330219324669760243113621779579338361853075257083425509766795955033814293609220267291912317923428257534790034279196628722046863637942215676882999477542439427579972423734202607507396512873418814754601241345656788481183623201571304381947258708363895501975465741284396701840924212625097992280472404756855347438317360360340878688127498334275802262881475954443391787232591178610964394633118141191954638742073658588773740373606535293731592454121722841288046462255350150654925802347322450380810763121690741192759917958434161181973180061965456637554991347969169901864563134142204855194698211714382458727801658518285553243645142890570763624816179043720106689002239982004210144230578069130737845722624961661346612870688715905427404311394074296971110840688712177449538271721712872445736600725805056383796890979247595863687008596752270993143404363843405716075256141739325810283785715484305904159313475958674113524194095424311523985895490791690056436729214229136215394486216880286736251809988509380287083341342134429240758163663346081269951290644760092091088839779846205390007081930949172678514927748339545007884137500471652314172594227805914065330540504032478759186762777221220441744775604498119556102196259595582127271437971700348787039618770957697731789797208547087388429867562651857395332170723315143865194443354364517923796133364885639964904179910959646088473966928681148882215839264523663293218700328347315792834626970421901951067265586996263434870111685174068256070360019882051534710430812540077923721285755792329420085951498324474205897420098250931875286723168856737802641745869628000475704722605257043200444177100860145254344413782975148449587739520449161746581538516423819767856793747827124753405546294016058665309993615969935183567785314577016690062805374329697758866220187882481836371306289759413147365129330239776042009416065197236873431209918795049498840014602359758877756776302147800990316552760197761796891524997272317215760685210997700111024475453691050462552582480219051802422171437140979201857447945291126066929474511232995867890123036694833673334398940209692175778843605729846536568490696007582916497175376645514399659235104940506420237346098059431554115941317653668694785562626803669378325014563501438445929841782228446372978737661869431320162590110356269130824769636240104809595723655088676852801169421242561289570984915452449022322731469346217490053757363933092475279689047952671025050805891505667390800852096774331263054548865666842684490611977598689402098583315189725647492749245128840876625486531883732114920598888676155554746297941417743701530498576601701578643869453554046007434975760517141342451909274928580875931943115866522885505590725605596648804834152741890797554470351528841988849283360769889794042901076534196146597530729731672039533819404753678606713293960139754493295980588070993054207674034343849627304995045605087555363507402691279046376670084088224075850683153552073101575685169540147197281803846770560460353766459236088918439190787469315098066297242158874783718968280927791847735493454247631034722884242937328791870062633085418049699321215786094236759578614107561658497327533617453007063442246209131383732313263542637360968122011448376609883462461490703231136396224711758535050621412240459968911434874174471374733244550865762428831493001650603446494736199863355363216322147510521147395398579950753560582636056158858089481453904396114159916114287647352869326230588643027531869629901953198926455363845726233478863035666751292023282710042700618905750173186078495978241989182363911615440645342973302988806738087851738375997713912316043950779042188322094815101127564058676399259328823126360962826583660939211660902496579637464997443216847535886986309067980541207513664107616668695572857405819247818668910648348405342493692260702647433288352755500636337230074518004659219416847687148244628072305367412507860476899903357271954922758744783863762051291073047713930374833189688473008092235336527435614374476831134096440366548042448009161263500157378256835519778880851308735812133800020269963956571806422409568967523572945030135017737501105187929515339056673422908139573609133792578628101532217066074582841307044261449080390641144694195697540272377188421782370051578860180055623032789135310937860190231908193998400311147101908510202014056551624810330295366789366463842470781860666351695971473262826412537998893489303981961813344056765346137797561893211279640673359877222374225030225517873023456513361292263665793065698299870960946497329245396538418962524525513802531360608971323643399934558701546165157036523306988176111153791839498511594990960090317678084249561686123988642024291086647411715115340984446807320581405509362755587128782781113201778428389528958859422553348246194707777632603760771062977749872810664935314365755033230947337373164991290300898743737533540150400839248280362569897539776112576585825898053162756602501059894248903090914445303597212488849858957450766776972857316329410371859032866160101123721150273648006530914853842998635009924837708516410154098674607794253949100943725486836641671998912472525584414139318269639980772113335394260207764645740302001360769715154373060678134800698396280774104917097362464270817300303968967047130900930136223143572934609937719245776587478155947660450162667640167710860064023750435049790287883831821833812564215340479528282687590493563395054582527377019297522241388467028376896044995702863078425745556552403203054783940939140036484486112745711690196823002642222651931758477957348104469334942229437808081416938706941330283637394435411171830814313304455122252280306131007704306365681129838101729220657090640774788998771119701226995491912441328083238750086243135287827446711515501570081730310018080617751466719323982131694739194919346672366684197900423426542660602814489527790573378213483660639895733384410153033751041074634577710265345361092373203135400682939619459930017154737854284085354623731992725148579281262123843624254975698392331538545585134034878581179646305521153158787953690551592587916063970041945672416658486206394588430666734692923594661946154610298613216196077411629450034656705334428423534298598996524640094285257522515413811742485275624089238142934255464762761827628906518230898188119147353420292889589648093152277894773676436909124622154697056824750508669451670941185869644904084081868251222131144707144875219627744559590218726875638856052242274406772240394411779687747197879445678711045173641894048227482810508903498163384308087962986787494276381754246212777823684800410087166859058585270406730181968364134897423831963566576131094405259168266755216389022777432881596489212739807679821376119509270615835349884855628531140436068641886054185479083261880961402503008043638839510873111710143533334180878577566257825517888455808673342915542639317239542331415068784043235694042980230138795076822311575563505860738535955951590294977552463652520120603216478585956271063196975719638889311676868521599599507740051847295239278754038217834380908560128276738084097809193400638534484790565406071133240556424792159627012509138190263079297046162588082132155617879340382003766222528237805468621913784367387853347890665872109095720997249491415701508499632776029090117142683842594781608019515903430116053021553902527564575635227457068390438972793774324189260397119769009182707110874059372269090773878670273646198582112433118590396124444867622184121508455247230254497052274265608382181188692137397144570734636014387842200885259895629748114716975654889534020574104201383419100304033288382527081063535159901691364514528209868189216647729279554524267768784567836050315154344064328410551081732969360023701065814262268276612148465378265254231181416520175212930961209473375847998383965282200679130716288189908224045210788199044564503096924524337470793908352170605133924636067673256713702953734496280131476073899554619158959776793046406045029889194262251776460524935523679324124607046089969011514148649357072312760887698606731563788803731390036403835646212316072935074052365857679724528360648722998209005318834014199299180526085722149674639959039895777123554845015439341740536879792443156704730555006445024760575365065472983455985312699760976705049590026482427679008761763236529560564659100458650787407184429791113240176655948636750685548177737330914091056562051864010330629405529191060864127043644586042982860551446106789475187572806928180929927387582326923210136382547946468912698989241771574587402432320073872419911639953562861996444536371390698025441123009693847856080096974285672339469049006702615357314691491058989891996428853658807719907293786716464583683215117164914346775715851749386278798591439520123321003169605874325417854550781916294961065336871731977134321542609275892027099327848805947379397473137699374299989075606197855169033107173365215876544940352121013395296562385054771463410093889873781940722997279898610005023976766537497511981227934389081999731879975316257391372595694438207699890289840759173288102170826090903416880772308023104710139587716558236550995339749676387894861553307328528696552094769447541699027873043353431002532836536091936110673423516761586241136180181961103879049456041452482255602748625362411350059267369163564060878823329162413463864732965903985541786445518290383027186974743229328712056913524912737430203567901272337805137406029603945337252543854594760779400379206945582678333573172659057559889745126296330257295777117420322799894411139549246802269493107451820154491831105733435567432704667222442989640166416291461611889905374411149929511947450651817814268569710548097363199185710275967513226850208764879380742556756856742308560160542223135810707600921077595341146807312906614512860221664957840821649656601030674838472288904972174848163169989162318701615381658972862584574911138595492109376262564300163823403596192115148826376746635286051542992750004556019144414454275891509033916152547570796098539838176024783300613391288685989753475596867405607109407619250890552462812718828590440167589315375982900610436944875721618115508131498091565155503176249176024458856163653996469555781123128350663694488379119151456082210129064162777342813880314164656747944175666354760307952639354859555016708045853586241457471562646776128704652001741890538161063986486556183496267449134764681281158562310762680534350173855908190459046422044062493398755022751305548059869461670118755660828703800258814156188350180680544049973390465845289047205298272539489786057259393362487910257536022465079326491767353221179247937448776764618091462761111964136727667031585109127771140611440786916652845153828208324408869335816013463958767629396103542103425073066329764234400451714953870057447615731451758249058576031094061090398607367241389479417459701291061010809119235136039930723096210597028789689933729684990512946184399041699665603969548691649764301743819994060828091604731233374374777371603789116202633831954102947623067677490165323847888109496692335030033042460232904771240040089422666565970186880455193895638346162131502253061104510768884113518280973303152077160998321761071120954261485690253639339558966699632301801895006679032725259602649773511866231140543843235667984855719284985416021694967479516511200336926563716600835099169514120567776166061448860057368800963105119723073999129581359775165866914183146110984727554838366051532299423268192557382776239516662199306640199645580656361611373971101420419915021352149781892949512820156133622307556932473092589004778847587300543224195768005672398175277060090540675274646054141089210338454314029319346312533859287871450573043138287433789316976758177163121388391229129857197279927515995772148766975087282466248300530743867651771613761907264908000502983299738606929466218115808570801511022435724703481444069672521819007347962719731310416670629796597112716971384383594255727864591207661704848305056022310091900878434935739766050152350385763841852259953338412647233353511786820459492579598298579508153376116226852278632773713340624377410725054869042761054244296217387987126187110349298996783062880100409878846809455951501858493192431630932882088639587001524557432765303122826170059552930975631193210365870678834841601396014324393888105173278380950181729533700202997828904281209654477082125054874084105422461799163967199104477724097154118848016221788707500603614862631699728944111242807712534702097144958443904314855755749165834737309878574449021659904537642298899136310337457946034356187897629480331950305498506171743441709922589243847798403944726958677746474507212228402690468944273971056806127492967870814752321509557773509660284983256356558577576834674883973198842260448280592278749145477617407758667624875363515878796450644114585895565957160089679188406365324954562198400545777349981573017603020391230029966457219197492571632174231512192225290168583755279044854372786611704422675804708724404210884900877890920830482192712460285611913767769975899977976248322308947891204243691964822973465688623978043009417448974821778008355238539289666041578611252054929147881808923415634829675697307700130212963176658342258826388094933748559041366468234297536039635040888548167358472404737088446168407294651707715450531870460172421103065005214131571296319164418925736179738012990976380812168478393799129428889450652331727170257001751419489300336569232558212612772232188352771403037697454318743189056910497255859124727739467381758840211721850555088501259338219775773370981314694542379274001540227398682667502431388491882488434333286582909046589727217724469113826364105305880664356988181402474032802415294469439654822046749162357882595154215992264939401395794947276947212115566809032560266015232140763976931075853842742164305551789338915374863713779078935454775595884341123588843716999084210984956872836876765651921882596465363049956620332455310083850535454762875092360622806329700507461849715765299570002406182635621251399898746561658037509228496047216446934496721932694531521702813709464247256911935239021972876822780188396679987426340449404742663490410978216856288933880244952239462588865997067484400603827191322749607602599442309872237836843691833266110941565362981159409635860811827213740050211160897894791768636457159711715293788497754347836419989702573885683540496568929444543959528531228135577270842620380017417572109221188524254435997654993848113714874123895416434438462194333035415782010800398645392027584043550698078796383528338186820967412009338744384602456554991491055834239162682951314615486381334636603957935006966359471780375920626971309302552446134714138395939271977880117278344109632662755221171879970119416236532938655465710219764003851709814453139659477086785956972565058848404877974096673693293990826007331996967388057413791200524469931008894998383364142092373787394255407575269212177465081746685034650355286075497995329531435446991161969056713203019838479740722558448441238931373012377266432882156995346002720008474491032812246504712275692218214219602016713021099502385989160016956302724299304539373459057960160826702896009018906087504940624796295653172239281131606780976569295989850900176035339711954783445073053879130467316668796248132676781683592762456361184135041674141498680864889707410737093065329184569215351927469983106341781509270004450072641363471892258538497316826874862706834070893157493926738686477468738845277377507956404175108503925881929075599362115214771741280531001995883191784974424121972764759915868620936368284643038309290110462522255821369010865551090286682546509980562795351353682750709732628095967978926889190747925655988597051908318975115818160138814863148614730962237880391406099606709230544992329747469027063004824463846519213893132416196272120601994814316799806271123473175600034567987603095955942425249440892883859060039337043810738379887997960498262623840261351452862995574923355781835155978942192470236504467343357420545304447470917538604419903296825076648103179164831021091513036995397799786417884360361841349614992002578857196279201816390484378628806348137225030415757816005328586191763280685889437280077569405567156638856509100455211652164329884278653237513782159334760915639762008971905494723089723362501977733728853098774091100582721147929014290012424250539816674459413155153839720925655719866175743296927042725468919931956310082485027311353847012202623952303099221754538755353812392448713237043264536775414188975481862979407610842164343984782842643826376796822799782921494420292512021095718658851391183343335319180971942170094589561537682229827324709880821795268998738937713665592609008424710954693601264952817183371328768355158743931518514027767332833751001404451001921774645895286283302260545214217778363975457476759384306651677359823129998590697550508028074710608275288709681969191682687676590104436336412263083262160141128668124881781103606714007201789738581079599488482995496529219377848995535330989992926636902640518568247622650850763145960914089803071430715189780798058033615943727026255123288292707479318580697733112158731158083814176736945286735024700895264676659156361563040186519305200466621647629982850115235710434739273959046997177732033542765179733745966533819268081680342838034118115338781997735225989760563172176020078067189640597823636187594941719007612722754211786907935051152123197727353160621324482244016962115652287802326840161006375827703224383660139043575763013180210037878390751644951428599851461279165225826753109338874515650144136877540175674432064880456898778731018812887498099313919219736071966843551385028214069351336308018121328177009629888079902199198587781537682056021251870712972521759989496461081015625303343730139658956849914498148076353811344250734981587105874059037948069963869858048275592483306849240422780860121985934571849250422815606625034715888041584895600335105760583380653162441261794311760961475100848034787236016598005526584124201818414333932819146364546752257744554313642859099371312100929030119105009685691734160734078637947173671065654969667855773530655526928112879784379348193953789447424417366847376303998309574752439873929850191591116062102310456071088141619954852164391133473110986197418794971310447585924074319263572718988458195541630467435374371752831700996315317470958321463688830538870247225033268166784366327464365755585442356934899803196046788226826816736292475174365991906097510604003608494592952004313555616107515374578584371667610208833896705905253016853382808608706652422600549595636862866638127434299754102803768045511865333135378269936720819543065345758147693763502169492837076242461824396754177436521956342813126135230976308197872251178275135960504110646677965242299214605403324435579241861822813443087020621382440407304160133712521025029193047290613359839311418065190050229163229153511767097162598941435686513460392456568543273291438043569970557037078949539213398936576369490937914860184246262061439253113257201480481824260889691585360930131368605888541807859513975893903893929131208498100126298425985457757180359652687168862581170694728571465895912353861860771927794284822548345148326419110556732873162980817796446029305092611369826094946976694514881316654724782095277498581646667289156535201168930125100405892568502762886284817100327559081035134867117171829938582543983360608933434920951504133356659174333572725885480470265928031428383642776964040880300605342782180810090804685368346116530965875804168739102990534945976352047690891929072500881226431741500915642410886606073689984120193893469828736457310663962476584129775141364631965491338042454698312722245688648043565486070455455325181252032085693260684833589968602650334946070912366536903017126021255665828044853136678622553152686980379620322126644646586519344288072019682245887360154610314080523796311275287492508152065539580132223241958062042929490939296178197770885716517706758112609549326285066498947799157725160245213298592161254169455064642761391578157587942045603806473269683278121734526429121825904867382859540203569640756216489752452062231202856269782934954813177639172054087496899892432739377279986692023172197534994651551041526340699038571627324006401298376069674973902411454130508974808168341858607810642275095576458224899566096383676503245159621739281660148290981861958766125062824615113981699192897061050632274963383185162852040316379262785780559055899270158981282775872252653477377330335407015002956891727345830340421716838210876994858832739623430973014300817434999374031253847797395660524776562555816929964700808900954414983975811658728229981833858898639762442163761244161496046311465456226145905273831750330579597960743905937086294148099887644877710231456854705060768674217687549442469691470611435392798332271516790447194727915522928018813773466937466958913629236581062215868565812209725024997917160483234117907625747137799050017911068727956419199171302910500847037125789545534705052556386416995848096728133324856026725520579318810327971946429003802761565555892784599362795805306520658680799381870881623996274156236508715640934693481033436852605739783594946203112045601377004764474348141543308831444612655763224274814087726526476498914689558031208281474467416739531642456181272256665875519276947411214265413162531756452223636188527784424810157796629748042245715122844396915006245966391465616882445824383546563286954131586955094505977560386247764379994319205159649318196936578178030893178029057929838771196010293853763646124046872180693219643807934059109931057913761207196614135316756176791725261848249290460279739795859658184385216087006135595046929413088984820809078873751945372465742936389937819009875671912191013519160174190302224483532805247028809301124955853114785310329951780056948746349636965904562086931305494810045785519036266252280692449873617163182730109009860616320184289585810968429796585927926754043115919788859442183644829763708806703253577794905409681406539232747503154705020312823630978721800097213330460320245298636125788398102699721082554465701876826484603180800548021691816784608373182612039634071515003107608099117906995517261961641896113976302130254523506543791436580650034928879610679885244060529358730370456484669449985544991729921211419769956010833228188568561861700509982124405497532591838168656007636587760466626053878850768247466580299867682963896921214295987212895164782688471883883272685555563952123708051831635365857295555767897955583663889364362464071042300288748247673393146054572436233298163255620891792403108276284559149669185937736345847930082047063018633836071511380328152593046698588979106217060115506786722020470323063587429287007037896743356649963184343563556225862013236201914926784039813976900875925163908777328236375146351021759122742148760999491415746113075755390240836951731871042435914792217579944915575158503477585453690105632366708586123485506233902579395406153790553658863072707994534141996128985582371944032768377111169935028881189599636521559511308877836712734556978360002645049962693213907542928941448675609703016240859146280901286667534647706496623888249554710360905167702851159847542482523304529620637321270782211491204603621417557586661284707590862375521528785690226942121696416474194916386807565644098336742229407642433400708775283985880489941465292376085836117025421352991688275164406993876934768435332263923507459461534718028406060227420538304170323699679302842421495180688666503947531250844219377901399462539902228257531961348964455026431987316180788920217224404395112373479648061853809211666369685580284165051017213895181229825300691189981877227418861625404138282941414666004417942535304744554890444290730054192952125457497829264065237799471346234608888607797384663692827974240987061724013329233000290428212155438226206713644270071765597332697634008330305057098583187535964169410407367126416294223593879243985484125884463249172507762406553561694038466015522218354627943944036618342300176229678058287895435040246761943166279941351551010450486180893866946510907898499303339974412787021682604328892736791824220900979156586455306748980684457450879501956551119686205757813696312481035002671480453864560468125373945798226316226713902350162602420658493672457467056574690031693350766410945368881446880838479407528834415440889498675202655390127249615938074001381455712298047184533177933590024250552281272032207995456630301307615132992193772436249532892921837486037544554557755740740434757342758994065343838674068919548842833127642664132170437540778067370409486035405776232926327277683703293742457423031212751895197148365002058857824394220170082192807875811911742538446873086835011302129347170215827728600193556773486011320772111163874455982825778533289493934485741550948897376202451929771080260862304519773088985460062918149799028271964490540732250688688387991267776606479640993838956716134943722008858303898241249504427718610461431374320094302368514567362453655672044564188572286284210065644625243547352819049149409928752873841733613873831315495287070288684351612206499228724999460049182851259837378987993340110716502474694653627936979197072736773871721424538076067401410184575950605274740250945802104565587054335642079415596733032477822017265926941838861338439981669030187121155732638138617880320731549740575855571133784552579378854965869303457853636792328776699077168541705823253805320390347696481479405164669223922833153760313767331169041323708132312785761511273369756463125654622787302685257340204716411115688677373773613346640847975480614552647752884215199931097428298013099539484583069110317083328365463918658027539959383343218815696116581625176740706849958926983434158858376130428629364111902552935022083879086334913149096832494749214468565765993664983426854189653782224965272048400536629829636118293155698345986957893896706407185649593065542291571123138854790033691083412703349840132471461550755584475783428032685171859414306731937918044059558386821916856224919881463865437218180040808295940547904698452548746196546180975957451257597590556186562802669029377059046074266191549959169497386507702449314781116639207357843316414548771187699442644239978401020515326881099222750859136873223205159156942776882799906869721090865764420989667702194674030854152505151929293825585932750174106008662505521828887031686974030305420477977888171334305717759578180501344323849155016890813418781400736881211510258012312898439755492643381663926731631975697265579412762778065558974106170994030679217401705993106705967416965684610597293924905606019520338235401449993514841180585474983020465688213282837631469099351173969069683045686157044027618211542060071400548411903189004510928987674944333134303837986890025538177230954744023345082504856058591518467341572479829317987259687839148869568781694972933863689344008435183786247538601081215916609893179398671355617001395332113813614020178213916579215305990869325134271223418957249142424409772675716901605611863232563171307199969113132218177489255949092124775715618772099353356863706593889099421133490344498558780518611403411729622746242628182651291063330250406144418181630158149915221890474537314634811348414046726245643052914787585923477775170901910575878714619171578424431529372659496645943077263300092202427030440720484682080290689067748640532152193579704314473648202956075456294913949526284695323026107509617224755069604196823180321103704016463281963549037068257516186714830956829217359747181586180859303203168654412632578787748214666088414380360842558476832686143536056896967396449208447252878163484593545185380826491417130925041530998916009826440437420126123912434997849491405761581068749661880401314506573890881033402117961467092797700457427102099507985325672983108917502704297551462311622547731091403574492460684463321443811201508902596247785954699670982462991363092485910071834047030025241022581584999355021620843750798886307860907671334859990881969737609058537249924949849648924712083778242476864977658173927606449935655609375934121504455833909908294228550505558790216434989950870472451196024428926895597657050730803910769617178206852160332957250571164479794205445826524611643541626529714577339019601225771131743058384131311158089785058972609664758344181587969146648962625283126995613520576916039770791234480613942534849516090047019192253074038927816016106084429369026474825736763917774965459960142722884151436696892104203824579887134312967015020945950179071782627084485877600473056006674926788407956394640994101609632101919802660291637801803943932296048919090422765306836045976879897581136183137770517161086408900953388409096660389523014335787415441500089017709675665700020810737810886782207578005673225405758808273340335172219087847322298199261796265447205087520966687837148618704354070920544750362249618276185069555078567474349981979303495964601803503231952720009553091379678597532283901594328351962927666405725872409230910819721054778268929146771210175336779735920312998114271627765989448086545794793033544476326661597972697460686346038459255867938710238791677800611964986553375368638391504305469790898970652045242102034172569083745574547372586250477914171896980295454261543432377108404465521039883133768605331527886335511076536852120294427717552257153478144572273040269993314823527761140333765553471608716745081027429459710772763093805778267233049912754173482383519367620397237285897837195265435876261745038158891458655012497953588202216846652518798590794227911679706015118301195954549300216683280913723221159107011433162427902284510118087360873351456872986095608703640811991351210831244076390761125909234233698765676421856106017611517366229901522846594483584444844400635137284651739210410101050164885328617771471044713207536373335731432318383100761190256024975793125594321673907963111018931866685945657567465849373089048359429881199593433625495543741951206393308336880391023423518875080690515671806458693380996258943517587886999516507785952533585387061477827980549910084762516718681204160543633705580688429802997900068834489987108843116367123890878811558847538443725710135884674588481522985939213443731155536849088191992546863560665463784307776715433470324619682346833040335499938035572234130380637910231597236856938366496290459533808873660240554533354913861897899389161344679943313176622829872966866454698975465401937632809621042039653316557148605825801019665828347853836648766555581048577909803547431345365997599366465542288944516640210210645788748555468664540198332418653947493114558954133779553252481209589509231729888112028735903357408603301598348524451750931550718121489104529376729768401494609148973707240483170628273318841594002108945370106638684041056018171896734200149116819784136158480569765579444404385234461372846948882966539023536896052118591081155308417318965678783689932529390581723107408680058535071402998256630381884197798507738830579092465338020335164523662909324542696891799255658375369328428841681430945706499402258822660968580606056947475184423429696681657510721577417111605835876613877634660428399967541968221957877309061144864228746560476555044796547677586430044242490962563925099913269711672699108001468585850988154771801233720150626918681479822964767525155480567106332481361889662804076187606753936153282101404835908607105340243543219291215029255325540027926106366502998999832349814539168405628979245036078229352825367764415987717279090028479354648385827138867969723955282450268395897191680215493810194024348043833907322699446624374698682634011760960780198094529748241254643700599780133644907270416144790898262124279178986530778807217484985827458053086658230827828324868723744229230310782244592585712431552340873797922049243363152425792801381386012674759447263257512471311328810198802409481160979106397853240585817960175347628387825069246230891945402791525787048548959458169370843709213005691693890769141422495599676129142087117515254034553161974457540286867167696160220380059099683216785201035968692794490023427995748680863942362410217434975629977196527012968387802383964270835630352511521866785250935633781463479203852730065747021017402350141960518672994694197349778843992178149407422361018649935714272988230880998129858715275709909520952704777669872109481436899933112725429778347588338853396507484399099502427523667659875833464077894642575849657296117958970529527899788793145731252736237982315397099089928095126744240805539923650911809126071522852802609686279712078251961417794500638098942577008836241751491557860145627267039584240069172763754295638437107188922421991784002193524093037824961684418919110036292797946765649899007532020324612919502040749936030308925492878226527931438406584711913953802951534963815558861668041320917158001703662380103766271268631085266566606826619776932772991898698771349166968119563277551450806075455643903435804438056360222971645043684646045061686386559501169832759635281332176934724613548443680074727825732681360510282627467320785787394203037337303133918092341026217287029545174673643397920764832830030912946764035263991093303540618939295911759711976593581082101406570462678458535523458564460170421156376709331670850369883014525459393087958977055184564117627356286146892794767990409548696022619460727121431380029073298475909318814640866578635348466054766963786412522405935650083394492029421711424711653486688157281868441623949237548281575919569451647477028633903784113354910302436294399291630186745966434760637611184030356942495984670243989268193201638897686242376449614754933816106787801373222597950021327322992173664929643795289390171629173315325282537525048128362059246320306721584481374844009937235073126457751847365430541362943327735107219524764972758819502072077841843083259077537788688212840248499301003671710261283087694046158409500258629422277353732598223768235864121754105668085389346388474175175740396940944127445720431752602211530620208481030269311681683901272402381256734618872690667810715272917144043601140438397546758117635150985380245650409539244759262511132718636129982441530427448172215171314908808528755737391624161175498483984740072198838359434385634790757163360268658277215397547728987360877973017254489309321423295302483217328849210817624143752600498882467151600106788940911713828277626507610335096247055640069196680257728272701765446818486326777756460723641908701467228600163578410921733774661459791925097793372010001073922431751321478365262983652594313069965071936983427822407537607364494986395107716105974533298103006342384262080665920253374455470864180931076757528813310854115133751546941169348752845317881860432952321344671476956395308943624361979838229785235785216268041619715678723448429224027560445366638443916888956751822901758754363799341432235883756680204254641884644248975842864825517494844552404649065352761116714985241564814214125725969134251657209970336099394512781527772491958279310246065309843667095113964848641225210514146781952383890266939476144721579565635834413714081655113530710568071918262048967463331070975299798949646387547533445482014200327938525043476738884905211006873105861782788562283989303726490989575579860160129701775499413577376975139703255765984374242308878212712521868246767529501127138454317028904753040658701651701688493011269709023551842023872071330195747113456014063568475031236385717731672313622724893113111120444430478518210222448336182474849107545026934352153060693172310204208923702704645171909484415260793156861055063258611354591633613038825488498626126845495550069637430481300542824234822297612702768618536625219385650404439065183082138708915866422504566103398977891117509193518925955648957610603375727406074316953666646369139483566578679251957497527584975905914920536469923672248698739868533465676863980875762967283124527366209101907342481315100219424791306472035831531652194502323337258360629087728929022982533052435296443869517578448798817514506500386507188593836676519196427168626149974330487068280097894533705550161711170232766218183247741731806915606235009278541169073025569879409092821886289980454942875255179960189075442224191345768485716700665943926679898331454860533646789953048341638345764694179942782360791899637093959990450422775780062748211362541479849370518472128890575668645933736039214371964938498607301677061417524601424434716839627887225762268239972156180751694240771970367462704940557494830565323756708172597786654464591466994139801723816809992393182465436809815195376296080514767689825803284493355558937037420111646470132764813565981844764950701234306260328730311263046502631119930158403270456406359902896534945262274868358883444413886346236496968970287725389745081004539540378456012131665813559743976078200838873886418908621885363206650857849660270853142305210125033659819162485710911665422676512863751631878613305149546495010707373170811571333299197844560374372699387984643229119949776304749062018978967969667429564075294890799625193313671989697807220394306322994402075467505872563041708862809844557521967218121620890372392992136216196237984016579995785420913925585048087501170994565651191277428635714729935464374360141356662497483052747453860503001848395770005224886386847447290744105665384842709387153286362186195049202164642370609285050962610995884866909048344546698163032331187995811205400702318856681056364012889847639470983118080061919582349108887729723181502766144469939226246708460968218635277216515215479808974477809182762185832783781126139400568184781367745819520919404203408566323320836751038208985605403322603377602047982151791218188476510506411734407304895598712680397605844134127799042492095383968496065976355586173052037473640870490323933423647216482936721691253498508893149026836721205870141380195549113856658077232414415301340778370297456871011644352550052138446593873056413258756477239968727583617349249778617749524238160330406710597220339742949999237221972918956276601293995879271300684753731590890067121922704832005718703849929269653314053703679064629949506189931857209911058654430761389857743924428292766776539688671115123156972881749979795184444056320873690753761492539393944919588663736811584146314274265266753320375052970331784780730003154441577842367320458140391310833928025227359670468225686185299770373626201380335267731156869396385363700729744316170378172525089868684100544160473511757308605646325204931704084744747589126816813901391760233304655932753205438003774346772494939314428599935539539527729763913987791958561258020868363976974296385409427227331753955184843755082249440088417596400273281026393689726304632575492427356962638403755721371587623532906298155485755276050942914350722435394843550661704745020809916537709035613926589057717891467446164676415877131902591089052034156384212371871181480070066478923348798376018034506944604533477678823557223325721576147979230970353906647455916127710083896727671012085763003493088462696662013851489568534580710564541974391682773627985791610678688294414171389246293783581630105696060184890382118160185037180116541239106738860551139982793371416009909703392787202860614800820524252214675544439909109296222665960054624696693770277778026238482358454073524161086141011938980223584723287154515075571396324503241562275570356632919190889891956174166079892936048766100171953695408983631302061080660442907495901457669812980554687042899836797267694804300400400298317220282902409971012864288090159788901690937471140522409231461046350711841766320987609112167382539317934510458098257206593312504857613047881680366908760903996597701332478593682193823566496312730085383209113563092257432588968840046747510603740265336837286142489638263389250853420434322330673140109428809095356391978031721781936503343317301164334727168765226596304460270225269880593457377739792195651290700134394264253213583956727390245890369308139892603061893931040239355469624830483045648038672306328945567548682040198197093602976113051700422644702676810262973551789489306769933890048306176322871566820288586596066320231166409520171160357788986457554664726559907142006737843074229828604897507395797226108543522223846008472979991350641496422656596802336262833191135931861010846159097014636151811469344661319024425255783759676371817619731173929293994703146537695140307236032986994201378094540663640793890588516231592722110321502970568347056114024333474855712174257842459753290668151225429660777446012463281302549319419882940826760722519038848852443423484812718817262620305300427558201862591805472052448177534511605212375345008648017586663770585173827767815009386447006331573908794041353007614995094010402062806788882129680165860673287414959158980827455158050839790979871330098332433302911377145498291610838090646998640120943657283609012480447362064960294344011493843430090885457122609762449995920112421448920421153404770951929299766900972809484759459882055184679188012517935391434014459637013425092654410276275202707665821412853654110844950146943166156527773928585012159887382850785833074982257738875764682610739840937572464552594693318543935720742691029520752712844120159149447254725576937327296463770261027740611287101142995509222348242374060021128580346798063443764539824247067077510686424515379430345019585709153205241544712958015908846971050406107994628230215797791717871398776112444872381370730873603799864999023135078786109249387570500626886513728521092010537892658361765897208454517933283645707276535046152480970002857000812247039406558920378715109928073841015361653552909470998974657813383108495505466767503336823957180280657741759254683592571302596438546543310418916499643307014059555495323437953495253970193499186989523776644672284898897478980105946523463294712468722845705232898433480057749512878211076492396239559031261225788329776959006888708577840281218818386245187505566448862272163156645585333810289215288515848677081927402031095273707450284636006558902647144636043597997073552819517686857568024431496229494021018038304069841574944103959118873892635204937440219588259384943229820101944954331015239749890076087839359651721763851457153451399512362124465927863364781664867752665756202658956548187992568020212206625857084559266591185181137421159258952257756289349799735283076012281045953869658578720435072911590568868360615281458330215863504966056051284254259666420338321676319529896076445535803729207931104094720581447385247092771639953709925387996731771271842009639939462470260930022135469039336849442710035575219103627195491610628173582674622130704675910010877232596156664785728815534896494248903866413254952801882883249290390571279871938052640718295378348141312280582022702031717812150666857734362982653412099271275701981510959665612608776049903425112581581260143352187741597777100155159157498214286966332594131411187131825624799611658316177807800962080928246809215444390419338719195935298782841730374483166551326486401535395249556174465694011879008406541660375643642485966872196379137392874087417534074244753838683320023279305379713645165181144088228769639268535683406609853956129844256742323865992985465834207720550879301349889803051751594065560822201779996930402368657107819245816166025200408773249975749209072397991236672992720487365009115949559733540794650300192353989129238584648418111114266087564365599748496384273601276746351367790765373404801257057543475684738761671495051389335766574864043719019503097109485727685362268181871348976479949567549270233881969556950660956644729096949755461442929170188368528579984797279449812277242493836094628076796974025157594600823357361823590184268015979650438831018577092157086843366407178121587134453113870899135672240127019133373226060683799423183318840235105937787494665436569401780339920326920418020217404427217801777631282136521745077841559191093328214883906411259401402834339374161466424535676949388664372883023630306696672035421581970187605315074271542103644621251595247141356199950903926048120957743949101599121658866896621406212255484249872795943635372661646768494770507851243948669117257156045047772458120746964220898325044136120868618852694498427692335883326322379184241706194247793345294298707327374583908299235437117963667206384947773245062814224467045876966797024647723835013135076029255957475995557428326484196402346864345968540197126741580111575163045568148623027353413895059276112098388552287342277423309101897248611433363977978777100283798557145358334969564897802818210180055994230332304995653981192692405363264280087941210592757938496709044586989437859320579760928698550429317519244867627303896627845683731511425921773146346939615149555227327874099185689773097966870895480136201006281981857987042469628741030153478102337068187839235931188296218506095474731276523780242138874799825814656057412181707059588333339687306348083701308981167131038205233434422484799752852896357805951792296712748312645251059264473376000863428304817888407010525269415312510187462171216360925734831033031820240486043465174151961079660099421084074773110225904697858377832742247381537619209760273877062952678031566869779734938416634556924076551204239301042211077244955050535974440573354756430499422209872460447015191013921602197339942364668344750948321907907144623472152877213591068425084281733882533664440996472910276572905581538135266329479701214944544826255844181877178299279244872808797900159935773279418756466382351018809453514851297381801841270141405056591108710700428978891504182135356073330275090883537839945798414898525884157762570408453294708647404104159331891031631200443074550009434409949831601872226448953490638904856420987868061292136601564184132357560576581710765538861578676850860110680992747717120955311621092802039337452971310916697271331510396541255345305354663561508312077240976688491763473694287224718875738939518051399158266008530018848694638841243715418211339330620678401722722488910230274466982720173732175724870268914615929119015330227056896621171896229346076470345261219978793212097265547296976235442156586008655400912150112093213693274607823141089332283423948404863933064574117997587563200291264530825326547397851328124195499260716402211045509820455293651354108385374336101426728407105077307116583877245284987181911546951064099773333066459228686740687407141469608445056172506965016457295167727599351994555737781864707915983812322767223727278751414898952335074953672088766203792326375207162293217054567069904723098427205884010661759128313749946721205565146563710939487361224736095494642446989303876998488539900050106878975279900184204152526625317925348248454913510323463166810192092984685477984461902148387833897360882369762146722858208697389883146971488241199118562502827021948246167375542447828353614482537924001323701837667024545678100358459067098779046401354200072092112116180550680919673868725724977528763058666284295598883570758408645523121399276236441878952813043180476940962642257392440451077263887223027682239920758438524892815820101216434194791367472803976439345567350532460824026744220612800269384534391817963976879018824440602174500822355672270477864173153805232197982433221279860012746060663895682970581185761126409137988637470216257103788329195861934322448625487058183549360906525463357691579761973684763658505466934349826533687832717438548112855504651062536138479984718865287011178175508481018039048827099458861829909050976595760803841108718896038498404533210087608658814988582092818941188540953387738229345465142084374303996834590056489087468696893299532524369735660165737500769802546909913060098306590925721937372345136195923689152788797484639091198748918842688124238358159070270848838194219686730607880883681496023643446958225420937949581965493503453410915758372683574055309567264499928625741316693869062297857843798659162643143630063393972104759785488829998640700194060902969825784731156926169652884791299460469034392699604688399374499724675081665999654907764676405820570549005927890977757030070257648283559405296602618111221945859667955181617235523645770963007724393851943314855351809295895611029711814419800115022180258052355202216152363432383293536048377351675368973286315889347790567559114751497403041076020873696544891169480957629527285033377792613129286256521565558513593493363522611232556069710241384059153910745905063663043569315860365081935948463949057096080586617872471794852905221985274245920596261855462362202507495715319885979053273351906778418867318786322271175700495069129203659907588507337257093927119064858596820397470529069956070352588975476967504549469615142272263965643798772704240178010974970772148039987389163050183122987089657368560176351878585825197590542921885150417087178936662727131765239516107487565168373301487585346955480303249584194476271899681078496216345542272845346130902778953437295418101488908147219702167399280597372199011275337652361627098022835850930282536774976049464985064539125584593534275928504388223745035381658955813873515541325221518602766457932969496710818178093052736863916287350354470631202836318199448273360520364918654777086173014978557363318380595941616922521973433613737241966832790134883952740464265412402360951048380203344429204977332389906225450037120670988712882240874978304206317539588245760036825914958314664858491013011447723194489754908486515490405041787869984635386694213765367119336503884555691629529570659074045077146024370554026013791279551793479296861530763202735516503985108418928732125001145644281379723552141727096595797889746311650569046478401100209342383447756468138670597458620199369962100950123645128854605680266675048324173843831014705957176525237222605210960301391815133610259205709291991940165231327802585381226275693822427700964743950214061560582900764610738379977113350579477160100686665701537588551190691614899967301131280468915192941166456110060041254621797296226248787512003721944520402508656706214835335502072925459535572313619081791209224185811372626642435846604840147070667605979934872680138775364036070189511758434602047930693393064350914604305698065122370056916936320883546788872484309981729678051940071066150561014247654971750102226724234927771917280174941361424522162190810900211231231845342349317276893192395767155188335275417380613583330653894122813194387699604893556658432281922126537510543824516426387023967747978101554651193510401426025573556034524205037310527868395814900776963634981519927941377989834348594652755645443194235017154224865299015443636366829636801511480952046563059449800282236046097269137625679933211110093771747187806818602269160711398909675616090830035810498193685788701916103648664858735940475510218096723318964950772751816220500893616092625212042300236557888771727646095474684385541485942607521872877455538061730671603127008026739596282349364873005768775067147858592056975604854551386434327118014590474203188721270821301709217638442954312362390158679629645413981238238230379844296108095952987229963875036375396543689059726299119412580628252881887031584781766634231952696971084042646763115853758210739749873289589465657106687968922338595072477761549379691004816114897159484592168106860241149973233906543003550788847448850459396284471317042147360132511898871339037280399766182891565213009130296134436430340721545846476649937814636303522299985243545934010163524431329012767460012941586526287905407520641853639453892748801836988793935947368442394828588553233480911592825197732960227320021794452375878959438308699263892448507028764020813363711329244017009449763471222425294050801680054602585499120378425052066656576205108889747439126726572570125328357617015811202319943281472499737035999542062976904855243639335709528335562060952807893412041016192007304092981331661936709004828100205888817412124476550424414364172183595850324680340125456904863626252429813732961349698459957857531013973770529639000781313048009062880864331665302954986857752694976127981971687487474047803567354453745622209969084230764877250707179548286496240219400629912121583904448863257407023650588714410793630802469629348792697001407040650214323346368662559164208811668626463954845956218757979274635340839149095507550968072861492541937833250740828877718185007542628187425358817198928346936220520351706561429043670105864266203237569497248961898833834722319201173066619288981091860514126823197368685378027549452785409972388221063791272757480223243624185951272545857879431337169186621630845451212269627518926465311758281191490655932260905616463907755386752447123578573407074306176644699729455169062267727019682741009825499247985276188302158919603337335752544361479728333044890275192768221884865387982269542677553326476066838409878826007997933988052727317816366164439349052791808506656486660186239375422298645183463693021831591758425424369574225966316843269414546996753237097914450423345893025970506435960356614973763135896304889480116489177980034544523397033203027821749505813897070762475431190569406011800075179958125931824360934275186347017763026532290941412755375366235419356927799306333626746635923024802361602981186459760157179307875434432997349605917112143195027275848022903228811342013759019334490822553180694626409218144612966330147906540596630537151913380635104776819432005316407382194097536086041771022100547346541962830892786670287511482766737834977478370847651062360605598206539968853245783898004305595587033291739269125981272501374708266382097341512893543501774580797259090988697217559176882515062047519693811165392194040365518401474608326006385624752019303577962117868220296109107018258910325114995240670316549556487957241328259145536107537848140902996546662721437717395427450252011002316165450777587549441281972415659771465597080900764630322475737252139075261594819418855235551797146463842218920779949342108689447621097550361189083302203469332961163800262841305875112466175688537024231541561153131767704595610987433388743468712531839099975675627828626302980683341587330789750609414037912672088502968403405010854421171684436205881632223362654396440123997361189829492051262641884020134178888581553882624717507883474171053239682734904371916106140989342099837260908383518915568686810675362998347903893353041103078600704781694873182391230442221738158978776371508315223362889525365813206281443269195053657173536801508069108027556900122856860384894647223074362424758953188701973175052914440959721914952955050190742568137818562953517050028686042688527261889455220812753027320743036893323788979040454740465682867439874586023157737785415438890056023490489973378423109334074307038112676220269834077227938898261260378869097983542926364731722430226583429902269758165411125280365842471352348152001314097179288703842798157495480940957359031812614027733083225622683256714202594653866747501751698666193038101623304175556507972138383205151984969556125177058304057423741234041146793799654910918933131269659932926904662171358073046319177586417816423682278754438684095004213185603414550943097661387610135769396731708071668471489986616160139180633586781824990292678861677435769475547062603301709022404804464146336361698998179337380290150788620783866460299598035179018975459835963423281978728010025442275777882837102903818647307594025518247118241937275189648669845103413577662780561700169909948328388626777002860140766253116585324133732700047568372093560278657105521859577952761197755143588023599770634200278466841524869555279547292559696510732026392202770613033247570828237329323052052595803685244888397319637366144158312413246404490847179509286921339286759742888395987949558690160344654939750081454422554168772273241563193319271996267065819174322028449241172868090445531625066691555270729378517919465654885231628872039412996552285492081265361480735254878403965350232605725181266540252407918891611061312225198023472331616822917879664912580749814735876833319158850062449693989282457553889328346517449986793389976909811580921785335719377420393826809767190248318539004646671370114970268890651597415484158714193366510743344870322737049839318215924318991967869594532698578621815154429049128746740993436444214803960113372416163511743081531574399898960716723229522981910888392190782063098638451126110880022785016908799663350219124468304521995420542561624748529951139558602653339396490325625325408209931451769720554743047199521941733710098351615502650689224717515364025363783628244441940173978578069681639886398221664149088521055104808221209217977541940124347128069311052437866796008607729280129244362078059915139375586142871934031557618399728463394222076830403233182230353356507600415772562835784679820464086211312341507939397504674159916931424725957522731941373041161491841279371648920954102107263022663040346537868550400881506631687642086182518054117304169653965425784604426143034391859806196353167109024506044583479051149690116477951979209426593180652039886751728971525598549535770094658940850710167741298593639135354856648217047817003190238185897523393846054243220052901720147040195894790520528917427584848697247869727583286032207065043216396155712203331279815116368995993233915031770462151425779238037108583589045518976124694422608610364643960292410893416922027912239796124944058212261513650492683689178183837295690981289273784528204605753378547246696944974187657822019808291165614476342802521984487548388619982724744103593689216225778211553541635257643150592126272039358381676599759285830425482564073458584175066799809341986479146179597059739544615436111857268864171997077933437351135497106639085267377833220034244516090508341323578538440781536469540288486083987388403923568887829184358613453205078761637711094214966016194445142817149254168662160691809429291856557063695351298398295370907790105520558131235054476337749793804283674682685292988471516369027127929394370930421724751599754552245246558718218482749018595553967314836073308568217972217046491519235355625350137462084251272020700722873048811850120863671539419799761059555755530254050217673325042398059873013828558778242186100670106813279389843218162793780627663778817066383348812238333440690250140046055837135038589467558713776112662130203791881083684489272138118473664181671064198298052994002218332528788585992143524688421489056136886096207513719458414651352549998225431981067220580455573752042617976941477916345866876565246110370367061768272225134413233480809711775175179255239910263802035111992688845524804390534535827460738383715411749397327683741768179914404898816757557458656754415808231707655508421663678761523450441509296533364759888229122001801769231910380014590558830941703998779154823255971545459846525949888680277130876326245552649171283959312547754669699883773501030822057230855285953953146302939592237479634879052924017680673514787772247187320150415663346362249735194405497846687637254613050981063959594086964037013688922912367150240637039741645654780878659028086002062476826154881360633343304487687831892296861373236378001922577554841744562256858904093897338984876148589910304442996190907198352084749415128813351326485323566994740128817005919340608092414043073957214710568163648246827209804771968494033672894512209649611819950076157094334414887118422189402331710382780817022866586162102078437728057113358027512973370101427323320371830791490861532407789384017979677331730655613548161715812522637772340977124566856709771128593759778467365816310398690237418977158969365026112306747289628627772576120099170253092334016930350250054086741090723938937890854479209057317496924291563738394052672974737030723684740113265058493604350195178400253043445146463484554124200481886184499954485564640457865812085025837899917661065213946339398710073490884992571370557403309587575330557541835085741110799491733656348632601139012989284750127053935912611858301709621159385832425977138475523098522352988738882940912957693323362686271296788809868955823076013162488732867330041043652036966605772711680644553367875061662601686492293856058112653600472623743041136411534702200568905426134026935808421251031981073479380469603418095436909560092793036494618642253348237707515071413222153788468149984503888759267671464668331829079907754305418455666196702523786758479223445987520233406792163582867478313901855625547786086893898793714473394514457462109550514036067507953676490219427986517385694851877465258359389099789690156508391452399437823016251992434300508369556516421807696752170157203995214675285678589385801387322926527242309844169979902366286050776018943005680737690228778693598835248249255913805764247210884167967583957758892931561741555977703647069846068259255584982471299045102914446179829953946039484014754975577026195733510099060439666528413006184214996453437120500711495828111894840923906643134180114778669771696792331571603347002122200427553886864431332598269453371791305383773035200098342445520230231253260305074575907610392878498561106068993811721240879736577210707282214095371530834521600891918018311738074409711602574648565213750768094549129970609657485742369445771824477555569085934975743519566221685979276620473977007339157589185039100137844013514776202516287454900262734299983195260557734754093045545087378386211264344475561492275690096557493898680661709761868077662260391676393993538847442921405983354745901258887903186704446817499715173249617276282145471731198112457887689823817711233431306906602022464507702705912144341899261288966663561660211025954810288549187899779479416556548695144633961850394794804317508470763368349044117980638246361036248415361967325956981981960721212039691200847062357628343472526790137274692526259959018032303407353519908613220426952918036836471807155646901340983912651473751816635054086693313700382505620785477616792125295802324337250127039154648632949573791605210200313716025140240390266288460781041084118042084796091984578565069777387116921770212842874715753534203120395054123829052731819756381934943815502502607197999065684124183852490609997383870526986837214409371639710976632010409461997892214273269896073126060240609422561480057322824997346877924516808810453603235776550834983270949438436014406882590332348788321258085339908726487712934780971734313068434960328696000804162557606176294328749440363696015587670019688704776687987616213600104108010335321645132944312463069138723257202819928531148519107715583698437949090560295610469488577839637523280210843136122213298479017765731799752128208315671133013813793019635297757984168391193784321425292187024288010282630459934984727134026547158398347835736853941272479924799006229769212761146034747352126455209572286716044866174305147601424786751257974562138755297901265022516768325192959569152924042121768448813628497732850616896252503546291642123315313599373447916974598840804549938156059318841764593649613043674290392885076696756704926759077386352370838126503857794686108655740859400764392287871103601522800323872345377620211836581777383186580918794148218030601436786550744066480246328760714982121908896400774574738977017958604379428719245091978579337798045652386045640133326808334292489372663910670034308048803559532039656359809479553631129854742424715013012166256055670732119944816306412295702799395889552088327499368685359780101053633857847730987907423824480496670671639512833843833900475254577140721238095304113672477223212485908697930048419757398136246133397974504711173524429512677978068751488586457712022058698410565266751869931032662016270625459827163296786496059519306022565407230086598340146108592386299616049676912371447594133398992848898332912805733952127985292982920159012954246369037007317266787730360930022895007642887973469168500361570308259047564954813429476174696360547962320320155211491748181038607380107335978321430317550761725227765213649290188598890642697761084979312909086565303298737550985581524933056678824694420810688708003939731375409277452339619941518751319247999135418224664895799263437495578624611898640967468477375342483248201582321467820968164720436399568405043729252982792137382720192475868558281830784281108187132427434752873767555643884264144372478583386650043340540932969314367146666639999009356201238026867645172388361858099341770344731161549422973874281975297680819537471242640539790402739141083610827030155376734660080099046796515785525381181656004579611223053194835550637968670488277779191727585531223932578191933416044097536586094317858995854230518683947952774693166561918552658660092384796691560350557467103344328234649606267047978712145983893755131474404865222550277795417130946772287708132816936679116254007918182811143439945431517728790908931155429230239917079876100253861551513957842764303371290873929066708390827070442653570542709495061717451253595238376345026162800860964821873671663933092583684611748419917415460122011152072631997890258967357757292150278649506961446801954421420926769336272594509436596826501398385510263611342610989942233790245158156246849991941699033146042940250952655958429884749090468274688634382953797948112355684759745132039794745498223280787115642347137279710126021705910286143766703840147575280181097265267425823722196321780517385227352229944143244499994515669862438558200178333458522560510593904741098918184257434507260732233415432281520429412097523801778283008044214379148898803795067996347828813098478858698138575026844278103961408927692208734421341057100844393793247884661668948882650642825686023441365409237323190063851782514006176803389026723957542323306672510313598424739984801980648434268908064238477956232150371605286966455884014933190136181933322659365503932557664439184373335758289525196388000875000725667357130815837015638087709583310000544802032519979740295651562633564963933581111403282838510165836988872295025579052218762854527908106991116421243391945570462295266856338954857056297785649960357958406576555539176079764888106484537334268108259004580825338701676188746362548778302053490353117075901689343890917891057800067175274987326196318639454635910278969990333208227729373635222712212563501805097033035911409858772597206079187582251745087153853512463364126391289238815530785324907489468730358715269007699353256098715536517634529668051549029767940921472967022149273258604995501858653820146387876698248623370725367692460251622418284456155490803524921390660079985553564925658061907714552129474677348334716416292086008623819525225232565082392315049566735480149462845234216138510965766690093081065746275877154210673540718506773150564860114626208278358200377453603581147605554243860826467596351534272761543495711558503223194292560375265915983825270930027254318458973594813621932874844532312016824513086030805439940033294272760464938584489248318072455674765101122435330869831176283068359549794968119423783662854074044391890670075790547202953123216404241847189872795656172522807957225836912014220617671727640164387582867346855862148216709412638374370337799452318405359532585742149369793229396459350376200111366063702939922759481618208762996707684486564827058053368710116574964158339610799963114366328293006622429880205388504570279847767471281190043500706665015683097499356375449999410457280644856866839560067378936829419462308137306779192176144548221089295099381998856101902227075192626598401675198862144665248933529524411450580990364746906515304214354300572221693249002362650931556144896097369195194604840748882422917043915633563996177480687464312067603793865119857904360975679887714194625506831784687050133876357984887161415714157256102595525996018121213364735333703230447462354595158262433157000745526245606687834183888402808356455685139326136317241027743418573803997951817773685881381772571805018879826499605284661580719537557587848782575798143771069707876361175137829577157897942882435233640673359132116555308638859421598549454693108918072214910361337109437205062048327174767664261228959460316101209754533785184881209584041292542716354498136922464180265115063764050288376833565022562486919787064321188888313650029195374414705753551387344902179036323234827148987996672150057219447162385252976493678067419609338673163132123153352466093269629376419919175844256342876244732728708787422914835299764317901081695440052719175642857961858016251574754447339743400781342049590266244915458392691525914401563644111532536097346696378472808325778286555270490908943322647707067318648556883299984836299005415363021664059694393399649841921153605146801993970423916383553048763517321296719005242443515279761139128301523238890462150227638522918654480324515282125996738133858312995016560917392755641310259153228353293179437859000337386810804042161400735948485165722675753903901289577402947772417956593634164551881418661293190068243817743546308583755087999251054568172846768027993778681858130631836131153837624929749510040250040430763864198123925340974217779532206343075908720770368421597809652290323627921935749470297474046838560772785517990332318876357944940918581596193555955222879585362881723683194988685781336062640590520641233609448333185445835368248327079544285266847548567131316849112939817899125257198873750321539307226949463367103345848927806710033058947156881277688587261682825114372862331358112470413509778898259047402325713541906628038018886462855740696792822982201036178377267460151816088181111485339274880320447508875136798002822659928294800163292944040561188326637272785335991086913454247264679010922155466581398246427180957807418059079214838993759766882819271648970219606173412146904633180260924786333607714792429725159953963993555813444184894130088752187706409325988356953226833332379517243793486637020693350331626414634631317927773691120070078377440262772506385582943629906896395954316357642619120194640283302343828145945508123217372177032830863442666588606333860267360306972428479717264548864034548708592699197665101144510975686219722947570151419249137965923420528586034784706017650107714376156369312770411545897820216771417790922353830879177231146565559904494163303526056040638265402699621782231800993725929100347260692993238273993760959932442160042038274289774799118549286182809630267605257096089736297612701319056652569038395625655833655698102077271484653684115517916729338407445656336944583308605316249129283746946595513136705018643968344314115461602016960256975090879601154923804085941222951536930079235818221203279177897437274724584390548830277035573814665690003222746306644466850737064585200500894278020595703177037870491191135424892447780013902532345684635474429056064220306931850803756849103485397314472690764637625755529453135311143310035083410137847540631557347684908947415899973026477412107096891011596182626744447216015371592369977258129344371713203086486508663996769613684345649347751238254266143777935459582578081785239290192225080213765833647969215941362675643723085632081502880066067363645751270377307469246248054655344748851802752745931937133017055076138581139155142884833270837227655096032345705092618253044761364329890774162398302693081062077426608349316180598258912560864409629897511598322534220571286753224026071172379751533982044442683824768291117099589538834066348003336437421823602265156651447229300996331526040299325979703443720639980371296807262715597945745112135280237840914891828249154499489926432966365099862274418333001222399390407295780783448001423686330353050676439145628008052060037573621612151943038632187314756098412347917471452145495313757527908904390879419949388420045135043744358501354105042569308014412193923331088394817274772572542673944933729043705913515817632414601666860456705083429627280353531873124615121238941499809404403892834077257003847189454209241994547919930160642855527278828180198397702164750932011116327455899368368436598280846768164703381431213891673666063263986517913436556200383500776477393535237625925837013697989543679059818924997016924661145659224654099143269091328550624286139972661487353873226388481402289256525855363399757580376563158211653272882119408575302279098992781990896523257676772713430296353751964218988958807598151066828556028411055204722826085432795563223013662540435263226717251382381809007283531745545175998117771624713711675574805590161330017483912420999634722132546328721219093558306401090295725460002376945819878384282326917520491035152239398615899496585757899685813576316033539712488605295306229386745397302549828595992818144300615562992308265717172581510559222782444342664702784060418448909950249979910759831030403726946137846515020428216583805579914653687986973876716184127945304846920046574408424248791528838928859379012384374985467604215382056864977544763438972172938953036307304907891285804368930804386541124146591921339107443165169959175166714760085751555755148363084430468085905462439159793272466884015911903684384189213688062571676705331419020843944660181263318553703984549448192443221853381081221686378404747359524100884368402843891861357242922269532236036517479120324784626857321041125613807721187708484187809241031903779431290008508452757399484035073198034577210887421596932123749615404407557177189344702057722760098758889882509925113963874366875281947595699696409370733558166724331805013755049526510775001495067471095797202136382375673260073551302568795924736991131209977840156374259742561232061740907542293698593946843179343335710692553264279056854263822443769088632739914785530547237767587967330584800793284178446124315156233449196098344115700593493332055303920043301092763198109751407090906476728155856390661385865705569399970483416886081290623731344016391696395748072459722046037463436170934651198555097484097322522169664138642077298477583975606764240987055053281745626694269578765871918245305524290933939092519365574478377051444159958986907649411087528461143984621385418062680323044555688987770341074251491548517676815496057258099589420482327630357934504149043533350641241419061111506261674440966383487438633991440365790882273018523550528529127485881333826071147487466570656626949860460341990048685198041490164863710011751025591963676463903558825569771994418409508845376225097624171662436853450270647427725467579748397663557558277407364238409633195969659123222206048018831618096156641907425019225024844630330695743093207261916720256574948989203545231615338515750075938396139548188079976540486527262826747737803150435665813292950325950697505781335928666950900787694259509075763167137937068128723437332643018266575320375941578732906931434414243803704101947411641724704564967090828736582934682771655622030918977653125882616249212340676882856103732459782721425279532477253578681028142383205553433779307956340087787534296896720567809107779666860430843418792619472789647360438858124646986972966700267154470606549814559079196243073274982293222153457088520140673152395120500510533433220341705591548608592753669811539111426244932688362120290769512498417516828932753696517920697578933133477394691448109699729892058873551082053017927209593244619725458189441377400010704470387722244658909721028287198727919518884123599273373211408045710197917192662438234903648783208742770980109295527822557046343285350469665055678343627595775774525174808832515615268740501275792284266621596991858835545503159028876370594536933029601502073923032700444511345240336913886179370234543855296282424821373853880413259147549751268831038342224253560373609484205615018459383070824415466504666000539688060079253715426568191375763202632039504331078809060163083283974565751674426061473997455137087563742288471871274637655564629077585072976421618875441567509596529122721296870186459721613363938832881734816393520093869911876367274990645388091661765313708938820196788562087539457330689481183624316916396463693898965150899683960905915682099305831806281667055318169566621921034342099761951899936224179785030735981921660978829171744175609705108639897746998906781740770675416312645004220096931026009307594658982903119079182234409311294356242217665002601246078081404283955595378690035447779727880351980485843169318496208841908899669412474527295088894935103906897967267064819473260481343443109321909936092300012544733432293693592635403594628895845909245031444873001287481790643228190631100740171535981417370232681027724013156771558264381000683090695587730751073168881226660679083640756405834537564895423239087302587094439564120623813399636787559544431732611105110865670845645696416278470000223194348591966524042240528204384357375086574526611418511897596584254027212840730275463205876807941903097550906905112652403828700450355762031138179924567382407166076105786792755603458839251755623130974684747098628346798205005213145260176245206419832493507360621639337479277042418965867834656530870815568588472866250746364810797866404101119189088932371856252002304025852807341498700087099469607783449173324186799712542168993914657861213504822769293148732977354599004110652544875997058654506779442297708120598970667830794009181102345834960928268373861675833319952106391152477599238403712700301533652823799902018103613456300109011537061381180976172146397625585357427563436556892987295349515756038984421596015133046315929762912172627527407491847083230444760865952784910981912819746008304177263519758752994439042496688492567858882025135420996357992296274928196274878598534921209766148161043213092989371083585376217025223560501582594712890374566252685019874085165152067981207896032624315300841196297325000420828867261688161055874146530487215886346547667070960204622266123007442392026504164463331444068209836836244653887053041187127004470505338911720177831311464806096521213294835756547962718957972804161932569487258140758266651464246617775578929099638933204086625705530206360468665340824411033518797141764665555993601822622199605459142509393215299361465459764588894244640830655284362578541412147293157573222056331606937701776373716724353303274968470163665765487498645584818449377059070774447041715829619700528302383554502800370219342110793735277312610833309811670006181686987495620983079763275983380048708899322512835612085464478885718959160381639339190911809300822297056528833019627670791055995254866250462346541740233875781668853860719884569326054947379474289079494032180180768956754870077162231307816871970334529299703929853231386368292827263957333349429116115964614510510959441798965121033462430948136799910064927365441247764155574129668507194337436112878510796157101110602270095325410826805795724901911421726341671985246641677454454773202787166056874122996959786205053849139788142496712927800571680155502268397819748325407938712524785254118472735221406973898164320947752042130591677239898282865014814043244240846678442364949739283792556532619622196699549087381409627479227480811084968905413505001310433900896297252425924934202924953794303877713549330540963526708550632695620122759433700000084960298388122818740719162382871753725125523514946718412582975698287269983805780113327748763688472031393962294560365091801579827782443143868477495522538864611845892967539399309836611860622325766963804364889000732846197116164645616726920897765797432789588392655297659603344128632812368218166677846378891541186601761556415384880521734848135212604775499740967802154793305227120915125226033825987322043216084339064228621064139582432938442341961875852003754144487879151665529193798218100559926652717612997667494621093847635153498870834831391108436835816087684165821446670177332597232978161366125597927297103889575058592965106971102760846278391781847375978116825359733571537470424899291237022922306782273803739543726362819771430391772269266553802197769607092437851986398635258536268263970043265684768592684158997867251685743572127040557864088044522718538871070514152439762423255499564703277171868335149837236097151414767122413824014942150428024025812233539425683301397194494009679572952937866910508066302170644349171439884776683707959308047904682028240848390005170243319493086113103545008807698161929497568952728464980884561201849401582792794385614472117006244534879036439436656042515830997677486490663549781524791552047481325400264810283935283540593606696529150494975357669420769181027370273430266906320185491768844269831725385957999108998831731936116268505152818645533360014391998755434154323656601810227861487977435849595642772008619749396548632696826909633945564897454598489796623134305730473381096765536808918421310351206961592772107481393281392727437629315711531798525379194715031812701817978764626999698523663028438048878782918424127650638292050462915212527554649288562493622557286848342996237770324980616965982502442580286370579741798873964798148989147073449179451569759013452710496217607134619792394467689913017576224764549459906963765095429515559290022622952147087452655523163744696822396900702533766469920884715168535461074675853328910584926005678106404885761211378111035537974844035465410902382077911043886124114507827619179990803125808972373669606724882494157425396167961188210188855037696239942537639591354891884749319981470311538275568552085158399461360354013283610666885435910873074916166297975429741569818259081503529260593075991526972028004808867362391095890206328882839602143138437185009610945062585513648000188685789479350912169094935128924457657949121500162263276228159736487971963367072833817007595320673701931806952079204714269263133754506456055654734970276403584937273018034814049420381891850433071895484074156648583461187682799938853738901463199380684329868895650491281758355012524053472909864527085142424385943305737039695148970437725362825555397733862361492404361823437632497479882768607233075594654894203560682837896791598117646763938893948440759564913892336261379936908921853762429999008311619198261602730167708959891328603434325899608221544464367635264679448122337249915261121708057922875704906504306198127140531669168343583828105326703268644035763045846378497132290010243841321410133272859542319629707083007067932015694096504796322960670632003175127073620389582593440125769372339494188814554793358742693541150026065727565563234388710794369360592429758470284615243699375702479719801021270825257063163909611856801978067391324007204823564910004359876985054159551681282108707568304379168893706988247045705962476643684070325366688435639138737898583667433558244055900280655514330637775914067872352395804867404582788393231791099777386353463069716837036016827380279135695972960008284607211485768976279007716462432756477531234704943974245466285948829638488564225201111449767357323236218286188130836427553860129652152446095098730040791400981852973360491439555024424512839119770045924598690609367476396046423557052449807053177842531710754793741221235082375828030814385628289100634878436847479363116610600460127606880709010721382520381548184045991796070155842129562628401900812566787965301832425681672231546944099770114662551616871629492654910415058089617955192571621046190448378156307691478809186182028821413627833768445149512423073325351417097889042502244335048690967735745641269234743104228510485787415899133844673212801107899697470101757665875217601629320613741060078656257526964752509487791593952282219731372992209645652909269087841033280462404442033063862196993938860350617509644544069939226944014607369601745997663369671653545207748297841710348696040421479372964968522883400370200940315126508709455595508330985303991814091017713880654769257173996377951813924183900138746823003503776358035603626424232503383355884899266514791495122483964670503794258668373131851316522825570359933120175727143956291435594163246967684687928142798499505879151043739992515820353354983551317010008625165471231814031625893702956443558256229150471608478091733719558089849273000372466866353628227358455790013352842694240243793677818639939373421217795566226258750233465686105702853769919112765566094576885673184586473342969530097296452340111573428105863007722248033705725040242536168530455630002841504194052397339040476298738078643990106862966229090778118833243187167817658603235946176849960990436149734926257373060171191745501547950155151033299909929655850592687366385244555940495908249190192044563007270431256287693976116519400214980727839996715103203023543441697035510160068622676605219898351904714331606139019628776079895873257642626581529054791967021487135502695639763644474097175919219637675685242800275051476843208918342705795279671762705920540833997058604101360267066625915096158791020048743135643530106562107191323890631430292801658756394824076479320277243043884567975295979187450736922867850032299173836779006759079431268215519037900727860326387597582189790351265924043830437828706319981616265348839153240367463311254962508166581815744014176583048064884470777183631950646832434580065251891132988043144730336281112762926980471299150311461634374337457940326439254088720522628677439296650276637662884615173140795470082763402404666454141077131124306577828103149001410147238152963004881566250267682519168047080647537875833230081989311444737529929072893900369044153610965057617382410720635016691276736164603224687857175102506486802898369982642031536090539412327038350977006696667943683907629411470022400619008523589400789697040421751797742659910507192935206702609995708142747108102236791811870782814379511948935578881479008866611490363313975660955311281275959423323334528696718187422788194259629554605097823772487413252966212598895539804698822563142032791096583552397522097310136947144061738595413519744965578448799525130786299471674307946564042219784308660777635011245683322784184021341793271684759953189048398671102323527729969274158286202099987900448948344989175899554478546912116967634494026826550290709802087725160957766748528910052412086209233436283246330328817176885014528689172973399013948312683285104859109010412875656151325220949895947911897900333520446385582331665438727598070778197891540784368452194739875187268040897917481301018114696811599605405484150973532237223390130851380800975957465010805712372358548013834728516505258392034709717733914099521689256419489840623116434745905304136772659166237285677195864918885039860966495878743898842131780426263106678016531706971925717902137333991081376955426627836712734648960372099352848809524560563646173858956257635381283787376225100847379474954618436120465494920517009296281000613548462030991004575099141048261062078986553904699248098135578890545209429129106866023658206216677193412648369450668126155553380162794515875583227164031756645251479891188007427958266025260549050804774358558848053910927393990057890179208853724242975902159240750943896377420389041021879059540990917577932249729776513443953571793729345656994139507281431423522816663296364376001366958710645424266607545779584999327286666082008044412100040076171958981161915663664869311584265234982741406751121856763309574232755962774223839928020859725400893555132219326549133311091202049938785862909438938538622477801268058787069567220412431232220883240678406259679080867913113208301227345220099259882318398832320671640526156362992018656332603430570896321831286850342888621416748189290954787826025712383092715256257479718474418979913740537962809132434864320883823050943336093677847374413136860397464987861091089504629077328148848667663748011318880816112686624680287888958140464372870144772394207047150151139183938630355712326208513671614155366541695451063992500992179358619609875481276633651401761615147027570338969679829366948608958031988079002192731341437646910821803146605361490036361186115202050102047623126865719383813519263276219821839898288007764635673809562589792310984466404898478198379666859068309220627973072282077697965537107197446939348012431000973346677473121687455327532685128820726694726687869125677239474709633196397492885228684381109850534097838123168189926589589071878399071992111898890685913843017233802072560310092781553173538883894609428783839301730052595268322950122520556521355663976535869327668286713184617949983391643105083168404822978194020288105583488438332661167185781600583507893831240979097845578867684732805935297599018014860331047616197709816298071027311466844668710751832426124691730340920758431314312167748802760697343350310094967472877979335863172195617335910991068978202575677562456107122629843722497748322484670361251563217181890728610949448673671625571271275885781243175120385372857477890678284042456892385891173237270907231247271658162663891802937332167919802686898162077972785346078516813187900849762602496460158029899006720437446101927485396575530021949278834496508107924751839652795961980100148424261151485867123977951547279186297090171113916339523816285677737508895884491614449797393292492220444526846298234029939676664835515283579955895956721629530148904971155305199911723773039188064755761615262409262682103945088677115286936958183997807088290878155402526226548071858301711387731763030967915445306171829049621010553338689734888571966444014938700444687475898551486330209284969728690428825445804787903748399878230669199483358327623881262885170399592472046583946765152347718607358267500500355570657277110711950099752392847577207001613263256053927042013502173789864580184417854422724450976570572635685934481288466284112857429504887853728557592267190648202413434675734847064340346119847275071842116474684825063566361181122634238329107425323038525127869017929963824242460471845407036160045695918080861381540008354812948440534368779077344144275681305967640441608940675785934440751922788393249235374921158625995562036700116712820377461016489234615742190211696985511545938696377107177177626247017208242416355595034205641786088380531256492712613375073337085077055630826429899391694216816288929643827768026839392242374740184577404560809368157813784052766735704048750402158055368667263247061286060518222183137056846845151514808144804971450560234048065619423094790701833091437860853421181929983041420758065824053061514425724186709874678965338950974868901650768333927910900561269999479402758378622400471580700138865147353208758218743927656516278286938589844944007953781490512820650039240761965614582597971470478822704405731009368806246672792182870546871109053691652560107127326484918916005951057937472578793118593382906856119712816794657000964456996404771601508406525219062987178487759668369252982598668641270393214003218878953971445014350616170331948759277501144656576659332528162330022437636836701453988449188614041148558911266309283617512988228289976860891234329948617646447260499256864361049715247225613503284060766785960930361800306802059202208140809786261181466388031600743035295571413035948951039660606257521495289839760384384924482792730824398930978460467194645812671388849908763272130227787296354798473116190618942104515867421353632856767478162400475081824233328704494179868796359444694016569953849435074932535359594593834251400469082432970438809191249844003942809665066250429762908615735799978742871133316784102897549858710414921531330600408795936246306354367519643992987309151617401370056110823140209256060371600867026881081794431592760598880215871399425039007182831884687232322463024351514270122615483937592154928554400356140716371523025876224552090194802499672627455924484228160238099203597958536170662012895362607467111636255525332724121588791876186654767730822447313409623118981666381965972555029833326326169588813498766835805039530253802505351416058725802137626951650215044985134652482887645006004968926272913306236970104183489349497361998936924182019035675214890092188119326417140985676980542490553312486245963936007959116508146819552492742060134444826341430901621882087836162373306444281466964065468391303110440997730880615742674403921295634653625468263702714446275332211882532593707007681510234686779685124580853799548816943526142423440285068197891784576318042094486989714986381354874335233167285537271902256170515607906910637022083809470666770034920698430421500642211380006409532577362387055517967958625683708910326080372865874232447295954882563348726204341728091032763043649745457232705745863221026534247477223356906348341115110703461828481792780894561520314456384983943879431460505405644090903361949672208481187523717840891442617317191034408193642320752678223216775288128873147935407475632476802304689318575123426545103717240533920753962667533754955920716335885677320962465331446009686229521265728745350125016316698627716624896965757500649184702845860207488160376092177528309864521372910481658694124373017035421739099190835590179483938037375628299815680097895479477724907656247784858739446076250683878207250038541329304249069844456283352344414391517729793115241359879114360455583880356554125528157207714756833041740204620951203599190575202518484236266749523833439917739951627632401333128555668403333827511541824860061030523573465754842397640442550851186012030347922617717431154633831107282916661485883869918795178795109501380927860971449258168404878728627927313868031543823266716176528723886970230385274293046639552857914440517265709169692313801215231199024093180247000936404319701417229876227386547485665301145441582901066139237616358130039667730370693590652102853813584211220760600502270106931211222070287444528926578764052011927679595523493216724660766776957790298314791958601147606317733541086883648862460925628058958908405408451156014166339821249271848630419020578209910573506277655997131878095012362159052224729492713666658147537791861662772305756325686744733071877779703366834840009116225809540067377106527889737516843910423881761315244046896512130875386683771953918848698673239520235871118581343376727132233144943393683084620747173993335051177912558030207084591453901147134132579528940773163184035750013557513027327838038202056297418068845469170490021029109509614326051427042914436454929087767424046346838732359408174160573839547520283357767342519938724350721836776114790395674329003375548986135968175517721819042296777668264356418641322594450569428218058026641522673208501631402693329058978762982162724192481761799962798728650349071890127213068450701980037146602121662382858126030258263389778639261051593607478843852032458214382222049349513158447904872662281560529070846551356271590974524083896231197071859147168532663274179824748936309293679831728451415869801031100860496048343370463071326730948494256727870202816267967901481458007536108799095754877207941720887618589962378556471546105642398941573922017798081542538486886106695715732298635562994050557783786142203666752519048753373173029304796335605453032701567875192624560974884687565740483924133213518837871236031229183948150712931485686901327189310094358697113648858796920941727867855507520055683003656207526877549691664726329635610847218383851914500250266136000059238318453637088818367750554818433995169005863401891215100162010980463070724007342176643612128279999784784538144277770460848701289489430610196971808419581037860630096707194839209039964420754433186087017052671171309016979424940924476191814938019498796719718004208961269897533817755612701428006609619676755990757912822433639435471132211617141202403872151507023486582608325341857259031883169643251209111987081350185730130593832788037828773891599793052683149596343442531699693066478697182704133486804700729261482660777737836120921736303864459953280895185686268918149686257512881165516812483700075976027253992132402386087529031136905818306182262469320444110064616050220652683133067738262285818709948197316260229437155586083169793908976018760021771419265194824116496123545586352039955856813658522013490209162049010299933890479826050569807852161981625980976131221110725658495203215153042512030375909226218934273766206106848538384355543363210562013169893455981357957736430482853476396099113799854798580739606589936339117050005534851280222764916445342096995902689459860920363278323267072815722463107637305740911585055237876586814635615121004095441136110973165461640405253132636984423285098425117397006838461257203232771500268935108654563312232676013076788633948991267502843040197655933211144681007275032730574120413583207100726487888595343853745003477708292709456533988021758877980157939057837330506760630220849093532584318016497231251918737882454475303864921038989034071076512717225272936819391743053474105133500030707744308331185655514035886808633342674183435697607511851965648857166511924733677313791331178187211199094922519152675971793935204948338300394452692216399578391814077644453524578159331120398475074622435577799962740176510225400588688490675762524083881879021500092968673123629343073884033784793088443272577032450204565811383792779459484582071855141611687683336066429284944298929035049705122314055354021355092202740852475967981120025983051013441431225412105299533060613040700139081421298365426663740654266181906776249549885919293835886355427020507134144891596912298029908886604651115059317661614168341115826317580126352957591329073096217762256244972075193280747108798806646529404531031273981387248334512588025573393809120317375037882095364099897580375306967040791132991742753629736403751935151715069678210235551287334732037620003440738297639252977210932014264029704849387734571409722368057020795924005763636061896372862105619533650782256880219509456733324134573825580735665884370304709939619532174804602888678718995924797055239994835360631044409502617419401216680443571305405708868828873029663151702128769960200340700336726179866770314178935462681590857386389006955322998604550872509813524440086625700496426312137832353617033106337815631221731802441670955134523549752432745093232638510115353424613368492507294943554497290701353535057400197299613323683635079000840110304152684396935047903950971608572420623962334181291789288566811594868094781278864930040400414118827132763096935976658040402535029355721314256912850655383790256007525144945293958240267179255179787363249562727131934094149840446924438439052584110073214262425497878357585684701021042617490961384222105660420190823542095459020310477490333628081204704385412829903095659783755037438080310368548519197534252818470364519028888492370493242441596014812652243399334529338381886851618534161098263317891934975223069626992746494022934471028449308653777047322481237194148257473034112348313803240015216714577048797439907718354584234807446009172327472458927246568558372319950763494608880032160554971497713069763156048434246823521360140771452349276811294913083472414463443045666235778585000118356981150379183263670870696194425498190336942130403836127138674501467021316622857926343381801592937905319414773212327073056021335047237477077458720274014494159300629968107843210913089335053996635420569052162061715676042564704933193997884285258916805840281342061419738702053177979020219359692529447475124389229074605181536947621606892185842075465227907982187644720123053186761652984264430194303547879747882574082986186048562544463162495224748580150052447108798190745647850901672148333587304869637490008764279264945516280893991152516227124701736467390277111368011016636107460987133511021953836277958971620447966426852213136351787940049667456231597180577140336785838809008649120112861715885667472440287922718742239770043887405989651154152270050860985587182268680374851284203460618198034376893014980826576990949425697516978633952650395445802291737174800899361647850821402025200091626262107155844051683017652413154688022865002059070234726370956852141927781761127040525696671169495344731958455459106270376494269155409993993301408450331350512388782126897965374167777928216015339098393715705210190167835906130627201196026746961845130795641425896712345993710662911261862767565569965210338392168170461298495515300325773768377445459291716801076487305196976563935661831317609800554235847921926832882769234358189601147570505600224752024125159891999757949382100848204977178385712750936164127051946729392374293311880334199511969967444786106495682992342640551244178509548884307199012824722588567446300475220069210807078174851052018452127185241248584311117496001962836050835836536382814313239877356341072698264330964957506705800862226186339477004357502579909144697525498628842542102839750560677038928345204126362748126396836589826081081793463378070492072886707363098375356722943172168480820946589869491904543404860382630164443650857799185544805649736183583517142702363913788258693234035465713362334757415900569109465218153264698973729746203209715102880527770392177679209820225449452912595222937798820951220254416290197140474274894920510168528701498968437741464391275871812348268944366798378424731978153975485537405798197312481388696320977750274796929216267304786997492728280510773608208466102507150916982304665181635940631897183696284652021803164732882796042835529226295192938713232536202332547511022127123718750240879007502634350078172895154825406614479533255665484400442391197725160833800161353332292904689053048413630842476862224818252160439274066791358703082850762218927907745735837603247682352651178235529633996525025000361212771489733332179311611449203393340961519298424384198332759690402591318521692709233180915433783362646616069592184093569723084625543914109555977148952318470205337484731413105249402638029501751961146390030737406779370619784933274036600117517617816544630692827887735920941009662133446072544351472991346773859978745847941689720965668637139501905602116229818275358571645328423534804003583043413520440058690532413962373808198064603322836602289675615492533715289215321218282603492991173810557108123603795947070430975668183947551710951371770065368656842197344770215656994010322732539812266917204136829291488091514799177955778785309554085834034999807132942205941625502474618268689155004643819003848557329561345528239233042464730653034812371662136986749010750643680276822866038199627723228119749126742196908677588089191539361086242686185681757885339092479828270117750229276835014070429645831821754000315412581593099012113506305605651566014375414919550926325172405696146755525210632156858465478833036968220994387332092160483490952883453804908709774975316548714214992460618841652413343189733405179118419052767901195047049382923577769922516692697772053213762155073509542874923426797515750419936602388099936355571559696466023763909080203195577137118015580183534139737264885032464418313715144564712575506803777151783226520642431188192114368657885784098619642188790752700908533002948316067345837147507184448954183808712615902090020462380912235198292612430627956159544197568543011901226562464996675569662618435524449423315713198150181868146229800502077976641764603708824388208945927909819138665089009086451422679864888302888968306313089518325103476278484782543229097941513195760625468687833022606867331507022382029670887994051643526531735326112693799702888678556191851269564587223481318316948279435320861770814658246908887011998026306829488281462961937962094447789011037377762839370884814420860099486320921312735986639664194911295985176329926415355764840734163102846311940634349009613738926781597837831783595445066797544052151049093688310184941108457045841022813175066582904361998506170629414245818336606540256776943624116438315825442119783222839875033564085733276144711433689642194332457786658381523433749809197589678427531728975792133630650372578459863488801816991193292846280630146046566055203943528029946771504906289603507784534685742580933717434711292645228618825866389942883637985289282844708900113844248446853969636983789328094376455015021891994382822013335595856933404383569247413742860908442728062614545412532359425921758286353658373698977972505706236623976288171854919084409089118947003536881800691154343039794152586290039971936808030201044750393336225470628856524338283173110173951871074762308098141691346495381376220274302396464699756540329190046934594124734940270322456527381450580862871084092430042132684842777391467855166585885867206073108705345228230542979237160899282448713597005723475810748028085613129237901963639182920086194845828884657249570720995290405597533788916458985281419399145577165221761115504431701949258060821074898219666646184725451827853241006689728179186228879839726036724985886399435912269046231060816088926397685718718347471313364998813480145042653966266956125776881828127132691395660694271685804857259999261057398035511741218097875230215548618837230530279983108985942370125367301855094619870644771199098616901523765414808284916287950901471403594658838973454920448966308110674079310976978594843211679336788580013430193471574849658270139543060959751178486667941501512899097992530644529884523448645433160126562704203957937239763496977550845746134186723942018742726765957887256368260238256440709205514176001790504608198732618510046732001555690564550482757851308126509156138972046862948021458952453234734177939278808670873546254746219857018084887575970903186085612249363855569073434144942875784746956222452826134535515136275925426275832266875937385290584211653691451639420364406294840063941806331837964631566038165281209420361282859675730298773797972589023828802779060788094024617029701722346080252114695727588919962137630439587483683737557443397117389696851830762692832448034331289131135820250747986669928827201047623492889366675185532601840906188832971775205644581270967157521997166505706666392442006671831810561333941812575669049646975982486292776087956831626247377848729704205538259727211296840318822826267126499079218117060870942722696403844018285912570091728819515736418233832713883232722535546864601294859188174539439733708576783876531632288850959251358060893796406302662350580339752697907087329339804967006332257147548556758725652521077822391947006374512466370733716548353182693566930690989716377464528234269654049413632288200370893507898114435176196462713266049495089863707102195223014829615730863799544769369375733321017737594491354395821581406958815989704009843199375969464676162294047837608745400662609421577139586239730047409014944296258984808524581571091954215847338951956017820226341598414298616662785808668126773402758135323057824987968830847846464623476813100544070662595163777276637464358502553556409675310664027518874594708092949684219448972475798903026683228230077033038049754941488538772264471751503515196172149117815426543322573627225080476779338116529173609735391291565215284825827908018684532817446841458653450882414298867506122376679980577382086435494200110351035372744248434347855626405704997728079930137109735282026126462464051126945692858205498191814676304794451168659160902282894489565016372967091944099118733534129124945095671507777343983115746190743635385150174378337142941391792120620051360537210471574774277558563585154785449154379176760406665898486399197649817789701522538842051715570064783387251985982596057179814583919957048785202453393580409129748233972579729478428334393147119820853860009902441353510469750662565725176044305939672219488399000470813676245252108360884986496899925550362850943467350641439836696099527041878581390152274922927723884988879997599106412430486795619194504835718524584570763089244773833644170708977369413850472215081831742628601397410541175554576321210671370591543418947609123984156192155944911092273553180842713934477924298460767107379162419662666589874285916713983400892527442225645268253760133250029949781445664422597013137089284749974830341767167443155603593944584304340891949337984563242314991389432297573680422930957497679973459069401595662721294901786485025018473719962416318535422492526874875496813657617708881853617590056450328941773412572362008861566151160641412252507663752477052335470367741894482606811453680389921014576730667301958528643066476811423077092922001091908263992250391473242657145564613712979390930063861091576452960856981839460653206378094713997816809997734737571837003110287826126382379383189612623252636919455119787057970184604423759217530295809391601567714309102492110975809243376771719081960365101952177308230141665622540678524369829729975369973969041197140285428009258073859916305365926574560594048967102641262478435293139855786349780272769306174964450012336786822107535694652724668708678457372244990108967440957958381000155677246925401869810087406132763644901288463177318376777792415214388493865145635967429331691346766025751914997236215277547585153964218688392287673667240430038518950570236555803611816829828281696750145603603621695569061578768959786270757637405520754502134586870829834563046402428296663542642187496942590274901749501405419368372990223443528869045424323807309247955468968021063433414339483681669346034971089540499580509354698218179331025440167505772519938300029453472284359165908867663461929121250308561028078913573814611079813210642286899888796789181061292176545903829579335467960122798555352172025360843195298283328904626366777674791592577321713887741815703015959645154409728474346587203919669965961063272465930178250594666919139091904902034642622566084450778238207099483030022106644896811546739943733220220438838995510910389607515428392362651376318188484896595581423050811435761006169895328578815117832335023937570465546505372063871046600456213522038304613379208763700879528706717439458610714073942390355169104778015361664956017958914038120696036281185615910713079933684733457230391337772651256319322953177741094927365459962313656943585102133097059528714475658457615083702481916102068105923018516818729139599362913776450351017678958406746261295519774268389811373759439472183697327316365033046765353153873905606646723307964722311757738618096002797171170660458187121333051514347040551808604611176822753195674242277146178471601844330459585606181459984921840197094277012610265431376038353602358523614970459935331890168478687709456833101792105173408233159521892071300587047668571200924456909333419933465346788122491679390830966492361767542048198463934579259589743499050645523766052007378845455008627592353883750577127089974524024639602824764368792311244248846033694567643997689792757006763554319228293053997840059617230136313417603431256754327360095964386833409492249128009923144557638363554261414971925242195987966975957078400487602775879261801066987593565237679367984673744146806361969419981230191790699582435480820587250864209554392044205150262476767717931128910991541373324111446880536614149624948461227684131301622082315600252257001313469383788442322772731651095798062723379619096303494934514882295513681010787758987030270696104595623287361868801934743686481843657617271053418205066584854816972306332978550770104525930539259438309707989499057760025069392067391657842258892531233415150387989976706980336791279845864045254967205458727413579595922206047821280699905766171226337584814072003031932335650086186041847745889109580066208642869574465451112178346410998367510701463679459588745776479498836342494354306710684210422896965115745861068498016072288316094231690204023702233397547176924741276868026123344235030048107382658232086757729811206895316554915708777617666194478642094995055325886056170362611826563025016625766077497822417082519087802977037715348901762408306802844522313196889467019487433012051431310437615864341272232308031499638757048895289475606172903739803252798383229933867805220617589844574856829450243052644953805721227983801659784254798885964975108691241479908246411393134267551935356670437402273910856103969710084752666380815340950016631372980738505548577753867370448836818252149749673105805267160754797856171301686778438541400042698278555499005170760610669493754851537974457126380706632942627348195706476972740775166679581479268164836413746560317510092796957932094773294360417816003394077468779498665285051736924975288779814971660566008925196472334919038768637537946770071672670300215923014234253702473508856375005058039668600995349899238950534391267028033088398503861917627967362268363553090912275736825102368513658940495666513697951008575474632122179627397884633213238258338170847826106324021988289580612655236013554231570282434674884091996595855835172366864349965696149824139958733032548721116444916954617514445215408260433043593188756411595167816250007374829855863172788323528233821711331820044430450135787841782611950162239323610294559800526522614253755976525058747659355873447162126478557063609938417338140301265682747745976541842868355635100629590181504188277471885736967884569496092687552445516518006160158960190910548265867923882922104340449663130949960723928434302192771629140726925119460408523858585047315685880700817461150220697429909680292149226202116046649165041421360802320000852517274473139956919120927786346680832797275203917470246250512049041321456755260838128357167091030359773317342639982210737978387206002765110509915878152992799921079922756052566066066179971165165461030377717003921142258723473521749197772733548766177767074353815217833883307295503660784946418319320639518439107576324899014919288964176236664401625655431775906241645767712983967851949520838286618131218919429799310045867297786577916373954151874757800918420082678025501298404501606347460700695439242392333843819007192872278242854224017265224508004974907070505308082011285443682806745074457285747322963770197997669726938135508575336604546118989144076975078167186864965899059930282702930838874332012467759021391215043213316559992895286323771957917993248831374204179575912190977707471605852250897296860726384725074860397482333614673694224944236141077472443110030644998088994218817816634873456912761341096496067759531255863162744049918232009735606579871997937057501305696823734861639344198150661590753955607444827497730239016209935974063119937944229898636437681968553751463196525429110238825230189446719296285490437636945678078405024918304605169009804602776916531219296810121430308696650682949597332343188229547523345813204691125976976008284684302417475104350004120772398162413404872758040523836678344622264675931027355401127256398907344030928536602183504027387185112856535730022258536125524418916281663780208795983863041290045817800589506376359980156269287084070743329157657352922826502053615241400361339656206246271435592745428160006869170694700119773810240713429152954433072106576435337366536335060078119812927776145193338433421724268541322089224753153778536419805450700516067315539662186944127125732733622927648374150736336325789885036879850119605911335564237103709642869368557686906358927483050985497459041598270676414288865579198761167826510020771917804013959842949738040755337370475958831087876716558746443593248001314687106943359384719397162030805184568881745640845950622325166484686324148343545437339037990713275948860060542424233350230259149911193974757016073382340258671839335533982150082249232221747534633539456923826252380641044140477050045859792878059978259963167719161048909699557920642105733750371848572304617139404322181326962028194540671822037746317400920954801656271703521558302783504782363335855689846347923884718126408661049886709551531770422040857469013949221681883077471804752294356036273207271195781520779973339693685284432314954075486931940653336087614499627043712233712529134978218814931272722689447243657492056937595164086311993504870164412889720463828103421187825785104248803200131847222152590297586193593306215996039702609533188923936256693062947800117588098457248306861839629233684237030567756787288763513403778643359718940652520579025858390181664463429216603636829053533180449373720270280760704260474824084127976832828221178687533730456890046293922279088715518010457896617951028629757887164870849701773881132570613314445228791538866724107687579922191324967409926924451672788768101874322111799194031145753900453750648234110289250993429555415557347804433215700554758159272500974191244060774970008925981888792468964629660330470747451480680956018951699372455232923090653788938459689255840246145765777832359704293267820010416850230563842007437242783578122507423494867917892769879760043100610285556972916206953432360199697486929188182941146357182939560219543081512935915259888109761715329251037658059619568945245548763702150171819352034921826552964147606648111265646943194187621076498730062702183189794860377749390991912896641206059610521245891290051266868380316638531709680606668516914447724719567824875724944722351699820619522720415994998214835900562101623140918771443013714688599895269043363048620014683226240747031695436634939258598073202415758250204747573571127209508104138702308083878421886136901583311675995485329330552117762646898943786509473966197878729133448681421773871677507440293235312234207136142900025003615851785580787852469261652244135011137205050536133174536136773250453237924163156686654497935807986331483582467055754661247674642777999057292408556589736030213967698812726804450078542434008364259587208970963013543208032614742292011221782720830034538499425597861886605035290372125266429099380099115107187893616462133451695471429712718936419532142172830330953351389356959664442854772492247815485074799736978620747628879715286625796543911489827267890379327758619476221598325758013934573923385385410055904683445497068837875023044943824669572548568710713350598752968697361808958202965266551694608342997899726900951953841503104360882942841398017497875232913661485427587629526677961684148785225659787144135821795661389583089197443823723640934572593756367987004543826613272858068821483045250897432664123280522567116020857117814299440319064362034445956140203809936978979852077255250583168040541314628459736948736256233662589195066507294723181041943956559697385314491325009705609412905948937304863903354404850377738201505577948364506429310883533493094375620992377550705381942607023403589184896758229669062456067277394375355655547599129767226157746256285466725495865228273922293628051222486939693022999498128996555860201753491835447621725667362916653729910238862679871083438458339208130754165177990025960374902814628104054838454577103392180416957206319328590702650072283097568243074089400270246564183871417125995046098690306591807927415870404872147014124950747169238669056181794976755934321613731596765942421741317161042574311866317302401625265806592950300084647655443866811212690111614354047330810761553395487065932863879959168160331623087819295521103353927280802284878465353986112149608548640327831722194682152188613018570379206502141361020075117382976369885448087803423451514662584786375264488421357982628713284360459341778023764483806471777123874250763773535181052943742168963911434414214763698714402343776224052372427746136086884845637016706272970559760810267760659047828528884439057634588241665317939175003190312907729913658089142759190387760209322834567911766782980170858998471948431126883211490293592885004506564897153449058600267137284291049644957030202741991115204633208030531541216895536868141447151082147954193375299179920492031211112681270684917144739735068988610341297318903410523304841856005740957613761766664747673104387008994167382207934278972060295933087332978922560467307301675708865841592802295226493385061632192717640656253335426986734929664763903730435210215725280208695987930010442599955119564943447792217842273469001855825559497555968794515944196235046261282900593791891835642160281786385690304188004305018914002564498280874192961743055450587124168439327646093952527489495554565981195591006299504363168958911675920624420247105759860047015303453699094778169495476608862159790275859403702615404722896432257591145349632165279192610177516598125633337831539619595881365428167538307009564539215313631033500641912194028983435184970413716901789639742211303033958716103858646839165140808297043311065333931268970483928003634425984435305244138402790482023390529996154258469691021961065036589303671563534435887413627016696124682543004785837268526197104894537194122044131386011531897602514551944724886136741764819032668547545285692990188186847189099799761458861219852543845280717942253247196224642404842486380898296192866485386465705154126457724761625591430294184666878592125854587532430694332991935127995288420884961598064996819524456159051947932734164303804848521049359810013661421456649988239577631591723125634042735118916365158986905214645967944491974375196737106625720262778089724514908058463750602920686151794545449350251846697930924459214238495712466069347477138940715464485192937870133365487486165690476960107117298780146157062470910706377124148914636175291322390264755868542292869417720397994675401281995920849766476222825672555541563281248992596000660618903260485002561430063460998677025277767901907270566491731016160165569863989358388906585703627704700134356217404958568723479961579365693330858194052723972602015079755551639566585690544164224777694443510852323390197847536035437456723355520403238391167916841084029298827609432942097577084792437462093295449769712268707144132915379999989711725608221781143199793568912744823653127453381520937070190626895003074611429762234611096903219961577193284688076332441681236467379599003637560925538253262625983942810240012530180485835989539309983621312702282460762573214006227913021312083827734123827548491500749253906213310980710988332316479030690111097658166000415384412177536308747594171818141982415571956264085389976375281974218163955737341031555107098210200068866057735198209996379072131045211926304965770034980196987483834078834338873140923149748860839307794910024133061029639960618010419591009432982778755123667508163554312859788610586667864521728253438946677788698529983215853149018919905338266945930015872977879474429037045644588932319543081796302520151676124915249916443574818881442249198259632050936656143509815615481129915324792549298832386765619973229293366661645250734785016449990654972966127007678080095634825891021137696253421432601508415939401892655917390108394855325133049525969899540671995899362025711859722659763986324646512743173361277197845304716607864917694165369703528676869210365325910749571851006328017215537990660767385955373954765795081606224374067254535199893425526433888747084170835968409128957087821794198877237368244977839737378407390732107558617158674375002703638854844644662880898496093146138027700850555220665849994335254842550555185815595322330940894596956606904402001088849694140520368187197109466968859073100239041864891074417915893265958148144792308638172761372322634720495764258008854487823742185383321680055752559049439942461582354765044913115393998943531953040140591734305247463531844245814884030356988519193848250987240766835523677330435645298637791273916003397192772441177650289434780711742504539318656212205731296035998865560343903536761112392289150728073670582789362964982668389144549728362920579177777025861376371907197612100961798460583563300175412405675214941932577585227878682868565272562087780297389855663507149632645410415878444873111729016375514148599559002789765861421955557635490453455997139611251559710619559830068237993029946063521691628534667882797549977259354501176724413893340744674856930602854297844237634123160943396852662606117401239490705323770448067795692469553375011819245979427998650197612686347572786460324924090844738591724840633558160570843751474188579365712490681886350388552799781372679310650996565076711911284579357450619774021434824408226303836977859041016573605089972963421325327096722562008149090068589335193695591966557455378374940369868796842916436540077324838970251818315991887865881988583358260005048317586267701574053138890844208655399571044051254733602723791293410785825049575980167153001292555126639965604796719687097969719708543958097534822602403900946568727586379372368295838126262097132755893153241602861767859142173454323591756037556686553279226505254297215112778942931059672037700812912223914740367487056690995981174047544900600699206460384313824667986297092223189674118672706140532709303858264730774881407762583010390712597976063933202440045026071130377525585887124942176505511073922204735266501037077090871780038752851445168534068596009373440212809272169208221609923601676115580834485895946383390539839170750261485230386294843922021791686591595733236734675272037132683915440646752843320918865397349249071646173604420545367481234738432650881763274019474559785879326005843525920227122037769153719999961382612592857929007527316673082693177575545318031073864023260140911302899833909633096655852396800734361295785234862941655842526786749792985039672768168730042223679852717906477472333472332037613937565403419693906337956322961254596369538535579115110128153704191081658274370382013220062841159458394290133429994018767512785647589216991100353847150495895968647614337751676151556200176834790717613000184063092873989720138223951527471494744839624048885251191116449512667087572383926437729295793059766322439170326209233087521432813437439899326550036548858139861311647339846979675429656977193751137572430182244003812494108012969676937259100235759043419265814305228658838866439840023750502612451120948140357974525073742683477315264437905282063094405497555321032123302979523124116326087699451342264758110916589657649672796613557033393225066730226648585888660792539890279489484540312476363498591080039256902225806161654220941647207113941662743762065803722770098707966652025946464611221020796111895067378575100844654382561358065180702950997219157949043783591355401364485567435961921679575077115030504955654795096807794319193065817016174222361890665539709226488005602077429872162519024774303144240143168395844450907001667073322977776748856902350615943697494553733260100465191979025141919762961299748097831490390821828617991386865914196753604953023911926040466655530232236957564088962737852640747927080969885660305244842968374208935063657571520849611296251607186425933260352278007139904345531951037629493524153109319750812194730549878746160977183609479115059705074007405337862966920164346868357755776540290338373076302566445902244447660872607663201031413355200068409376576033439220413176226790938862744020639672665722497619738770325425547043656492445607407381701374333544769977141739893946420893618835593244516637471940218835454706620423651583739065661230850109553886061048766656526091357527604967473254644814267795594773218641081170168246770065655965256463863127602830991333822931635793810451046326823848996427538617510146571862445602443149508553931176716746134938455446832368113941875006739936842895787647770394870502486993435616743043330787166023956126095230002284497902586112995644478902434004923059113385813542789233411256710570093359322931974418254041604191426552867426286173651700913781291844077938461772869885086173505911675292937607668150331055278173865307912289215678292513015351407403499789956956675407615397874088659271559746126964357920767324724889798742485704624238644596429197901190136065642033302743226510679991878253513576366091719488130186030130273855487499134319057644698037871378705779116951118881935577740612093483695766591107278883353355175658237615076273385373376758368676132307694667550552204687242491769598074991576459815844810258957258674458600067534299542164376497178913181699940770683636474981463556003194895267680608856746437124016547727682184412367892307565215339635640142987536183375768249069120641664817848573229936977789162915684652301121647298842985059677601565307842409550935539914641916610579063918535549486800530895399458245020147118672875700237952501316203720962154649274370801544023513174892646405226253535318709261866024481394714927824452613546011352799366977707670767763641290425841733904347064720416335051385638720180679913113529967443429057703545930749791574886307739611406625726583603864309915886140036247215072768264375587450096333860457131950598829726943549737758899127695717356934610287166415620383755461266222241667085355528763047610079320492827724524961086559341002633097507609317074886654617977090917618448671775504655221557374932049410815047001990121557021689035248404448664523825875897414658961880847025675385589333001304104306628143734134177125025633014279791055133478613529374329495204153766448066125485648211715411176565428265318544592826314498674314582506924002419843535937611459430884232519717203045697541008184561567640975126156011977221216568094802025700972823307533296497747258127451600895266811275250030318109200436752450333386949453986463248895585648980495256109614189221226257373431216196021063241261836519639871809702235533090195385489570256544565867737135724978846955269945385812798419512987769923918135212058893315658584737561438509073046683653410189651633062885855586575784605675196564719822050452510185409093070908904609236635978016356511252443218260796530482619673958645447796835703882269584556842179172366358132965189175950829725141772812182325789528006482758436483155251695043830643240529434614476091037525702821925975996438717423541775911638364571686986905489398072424738804604358308477323708510878455073542384038431369646132723516749810364019718659973900094713017775051251921836465407311853615469214338995580819584399201267726529294725315102488100279366725559413434981922856099907175438490987422012160924837272169161613377888976638120060882708024962124302724808852549603685303117397175799251712055830703059783213179479128836765450649408418108501739052128082298577804086667173232804513356716790116926460743239591663549011472003891611159448655207158163846403943083047489334427810861444749720893268072536742314694342110383156761078195145846056683189238304728865212123667839310591420957747694119380220750227669059037644524137038936061290640443987813155694072021916705291352912452686078741456895960452205010980847380838911089046764121312249220465990860524768225489597353129543236927674994783132168278478533483696129457023699384405959705886789604128436073307162132933137692944700397887671017087220894310692971613891120547114058010328552750671476975215086564841581909841137053575532570558865038420050870295938440955855656434781702430417192422884490453274570077379642270051852935157495483064621536412706052912315647933573418756737424146560200096543943014071362388173105494469782559942906438438192857773217478189309020583349577886616079431891677216393658176878943389330359346133597937305487925989542990084627083086462302704709326807823964789475355010002732386391301156388998589863076116575358970246223752148646847083217776732037353081384020020291902818220223137636803702451249161170767757074050191632905384816433841367310228647485441898223162191369445822705168866942196800075572438843234296450910391680116209992451814209278904246239775991414686958484749124954838375734417430976405738635872103867619569808730252799492838011982103727305913468068467005396393838461232462236121567479270342713681880571620634846591922665736509485058558194653112162761771918636118528881122744690440720365339598932981756116694799788867764890376590960205084011594299247680456969240265340048707069743849673886975593191932390244094911537023222412736409957033767921629748499356110299690435363704735927497579494664937352731103485197423666777639224395081419220883921600390788864473311077506879934376249504637103496535045267462629734671109870758917009938605754429595224274716204468193223316574769525482459507905082179021222657957461895208887760135124896396086354457308081695548310875514866791186113102888151078253451085011253796732054636210822353537198849747667319832109654705548872793611920847924577984246511367154781141135377793118331098611155817631997794146613513666069258473980874343745263860908823673389340104791365378829485403813744620419529843325715045373159559720002504442135236412900909342555580373309949828282475694411880838688328329234305786684363812408434904715374731981920467918481737290506123448764952702294882138031001265678269225858720333478939611308311014378294857565431006392238816945386236085051859292059330729921517081738706306097162437547314013307138196065871072397383434655685938060619545430917937404978143722437409107727099302654945719576566777182299076555274035783537531222218350833674126250877994915890880483930733314619632401839303652155763061712044294822844053980464042357998312866927582506453242306138603252684308791417573406203604756161836270229211995422174212075176505475215700453907052929403235738001296321499390724866034948960543557619301663235163325353186394515137011766589387152734152249570046358426357784296364379917909327114338368796238136282448411812922327200759140730152623556089215166930111858790579403323653325083472907250232216802511596129882770934828506497590738321466460926141962081897372102864101519774244250780769189207088732479518184832677183196932435480582438825405783578859559392165763928029941682171910976118864879780217435093455767495679719159411005783220031760773275670746365796454158120489343916431739477450282534486186967235821352060871851779953870351496407179577851130972359391088947341209959167562118469675555037044175910023969138089382338032090930534157531665167989490888971877522060769084446333353151795253929767275159797166230945959671259787549854782368237104387650143114165539733063753246649340831349143434344459141799057747039776860866396715693434994490747651360361926760728959583416393467853061821337875631884606401795317189038355029592610376823120008609815296453203761615604524030479991586812510254377543512726129253382420908856324716136749747898671503008708800230336413510292727878585956933412732530590784613125103676693083579180379420566255753654929299546272430739540958241331119547918194782175820999293227519931249782690136285415827813172337005735559787534950408732106821122440562402289889775352486793277842340441891384734945866930892377948671821022013211648158775095753247921664198989259012713048170476503080261249662407897148006787533551601149496084169167095635515769271478695969200769401213901167730303365702078570841880560175290027838773030595279632562493096851997901344472030364286263076166350795268456227621565411937413339615303811617613625802828059890424466372637538654855693366720574584775769393723961454650632196279927820524885187559132067403076570357940185246005365480247934776799770913663129219341349767241887405563904097806168625226380437231181121197203016963253427442761492975894411164645984549176345306990568575183080621868597355133334569968051624142877509639091732837518106269397030035569428518311675567513133073358452214029839486261642231713793107288000538521906735789673618868817255290474586044721652554153801282845606589409082680507288561714018513554707049845766310551308080304764542024550326200251962594988879628703704688613693458947613150337803215736080892547497990515720284859994084511746921278276525029242280664056087231168357938958363110906184638444109620290951730063227697675292464906141511211194671267536045750294512099619733446472442164715566906700962110928566925219998669772298017265757037588369892681505394674005443390577615379415261566225739484852315538985419840672464812232916286118256949256655453356573265725305466402952562646162322315645652457156170926323995613171845389515523895209880308914885655249536030506966052388334824880846722791808849190396265530532580024328799622547293600852157989166423961653836623605272906209184143689684079343105285010226670770203614972530111569596645255078512747899383155636068396207152255441638793558578901307839016549905988894404873499636706035937473927964456900643263732105667445641331267441981400770642692082544324057898536876637978477374183773275325534355881152358210977377864863907752702225610384403762415416038306253408593252297507484732581460785782031109106635962653963070550323879097257231503851788839428328306545564880839464858788869263253679290781381202744203075177392878649200685925477795894145544511450285156072392484024958505763058373463368498878389511742156758879424212895663539752703363381620560275840000880957524731620613363119707891183067393849208919178237520129139964418610730827980909727994691534743165527026534818440266700401229240245116071317303910880624954757602318582725254987183879588717723490330292622544683953900939332837335079081972676758526978999533022295138215426247694742194778899275067884933616195170077157843291918583941179506517014429411635220709454076921512224859751385630474622768740695408086195198035927756941086199044318866704050711018756561762550205446913307205432222832954197566067735376298325348439763452380465377474133224305432894348735006514177187684061736616068784789176292056813943779811077621524777416783606856624230728679690210889584276651116981625855599406967521297032789421827915967360562480546079824354361027083329348654585314082736553460644018925010517182868463400271142177257149915409528581716735299603167415813711377151138531727484623664247435672329873620794906551122909892956808608686289970501509401215840541774909823889345536265118306965616195562463424338085649924923638464911367113017299780146768291358778389005169944684694787715034642823331532327519386891763977644092679703758373579701798448155460801821969681495725292757499642321089847417080919793135468676012161002739219019598622169514501199347148669527666305527650540595584210641976949130151724928211203940075189047956898840290954243322219501663497104478130039622704313228241210998300922697005423321778356117829612953188461873280070707135776828031419790953522997668026573016761234353700631168273789949942178209825475622524847412631335601143097821120641446825068239744956896671935166910724734281911700641931925884898944494113189300354975447827924323598875235510982498414243894001076016930431150350143451771089531071155471825427454860039388115378144107230989496303639444116982141467419360999678466222596929436799147029840463303228069094654215950579679075840808416638998154247068151514782251088789019527310223928476948103127225255743373500902004536515793917363683004804523196026738644490395331480385024054762609118963929819710033664591664784765589910443054101960262549503707527155607083389449695696646447992908264200211754415997676496657540601364029837247283313481841716957179159990948210743265752686237213337264095372360769553986673433279740767065156050006084514710425261781341774361478240933020230397954125275917530841592268610108201707623134067998846134153088201443842381344614753620371354941898901856014096103345091108976222728354298429725760700536932312451208115763738942459926563694615802015704113753721271330265363609182120937857720268137582324203946061290857274318965410059184315096352267950962745388616223066606075705219593239680449770836076677383513914542787751758170116098809165644553382653464877858653422059955969608822434275305258403874693482869038136845911535777277324387192467812191291203222098844937109600001762848927018773108677986883187311954928057259846088508633872914641954343916072386955206206106481512772688939940483128823821563697822630517767594046916233320107392960534051348501924088631713733896239798149223666716244310264046611983159926513613912269174206295043961660922347907567422802554666713781972425780047004420038106414458020602540567534294859377619753270891682424271587095436750506126434603796093309116141434610284448380084231752085387677096571952573331937452541117415506696573850992769283042758953557466256842352284136304052727874589632278888912010048433077085302106110186986251383038602035895028087256973127321872584380440522364471803325672002740922235492884326910096309300955222183398980394280282828029921768870705947695493941997562907039279936279064459256608952098055252986846008594190438197704394314761003904132068148256014235346385902238881774314619074779735820298058964140080025356946166567016117610278251102121346138178598260491620102460273766598069365844575679373101505308401647760728414104331742396993373845148096005561928114785161154977361935572625033756860550788481345940607150255401069310854030373880813415487465234417308974905938239988974980176089144565435271551190726865255041046967768195887040463094437199687127149568542547986430781816537081247165062600119006055533141942566832155111671457476115136971395262647067895129718497554668854700513983353400291656322452471705030852688094955731986674139614697086781090704627013105282518950133355372197787859563562007902638511387778723824394473952116755704456995509597485139826356361897644385968496207976605339627663127647336508606073707143437057345832138504903811996526776069967916348217977316054490196168853083262406758720463777169852568443358729367582137186766123660065981849086083982203682537057345206202075362349807253779981955361519052275413860009016235183302147234042304407238751975981389566898821843329443385563280174915707101256209938381264338657009921880681331612157609368736926128839596041127561201054229079819288907261536074813041039897411850010990959729981398063701232065813960475224233164987447656618474793939728656410062052168474564771163103690345611508829343664556277543720251362012543356544885815796927298755324532695555532568750174594808811053658056538033683243893346741902010429711364108973875041348429346054510102654625736520063810057391643561002288813730918095659845392599139697575493927280471906949358440861589385141438625510104350079754543997085089623700876521871346738736025098010202348444186491441968323343625008309128815094144213669746208713768553891779766315345581271107478446080155578034493668835489943271459772203336953707777919721123294040073395040655677155363155057398316148984418963647138808599300565857934905505457092588747393013151086224166866725335341140852179303965493338828693271787952579618434169939233887992442525866037701798491377157746937710666955120683043039457738661780633968184354556682247127396418157540030536045307573885882049011523265188145367339391703814804620149654357881955300385000929615107297641275157521432349803729362707102801171278275190964911691579684884785638514725353228836903521932346340928237384908184862258715573479082705455828185769097122204007928563377967966151355601535181852942577390669309830692180818343094969715903995402084484229506806537270010302857683921033033389796798702950588408150218727859119335575073681180969870777556793411058658511064234159523346250030404183370637132989518569096929599770141328672817784975973574865508056970681085382835970574396072437835826314298075459195628960747161390681407317451665731795192333612760811075753901152642937743207409445886504701087418589615077183732820927161612272101649276678731555049135319471236970908367776033170351240537313465947949654301592957287781856794011062747643929345446390525172841476621966932138518438975256178851474634673429496571896641305087502141774501976360840809304380168177835643216747823812821435499804421474870158713972306313429964761371775765995910696853738515348584936738950229496046683585948882130846227995427479659367143448953574692804828050128974624766005752633941003409832509647285979965649081869478478771471665162229871338954894480195964428730454726236135496490501612494700744385878511392170894544619659947553060333006059955846239401266336136178468772282789767824528896965710421927449112011236601777180212500360360363286306924827788776178329381285261357415897186924538275446883928630284025655668719352716532520722004574900908034149420528639751222680818678157438953114657964676292750651233769172732314828041704535629275351762142890419007536546073719842040111985341768947280989133112658606516095931528517655965709496273957776517351393439600556993570365641579112473837828770364967258092652689281355547884146824558596692025945584477543698680212145102269261348575449240679105991821937777379351683731237773477155372132283411197656716309255766442360827488217254252658450583233239152612595501855922385039221003224782962064132943406137741491813757729016777152219709216073920886660408382063170253918398016547159849555548019554980099288249080351616770857931542330306242168485277114740699611394660372588483381412841884334852721236254234585275729705713019200036951826539118653078898784324681878480110080364349033093302991702014167851181161444594599964452658012231424036773173380749422539195333407471020924729283852140845676465866269410697223839298033722719944398248289139345811743841054017626085300178482695984436569958812828432754718067804952324400212443068542501467334456490748036511913949465786611389244169274838006961899989421849285183398712728496662808832565745934023198765084040544503347628178524173797446762102980261351833764874749973679499681097545595056927285325742360619550600617394508757439025767081315456775287264549408219187511734115358849199288778087370004374545331786271091802643695519998535928644901939601834012565862342397452768179840813064535589011630721622354727337128538551069839007423370439344951217649417165901737008839604667678137997495077418884694877940890383417114107390539280402396185325625837127979051490040235010196101022246883731062209182738304113730155907764884158781455924273914128726721285411136097268526970221056638644836024935387837846248007303252391926393754564839774612135587328503768738746238882374636103223105352269889194884779587582617769144231958247320856615859968365287286114685651148343110555059265943738067975452731858374564599053559890865741092571162486391472381171541113440883196067411105232597183203274494679703847703995628093232240210130427535829240112157156450511821856077497526628110188257959992546378163365323536698435609676548434890482123963310920886696235740131799058738745298407076513174805358143998831976404552274204362574065981070321455898675171681938356358992498271267222909295179325826424491482410625995989079738409446087145420391842616980867752366749967448970765462160597541354494093537405242211911527071133820797689941269623980762647875781179063549906702197289815476822577895690586728276815355291074268772892267276149497533373706454324880127918199764890572374465958728399543310055696484837419099394739050847102234127271659878697834611487088943782710981068142032490035714320255150050383866266499294363387543476248770875302143114899861930423302680473738757321708171821522245578022988690990670561767748091674290399822960115610912876091518050229236381884850302682855843471440935110355045773183617438972334247816951113528678484796247524780468750073893707699066627394266455899539214270100269258932630620870649937470885544875564273649905303592518178379810796834965455323942091233504422093703138262388578042945158020282683575475602511474514976610035470806964263265635664208350752375607148932236535455500554157267743513854904047707393638515952776112821788247636065658898218085103868509593811670487211287864203489631402867344726094132500153314086976669402815162482721606964264294294933114535705982513603818451305517894700913888252282911734432976120852704553669906618142916187409884448331737776452298271507745528766247793079597992097929701669893067636911849386961510875907845206363431222334604990423343922230548724004112081518278295322860651332131174085611287559071740654030896003591566149275736108877521167704053033376289284077341712679773462468299802417290484631240382009608043019210139039106188638934454246010359474382082868471956475477306667972872947185027089165284552237975461140085869195740971348310340617541532305932923521954932453778775944417323646574149964259833001497859767382439181767255979037786014943497707566535853090158070011435892582103713791247392611526444186187869339854178198652632480899809517138276218651276499182058380303153271605230575880801891890948504995817779238657086372451269458484469176715043808889202994026146067281596549386937820686846260496726592654522566451475994180311032530072268052753493473578939436543717053490748656504741533128313241349945220437680166567619909883093625328310788254911218886209908551067934117537246238435455075597269206701694968278685770159377394612996400383227170924622189484113888079464984575612611664695402719660164542445564993445384472960037792647231471072882980236385370968935608729181317728709996871847602992670807011115008887521820267481313726221609360170879122933269002876032944469412906795937355975888397837609165407543463303798069231887617654051944968891462618407152327715966617695556279771782737174235052742294665256877330519266803202902485572083682111322855428808831912022825421029763213405955868375514308979344465393168700055956713131932708432743136061525545388461292328080609354309083170814657747672305087546980590999083995489694331312615351071852276882415800007183900935354385082098128191413853441638572032314148758306058264546470727533349786958317089155865222079913787247029500980207404334168104879007071682737487373064736560097231300507351077092783027195001995556527040379577582943569746763825543777847441490246392484001807495649387118325694322413643634887646612523474006729676474222479494954110766919866575086386952092247229905249679855439850465344423457065882578592350563581564806728472012370703369152083077193494798582500853804930304569782718267851105771905629398227328301148702456020604476586439258910980749994928478506712463904086240736371879851359104334635827671263821971443391323278299287035007026005346383700987114486208469221535756741559287878507526946768123296464356483083814014636696971952654002912455485945385350327148909926365997864943731123241862997029109604041375579592998826268595650268066351543784189624318213630223962378334350013914744336641243353534490814633079074013609302645703524307731531328797953284962102169393159168333453467166174703065047664227451953338139573471359372542801527769280716403649228988817882032282414558914214184639155349811277034561901004036834666856453726732431846712612260087490033465236229234456268395341929374881640688493985445377889561274623153445315411940441338709344613502272589799873873125723970792102623080967137720921796960969107069751769594882466675463915595508972915367671510132067924313790686337879097134916010894850663424581529926682225717447275282223790445270054470161708380246454509940175754377970315276688102011255110330255406977102953689510797171122699456200268253837243505671828380953184331574651725571214272812163022458901233718582488304724683728197139719081666172784242794231374552945346715619537444931948466386084706239775651401599883192228468177278190176256031061553662635512102628054578012651841911042931150520743076074627854074864765795934863111967034931741818222758165199868488960858666071483978717132211404720878299340886469920199211585987866741763142178874686548128567032710369762832629884480870309655901779485626245092773361684607722136802032796059722763208674715667326935650620040947654490445888012755416982682849924115390949594432794255869012536660180403965080317092108415392156941312592365457260002925535545207515656158040400901648528838951874128385529512109282188391004410086443864614420102725866287108451543905286826797296358538144597311561257302837830191879524165006468877373127557455537440653388863760529221424965216876093844619590191929620801398458739594781461904003247971920598949790059946128340114547459314524479455213722684398640702763828746683345150535836576089368198445952135161565633335382512016377795270469305155064258388573948979197817273058248565842510684339217754386545696771874391167020427060160992155610878378343113845560830694453986684680086769639175692994150309382784642264937759286215904662247133275765168347939451826979269560204945186569840853368780352491858455020721632300744635928755658144381966239621816383449904541942338710727433544069370272147218668486648825520788870231047837208498422679404932072656719298756586967043801840465802310278011149556739778004109526231567381084855363952930582352782284817924094912659166755545249521106122781388609532152783257664856121453092231611595822380556593568733590193899450298873007188131262010204114922563659969891980900415767334716674345203243996397529415615986486634654324732858902371170298188952027582213128555122841672418395146060219282100560904378887206887347207070338857029160180178449874016773013095038941591926550167347036031694346594187508307158950423862404281999945443244027323858909360257820111765148364758898491608898161985629702816981739169161358174569196427404142183055099315437436115604170319704485398804575604515359095162971376927711353501761793328382400473150491574292817919122183216403679766440104719266355590445795466433951661150763820707973823450964944858707133288260174394583732261892741046895287390420981575515587529084107487073408790407317349026230352906617128544373651712167164797808305698493444894796603889325261444182299828878340649169471050119453539446771431547648183783344904453595610622624395204043289079814537138819478593398561740111102671020349438169797463974235511392898671743606512299242836181202898951236567767036727760698134688806785610122894206071914052927666387656756390465433868183524024674498489362530012666806797085475429020971707402449923536070112236209381282853392923195739400467445524867881779790050144632502081029933800575715563521836312425447756453141456378718029637022965632562519244603168016710737160372306366487478939067825416261051049222824090967892376829823853549543358112629288871085004640904957746368961917569729077886511099742529515397165963981252210998603863267705000024852001258359467554943609075666740570894058664897282491816665019690347662710727789018053586739287798034649579053763093118537280566383614563378213470074618973709632932243015067641716045248314298561236088835787706958149390525212755536356764399588503417774851933085327167762529186908275925243283863545163111640415847049546789187841719089832442894172545297511120857477669400652266698438195448371197394974298996377246493063800788974376227364998342032223835912715943120037885750562188625273881595089842444239003624538607990751595082065281725301670929461636052244618938166554073939325684319324066427513490291718023123147792109230159797926546434660746830619166227427869988518472706442954593581874961759284410741870222506664943241093296237290931777321073145584157114423395334546328477171601853304543658762182178081838997184443007647935728042341774228051438681643688421119973768452054554992721504439971168916732492666569355794048268062868059884855666855712234750162104068528840929445046516538256777725257138701862054816656987619693796680638952922676389247979544575579281103507973268432724123268603201444833010593640176868916038542200272411964189464854237395045529667405705305537962688216947901114237996525610366702462217335747818586305596816965988134249366824284551622830938223147879760990474686782088313785624356700758484452739594132988862707911566593434918846089561158707754328974159919608610138997077188932003825356949542695488724190102332825436964597013139803949574187736163928438002002191707723199952885271020847545237074616872469895130158714160996899985548476744816389025121324858930553414458603331138181141871144827423836585326034732614186733098875623654490338013609894014698434156773081384484649716512845442064578393786466123409602762972440657618985000458511361268064102433112369067964943112525979675393515228335644483306787646951549075690772829307417075265982201617147555690539927109988673157674230054826899327645123102275466595744370235110666842538571765676906341804491656862450894260511509733884697581196662218481535482140530813001298440354031921228368698071235257607371277171317289209171072232194802894577396125927893009946903262676639214891778531450896773264074252364392835892304396148576601104816050968224095437281197877335708030719601184987825747081724603360130733748572224453597199083573074850665512994053756623584234624889130109055304567625318393560466371524094483835538731694397507451189812096253238553172471984890520137027039742267342082366734595247122550528540324018375235737584518228527865950776496506990900590638376052414087046243162586305494205598685057514436292091266955516271860859360130857525860806344426643144539763668496815833915017771463138026765262778569583242353534079983386292680178905412863016250033281407211734470495013104668978980028066054234773987219413003572510163573683146452024445856347368134787404845606228309956407197200044972057040700317958341954658844173789599232440060703588499472689732953690107301666027476116846285199941045684254303056581111695155980748842897016384898150623823856021712830340441795621591124265218209091159665487997297685401044276160203641875026456223689896704326278273005423002925620439370467225952443544805489682604359051987650851280186499183454571448025451101990863807934386514535202058624286344850532278602436072851971868267619197430464717596541399818020447927673474952170775786487074972663993129146541251172659531464253227688912458004286287591498344736138658038302438195708960744445141690586698568554137113218155052993022058288038720390944366971748740229276072470964116096975963615948473884973923188448704455534785494706037098172242760186718594885889831398844056073519833148286746700875507482719195482032254226865840011550517728834912900228891539117228335686194574469706333806033964768475197647823411512511432603606085684090853555360349221065469196193589174584381271352406084709431769861811089601198299258320946665316683676171294340929968714709197658351242311212687192303966699307807364082749737633393210961309855442160682800159905265699984819455149629228358373047506213089495861657630432783434821823879752168094138057548794464005104620055920494314780189530930011304133807993145513838497241580032050243047752516400629098633077049860747081048417289168256997440966130510558500260847833668364649668714145032901289206946895586785883163053620725215894595800712658984917022340745968804106514418768987934762849099261011308435860915387729221651538634597229912074525651321982225999568429459097629073787573656457859329084807984035506633036551318439701554846890487324128098098522630155690611236177833720478448370963400332448216379354941759061201933852023968335200749687307754426550550870541456260399786741133430621092334073129157423400270202521718936107675533875620449872698701269097545021090057906409605183527854736051138778015473184205040373430531526773900578180295501187380875457365481586360658695545036641458309829031416951746538571470050032955218980674015314049579331171520543667561479143901196445828352529939331380868976743408677854080046550355499673398664030411844197585401344694814064105148527112453895308837578402753447875285316999313574098932781158682841991623375128665203264977442305324139071002164376386801473975953170938321666382229159561976423606958682472615358480064889319558420887953337630295162134377823555716325678746788098536171842965548991710703943227864486190255504852291979627470974845466932704285998341614155353378535753315169801427182514990634872328742584022054365371401404165338766347202309194553920167998132626451971926623183945242167254871963178443930031842150166975826996124354986590550594704632228627707379579672574258017012055440115562401871924123177062335001921296244208934874689182864055111764838852544626383053957486304806654847814237264600493396169132058409369943937117645296779218127787760252443405984506698670302179962125875648033687505583113186186860740099739386065697140245510153273453683644648938739296549193614797750829010817416128616408932754736195759862747233588277894737471162225568786698823990950408613115868121689386985906529535731975558047065081854835109445683900162123319955981255787054925812241720674356353566189646356419874293294872921669301670028676624036581045355514464020249808183452057342286925964920842700593604074925865679513884520278626468948350006593042780157477843679041503097249806055133457928318636845967305136973236100409307332334732552064865685648273192888843960357497343352447413271030707531363030363186328429369463386333659960285405009098781054673238635776741025469726521972467801691779265272222444569669681478883563180310178504176071481906785863368135245992141058676446122996412061209970384992457191368053025903898567555427091768400448874810952504433859617709847663588687209201837209490088732702807122856023683006730629279571409368003125398233439696835520126487822311678240577080342208381753250411087193067197955040687064107899101914688020963523646677727396251275432603416754857084512522357505283789340740331834329716438119777443762221722170891563968480352619669452862984892756419631639502395413361576254167183503046578295426969802306494249808961212748968165140056249554462699040680212789078318470808989908050901693827488684613649686533553511942488847713698679349386554219886674457232479114274350734682388984005461651045500210856414761305251234868921364816600218017539822881057452634463188051935925193705933591873880540379639136728602340186985423603954574537150558912761814097079743414169504033273217007409924369621707400865188753930166437789330531578846840733462205131377550429553079996875087405486084384582424950496217175555991238035107032102280199973805573502598405567069404649478084482619461607026375001247478422921580164037910701662594173405682767271861221981622346208902166758722558252430020590209993317100997375214752102656385850319648651956384505142050876987772211763864076158965888752547751957187252915477207492472546235941430141910839938079955004775838340723742091934886763633475096066120757584650862376405288427538932999841747803348542677144613701529471750000088898614811119713264686370454328349342584899770866014529768155117490127393332406321669553435230530970379287176809487234291252693707190860210155364788914980822313055087840459005230400107477538954651985890570264553183063227104888261514970044752177433287178868297295949313387036065731543416260540215739723440899302548528533473271605359372049853220766926391845355390448540953377200295389366325470398538910680185273609887353694798387346657757925705329367247814497497017204144765300279513719413207727979332439381660235369928520366356855675036716407238193198713476517498154871523605340057030932292979329258024329091120267430823211708156818013818750957647076685442766526436351469895256929234200766516975635829525303955775546108057152229665023277391507576603565091309642564124219620009149324545749507088437790671281086148699413417556217689582155427447357852991236879155754023141283144354350926517616915755350157891418939232818640165438814393319067112338743708738074564233802189471915425881287534174862479110893926371390509364402748930205630372740766834325353198552594797771085941735785682197491087369831511275063603038912489589114094465348721843499288102092294831930843678748448518633178731389269747843724331858485264326762318919296822806104716719964654071616311070314154544000297273179628980804483586826960012738200457835817610047922561387532177790262284705040794526453456581474949154296819673054432529163503543497216486487386259364322980344748213500763830968932871359232002639156977614914828351565073654216190813531147345341010298920064867807688112583624315308548219559775693845111297352680265946835262901480593041812402804640526523567764461511780866597126773137581801796841694407175178535023993651528058295740617366717996934040107392969703428739459641872274754655484526552350439997463685681795986178800708364269388660624690193434942596333783301326929356735341010134045448935948070924719535504642624451981380013175530601109970513983330711361203857134669998489524165091028357492373109431341831929745638195187872667237415842547927597067553928702728525434120980735148973358926123903066885648907799086172875763576381002997288628999076671624959240825714323624724459673326559570295725585128619936577541779083427387561412323848612662457412980925759110819500169299684262500969934962794696734574876156129708944017794435249130247497715210898950383227675878812718826759052858261331168822464639602218775396757068488256258367887149895401672081084982018627293010117212355360302139913474998986230504688640479878808609064632622477402538781489056219977598605446029439874438938365823554260192086454597168305780082560618093645757579723147335692011870113975583096321856072798931075661235323301413686907125378009972164355805300855177571373328215844590174505476967289328716944306235497802412408052934369258482110395964907139121926376763342707758351791884798547499139095407147109043868577600830330954874265573021118166830780536038625193161311554645857588998514923876792464463540421114227947055505016428384238220180249190406004488693623415692314675942723937559199485072586167933776162646196323716424762666252186078091126574473927098710600497191734110828238687286936515213706606406611153177847179546731017498943234406726586374077666589746978495181930759891807647044566749958846971814222522238424829376547228710237023805669983243096490722678107490944281207784167957111034245876804648387914670481253132443053417981529991300757926854144535960164843551241662211543637257524362677077436276652117539567414691773870894650268821090601425239508401945805257083999776437467981014100732844690428471418985729010853695382860421000348459554779586313132892730257969218997072839876667665647435354113765263254088563275825148004666403997952322545912321005220606938442728675671218068655695933751391086289356887646603662131767674589719241270812299608657196328320218055747502602776129617692468564954306335085584251480894062971579524768380418209330463604693644575330053348602065191321240725066253342885275209411431259454936277184190054601291644935208279061955981040745477688300539138596128543465318641650956294840523126487823125786008152377098549536496896837937018745455601967599534716697874288307037929186731118114058746973357754510798174663426878424559980195455856715164564699180425915991460702001278127671723123983907146598354058077818552980993165762519454605129059291734734620064084579359008691774066833544225239948959974286893508272212257437877755797720906004198005133691261176116495822116412118618187876564526347831509948142748467315193599174162268839444913101047490818984998976146478883042837161660128343220330619167734743743597010279685881714694183597019391718309749155349712543212213564610463074416193794971722148620569787425839858968155512678316920463601240527794582796185851930885386916432911222197027389034388072471768966111362118888831957198135175293421122509481711716424096202280061634902622232037231850143721741237572312230120152545486935112640980297591377756482020128727299723292934140327578124632477059617897007795569089394446069142816773556343890819425333095439850786505022396258876544544900858380344093500874865110898762201385666393710914674828991501482910340835082469408510946853621922976021431426491195472342103178906536119989906306000507534048987977644601942303982573823101423178522668015016537048687856693393455871351983789253289468778955754315789055326384156317040816975741114767071961808614293010804195441536555886708053496284313643418054119228267908959648924844859931297814327225028283807457073454225496466610139697065882249933248550394556798536701017193463722269466878949518907107435515507954321829382233750683750153916384254171293721658208423335309736918016525555631769142391753804797375402178005169678992824176561545266237999147715557282677681601653346378592224244027644157070649354181484354893990153459218068640155030773341762061143924974326604382324580471216264193108486901910571290688849424612057975599221709674206509915109244597342902361073281254513078314117704934257311759700945696535301503320925192951952813549037451388079139187810119132519257224630183056566778643941774357497280562754742849814194233577211534828462114968929831033595922281983433253703906589927442329168096269426820239651398673344853526058860025698167666970013071336365504989455986287544339665454533609735510684819080394026659010456243226590313623426994513509016471045859589529116982205133366867073040975529709067815212073796815783135999877553082047675554538935789572048463980935949278494431465121354691454337015364596944476900222608380591901238059213362636220822566817493769379183872371929908676346920673379523687891402853073394903684775328339030577638516991818860816616575299181492032462992110735637924337059299472573298816206808096253694066705455262025525063537714200638693281568394199545761800895103751106549670068735505890080756444526752290048420009091517558002203110319424584661613320865235782004598247849973595498334695840793369657246770672457185451177682395330241577813411194020375481469808776853394074414694578660107368992011648335224816202926525225971988862209535711724149004035489928893268730928154411692016987562080888195384594276297095620681850996671146661339708350770588160597945401718915327452529085241744866545375825909774502156328146775219514168082904089519596852632789444267399312536933105391782990795686347163796789355868022184409088225058172433950239909445835508802644694333086720090016743591673469700297260292189170443862250190481858584083019777449690623351937510350604723023976038081994922541774090219561639042585863905753269546617445588266249390145462083120801699905110971749894601327294876113735250633722955707120261563301451619362889245293193198885619453726910262246704237914670367535730405806211450553062914211697709211852773718618981476548910573880004931298624317193488607443226223733287678459452545475539702470223794109084804345479380403539846789873864810533950851636554441441386198275960119532614589773674513345334318362175919683893282362559408241384516664890884225401777525158891512086731426791483153890502504481010022082273236473063835987105500420391674268882244311888541649954852470600496665495441689085212260270176278813411046815565911638502861012144873684794566146007756791437247111387610287885079301469747560064428827697461453064761483053683835663473652391623004472495797553256961572903229196663262246578599839474470194425245467613857182041637011855422608174722896543418056329210393973296312469644743454573994215330279783258934540893098391364351481718645018904942682667228491890784353730023967773622291883460623302294360897909337988149643398576393791341963050768316579242134280375108829656371771175925192724258545863103505810837750955174034572514910736729029467989925035838497635306799734321426881073279146534865434915735167662885135731006332040275129939885346126704822641876859933760844826464641099089218458523521138026948704093883976258190886048072055697929426693949281721525649999813095542585472544074755901441342155398086844759029866141620191528446345038612569867911863950444549590573631126101168033998912427051458995231892955875672690545755451219079603099420236952020476876265332003289887463295892094007713950728848611903145011382166231443437255134220424963501150310237454894400714004631697820046186651592916440110148070389055693369741258484803072235899799398245514301592925409970002977857420090449114369187328238249589308951901571698954981052557722340394317105646999019014591700646077073552362697364907490506450038581036351686914426909256262983497253648792958889709176146322009857611526719268564752618857983137491264549577964298757805103985698491428154847315355020856952715519295720806111785358656937293362425340850608767991390318870945517118882175126051744802006702485997577006700713028491862099271085482894418820958401475217854940197375613891413599917032327679684046088530146435742104154043863899426910710805484938109360517476680356797389285460948273119764732929883802600077964258162833478650559106204587035887174382887596204820715328643273036748188068944195714295539294696313365225543421716165495717351108911396620799994156378487926578277653067971873312345255565090783726562351370343612614081463925597478974732456489789855132436756632367267981934167800309336952854544716106955232705517572888844666288934298147925758725047911713133254930409795713254844568948894848808218721739216038771397157072198887549927744922871649587863385664534880592404124125136935844026098134636545304608960903862845526836718850341162637957819113291309026083822641688561773596897368899619988165516830750962460323873834100529143971904421491644098907399703079272068251371025640865193924156686170265783550726792809746612202587516171946746878216701387071330020828405260663981569123477931964315013934480944830634621921395829940971743390124425558094222107301359023740803359997528604229077248746882058523399556203342067425134352138320794287314279937918497552559246680533128035883618318482972078006936901142852554841669994705106649615354796896816659733911509396632572314054359580372983505366443870418766489852272265509270501225417153338089581752003140008590631159966023870874229224863327012717635616242654561644834870859515572585514613348743262430205823746086209501342224106992729196904691754673713300204077900062473870196316094516760142825882355365749098588531516454612800183606394714376454449848282864392315962244115561618174604156914944647030161409864206926775654064498098342836846812167402635499393011364801314570655993968391185563169301597936179146539232167509054837484089269474944330607645772109304226228047213872897167328067881171904115712130642814335622749174767197362547125422458090143393383425127911814782608297004246008008108638007455342364123067711216134830523856861247555065525339312162955742049114580687840983185966939395982340466674679390618187383737528303665554413663984420538054257115708321528797621811992838872797174863275276718251253091135832234048766824770360306623009403827459637971773557744873691477651326903937088400024053559511726055025185513049249434562164973346042498638083716645434509431136241061279169318557681859471895819044285065205494814824175412039541473482250787779521287087631663790679223312551787918155222719495853827835708091665368891858756066698950193636972000975990956634392822416449343429790858358114780648259271133490588837898352571860340111938033600958758979740123406153694414786091124286423121770613478471250328008224446679105412558176987147773846489686721444823183709887582803363111805719147064858038852342534013532597354711344971555175589161032191814662958928738195132115970308914361217832034904666817583460484177501649661580672746252603564453065582279106345888905082978440283500056714409851229709014662933500437603778111437521088331796944012324141678672317725733237841671874588522511037421780552663105389490821106080151145090495358229811258903977192490076634270614103249237173364406021041216434254839227614471298385568651706921261473029188910065914487018004513516107056878438486668181723561832457145352211543244111824693090599207464704338212235030938985130009642029928192597927155116514971578451227693896150711677711935569906426499956089124243292530532884466508722459873321074033055473808391769548028753097573817007457080540262238520628623617412136420291284109745708141248816995898544473968151199214516618738102881272989000492829028642784197526501518025493571442497583027395702258325051142510375768650036923478865495166551050205957026991897509663508261393799254041947996350936183565400481988585381222424977817915557415546002829779881922547486379061645850855932584661968649738280839551133916172782892926044919555043902010153415467864165351070357425310052455011739995369224916566700699810870232822808624778235699822126060266066989876820133922334440397048860947135774020897001690878307400945675864003917199741145848896956617746860465245716185656270881343781914098469745252095559037614335606411921380052973482023638525229951873891958402472549784651178342235150031181166808422472373790352734868524624756653028989390459429020072548966028446838807063190602753235330008746472876419017991238463603144390359763331895011340659949424092416787562343226340120041713399902270619992794768221789451915875743813292971520028502333676722705034782460182741911834795100589554531430637243600733636025003044106375400030569740593776858953037153293800723492535646111589146576873813345270644247778243379389171008223730010930400981069060535336991679520266796520859295463049176299410734822307939314535924995636626537879712313293676147302169180689371085150826568584313326734262663313440390904944725121309303777159119847902439026720824248059181585636534213408987235333594251732072112023866909401852626132552752529097080190851479445517032044971699906867863872621192589693811763086028132198155750279473380613573954271479583554274219241039336841719321511529059307838933198551859829861772043132508459623829503503922803628822605035687604415324776593095636262617653844233566074842888784566857182240432524375903066312880472017302391968592319048991764950396248854459929309059883493614668662036536305200037200918047875771538395634753450096064577538982511077273771696550442985952144525848249064032965328339698937146329103478095154395511316028787266266783239833895290324178935967081485625158175451427357520110208791073012940314020411607231835069073753654800850199218139191863801941344058447653570785731712174591499711817864380681944197982963096688166974803883326830128229882336764591186858551671207229799133287208601700168875618596891039095166720391964299252386744770245322297223750778520642759244031582952191217795316402882668545382678921689519726532074611112306129110910930200769289055739135576361981942618973370608770890310215184896980215786892545213053008012370630811307726047973231249749426550065157439887641671623605154745966046680241888216202025079556010692622666142453823479529380403203869209184835984101617403553851351162771269533465928031875248355980813502888926008067735591444796189541986936905372340750352281456928021837579653995951102682217272536234885336284073182691448346544201178469286122284887578972838019055990244168882862709379057139723616413613735251771141144912192782945503509318164559056291686890550782286753182219316769084072998407255814559312213785731706487174153737380912138086004986598504676605218412835416979479602527454389902737445108787033051903436626040030688321925399040913333530473641199803431143952617076881666663162240104889334482678407279916603806746240990632402357538578532256286030527235053675435650667887792113041657005080845781975942094860734504142826637592118136263221511593270075947307924852660401025219531532296837722733497686477722818077237717541700972227132127432168575061926482452578844617526320088167585601665583946429051477945912158594658190012573140164896370483052418994437013355355838752772287431666295557997771432333498935875971880105149061423560608687883147631382671163569046039356505785488160230168378854903334191939780279221352578123111681926011115259261502065406030683086100135844136561433742650432849559225276860367974134604191945259311427055128510601216040679481752237851636067502574137021533963968003263213180724160165415708177547098148058231204350049851851089794597727819193912573089900228176812208814888830555390667924659233500379716706078127245225176710425824822821155890299284997763580453439249033772151497603275293951061828499888057348951536717957716079519322928055395320928458799969515865403183249457312547471852017704575276209816152453770418947112315061372754053200298708720990891790439938313312086612354840367577127663640758741034008516868051529008902337078344272752498092257218820972462431991293564413915884846840468564438349025676563369541634648790289690726027277901330982007299938283584537626006081947959766170474024621537712328917829612805575114892399400352653063510921686598437388600920533650375260423816442590722182189381606978041489252963950340104300428240590245558105402199700423628605720613350702492999421363042347874418203688995103804463333743408964910174840465256882192805694151356674319353218648329986542273949250926566798620829374967476734999697653136921332847954723341893345787981890066241943141381036155542118648266863723768927813798070013059134924718435158363200234659748398355443286108203690025670031583278767228908073171379491483931525474685435495815460957580670559406402203032472534807693803195249792676159297978310707958757028108096023163909946328298470721953621859465279522175454178010789828816394264942433846206022255289929231262913600888499439806665112222655788911880462833249463470918410373346710335521910191569194413650521675911282155173073426841198582792024150296747365203273596515612682798403485885447834705861784873997079223907966529923642629963312467704659477072978969077265097987224014021971556991531526449705820354381648334964948822881378810051839411585894791478521444558944943743760559213458554628074440095149050612994510059234814614316150896343249883918972323416678076944840742850002395602848927399956296335727823441920525033903468790323385347054664129440430326586243504868200967343000112764593214227971613187387181284795896686800966561684771049976797398606431144124256481754134562097264560249165105325863667877754491898991921411114247676409204826113992199299016141274736036280728118183584889893965519186689798788152596194315755514727106582228113652298267580972912183888059000441705934715084954554977060838289779049635195932067753616136858460851201960276822676960892063928299082893713473386765705435624826719926319206012893934698758455403642574686696850146591435483362706337140134933858244129176170758707289773085425711336828139302145162860430870126358232355505344781522461353240562175355086789586451593909034859503332643688220754130776333770842280714300967124392483721231979643098562778890606702170887381504022316587788162713050647980512409730319836685974884468889920401927253820810254215801813737540077864156797557326015188357215171829508962358639237211069131648750520001599927308138723102078426664684948177209527794980649778827217734864760127892704054657814809612081408663882389684681760413953970618134025448362399511853612306385391025689270157716601271348320688987553807114887240785955183968302478688800036862330356922158361321401410403938504174458688174935232888990766021762960590964247329683685778239331781638536518404392940644712756957082342270143906542094452488654148811365060919534995405262220074628256718676625272783721197453827034701276567867099171124794100845079479636375397593631121880231921760337365812769821164100306893414330997958591868859961902933076988489184474842256929360596318786874683955575999263710541295871434309827385393894493540974167872180855421802883675661069335774203110708473551167280912424315324904962173166602262471288216968614557668182243234426539097383539561202430170780952331003338929982691762801723395901874093156206538166781406680072924869079874490770212591090778258946979146693495171396572938288942499532013756389146346620441551987790121011218478328314418017003712755481602431021035214396035949367927925298460783859501758762407237645100940748260279398593196878093121633621315582218792540167637380034766439264574341517403137253890076523727799708261822982433170197263213529993979938758961991404849965254449938108692867379518722858821969644723894212706790992427872332911484677253964533390452312113030714701871983404965946600574951403606299581944856595074296143396887030522822671759759866703576058573119216939295615688696888499279264298735279200187252635498610664082958294539108873111196136367636062134545055487222195333455859616721678247133330739092910950598199693612100041853655839622475144976888422297235592663442946650370084418239509069012502399097560471454763588198303240685458660847183747959848205936783726525399961772155263860048824124323527732975663629257242076128877373627896773159620622046358998199850610180972669941974920429446424810583132621003408100945311589187842124350124658142587890098880697427317836073758262185196436498990097619830165958482769969725822159596174269989916165189810263002909455794362034672416579400690423845583050876457368472341360381102914559567085469456271188338991296576438435206862215695515318863270171619158278642260044003216922879054955843402384839091764733996062459621037013231287788030699118813427725009254969305257057613532856584369405397963550362451535089627724764190509147697223665509730150714207834745408387117014313765367682508551074108634096353310543300098471612843187769814757515354410100396409646652222329768569154021130429607762188784919521955319400978430826376492850390338133355882944452494072457684806944651650898531567561513206429767590493482349304883917436930506944812549087848098796709204255856452283324286932335827845373718711517045184362444198367207340870704264557094407844899888151733718835394448596500826438543054563750525933488260399705328441755574604067935332121153380760896303747855381706309191344961548374519330276374335978418695067537820946844786189802037656500845871957599425916799648322366483655827322381238882995573042034480423647702736130192669442443360182361203756219344704825401839677341087911832651057924911946706292929260379522532866919732471623227546619602650118413241361774136959070649053947199293303152605398547377571587395129952112740103522968535943648296414529991787702491975730015209439954087364349790571540172309514362032208591005663357663175703005416910124868752072077114768808326940130552366530315802099072928293740508802756094393337901172638113348458309024112548352230537045941719827353869094540221665971272209619652113194498723315076303346848210895773362917876119858138111293777107673829798795288119610317065933129366791251058973564231396097582232473285505907605836167196882251193896222100999524199547596384371306723093229341645504010477140726336168676713419027281217808685985708092306806327058276795455184434328424426502851885776296171089451248212239384904059844612189333121844637760870801388525326877453532007533960571078962005239845545553092437800697444399353825482773587975684879973512907798474157620420478942014273307295287562585026542477575461991165748927385887652187295091352114568525570246529788343112573825251047332098263580352979071142843820982683605570652619455184620557093214872930771936667537717706673893259944149266082321362275988170002812111894682026089255981853818784931305965935493131501866087315785224809241976595555208604530436782926252591023305993899814180732098140002720164314083645809190935060971616893724202426121296514688679510765900878138331866701118843234378760267775503250113121428798127401371874205026012490517997435113708524485341467674361366546911075689920683655061421138691480768825073721903705144397209305654074826319233262347819844958518817072168370972728519509093587446213959987139166727681418414359149399318152335407903734960821773186448765135375247186394935140500742236607513470682214380222418833362617580897209539241833204524583906727635170927625000664390151477861790539994824935652998010279928823857921572789838891806157308322065219723590516038525060920042199907018181097416497477858825881176042113718838452624536899686417165354477696700488551914439030406061708182656443863052756937124287160768571403912864254698713226302133459339807999394241795902048823666515943096018007822272912900247705532050124274574911858836991863963754733174244656102894308733889610325362368059834838453954184554439862406837375556477312897285961304399907879061447119842304933431537212824810689052421316752230740135597985477986228218376870031142146825216458647250264653179991574527761389685043897986569861442561911369762876519437182990243091537303386717747331601352718104955472509905072593795426858511058423243425299702321229365758539708328428495288125603470367223553850761006229033011412691340655039840020823522163398870729012555352316211834465646668196658670172022473926039768842174904460948872627468064313901755660611328048816376042167710514393998953323977751599812499560648912453038102514139129078634428028035799675417618708717480830141243752066322423950306068954363259335482635470390921797139575999375518310456178901888557091294071825894172457172256678088089536246952902226734152059046446335832901108755458045780643281532888158131529648305462538490790095464850646550859595997891896572758965084671291307605989995571209604916779208622504798912902772058033432556500454227872963120181693160857075045435724008582573724079417210725102114047061720840197942633774276661708508604835376870475107408996311045647300101196145850227712169420670312851041276293837553203870517440149607216749028862792236838278793822977128447015322653537247218344276532481782674500028625180795446372993459530303423963021679975072648365147178813316029122588679348833059867160616398109380555086961584843798565716946231322442206644665678142487709779225335459146567723199492486348941890990057369193799746955500271294297712437185853545920931589832952173279786221434155099181815609672074031977379747430781918496085832976352583470618128345545713339172042573552908671728546835779429100308664322466911537206102231893789639713903911315779651609046223939121102983343807355311648319806075378438024926066056514278684696142299162158014784477513471959140667985303995098606016749749788530639479182805786953433555238050139323023955068892224165381036740777812373592247626755758982670876014010909258596295124300359941796606567998378626531165958240079605665473908340302013980728051488787101730875135473818454123212360033588164338189451651518122057104652604841779607130642853718919168113311160106371407925123597924655815770459530803846950505048650906726970965690792447800737665801063310086946118167686736656426903638718474165684704188464362761984303159991046496945051294117667123706126143869335386440613592119519107839583450552658098576477594420206011580052678599234644334699795301804970879476957650015302990618407089283714763320072734368078713755967374842788565262747884371745557444486876005004532447585328394554950840087467529255499345183593476239279358859094862323363664354071491798596891475838035343683618980396733649088147348745126976911229755644286019133782000416418921987896052572084162117302408727633875861592451796246793328515032712598797654776292340899315253253391234618475705025893815004160562538588173791530587763372312442961217791182012829179803460910428150424010689831119893318417740947414496355852537641388003876157229678997876900836353360876301893793882765788284606479078122599228562358473512284181575129113437918888861707416482572778514687995091420543902313370172026382534428963900362271829481375013029681851396442041581286663674049643732772511576823502291122985074693630510862891719958216127661365855352617650850098004265592893096524752609983099813953479361280201385735436176824739194107191656937112490268022923685424507147236903991151086491430783127510409840723754293645631187921800792637975300517507423457352329156705972921648896837722610234156411567826196212302811984201133183393856355946813066119191477816547977356149366830159324090172038683484611100842074651492166019204261733778528570728226629964322811505687331922700904633175231601228514440723688844410211944351005820949212611233387294264404631646578344747067833091027269125665445421999733116945427051587086880229921835309333650372890145559759627327255983781705844060389449975958766135027847359972357307332778946167570101444045815776543388910079806693490900371795634416336756971916965123854008246209054594953178065930862935082727696165119369856818894724530142070909393840639253696027763967655667728097900529354122237182320581933907299906013038006046189850956459869102033301075977558462797821481778673244725138292968284133884675668984814804289940820359295695993884713916743674911698286141710079228221804707626584419983116939405415951548647095620578800134226100787327297015611625512731339653269750774183118455152664346220909619823665877560364605424603980654277013783060026581742079029067097688549719502896148915106091257138981717657241896674542502668271654358674728513129554985805218161616248384763967978536534511586225911053080183108547506203044650777547417174394622535530758235986247120269358902833571792113551553224682892947471130299650828050298777046932735610381569225891338465660745293057947314799484888766015186161232370585038984764709316650050152379632230923151775718566380574532125030279703862264639569684518456244342685240776156792231362145245993332231559324250247837971848769649895683421846229371852846527707275163107046297589643311856425636960718839445972904412188123394852476876014651353940062567984184252698975874956263297398080313647458987966195640908820743694053365995764451870958781687903509814063939175027897446271380065197141712284546767537304643537856485899390959230547735338038804006725860703197540473361433091767634603974598025675153547415002472927157621307979188566235256636256964768543887809445989987830848809127721422601902794743900831721970706681218542872110283454549023249823904480163070970241211641099980537669091994495553101153891327722228632018405930865632706661591839485126863693759268681349502432933829952168735790901192276950084687954212916797411650918447032175553325759105880821345011565106882547907516217573280953967926611095086678373189082441483825349183041767874951753789006462064740232505977851036456153730827639306217376673773896702064955305263641359796064032066388436830884053979304529066565626685349250566828088392373102435467554046621738541752300107154355946050025339965818717211195589765397954029967721874576717615922530918082827756357199595737834614418405623818755494614843681944033959113588712875602157193148104632931046726244913189760075438562324288282930507634228313641306421816778080822896656046454040516579376483324999998310268359521491753500568773645365490119597076960787647994373530886552665116514373312866458595608906739505184313485547851164938570708079607436981388731938377061298300395563319320134060880205031639897739132213422210349938935388303319377568186119762105295395522396539758793439668651858982511682732720202025623404705345995138292629593557831544573960221664495638732504752094946824082368103699250542039064550453785605133913382676993993704034284096538461013741058153385724468198329228260281827537290246484017508983085259890223094922183375276287885755005737955461311049335219541044176161631691162649321661972603574460393271637097316004113378392637717328726181800465074553442528079085801497907606526344423169841270558312998509651748581764944269158495393193758245822184116459936626958759766667657682390643766072578035588330045142922901049545313395907675224001363143716403349369364285795685386131323322588883517038604503133932938427125120682103464537213387989757519503150163522687816526549435325537406327788091430492529201258122766217667602535715170044189141063971587393203566193450108409530908471431108274001048764998165830269716470274670092309028914477929097742510831533965629429960334827743797110092312873370992491281664158831821469707487084002898724170399630026822368813111851653164949220530700732946522771001406012285228097821266826497618418486381528274946642282168009403063443278506233516713205546450805087036791116071995133211464957889707732421419460316301695491513732305651579646339686760125915194974356298050217922431014771713981209453420476905252695257878153734007173194360793336407417776714137052466495826496643792982954689162093473797113375687527619734535121501601080901133215270098925737335575860214596184871579645042562260885352115476304815990500643587216194718774936091417072321336893647234594982098806394629692367351870013516660987717321323223352990225025501506581461996658401688708518872959577217591018527004716077506216086339623748093392310662764968721571654278202030693937948538876458570616709748672559851113762536857990365695722833738066430515241418635483124276722330523773083643749986083575292176476009827524430583247508201919042669599493887149783641331426550078708557761206574325879459008182148934653160858181780939369798170296920644513799456860538106762565638041967233799771478909758610376244301346649474715304488282150892337113452854678600878937095782953290001847154296772223643191123254928560969687742466736818156519508746780595188563530968749652008693969102071017154456309756936674093842999076846238714890720864002274007076267690948621868902738396189042541384377172745522368646798571624355806336251053371373751011316031615666667552922702615584708205581218735668248586085764439547359458247449119315004492800809151832212068771613771656954254493913505507242529452676159377905127050677675208782647388099835553782173782606606069178082606492364164591036766420424721227333204122916252382743516328583686791250412373421124597056310391164163550563870163987149092020538527016260631820208057118363344127377936943520618421572791964306602489572777530932893166252822672604624403381826906885645020474182063092112977074245220228484379438070067659042782564692336485490031023686887476979776617757645092710542008135618863277333487439368923596587772113115572255806732821234236752380435834221619453031812389374264574651206816035068155951237237171296551082308760019168022853830211009609965608145194131692343458556324836636602869375060894806793006569033079470853158341958660539909773136686322232602961856673939654306410000251691820763127133483752890419029605837079384556810390200361916729894445546596703851865514534532179711600195621100034357043981974732071777865117942049697334133650214333794311457633168305765288712024142684088120687839653779326315547178403261209832039523506887509804252669655163861254774782933572844670070815273344630024694356209146511449446086926429372115773002813163250756329297891755807446806230808530201006601680992997889437217199526972865155290531041747834408376543945792518689400786567430082364621937762096502944065218764201908979845185955561030808530845432221876252936323029003746128554379056338867079317269138071995979379912052268932539219711654417803516047986938617467679416499518195048871441043634444134975291420626517506387594575813879301601398361039903574067057349040426636080933223808801485229396394763913524930828022670274247278759846435936197212472604520329420702873589965107285224397145898738543471745508570958705333231748024802432438215050806600788596901653158738648608559209712975149418209577387008914957532733100130962686492455981534641339098948981289124371408829606647476213835005389291068646974654442963522060329873202953524993252986965511744584951842394467625230593914432565126365964645132755062372287811380803284914117612419195136814069201160374464937014270053039507600189089643717205178740456079905071503887703192769383822412089037983884749155712405042417855165581955755138615560908651816263168105384837456060641804936264116743438075312361522359460271411216563377554042014585966315668341265068217954618858437598569338672962062954971376592203955567517425590753364058870506032032700051037272463325401185914539468412026586128399582410921832684009259990250248902026222353628440593563901539919207902306577105388022292608524357509717734170575580442198011865339971941475370893144137680726655163876018129966076780865972789470690897691034255557430979905898273195209270691154429399845779700646641285862478998323808327742631616725618678554895357305870636651589621090426160944156244655997798567072725697873526500274106696593757507733063204033233272952332620713131359678286560146451661734774282151963160986592303411872316274127922062809536173972617710459987245127429321970384367367805315864013273435466080247287629550375866086375841015326997589513306204210707610357853361701699420704773024778378516075762516423865534290546453003135903281883166403947906556915523811295525043928595527262649240046282486689523928739031166292199199984164356952052271203994290589277740456549669257919185438853084205584067096354460151236449989438160218015027171870334063075296718921433170937084019297937278443011576503747305372704658472279548871528238897936934698763614055334672648161540660888200382418652909279365833559825770827256724524756019642850304209312678739179662101536825834189895387939609627910341543732143396637478382359564194416003313562425322808303191571251257895316993859115709706512417156035547257604458560462596236852722686813737400737937855900903413369536499420861494514056117288945205419055026631862860268141428941811967299044680574458406539446161154053548279861318317738596182682623319731829769522432086285810918713091198863054182389185782348055464250802583888349080392053065709786253478768073710211476468422160785586055466150858840500815972173951156388526408260326943348608146911682611341217831070581849847539086020919094105387379125025541892232780536172555765481852613434100669041560669592420786246344443316317480402851488757523193369663846015851957917660456684483422635402734678731788894937370667874525961674751447126305924442275562177954119083947992497525050058091790217405626025685089374560611264807459825414814212332631089272310394035718035139067703288368906919401452886889359681012044874962028205356022615408761139801243148063912996755599001090757053696473074313147405191580926179744711745937872592796796013053703905504007556197877255971219826040488621862623134729745548695425220416191583707244167588472285681330566072906249266119762286200047196438405036725304226026816472659602889344907178286607589891218571962043300539666466994393113946733710994760404026524557265392429062112186439434805037289770118372954896779581139205020447314420263565657855475881998690292045852418863224620165390640039837879415234353504880802078396494095632348966811624214456385827350844120742301347266101504202890791374933445669568580623096164863925980125919970101897452596131657413312894923811761955287955208461513293890236910487613922652666633004064343750877770797450123711510833394081294465732962817831900728910553563630126891888589682054930847528830653338132650949313652525946734189893113756055820781556486008535306045176506256743729201151